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

Merge branch 'dev' of http://39.101.143.165:8090/dong_k/tenant-Platform into dev

@dongkboy 4 недель назад
Родитель
Сommit
fb1dff7708

+ 23 - 24
src/views/externalAgreement/agreement/agreementDetails.vue

@@ -28,7 +28,7 @@
             <el-tag type="primary" style="margin-right: 20px;">{{
               getDict('is_enable').find(val => val.value == agreementInfo.isEnable)?.label}}</el-tag>
             <el-tag type="success">{{getDict('valid_status').find(val => val.value == agreementInfo.validStatus)?.label
-              }}</el-tag>
+            }}</el-tag>
           </div>
         </div>
         <el-descriptions :column="3" style="margin-top: 10px;">
@@ -50,13 +50,13 @@
         <el-tab-pane label="协议信息" name="agreementInfo">
           <el-descriptions title="基本信息" class="m-top-20" :column="3">
             <el-descriptions-item label="协议名称:">{{ agreementInfo.agreementTitle
-            }}</el-descriptions-item>
+              }}</el-descriptions-item>
             <el-descriptions-item label="协议简称:">{{ agreementInfo.agreementAbbreviation
-            }}</el-descriptions-item>
+              }}</el-descriptions-item>
             <el-descriptions-item label="协议生效时间:">{{ agreementInfo.startDate }}</el-descriptions-item>
             <el-descriptions-item label="协议失效时间:">{{ agreementInfo.endDate }}</el-descriptions-item>
             <el-descriptions-item label="是否含增值税结算:">
-              {{ getDict('with_tax').find(a => a.value == agreementInfo.withTax)?.label }}
+              {{getDict('with_tax').find(a => a.value == agreementInfo.withTax)?.label}}
             </el-descriptions-item>
             <el-descriptions-item label="结算周期:">T{{ agreementInfo.moneyTime }} </el-descriptions-item>
             <el-descriptions-item label="协议描述:">{{ agreementInfo.agreementName }}</el-descriptions-item>
@@ -64,7 +64,8 @@
           <el-descriptions title="其他信息" class="m-top-20" :column="3">
             <el-descriptions-item label="协议归属:">{{ agreementInfo.deptName }} </el-descriptions-item>
             <el-descriptions-item label="保险公司:"> {{ agreementInfo.companyId }}</el-descriptions-item>
-            <el-descriptions-item label="协议类型:">{{ getDict('agreement_type').find(a => a.value == agreementInfo.agreementType)?.label }} </el-descriptions-item>
+            <el-descriptions-item label="协议类型:">{{getDict('agreement_type').find(a => a.value ==
+              agreementInfo.agreementType)?.label }} </el-descriptions-item>
             <el-descriptions-item label="管理人:"> {{ agreementInfo.custodianId }}</el-descriptions-item>
           </el-descriptions>
         </el-tab-pane>
@@ -85,7 +86,7 @@
                   <div class="flex a-c">
                     <img src="../../../assets/images/fee.png" alt="">
                     <span class="strong m-left-10">{{ item.contactPerson
-                    }}</span>
+                      }}</span>
                     <span class="strong m-left-10">{{ item.contactMobile }}</span>
                   </div>
                   <div class="flex">
@@ -121,15 +122,15 @@
       </el-tabs>
     </PageMain>
     <!-- 协议授权弹窗 -->
-    <auth-Drawer :Drawer="agreementAuthDrawer" @cancel="agreementAuthDrawer = false" @save="DrawerSave"
-      @query="Drawerquery" :deptlist="deptauthList" :checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
+    <auth-Drawer ref="authDrawerRef" @save="DrawerSave" @query="Drawerquery" :deptlist="deptauthList"
+      :checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
     <!-- 规则费用抽屉组件 -->
     <contactPersonFeeDialog v-show="addcontactPersonShow" :ruleFeeVisible="addcontactPersonShow"
