|
|
@@ -109,7 +109,7 @@
|
|
|
</el-icon>
|
|
|
</template>
|
|
|
</el-button>
|
|
|
- <el-button link type="primary" :icon="CopyDocument" @click="ruleCopy()">复制规则</el-button>
|
|
|
+ <el-button link type="primary" :icon="CopyDocument" @click="ruleCopy(false)">复制规则</el-button>
|
|
|
<div class="flex f-c RuleContainer" v-if="RulesList">
|
|
|
<div class="list-item" v-for="(item, index) in RulesList" :key="index">
|
|
|
<div class="header-title flex f-c ">
|
|
|
@@ -228,7 +228,15 @@
|
|
|
</div>
|
|
|
<div class="bg-[#FAFAFA] p-20px m-t-20px" v-for="rules in rulesAttrListInfo.rulesGroups" :key="rules.timeId">
|
|
|
<!-- 规则选择容器 -->
|
|
|
- <div class="flex items-center justify-end">
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
+ <el-button type="primary" link @click="ruleCopy(true, rules)">
|
|
|
+ 批量复制到规则
|
|
|
+ <template #icon>
|
|
|
+ <el-icon>
|
|
|
+ <Copy />
|
|
|
+ </el-icon>
|
|
|
+ </template>
|
|
|
+ </el-button>
|
|
|
<el-button type="primary" link @click="addRules('and', rules)">
|
|
|
并且条件
|
|
|
<template #icon>
|
|
|
@@ -286,22 +294,27 @@
|
|
|
</el-dialog>
|
|
|
<el-dialog :close-on-click-modal="false" v-model="copyDialog1" title="复制" width="600">
|
|
|
<el-form inline>
|
|
|
- <el-form-item label="协议">
|
|
|
- <el-select style="width:200px" v-model="agreementId" placeholder="请选择协议" @change="changeAgreement1"
|
|
|
- filterable>
|
|
|
- <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
|
|
|
- :label="item.agreementAbbreviation"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="规则">
|
|
|
- <el-select style="width:200px" :disabled="!agreementId" v-model="ruleId" placeholder="请选择规则">
|
|
|
- <el-option v-for="(item, index) in rulesList" :key="item.id" :value="item.id"
|
|
|
- :label="item.inputDescription"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ <div class="" v-for="item in selectList" :key="item.time">
|
|
|
+ <el-form-item label="协议">
|
|
|
+ <el-select style="width:200px" v-model="item.agreementId" placeholder="请选择协议"
|
|
|
+ @change="changeAgreement1(item)" filterable>
|
|
|
+ <el-option v-for="agreement in agreementList" :key="agreement.id" :value="agreement.id"
|
|
|
+ :label="agreement.agreementAbbreviation"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="规则">
|
|
|
+ <el-select style="width:200px" :disabled="!item.agreementId" v-model="item.ruleId" placeholder="请选择规则">
|
|
|
+ <el-option v-for="(rule, index) in item.rulesList" :key="rule.id" :value="rule.id"
|
|
|
+ :label="rule.inputDescription"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-button v-if="copyMultiple" type="primary" link
|
|
|
+ @click="selectList.push({ time: Date.now() })">新增一行</el-button>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
- <autoLoadingButton type="primary" :on-click="submitCopy">确定</autoLoadingButton>
|
|
|
+ <autoLoadingButton v-if="copyMultiple" type="primary" :on-click="rulesAttrBatchCopy">确定</autoLoadingButton>
|
|
|
+ <autoLoadingButton v-if="!copyMultiple" type="primary" :on-click="submitCopy">确定</autoLoadingButton>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
<el-dialog :close-on-click-modal="false" v-model="copyDialog2" title="批量设置有效期" width="500">
|
|
|
@@ -806,12 +819,21 @@ const ruleDel = (id: string) => {
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
-const ruleId = ref('')
|
|
|
const copyDialog1 = ref(false)
|
|
|
+const copyMultiple = ref(false)
|
|
|
+const selectList = ref([{}])
|
|
|
+const rulesSel = ref([])
|
|
|
|
|
|
-const ruleCopy = () => {
|
|
|
+const ruleCopy = (multiple: boolean, rules: any) => {
|
|
|
+ copyMultiple.value = multiple
|
|
|
+ rulesSel.value = rules
|
|
|
+ selectList.value = [{ time: Date.now() }]
|
|
|
agreementId.value = ''
|
|
|
- api.agreementApi.agreementList({ size: 10000, companyId: agreementInfo.value.companyId }).then((res: any) => {
|
|
|
+ const params = {
|
|
|
+ size: 10000,
|
|
|
+ companyId: multiple ? '' : agreementInfo.value.companyId
|
|
|
+ }
|
|
|
+ api.agreementApi.agreementList(params).then((res: any) => {
|
|
|
if (res.code == '200') {
|
|
|
agreementList.value = res.data.records;
|
|
|
}
|
|
|
@@ -820,15 +842,39 @@ const ruleCopy = () => {
|
|
|
}
|
|
|
//复制规则
|
|
|
const submitCopy = async () => {
|
|
|
- if (!agreementId.value) {
|
|
|
+ if (!selectList.value[0]?.agreementId) {
|
|
|
ElMessage.error('请选择协议')
|
|
|
return
|
|
|
}
|
|
|
- if (!ruleId.value) {
|
|
|
+ if (!selectList.value[0]?.ruleId) {
|
|
|
ElMessage.error('请选择承保规则')
|
|
|
return
|
|
|
}
|
|
|
- const res = await api.agreementApi.rulesCopy(agreementInfo.value.id, ruleId.value)
|
|
|
+ const res = await api.agreementApi.rulesCopy(agreementInfo.value.id, selectList.value[0]?.ruleId)
|
|
|
+ if (res.code == '200') {
|
|
|
+ agreementRulesList();
|
|
|
+ copyDialog1.value = false
|
|
|
+ ElMessage({
|
|
|
+ type: 'success',
|
|
|
+ message: '操作成功',
|
|
|
+ plain: true,
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+//复制规则
|
|
|
+const rulesAttrBatchCopy = async () => {
|
|
|
+ for (let i = 0; i < selectList.value.length; i++) {
|
|
|
+ const element = selectList.value[i];
|
|
|
+ if (!element?.agreementId) {
|
|
|
+ ElMessage.error('请选择协议')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const params = {
|
|
|
+ attrIds: rulesSel.value.rulesAttrList.map(v => v.id),
|
|
|
+ targets: selectList.value
|
|
|
+ }
|
|
|
+ const res = await api.agreementApi.rulesAttrBatchCopy(params)
|
|
|
if (res.code == '200') {
|
|
|
agreementRulesList();
|
|
|
copyDialog1.value = false
|
|
|
@@ -1203,10 +1249,10 @@ const changeAgreement = () => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-const changeAgreement1 = () => {
|
|
|
- api.agreementApi.agreementRulesList(agreementId.value).then((res: any) => {
|
|
|
+const changeAgreement1 = (item) => {
|
|
|
+ api.agreementApi.agreementRulesList(item.agreementId).then((res: any) => {
|
|
|
if (res.code == '200') {
|
|
|
- rulesList.value = res.data
|
|
|
+ item.rulesList = res.data
|
|
|
}
|
|
|
});
|
|
|
}
|