|
@@ -28,7 +28,7 @@
|
|
|
<el-tag type="primary" style="margin-right: 20px;">{{
|
|
<el-tag type="primary" style="margin-right: 20px;">{{
|
|
|
getDict('is_enable').find(val => val.value == agreementInfo.isEnable)?.label}}</el-tag>
|
|
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 type="success">{{getDict('valid_status').find(val => val.value == agreementInfo.validStatus)?.label
|
|
|
- }}</el-tag>
|
|
|
|
|
|
|
+ }}</el-tag>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<el-descriptions :column="3" style="margin-top: 10px;">
|
|
<el-descriptions :column="3" style="margin-top: 10px;">
|
|
@@ -50,9 +50,9 @@
|
|
|
<el-tab-pane label="协议信息" name="agreementInfo">
|
|
<el-tab-pane label="协议信息" name="agreementInfo">
|
|
|
<el-descriptions title="基本信息" class="m-top-20" :column="3">
|
|
<el-descriptions title="基本信息" class="m-top-20" :column="3">
|
|
|
<el-descriptions-item label="协议名称:">{{ agreementInfo.agreementTitle
|
|
<el-descriptions-item label="协议名称:">{{ agreementInfo.agreementTitle
|
|
|
- }}</el-descriptions-item>
|
|
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="协议简称:">{{ agreementInfo.agreementAbbreviation
|
|
<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.startDate }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="协议失效时间:">{{ agreementInfo.endDate }}</el-descriptions-item>
|
|
<el-descriptions-item label="协议失效时间:">{{ agreementInfo.endDate }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="是否含增值税结算:">
|
|
<el-descriptions-item label="是否含增值税结算:">
|
|
@@ -65,7 +65,7 @@
|
|
|
<el-descriptions-item label="协议归属:">{{ agreementInfo.deptName }} </el-descriptions-item>
|
|
<el-descriptions-item label="协议归属:">{{ agreementInfo.deptName }} </el-descriptions-item>
|
|
|
<el-descriptions-item label="保险公司:"> {{ agreementInfo.companyId }}</el-descriptions-item>
|
|
<el-descriptions-item label="保险公司:"> {{ agreementInfo.companyId }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="协议类型:">{{getDict('agreement_type').find(a => a.value ==
|
|
<el-descriptions-item label="协议类型:">{{getDict('agreement_type').find(a => a.value ==
|
|
|
- agreementInfo.agreementType)?.label }} </el-descriptions-item>
|
|
|
|
|
|
|
+ agreementInfo.agreementType)?.label}} </el-descriptions-item>
|
|
|
<el-descriptions-item label="管理人:"> {{ agreementInfo.custodianId }}</el-descriptions-item>
|
|
<el-descriptions-item label="管理人:"> {{ agreementInfo.custodianId }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
@@ -86,10 +86,12 @@
|
|
|
<div class="flex a-c">
|
|
<div class="flex a-c">
|
|
|
<img src="../../../assets/images/fee.png" alt="">
|
|
<img src="../../../assets/images/fee.png" alt="">
|
|
|
<span class="strong m-left-10">{{ item.contactPerson
|
|
<span class="strong m-left-10">{{ item.contactPerson
|
|
|
- }}</span>
|
|
|
|
|
|
|
+ }}</span>
|
|
|
<span class="strong m-left-10">{{ item.contactMobile }}</span>
|
|
<span class="strong m-left-10">{{ item.contactMobile }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="flex">
|
|
<div class="flex">
|
|
|
|
|
+ <el-button link type="primary" :icon="CopyDocument" @click="handleCopy(item, {})">复制费用</el-button>
|
|
|
|
|
+
|
|
|
<!-- <el-button link type="primary" :icon="Delete"
|
|
<!-- <el-button link type="primary" :icon="Delete"
|
|
|
@click="contactPersonDel(item.contactMobile)">删除</el-button>
|
|
@click="contactPersonDel(item.contactMobile)">删除</el-button>
|
|
|
<el-button link type="primary" :icon="Edit" @click="contactPersonEdit(item)">编辑</el-button> -->
|
|
<el-button link type="primary" :icon="Edit" @click="contactPersonEdit(item)">编辑</el-button> -->
|
|
@@ -121,6 +123,19 @@
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
</PageMain>
|
|
</PageMain>
|
|
|
|
|
+ <el-dialog :close-on-click-modal="false" v-model="copyDialog" title="批量复制" fullscreen>
|
|
|
|
|
+ <div class="h-[calc(100vh-159px)]">
|
|
|
|
|
+ <SearchForm :fields="fields" isOffset :formInline="formInline" :onSearch="findpage" :onReset="resetForm" />
|
|
|
|
|
+ <ComplexTable :tableData="tableData" tableheight="calc(100vh - 340px)" :showOperation="false"
|
|
|
|
|
+ :columns="columns1" :columnwidth="200" :showSelect="true" :pageInfo="pageInfo" @getList="getList"
|
|
|
|
|
+ @selectionChange="selectionChange" >
|
|
|
|
|
+
|
|
|
|
|
+ </ComplexTable>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <el-button type="primary" @click="costitemCopy">确定</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
<!-- 协议授权弹窗 -->
|
|
<!-- 协议授权弹窗 -->
|
|
|
<auth-Drawer ref="authDrawerRef" @save="DrawerSave" @query="Drawerquery" :deptlist="deptauthList"
|
|
<auth-Drawer ref="authDrawerRef" @save="DrawerSave" @query="Drawerquery" :deptlist="deptauthList"
|
|
|
:checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
|
|
:checkedKeys="checkedKeys" :checkedIds="checkedIds"></auth-Drawer>
|
|
@@ -145,7 +160,7 @@ import { loadDicts, getDict } from '@/utils/composables/dictService';//字典组
|
|
|
import authDrawer from "./components/agreementAuth.vue";
|
|
import authDrawer from "./components/agreementAuth.vue";
|
|
|
import contactPersonFeeDialog from "./components/contactPersonFeeDialog.vue";
|
|
import contactPersonFeeDialog from "./components/contactPersonFeeDialog.vue";
|
|
|
import contactPersonFeeDialogEdit from "./components/contactPersonFeeDialogEdit.vue";
|
|
import contactPersonFeeDialogEdit from "./components/contactPersonFeeDialogEdit.vue";
|
|
|
-import { Delete, Edit } from '@element-plus/icons-vue'
|
|
|
|
|
|
|
+import { CopyDocument } from '@element-plus/icons-vue'
|
|
|
interface Agreement {
|
|
interface Agreement {
|
|
|
[key: string]: string | number; // 协议名称
|
|
[key: string]: string | number; // 协议名称
|
|
|
}
|
|
}
|
|
@@ -610,6 +625,214 @@ const itemDel = (id: string) => {
|
|
|
});
|
|
});
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const copyDialog = ref(false)
|
|
|
|
|
+const contactObj = ref({})
|
|
|
|
|
+/** 复制操作处理:记录当前行的ID并打开复制确认对话框 */
|
|
|
|
|
+const handleCopy = (item, costitem) => {
|
|
|
|
|
+ console.log("🚀 ~ handleCopy ~ item:", item)
|
|
|
|
|
+ formInline.ptlAgreementId = agreementInfo.value.id
|
|
|
|
|
+ contactObj.value = item
|
|
|
|
|
+ resetForm();
|
|
|
|
|
+ copyDialog.value = true
|
|
|
|
|
+}
|
|
|
|
|
+//表格字段数据
|
|
|
|
|
+const fields = ref([
|
|
|
|
|
+ { label: "所属协议", model: "agreement", type: "input", placeholder: "输入代码,名称,简称查找" },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "险种", model: "productId", type: "select", options: getDict('insurance_type'),
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "费用描述", model: "costDescribe", type: "input", placeholder: "输入费用规则关键字查找",
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "费用状态", model: "agreementStatus", type: "select", placeholder: "选择状态", options: getDict('is_enable'),
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "审核状态", model: "auditStatus", type: "select", placeholder: "选择状态", options: getDict('audit_status'),
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "有效状态", model: "validState", type: "select", placeholder: "请选择状态", options: getDict('valid_status'),
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "生效时间", model: "effectiveTime", type: "date", dateType: "datetimerange", startplaceholder: "开始时间", endplaceholder: "结束时间",
|
|
|
|
|
+ format: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss", timeFormat: "HH:mm:ss",
|
|
|
|
|
+ onChange: (value: any) => {
|
|
|
|
|
+ console.log(value)
|
|
|
|
|
+ formInline.effectiveTime = value;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: "失效时间", model: "failureTime", type: "date", dateType: "datetimerange", startplaceholder: "开始时间", endplaceholder: "结束时间",
|
|
|
|
|
+ format: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss", timeFormat: "HH:mm:ss",
|
|
|
|
|
+ onChange: (value: any) => {
|
|
|
|
|
+ formInline.failureTime = value;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+]);
|
|
|
|
|
+const columns1 = [
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "agreementAbbreviation", label: "协议信息", width: '300',
|
|
|
|
|
+ formatter: (row: any) => {
|
|
|
|
|
+ return `${row.agreementCode}\n${row.agreementAbbreviation}`
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ { prop: "productName", label: "险种", width: '120', },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "contactPerson", label: "对接人", width: '200', formatter: (row: any) => {
|
|
|
|
|
+ return `${row.contactPerson} ${row.contactMobile}`
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "isInquiry", label: "是否现询", width: '120', formatter: (row: any) => {
|
|
|
|
|
+ if (row.isInquiry == '0') {
|
|
|
|
|
+ return '是'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return "否"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "auditMethod", label: "审核方式", width: '120', formatter: (row: any) => {
|
|
|
|
|
+ if (row.auditMethod == '0') {
|
|
|
|
|
+ return '自动审核'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return "手动审核"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "isEnabled", label: "费用状态", width: '100', component: "Tag",
|
|
|
|
|
+ formatter: (row: any) => {
|
|
|
|
|
+ let name = getDict('is_enable').find(val => val.value == row.isEnabled).label
|
|
|
|
|
+ if (name) {
|
|
|
|
|
+ return { type: 'primary', text: name };
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "auditStatus", label: "审核状态", width: '120', component: "Tag",
|
|
|
|
|
+ formatter: (row: any) => {
|
|
|
|
|
+ let name = getDict('audit_status').find(val => val.value == row.auditStatus).label
|
|
|
|
|
+ if (name) {
|
|
|
|
|
+ return { type: 'warning', text: name };
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ { prop: "effectiveTime", label: "生效时间", width: '200' },
|
|
|
|
|
+ { prop: "failureTime", label: "失效时间", width: '200' },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: "costDescribe", label: "费用描述", width: '500',
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ 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)}%`
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return '-'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ 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)}%`
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return '-'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ 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)}%`
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return '-'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+];
|
|
|
|
|
+
|
|
|
|
|
+const costIds = ref<string[]>([])//选中id
|
|
|
|
|
+//多选事件
|
|
|
|
|
+const selectionChange = (val: any) => {
|
|
|
|
|
+ console.log("🚀 ~ selectionChange ~ val:", val)
|
|
|
|
|
+ costIds.value = val;
|
|
|
|
|
+}
|
|
|
|
|
+const pageInfo = ref({
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ pageSize: 20,
|
|
|
|
|
+ sizes: [10, 20, 30, 40, 50],
|
|
|
|
|
+ total: 100,
|
|
|
|
|
+});
|
|
|
|
|
+const tableData = ref([]);
|
|
|
|
|
+const formInline = reactive({
|
|
|
|
|
+ agreement: '',//协议信息
|
|
|
|
|
+ ptlAgreementId: '',//协议信息
|
|
|
|
|
+ productId: "",//归属
|
|
|
|
|
+ rulesName: '',//保险公司id
|
|
|
|
|
+ costRules: '',//协议类型
|
|
|
|
|
+ agreementStatus: "",//有效状态
|
|
|
|
|
+ auditStatus: "",//协议状态
|
|
|
|
|
+ validState: "",
|
|
|
|
|
+ effectiveTime: [],
|
|
|
|
|
+ failureTime: [],
|
|
|
|
|
+})
|
|
|
|
|
+const resetForm = () => {
|
|
|
|
|
+ formInline.agreement = '';//协议信息
|
|
|
|
|
+ formInline.productId = "";//归属
|
|
|
|
|
+ formInline.rulesName = '';//保险公司id
|
|
|
|
|
+ formInline.costRules = '';//协议类型
|
|
|
|
|
+ formInline.agreementStatus = "";//有效状态
|
|
|
|
|
+ formInline.auditStatus = "";//协议状态
|
|
|
|
|
+ formInline.validState = "";
|
|
|
|
|
+ formInline.effectiveTime = [];
|
|
|
|
|
+ formInline.failureTime = [];
|
|
|
|
|
+ findpage();
|
|
|
|
|
+}
|
|
|
|
|
+function findpage() {
|
|
|
|
|
+ api.agreementApi.CostExternalFeePageList({ pages: pageInfo.value.pageNum, size: pageInfo.value.pageSize, ...formInline }).then((res: any) => {
|
|
|
|
|
+ if (res.code == '200') {
|
|
|
|
|
+ tableData.value = res.data.records;
|
|
|
|
|
+ pageInfo.value.pageNum = res.data.current;
|
|
|
|
|
+ pageInfo.value.pageSize = res.data.size;
|
|
|
|
|
+ pageInfo.value.total = res.data.total;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//复制费用
|
|
|
|
|
+const costitemCopy = () => {
|
|
|
|
|
+ ElMessageBox.confirm(
|
|
|
|
|
+ '确定要复制该费用,请确认是否复制?',
|
|
|
|
|
+ '复制费用',
|
|
|
|
|
+ {
|
|
|
|
|
+ confirmButtonText: '确定复制',
|
|
|
|
|
+ type: 'warning',
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ confirmButtonClass: 'el-button--primary',
|
|
|
|
|
+ }
|
|
|
|
|
+ ).then(() => {
|
|
|
|
|
+ const params = {
|
|
|
|
|
+ costIds: costIds.value,
|
|
|
|
|
+ agreementId: agreementInfo.value.id,
|
|
|
|
|
+ contactMobile: contactObj.value.contactMobile,
|
|
|
|
|
+ contactPerson: contactObj.value.contactPerson,
|
|
|
|
|
+ }
|
|
|
|
|
+ api.agreementApi.copyCostExternal(params).then((res: any) => {
|
|
|
|
|
+ if (res.code == '200') {
|
|
|
|
|
+ costExternalList();
|
|
|
|
|
+ if (res.msg) ElMessage.warning(res.msg)
|
|
|
|
|
+ if (!res.msg) ElMessage.success('复制成功')
|
|
|
|
|
+ copyDialog.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
</script>
|
|
</script>
|
|
|
<!-- 样式区域 -->
|
|
<!-- 样式区域 -->
|
|
|
<style lang='scss' scoped>
|
|
<style lang='scss' scoped>
|