-      :title='contactPersontitle' :agreementInfo="agreementInfo"  @save="contactPersonSave"
-      :contactPersonEditInfo="contactPersonEditInfo" addMethod="details" @cancel="addcontactPersonShow = false"  />
+      :title='contactPersontitle' :agreementInfo="agreementInfo" @save="contactPersonSave"
+      :contactPersonEditInfo="contactPersonEditInfo" addMethod="details" @cancel="addcontactPersonShow = false" />
     <!-- 规则费用编辑组件 -->
     <contactPersonFeeDialogEdit :ruleFeeVisible="ruleFeeEditVisible" :headerTitle="ruleFeeHeaderTitle"
-      :agreementInfo="agreementInfo"  :costitemEditInfo="costitemEditInfo" @save="ruleFeeEditSave"
+      :agreementInfo="agreementInfo" :costitemEditInfo="costitemEditInfo" @save="ruleFeeEditSave"
       @cancel="ruleFeeEditVisible = false" />
   </div>
 </template>
@@ -187,7 +188,7 @@ const agreementEdit = () => {
 //协议授权
 //检索事件
 const imageUrl = ref('');//协议文件
-const agreementAuthDrawer = ref(false)//授权弹窗
+const authDrawerRef = ref(null)//授权弹窗
 const deptauthList = ref([]);//授权机构列表
 const checkedKeys = ref<string[]>([])//授权机构回显数据
 const checkedIds = ref<string[]>([])//授权机构回显id
@@ -203,7 +204,6 @@ const DrawerSave = (list: any) => {
         message: res.msg,
         plain: true,
       })
-      agreementAuthDrawer.value = false;
     } else {
     }
   });
@@ -212,12 +212,11 @@ const DrawerSave = (list: any) => {
 const agreementAuth = (deptName: any) => {
   let name = typeof deptName === 'string' ? deptName : '';
   api.agreementApi.agreementdeptTree(id.value, name).then((res: any) => {
-    if (res.code == '200') {
-      agreementAuthDrawer.value = true;
+    if (res.code == 200) {
+      authDrawerRef.value.DrawerOpen()
       deptauthList.value = res.data;
       checkedKeys.value = getUncheckedIds(res.data);
       checkedIds.value = getUncheckedIds(res.data);
-    } else {
     }
   });
 }
@@ -336,7 +335,7 @@ const costExternalList = () => {
   });
 }
 //修改对接人所有费用
