Просмотр исходного кода

外部协议支持内部协议直接复制过来

祁鹏飞 2 недель назад
Родитель
Сommit
5dc7043062

+ 2 - 0
src/api/modules/agreement.ts

@@ -33,6 +33,8 @@ const agreementApi = (axiosInstance: ApiInstance) => ({
   findTree: (data: any) => axiosInstance.post('esmInsCompany/findTree', data),
   //复制协议
   agreementCopy: (data: any) => axiosInstance.post('/agreement/agreementCopy', data),
+  //复制协议从内部到外部协议
+  agreementCopyOutToIn: (data: any) => axiosInstance.post('/agreement/agreementCopyOutToIn', data),
   /**
     * @param 承保规则
     */

+ 76 - 38
src/views/externalAgreement/agreement/agreementIndex.vue

@@ -15,8 +15,16 @@
               </template>
             </el-button>
           </RouterLink>
+          <el-button @click="selAgreement()">
+            复制内部协议
+            <template #icon>
+              <el-icon>
+                <CopyDocument />
+              </el-icon>
+            </template>
+          </el-button>
           <el-dropdown placement="bottom-start">
-            <el-button > 批量管理<el-icon>
+            <el-button> 批量管理<el-icon>
                 <arrow-down />
               </el-icon>
             </el-button>
@@ -30,7 +38,7 @@
           </el-dropdown>
         </template>
         <template v-slot:operation="scope">
-            <el-button type="primary" link @click="agreementEdit(scope.operationData.id)">编辑</el-button>
+          <el-button type="primary" link @click="agreementEdit(scope.operationData.id)">编辑</el-button>
           <el-button type="primary" link @click="agreemenUpdate(scope.operationData)"> 详情
           </el-button>
           <el-dropdown placement="bottom-start" trigger="click">
@@ -41,7 +49,7 @@
               <el-dropdown-menu>
                 <el-dropdown-item @click="enable(scope.operationData.id)">启用</el-dropdown-item>
                 <el-dropdown-item @click="disable(scope.operationData.id)">禁用</el-dropdown-item>
-                  <el-dropdown-item @click="agreemenCopy(scope.operationData.id)">复制协议</el-dropdown-item>
+                <!-- <el-dropdown-item @click="agreemenCopy(scope.operationData.id)">复制协议</el-dropdown-item> -->
                 <el-dropdown-item @click="del(scope.operationData.id)">删除</el-dropdown-item>
                 <el-dropdown-item @click="batchAuthorization(scope.operationData.id)">协议授权</el-dropdown-item>
               </el-dropdown-menu>
@@ -53,6 +61,19 @@
         </template>
       </ComplexTable>
     </PageMain>
+    <el-dialog :close-on-click-modal="false" v-model="copyDialog" title="选中内部协议" width="600">
+      <el-form>
+        <el-form-item label="内部协议">
+          <el-select v-model="agreementCopyId" placeholder="请选择内部协议" filterable>
+            <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
+              :label="item.agreementTitle"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button type="primary" @click="agreemenCopy()">确定</el-button>
+      </template>
+    </el-dialog>
     <auth-Drawer :Drawer="agreementAuthDrawer" @cancel=" agreementAuthDrawer = false" @save="DrawerSave"
       @query="Drawerquery" :deptlist="deptauthList" :checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
   </div>
@@ -95,10 +116,10 @@ const provinceoptions = ref<string[]>([])//省市区回显数据
 const deptOptions = ref()//机构数据
 let company_list = ref()
 const companyIdprops = {
-    expandTrigger: 'hover' as const,
-    value: 'id',
-    label: 'nameSimple',
-    checkStrictly: true,
+  expandTrigger: 'hover' as const,
+  value: 'id',
+  label: 'nameSimple',
+  checkStrictly: true,
 }
 const agreement_type = ref();
 const valid_status = ref();
@@ -125,9 +146,9 @@ const formInline = reactive({
   takeEndDate: "",
   loseStartDate: "",
   loseEndDate: "",
-  isExternal:'1',
-  value1:[],
-  value2:[],
+  isExternal: '1',
+  value1: [],
+  value2: [],
 })
 
 //表格字段数据
@@ -173,22 +194,22 @@ const fields = ref([
 
 // 保险公司
 const initCompany = () => {
-    api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
-        if (res.code == '200') {
-            company_list.value = res.data;
-        } else {
-            ElMessage({
-                type: 'error',
-                message: res.msg,
-                plain: true,
-            })
-        }
-    });
+  api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
+    if (res.code == '200') {
+      company_list.value = res.data;
+    } else {
+      ElMessage({
+        type: 'error',
+        message: res.msg,
+        plain: true,
+      })
+    }
+  });
 }
 
 //数据查询
 function findpage() {
-  let query = {...formInline}
+  let query = { ...formInline }
   query.companyId = query.companyId[query.companyId.length - 1]
   api.agreementApi.agreementList({ pages: pageInfo.value.pageNum, size: pageInfo.value.pageSize, ...query }).then((res: any) => {
     if (res.code == '200') {
@@ -201,8 +222,10 @@ function findpage() {
   });
 }
 const columns = [
-  { prop: "agreementCode", label: "协议编号", width: '200', component: "RouterLink",
-  formatter: (row: any) => ({ name: 'ExternalAgreementDetails', query: { id: row.id} }) },
+  {
+    prop: "agreementCode", label: "协议编号", width: '200', component: "RouterLink",
+    formatter: (row: any) => ({ name: 'ExternalAgreementDetails', query: { id: row.id } })
+  },
   {
     prop: "agreementTitle", label: "协议名称", width: '200',
   },
@@ -233,7 +256,7 @@ const columns = [
     prop: "validStatus", label: "生效状态", width: '120', component: "Tag",
     formatter: (row: any) => {
       let name = getDict('valid_status').find(val => val.value == row.validStatus).label
-      if (name=='生效中') {
+      if (name == '生效中') {
         return { type: 'primary', text: name };
       } else {
         return { type: 'danger', text: name };
@@ -322,12 +345,12 @@ function getUncheckedIds(data: any[]): string[] {
 
 //编辑跳转
 const agreementEdit = (id) => {
-    router.push({
-        name: 'ExternalagreementAdd',
-        query: {
-            id: id
-        }
-    })
+  router.push({
+    name: 'ExternalagreementAdd',
+    query: {
+      id: id
+    }
+  })
 }
 
 function agreemenUpdate(item: any) {
@@ -380,13 +403,15 @@ const enable = (value: string) => {
   sysUpAndDown('0', [value]);
 }
 //复制协议
-const agreemenCopy = (id:string) => {
-    router.push({
-        name: 'AgreementCopy',
-        query: {
-            id: id
-        }
-    })
+const agreemenCopy = () => {
+  router.push({
+    name: 'AgreementCopy',
+    query: {
+      id: agreementCopyId.value,
+      type: 'outToInCopy'
+    }
+  })
+  copyDialog.value = false
 }
 const del = (value: string) => {
   ElMessageBox.confirm(
@@ -509,6 +534,19 @@ const getDeptTree = () => {
     }
   });
 }
+
+const copyDialog = ref(false)
+const agreementCopyId = ref('')
+const agreementList = ref([])
+const selAgreement = () => {
+  agreementCopyId.value = '';
+  copyDialog.value = true;
+  api.agreementApi.agreementList({ size: 1000,isExternal:"0" }).then((res: any) => {
+    if (res.code == '200') {
+      agreementList.value = res.data.records;
+    }
+  });
+}
 </script>
 
 <style lang="scss" scoped>

+ 91 - 3
src/views/quoteConfig/agreement/agreementCopy.vue

@@ -23,7 +23,7 @@
           <span class="m-right-20" style="line-height: 14px;">有效状态</span>
           <el-dropdown trigger="click" @command="validStateCommand">
             <el-button link style="font-size: 14px;color: #333;"> {{ valid_statusName ? valid_statusName : '全部'
-            }}<el-icon>
+              }}<el-icon>
                 <arrow-down />
               </el-icon>
             </el-button>
@@ -45,7 +45,7 @@
             <template #dropdown>
               <el-dropdown-menu>
                 <el-dropdown-item :command="item.label" v-for="(item, index) in is_enable" :key="index">{{ item.label
-                }}</el-dropdown-item>
+                  }}</el-dropdown-item>
               </el-dropdown-menu>
             </template>
           </el-dropdown>
@@ -63,11 +63,34 @@
       <ElButton @click="router.back()">
         取消
       </ElButton>
-      <ElButton type="primary" @click="agreementcopy">
+      <ElButton type="primary" @click="openCopy()">
         复制协议
       </ElButton>
     </FixedActionBar>
   </div>
+  <el-dialog :close-on-click-modal="false" v-model="copyDialog" title="对接人" width="600">
+    <el-form label-width="100px" ref="ruleFormRef" :model="docking">
+      <el-form-item label="对接人" prop="dockingPerson" :rules="[{
+          required: true,
+          message: '请输入对接人',
+          trigger: 'change',
+        }]
+        ">
+        <el-input v-model="docking.dockingPerson" placeholder="请输入对接人" />
+      </el-form-item>
+      <el-form-item label="对接人电话" prop="dockingPhone" :rules="[{
+          required: true,
+          message: '请输入对接人电话',
+          trigger: 'change',
+        }]
+        ">
+        <el-input v-model="docking.dockingPhone" placeholder="请输入对接人电话" />
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button type="primary" @click="submitCopy()">确定</el-button>
+    </template>
+  </el-dialog>
 </template>
 
 <!-- 行为区域 -->
@@ -187,6 +210,71 @@ function findpage() {
     }
   });
 }
