Эх сурвалжийг харах

费用跨协议复制功能

祁鹏飞 3 сар өмнө
parent
commit
b3c3aee923

+ 70 - 8
src/views/quoteConfig/agreement/agreementDetails.vue

@@ -154,7 +154,7 @@
                         <el-button type="primary" link
                           @click="costitemEdit(scope.operationData.id, item, index, costindex)"> 编辑
                         </el-button>
-                        <el-button type="primary" link @click="costitemCopy(scope.operationData.id)"> 复制
+                        <el-button type="primary" link @click="handleCopy(scope.operationData)"> 复制
                         </el-button>
                         <el-button type="primary" link @click="costitemDel(scope.operationData.id)"> 删除
                         </el-button>
@@ -221,6 +221,26 @@
     <ruleFeeDialogEdit :ruleFeeVisible="ruleFeeEditVisible" :headerTitle="ruleFeeHeaderTitle"
       :agreementInfo="agreementInfo" :RulesInfo="RulesInfo" :costitemEditInfo="costitemEditInfo" @save="ruleFeeEditSave"
       @cancel="ruleFeeEditVisible = false" />
+
+    <el-dialog v-model="copyDialog" title="复制" width="800">
+      <el-form inline>
+        <el-form-item label="协议">
+          <el-select style="width:300px" v-model="agreementId" placeholder="请选择协议" @change="changeAgreement">
+            <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-item label="规则">
+          <el-select style="width:300px" :disabled="!agreementId" v-model="coverRuleId" placeholder="请选择规则">
+            <el-option v-for="(item, index) in rulesList" :key="item.id" :value="item.id"
+              :label="'承保规则一' + (index + 1)"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button size="small" type="primary" @click="costitemCopy">确定</el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
 <!-- 行为区域 -->
@@ -521,10 +541,10 @@ const agreementRulesList = () => {
         val.ruleFeeShow = false;
         return val;
       })
-      RulesList.value = res.data.map(v=>{
-        const index=RulesList.value.findIndex(k=>k.id===v.id)
-        const ruleFeeShow=RulesList.value[index]?.ruleFeeShow
-        const ruleFeeActive=RulesList.value[index]?.ruleFeeActive
+      RulesList.value = res.data.map(v => {
+        const index = RulesList.value.findIndex(k => k.id === v.id)
+        const ruleFeeShow = RulesList.value[index]?.ruleFeeShow
+        const ruleFeeActive = RulesList.value[index]?.ruleFeeActive
         return {
           ...v,
           ruleFeeShow,
@@ -761,8 +781,44 @@ const costitemDel = (id: string) => {
       });
     })
 }
-//删除费用
-const costitemCopy = (costId: string) => {
+
+const copyDialog = ref(false)
+const costId = ref('')
+const agreementId = ref('')
+const coverRuleId = ref('')
+const agreementList = ref([])
+const rulesList = ref([])
+/** 复制操作处理:记录当前行的ID并打开复制确认对话框 */
+const handleCopy = (row) => {
+  agreementId.value = ''
+  coverRuleId.value = ''
+  costId.value = row.id
+  api.agreementApi.agreementList({ size: 10000, }).then((res: any) => {
+    if (res.code == '200') {
+      agreementList.value = res.data.records;
+    }
+  });
+  copyDialog.value = true
+}
+
+const changeAgreement = () => {
+  api.agreementApi.agreementRulesList(agreementId.value).then((res: any) => {
+    if (res.code == '200') {
+      rulesList.value = res.data
+    }
+  });
+}
+
+//复制费用
+const costitemCopy = () => {
+  if (!agreementId.value) {
+    ElMessage.warning('请选择协议')
+    return
+  }
+  if (!coverRuleId.value) {
+    ElMessage.warning('请选择规则')
+    return
+  }
   ElMessageBox.confirm(
     '确定要复制该费用,请确认是否复制?',
     '复制费用',
@@ -773,7 +829,12 @@ const costitemCopy = (costId: string) => {
       confirmButtonClass: 'el-button--primary',
     }
   ).then(() => {
-    api.agreementApi.AgreementFeecopy({ costId }).then((res: any) => {
+    const params = {
+      costId: costId.value,
+      agreementId: agreementId.value,
+      coverRuleId: coverRuleId.value,
+    }
+    api.agreementApi.AgreementFeecopy(params).then((res: any) => {
       if (res.code == '200') {
         agreementRulesList();
         ElMessage({
@@ -781,6 +842,7 @@ const costitemCopy = (costId: string) => {
           message: res.msg,
           plain: true,
         })
+        copyDialog.value = false
       }
     });
   })