-interface contactPersonEditInfo{
+interface contactPersonEditInfo {
   ptlAgreementId: string,
   contactPerson: string,
   contactMobile: string,
@@ -353,11 +352,11 @@ const contactPersonEdit = (item: any) => {
     if (res.code == '200') {
       const dict = getDict('insurance_type');//获取险种字典
       const difference = getObjectArrayDifference(dict, res.data, "label", 'productName');//获取编辑数据和字典数组差集
-      const differenceArray:any = dataCompletion(difference);//差集对象赋值
+      const differenceArray: any = dataCompletion(difference);//差集对象赋值
       contactPersonEditInfo.ptlAgreementId = id.value;
       contactPersonEditInfo.contactPerson = item.contactPerson;
       contactPersonEditInfo.contactMobile = item.contactMobile;
-      contactPersonEditInfo.ptlAgreementCostExternalAddList =[...res.data,...differenceArray];
+      contactPersonEditInfo.ptlAgreementCostExternalAddList = [...res.data, ...differenceArray];
       contactPersontitle.value = '编辑';
       addcontactPersonShow.value = true;
     } else {
@@ -481,8 +480,8 @@ const columns = [
     prop: "costExternalTypeAdds", label: "交强险费用", width: '300', formatter: (row: any) => {
       let info = row.costExternalTypeAdds.find((val: any) => val.costType == '交强险');
       if (info) {
-        return `入口:${info.inlet?.toFixed(2) ?? '--' }% 出口:${info.export?.toFixed(2) ?? '--'}%\n加投:${info.addThrow?.toFixed(2) ?? '--'}% 留点:${info.keepPointRatio?.toFixed(2) ?? '--'}%`
-      }else {
+        return `入口:${info.inlet?.toFixed(2) ?? '--'}% 出口:${info.export?.toFixed(2) ?? '--'}%\n加投:${info.addThrow?.toFixed(2) ?? '--'}% 留点:${info.keepPointRatio?.toFixed(2) ?? '--'}%`
+      } else {
         return '-'
       }
     }
@@ -492,7 +491,7 @@ const columns = [
       let info = row.costExternalTypeAdds.find((val: any) => val.costType == '商业险');
       if (info) {
         return `入口:${info.inlet?.toFixed(2) ?? '--'}% 出口:${info.export?.toFixed(2) ?? '--'}%\n加投:${info.addThrow?.toFixed(2) ?? '--'}% 留点:${info.keepPointRatio?.toFixed(2) ?? '--'}%`
-      }else {
+      } else {
         return '-'
       }
     }
@@ -502,7 +501,7 @@ const columns = [
       let info = row.costExternalTypeAdds.find((val: any) => val.costType == '驾意险');
       if (info) {
         return `入口:${info.inlet?.toFixed(2) ?? '--'}% 出口:${info.export?.toFixed(2) ?? '--'}%\n加投:${info.addThrow?.toFixed(2) ?? '--'}% 留点:${info.keepPointRatio?.toFixed(2) ?? '--'}%`
-      }else {
+      } else {
         return '-'
       }
     }
@@ -568,7 +567,7 @@ const ruleFeeEditSave = (data: object) => {
         message: res.msg,
         plain: true,
       })
-      ruleFeeEditVisible.value=false;
+      ruleFeeEditVisible.value = false;
       costExternalList();
     } else {
     }

+ 24 - 25
src/views/externalAgreement/agreement/components/agreementAuth.vue

@@ -1,7 +1,7 @@
 <!-- 模板区域 -->
 <template>
   <div>
-    <el-drawer v-model="props.Drawer" :direction="direction" @open="DrawerOpen" >
+    <el-drawer v-model="drawer" :direction="direction">
       <template #header>
         <h4>参与机构</h4>
       </template>
@@ -34,12 +34,11 @@ import { defineProps, defineEmits } from "vue";
 import { DrawerProps } from 'element-plus';
 import { Search } from '@element-plus/icons-vue'
 const props = defineProps<{
-  Drawer: boolean,
   deptlist: string[]
   checkedKeys: string[]
   checkedIds: string[]
 }>();
-const emits = defineEmits(["cancel", 'save', 'DrawerOpen', 'query']);
+const emits = defineEmits(["cancel", 'save', 'query']);
 const defaultProps = {
   children: 'children',
   label: 'name',
@@ -51,41 +50,37 @@ const direction = ref<DrawerProps['direction']>('rtl')
 const deptName = ref('');
 
 
+const drawer = ref(false)
 const checkedALL = ref(false)
 // 递归获取所有节点的key
 const getAllKeys = (data) => {
-    let keys = [];
-    data.forEach(node => {
-        keys.push(node.id);
-        if (node.children && node.children.length > 0) {
-            keys = keys.concat(getAllKeys(node.children));
-        }
-    });
-    return keys;
+  let keys = [];
+  data.forEach(node => {
+    keys.push(node.id);
+    if (node.children && node.children.length > 0) {
+      keys = keys.concat(getAllKeys(node.children));
+    }
+  });
+  return keys;
 };
 const selectChange = (e) => {
-    if(e) {
-        const allKeys = getAllKeys(props.deptlist);
-        treeRef.value.setCheckedKeys(allKeys);
-    } else {
-        treeRef.value.setCheckedKeys([]);
-    }
+  if (e) {
+    const allKeys = getAllKeys(props.deptlist);
+    treeRef.value.setCheckedKeys(allKeys);
+  } else {
+    treeRef.value.setCheckedKeys([]);
+  }
 }
 const ids = ref()//id集合
 const DrawerOpen = () => {
-
+  drawer.value = true
+  ids.value = props.checkedIds;
 }
-watch(props, () => {
-  if (props.Drawer) {
-    ids.value = props.checkedIds;
-  }
-
-})
 const cancel = () => {
   emits('cancel')
 }
 const save = () => {
-    emits('save', ids.value)
+  emits('save', ids.value)
 }
 const query = () => {
   emits('query', deptName.value)
@@ -102,4 +97,8 @@ const handleCheck = (
 ) => {
   ids.value = checkedInfo.checkedKeys;
 };
+// 使用 defineExpose 暴露方法
+defineExpose({
+  DrawerOpen,
+});
 </script>

+ 11 - 13
src/views/quoteConfig/agreement/agreementDetails.vue

@@ -32,7 +32,7 @@
                   getDict('is_enable').find(val => val.value == agreementInfo.isEnable)?.label}}</el-tag>
                 <el-tag type="success">{{getDict('valid_status').find(val => val.value ==
                   agreementInfo.validStatus)?.label
-                  }}</el-tag>
+                }}</el-tag>
               </div>
             </div>
             <el-descriptions :column="3" style="margin-top: 10px;">
@@ -50,9 +50,9 @@
           </div>
           <el-descriptions title="基本信息" class="m-top-20" :column="3">
             <el-descriptions-item label="协议名称:">{{ agreementInfo.agreementTitle
-              }}</el-descriptions-item>
+            }}</el-descriptions-item>
             <el-descriptions-item label="协议简称:">{{ agreementInfo.agreementAbbreviation
-              }}</el-descriptions-item>
+            }}</el-descriptions-item>
             <el-descriptions-item label="协议生效时间:">{{ agreementInfo.startDate }}</el-descriptions-item>
             <el-descriptions-item label="协议失效时间:">{{ agreementInfo.endDate }}</el-descriptions-item>
             <el-descriptions-item label="是否含增值税结算:">