+
+const copyDialog = ref(false)
+const docking = ref({
+  dockingPerson: '',
+  dockingPhone: '',
+})
+const ruleFormRef = ref()
+const openCopy = () => {
+  if (route.query.type === 'outToInCopy') {
+    docking.value = {
+      dockingPerson: '',
+      dockingPhone: '',
+    }
+    copyDialog.value = true
+    return
+  }
+  agreementcopy()
+}
+//费用复制
+const submitCopy = async () => {
+  await ruleFormRef.value.validate((valid, fields) => {
+    if (valid) {
+      const params = {
+        id: id.value, costIds: sysUpAndDownList.value,
+        ...docking.value
+      }
+      if (sysUpAndDownList.value.length == 0) {
+        ElMessageBox.confirm(
+          '没有选中要复制的协议费用,请确认是否继续复制',
+          '提示',
+          {
+            confirmButtonText: '确定复制',
+            type: 'info',
+            center: true,
+            confirmButtonClass: 'el-button--primary',
+          }
+        )
+          .then(() => {
+            api.agreementApi.agreementCopyOutToIn(params).then((res: any) => {
+              if (res.code == '200') {
+                ElMessage({
+                  type: 'success',
+                  message: res.msg,
+                  plain: true,
+                })
+                router.push({ name: 'ExternalagreementIndex' })
+              }
+            });
+          })
+      } else {
+        api.agreementApi.agreementCopyOutToIn(params).then((res: any) => {
+          if (res.code == '200') {
+            ElMessage({
+              type: 'success',
+              message: res.msg,
+              plain: true,
+            })
+            router.push({ name: 'ExternalagreementIndex' })
+          }
+        });
+      }
+    }
+  })
+
+}
 //费用复制
 const agreementcopy = () => {
   if (sysUpAndDownList.value.length == 0) {