@@ -116,7 +116,7 @@
                   <div class="flex a-c">
                     <img src="../../../assets/images/fee.png" alt="">
                     <span style="margin-right: 30px;font-size: 16px;" class="strong m-left-10">承保规则一{{ index + 1
-                    }}</span>
+                      }}</span>
                   </div>
                   <div class="flex">
                     <el-button link type="primary" :icon="CopyDocument" @click="handleCopy(item, {})">复制费用</el-button>
@@ -256,9 +256,8 @@
       </template>
     </el-drawer>
     <!-- 协议授权弹窗 -->
-    <auth-Drawer :Drawer="agreementAuthDrawer" @cancel="agreementAuthDrawer = false" @save="DrawerSave"
-      @query="Drawerquery" @echoValue="echoValue" :deptlist="deptauthList" :checkedKeys="checkedKeys"
-      :checkedIds="checkedIds"></auth-Drawer>
+    <auth-Drawer ref="authDrawerRef" @save="DrawerSave" @query="Drawerquery" @echoValue="echoValue"
+      :deptlist="deptauthList" :checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
     <!-- 规则条件弹窗 -->
     <RuleCondition ref="RuleConditionRefs" :ruleConditionVisible="ruleConditionVisible"
       @cancel="ruleConditionVisible = false" @save="ruleConditionSave" :attrIdList="attrIdList" />
@@ -432,7 +431,7 @@ const agreementEdit = () => {
 //协议授权
 //检索事件
 const imageUrl = ref('');//协议文件
-const agreementAuthDrawer = ref(false)//授权弹窗
+const authDrawerRef = ref(null)//授权弹窗
 const deptauthList = ref([]);//授权机构列表
 const checkedKeys = ref<string[]>([])//授权机构回显数据
 const checkedIds = ref<string[]>([])//授权机构回显id
@@ -452,21 +451,20 @@ const DrawerSave = (list: any) => {
         message: res.msg,
         plain: true,
       })
-      agreementAuthDrawer.value = false;
     } else {
     }
   });
 }
 //协议授权机构获取
 const agreementAuth = (deptName: any) => {
+  console.log("🚀 ~ agreementAuth ~ deptName:", deptName)
   let name = typeof deptName === 'string' ? deptName : '';
   api.agreementApi.agreementdeptTree(id.value, name).then((res: any) => {
-    if (res.code == '200') {
-      agreementAuthDrawer.value = true;
+    if (res.code == 200) {
+      authDrawerRef.value.DrawerOpen()
       deptauthList.value = res.data;
       checkedKeys.value = getUncheckedIds(res.data);
       checkedIds.value = getUncheckedIds(res.data);
-    } else {
     }
   });
 }
@@ -1518,7 +1516,7 @@ const submitUpdate1 = () => {
     height: 18px;
     margin-right: 20px;
     content: "";
-    margin-top: 6px;
+    margin-top: 2px;
     background-color: #0083ff;
   }
 }

+ 17 - 13
src/views/quoteConfig/agreement/components/agreementAuth.vue

@@ -1,7 +1,7 @@
 <!-- 模板区域 -->
 <template>
   <div>
-    <el-drawer v-model="props.Drawer" :direction="direction" @open="DrawerOpen" :close-on-click-modal="true" @close="cancel" >
+    <el-drawer v-model="drawer" :direction="direction">
       <template #header>
         <h4>参与机构</h4>
       </template>
@@ -31,15 +31,14 @@
 <!-- 行为区域 -->
 <script lang="ts" setup>
 import { defineProps, defineEmits } from "vue";
-import { DrawerProps,ElTree } from 'element-plus';
+import { DrawerProps, ElTree } from 'element-plus';
 import { Search } from '@element-plus/icons-vue'
 const props = defineProps<{
-  Drawer: boolean,
   deptlist: string[]
   checkedKeys: string[]
   checkedIds: string[]
 }>();
-const emits = defineEmits(["cancel", 'save', 'DrawerOpen', 'query','echoValue']);
+const emits = defineEmits(["cancel", 'save', 'query', 'echoValue']);
 const defaultProps = {
   children: 'children',
   label: 'name',
@@ -49,22 +48,22 @@ const deptName = ref('');
 const treeRef = ref<InstanceType<typeof ElTree>>();
 const checkedALL = ref(false)
 const ids = ref()//id集合
-const DrawerOpen = () => {
 
+const drawer = ref(false)
+const DrawerOpen = () => {
+  drawer.value = true
+  ids.value = props.checkedIds;
 }
 watch(props, () => {
-  if (props.Drawer) {
-    ids.value = props.checkedIds;
-  }
-  if(props.checkedKeys){
-    ids.value=props.checkedKeys;
+  if (props.checkedKeys) {
+    ids.value = props.checkedKeys;
   }
 })
 const cancel = () => {
   emits('cancel')
 }
 const save = () => {
-    emits('save', ids.value)
+  emits('save', ids.value)
 }
 const query = () => {
   emits('query', deptName.value)
@@ -86,11 +85,11 @@ const TreeselectAll = (value: string | number | boolean) => {
   ids.value = [];//全选操作是清空历史数据
   const allKeys = getAllKeys(props.deptlist, 'id');//递归id集合
   if (value) {
-    emits('echoValue',allKeys)
+    emits('echoValue', allKeys)
   } else {
     treeRef.value?.setCheckedKeys([]);
     ids.value = [];
-    emits('echoValue',[])
+    emits('echoValue', [])
 
   }
 }
@@ -105,4 +104,9 @@ const getAllKeys = (data: any[], type: string) => {
   });
   return keys;
 }
+
+// 使用 defineExpose 暴露方法
+defineExpose({
+  DrawerOpen,
+});
 </script>