Commit daf22e2d by yuzhenWang

Merge branch 'test' into 'dev'

Test

See merge request !80
parents de175da7 5acadb8b
...@@ -82,7 +82,7 @@ const props = defineProps({ ...@@ -82,7 +82,7 @@ const props = defineProps({
type: Boolean, type: Boolean,
default: true default: true
}, },
// 打开弹窗 // 确定按钮loading效果
confirmLoading: { confirmLoading: {
type: Boolean, type: Boolean,
default: false default: false
......
const fnaForm = [ const fnaForm = [
// 介绍人信息 // 介绍人信息
{ // {
fatherTitle: '转介人信息', // fatherTitle: '转介人信息',
keyType: 'Array', // keyType: 'Array',
key: 'brokerList', // key: 'brokerList',
anchorKey: 'brokerList', // anchorKey: 'brokerList',
moudleType: 'brokerList', // moudleType: 'brokerList',
dataLength: 1, // dataLength: 1,
showMoudle: true, // showMoudle: true,
showTable: true, // showTable: true,
addChildren: true, // addChildren: true,
addChildrenTxt: '转介人', // addChildrenTxt: '转介人',
fatherRequired: false, // fatherRequired: false,
isOpen: false, // isOpen: false,
// 新增表格列配置 // // 新增表格列配置
columns: [ // columns: [
{ // {
label: '姓名', // label: '姓名',
prop: 'brokerName', // prop: 'brokerName',
type: 'remoteSelect', // type: 'remoteSelect',
searchType: 'brokerName', // searchType: 'brokerName',
placeholder: '请输入关键词搜索', // placeholder: '请输入关键词搜索',
required: false // required: false
}, // },
{ // {
label: '性别', // label: '性别',
prop: 'brokerGender', // prop: 'brokerGender',
type: 'select', // type: 'select',
dictType: 'sys_gender', // dictType: 'sys_gender',
placeholder: '请选择', // placeholder: '请选择',
required: false // required: false
}, // },
{ // {
label: '内部编号', // label: '内部编号',
prop: 'brokerNumber', // prop: 'brokerNumber',
type: 'input', // type: 'input',
placeholder: '请输入', // placeholder: '请输入',
required: false // required: false
}, // },
{ // {
label: '所属团队', // label: '所属团队',
prop: 'brokerTeam', // prop: 'brokerTeam',
type: 'remoteSelect', // type: 'remoteSelect',
searchType: 'brokerTeam', // searchType: 'brokerTeam',
placeholder: '请输入关键词搜索', // placeholder: '请输入关键词搜索',
required: false // required: false
}, // },
{ // {
label: '分配比例', // label: '分配比例',
prop: 'brokerRatio', // prop: 'brokerRatio',
type: 'inputNumber', // type: 'inputNumber',
placeholder: '请输入', // placeholder: '请输入',
required: true // required: true
}, // },
{ // {
label: '备注', // label: '备注',
prop: 'remark', // prop: 'remark',
type: 'input', // type: 'input',
placeholder: '请输入', // placeholder: '请输入',
required: false // required: false
} // }
], // ],
data: [ // data: [
// { // // {
// brokerName: '', // // brokerName: '',
// brokerGender: '', // // brokerGender: '',
// brokerNumber: '', // // brokerNumber: '',
// brokerTeam: '', // // brokerTeam: '',
// brokerRatio: '', // // brokerRatio: '',
// remark: '' // // remark: ''
// } // // }
] // ]
}, // },
// 受供养人信息 // 受供养人信息
{ {
fatherTitle: '受供养人信息', fatherTitle: '受供养人信息',
......
...@@ -9,6 +9,20 @@ const productPlan = [ ...@@ -9,6 +9,20 @@ const productPlan = [
fatherRequired: true, //父级必填,代表个人资料这个模块有必填项 fatherRequired: true, //父级必填,代表个人资料这个模块有必填项
data: [ data: [
{ {
label: '出单经纪公司',
key: 'reconciliationCompanyName',
domType: 'SearchSelect',
required: false,
maxLength: 30,
disabled: false,
placeholder: '请输入',
show: true,
labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数
labelPosition: 'top', //标签的位置
lg: 8 //栅格布局份数
},
{
label: '保险公司', label: '保险公司',
key: 'companyName', key: 'companyName',
domType: 'SearchSelect', domType: 'SearchSelect',
...@@ -253,20 +267,6 @@ const productPlan = [ ...@@ -253,20 +267,6 @@ const productPlan = [
lg: 8 //栅格布局份数 lg: 8 //栅格布局份数
}, },
{ {
label: '出单经纪公司',
key: 'reconciliationCompanyName',
domType: 'SearchSelect',
required: false,
maxLength: 30,
disabled: false,
placeholder: '请输入',
show: true,
labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数
labelPosition: 'top', //标签的位置
lg: 8 //栅格布局份数
},
{
label: '保单额度(重疾)', label: '保单额度(重疾)',
key: 'sumInsured', key: 'sumInsured',
domType: 'Input', domType: 'Input',
......
import { ElMessage } from 'element-plus'
export function copyToClipboard(text) {
// 方案1:使用现代 Clipboard API
if (navigator.clipboard && navigator.clipboard.writeText) {
return navigator.clipboard.writeText(text).catch((err) => {
console.error('Clipboard API 写入失败:', err);
ElMessage.error('复制失败')
// 降级到传统方案
fallbackCopyText(text);
});
}
// 方案2:降级使用传统方法
else {
fallbackCopyText(text);
}
}
// 传统复制方法
function fallbackCopyText(text, typeName = '内容') {
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.style.position = 'fixed';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
try {
textarea.select();
textarea.setSelectionRange(0, 99999); // 对于移动设备
document.execCommand('copy');
console.log('传统方法复制成功');
ElMessage.success(`${typeName}已复制`)
} catch (err) {
console.error('传统方法复制失败:', err)
ElMessage.error('复制失败');
} finally {
document.body.removeChild(textarea);
}
}
export default {
copyToClipboard
}
...@@ -52,14 +52,14 @@ ...@@ -52,14 +52,14 @@
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="4" :lg="4"> <!-- <el-col :xs="24" :sm="12" :md="4" :lg="4">
<el-card shadow="hover" class="statistics-card"> <el-card shadow="hover" class="statistics-card">
<div class="card-content"> <div class="card-content">
<div class="card-label">差额(估)</div> <div class="card-label">差额(估)</div>
<div class="card-value">{{ statisticsData.differenceAmount ? formatCurrency(statisticsData.differenceAmount) : 0 }}</div> <div class="card-value">{{ statisticsData.differenceAmount ? formatCurrency(statisticsData.differenceAmount) : 0 }}</div>
</div> </div>
</el-card> </el-card>
</el-col> </el-col> -->
</el-row> </el-row>
</div> </div>
<el-table :data="tableData" @selection-change="handleSelectionChange" height="400" border highlight-current-row <el-table :data="tableData" @selection-change="handleSelectionChange" height="400" border highlight-current-row
...@@ -79,20 +79,23 @@ ...@@ -79,20 +79,23 @@
<el-table-column prop="fortuneTotalPeriod" label="总期数" width="120" sortable /> <el-table-column prop="fortuneTotalPeriod" label="总期数" width="120" sortable />
<el-table-column prop="broker" label="转介人" width="130" sortable /> <el-table-column prop="broker" label="转介人" width="130" sortable />
<el-table-column prop="team" label="所属团队" width="120" sortable /> <el-table-column prop="team" label="所属团队" width="120" sortable />
<el-table-column prop="amount" label="应出账金额" width="140" sortable /> <el-table-column prop="exchangeRate" label="结算汇率(估)" width="140" sortable />
<el-table-column prop="hkdAmount" label="应出账金额(HKD)" width="160" sortable/>
<el-table-column prop="currency" label="出账币种" width="130" sortable /> <el-table-column prop="currency" label="出账币种" width="130" sortable />
<el-table-column prop="fortunePaidAmount" label="已出账金额" width="120" sortable /> <el-table-column prop="fortunePaidAmount" label="已出账金额" width="160" sortable />
<el-table-column prop="fortuneUnpaidAmount" label="剩余出账金额" width="120" sortable /> <el-table-column prop="fortuneUnpaidAmount" label="剩余出账金额" width="160" sortable />
<el-table-column prop="currentPaymentAmount" label="本期出账金额" width="120" sortable/> <!-- <el-table-column prop="currentPaymentAmount" label="本期出账金额" width="120" sortable/> -->
<el-table-column prop="currentPaymentHkdAmount" label="本期出账金额(HKD)" width="160" sortable/>
<el-table-column prop="fortuneUnpaidRatio" label="剩余出账比例" width="120" sortable :formatter="(row) => `${row.fortuneUnpaidRatio }%`" /> <el-table-column prop="fortuneUnpaidRatio" label="剩余出账比例" width="120" sortable :formatter="(row) => `${row.fortuneUnpaidRatio }%`" />
<el-table-column prop="status" label="出账状态" width="120" sortable> <el-table-column prop="status" label="出账状态" width="160" sortable>
<template #default="{ row }"> <template #default="{ row }">
{{ selectDictLabel(csf_fortune_status, row.status) }} {{ selectDictLabel(csf_fortune_status, row.status) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="premium" label="期交保费" width="120" sortable /> <el-table-column prop="premium" label="期交保费" width="120" sortable />
<el-table-column prop="policyCurrency" label="保单币种" width="120" sortable /> <el-table-column prop="policyCurrency" label="保单币种" width="120" sortable />
<el-table-column prop="payoutDate" label="出账日(实)" width="120" sortable /> <el-table-column prop="payoutDate" label="出账日(估)" width="120" sortable />
<el-table-column prop="actualPayoutDate" label="出账日(实)" width="120" sortable />
<el-table-column prop="remark" label="备注" width="120" sortable /> <el-table-column prop="remark" label="备注" width="120" sortable />
<el-table-column fixed="right" label="操作" min-width="120"> <el-table-column fixed="right" label="操作" min-width="120">
<template #default="{ row }"> <template #default="{ row }">
...@@ -330,18 +333,20 @@ const setPayoutAmountDialogFlag = ref(false) ...@@ -330,18 +333,20 @@ const setPayoutAmountDialogFlag = ref(false)
const setPayoutAmountConfig = [ const setPayoutAmountConfig = [
{ {
type: 'input', type: 'input',
prop: 'currentPaymentAmount', prop: 'currentPaymentHkdAmount',
label: '出账金额', label: '本期出账金额(HKD)',
inputType: 'decimal', inputType: 'decimal',
rules: [ rules: [
{ pattern: /^\d+$/, message: '只能输入正整数', trigger: 'blur' } { pattern: /^\d+$/, message: '只能输入正整数', trigger: 'blur' }
] ]
}, { },
type: 'select', // {
prop: 'currency', // type: 'select',
label: '出账币种', // prop: 'currency',
dictType: 'bx_currency_type' // label: '出账币种',
}, { // dictType: 'bx_currency_type'
// },
{
type: 'select', type: 'select',
prop: 'status', prop: 'status',
label: '出账状态', label: '出账状态',
......
...@@ -564,10 +564,10 @@ const addCheckRecordConfig = ref([ ...@@ -564,10 +564,10 @@ const addCheckRecordConfig = ref([
prop: 'amount', prop: 'amount',
label: '入账金额', label: '入账金额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, { }, {
type: 'select', type: 'select',
...@@ -615,10 +615,10 @@ const addCheckRecordConfig = ref([ ...@@ -615,10 +615,10 @@ const addCheckRecordConfig = ref([
prop: 'exchangeRate', prop: 'exchangeRate',
label: '结算汇率(实)', label: '结算汇率(实)',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
]) ])
......
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
<el-table-column type="selection" width="55" :reserve-selection="true" /> <el-table-column type="selection" width="55" :reserve-selection="true" />
<el-table-column prop="broker" label="转介人" min-width="120" sortable /> <el-table-column prop="broker" label="转介人" min-width="120" sortable />
<el-table-column prop="team" label="所属团队" min-width="120" sortable /> <el-table-column prop="team" label="所属团队" min-width="120" sortable />
<el-table-column prop="amount" label="出账金额" width="120" sortable> <el-table-column prop="hkdAmount" label="出账金额" width="120" sortable>
<template #default="scope"> <template #default="scope">
{{ formatCurrency(scope.row.amount) }} {{ formatCurrency(scope.row.hkdAmount) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="currency" label="出账币种" width="120" sortable> <el-table-column prop="currency" label="出账币种" width="120" sortable>
......
...@@ -204,7 +204,7 @@ const payableReportTableColumns = ref([ ...@@ -204,7 +204,7 @@ const payableReportTableColumns = ref([
{ prop: 'unpaidRatio', label: '待出账比例', sortable: true, width: '120', formatter: (row) => (row.unpaidRatio || 0) + '%' || '-' }, { prop: 'unpaidRatio', label: '待出账比例', sortable: true, width: '120', formatter: (row) => (row.unpaidRatio || 0) + '%' || '-' },
{ prop: 'paidAmount', label: '已出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) }, { prop: 'paidAmount', label: '已出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) },
{ prop: 'unpaidAmount', label: '待出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.unpaidAmount || 0) }, { prop: 'unpaidAmount', label: '待出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.unpaidAmount || 0) },
{ prop: 'amount', label: '应出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.amount || 0) }, { prop: 'hkdAmount', label: '应出账金额(估)', sortable: true, width: '120', formatter: (row) => formatCurrency(row.hkdAmount || 0) },
{ prop: 'currency', label: '出账币种', sortable: true, width: '120', formatter: (row) => row.currency || '-' }, { prop: 'currency', label: '出账币种', sortable: true, width: '120', formatter: (row) => row.currency || '-' },
{ prop: 'premium', label: '期交保费', sortable: true, width: '120', formatter: (row) => formatCurrency(row.premium || 0) }, { prop: 'premium', label: '期交保费', sortable: true, width: '120', formatter: (row) => formatCurrency(row.premium || 0) },
{ prop: 'insuranceCompany', label: '保险公司', sortable: true, width: '120', formatter: (row) => row.insuranceCompany || '-' }, { prop: 'insuranceCompany', label: '保险公司', sortable: true, width: '120', formatter: (row) => row.insuranceCompany || '-' },
...@@ -226,7 +226,7 @@ const payableReportListTableColumns = ref([ ...@@ -226,7 +226,7 @@ const payableReportListTableColumns = ref([
{ prop: 'fortuneTotalPeriod', label: '出账总期数', sortable: true, width: '100', formatter: (row) => row.fortuneTotalPeriod || '-' }, { prop: 'fortuneTotalPeriod', label: '出账总期数', sortable: true, width: '100', formatter: (row) => row.fortuneTotalPeriod || '-' },
{ prop: 'payoutDate', label: '出账日(估)', sortable: true, width: '120', formatter: (row) => row.payoutDate || '-' }, { prop: 'payoutDate', label: '出账日(估)', sortable: true, width: '120', formatter: (row) => row.payoutDate || '-' },
{ prop: 'actualPayoutDate', label: '出账日(实)', sortable: true, width: '120', formatter: (row) => row.actualPayoutDate || '-' }, { prop: 'actualPayoutDate', label: '出账日(实)', sortable: true, width: '120', formatter: (row) => row.actualPayoutDate || '-' },
{ prop: 'commissionRatio', label: '发佣率(对应职级)', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) + '%' || '-' }, // { prop: 'commissionRatio', label: '职级对应积分比例', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) || '-' },
{ prop: 'hkdAmount', label: '应出账金额(估)', sortable: true, width: '120', formatter: (row) => formatCurrency(row.hkdAmount || 0) }, { prop: 'hkdAmount', label: '应出账金额(估)', sortable: true, width: '120', formatter: (row) => formatCurrency(row.hkdAmount || 0) },
{ prop: 'paidRatio', label: '已出账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' }, { prop: 'paidRatio', label: '已出账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' },
{ prop: 'paidAmount', label: '已出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) }, { prop: 'paidAmount', label: '已出账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) },
......
...@@ -248,22 +248,22 @@ const addReceivablesFormConfig = [ ...@@ -248,22 +248,22 @@ const addReceivablesFormConfig = [
prop: 'amount', prop: 'amount',
label: '入账金额', label: '入账金额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
visible: (formData) => formData.commissionBizType === 'U', visible: (formData) => formData.commissionBizType === 'U',
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, { }, {
type: 'input', type: 'input',
prop: 'commissionRatio', prop: 'commissionRatio',
label: '入账比例(%)', label: '入账比例(%)',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
visible: (formData) => formData.commissionBizType === 'R', visible: (formData) => formData.commissionBizType === 'R',
rules: [ rules: [
{ required: true, message: '请输入入账比例', trigger: 'blur' }, { required: true, message: '请输入入账比例', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, { }, {
type: 'select', type: 'select',
...@@ -755,7 +755,7 @@ const receivableReportTableColumns = ref([ ...@@ -755,7 +755,7 @@ const receivableReportTableColumns = ref([
{ prop: 'commissionPeriod', label: '入账期数', sortable: true, width: '120', formatter: (row) => row.commissionPeriod || '-' }, { prop: 'commissionPeriod', label: '入账期数', sortable: true, width: '120', formatter: (row) => row.commissionPeriod || '-' },
{ prop: 'totalPeriod', label: '入账总期数', sortable: true, width: '120', formatter: (row) => row.totalPeriod || '-' }, { prop: 'totalPeriod', label: '入账总期数', sortable: true, width: '120', formatter: (row) => row.totalPeriod || '-' },
{ prop: 'commissionDate', label: '入账日(估)', sortable: true, width: '130', }, { prop: 'commissionDate', label: '入账日(估)', sortable: true, width: '130', },
{ prop: 'commissionRatio', label: '预估入账比例', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) + '%' || '-' }, { prop: 'commissionRatio', label: '产品对应来佣率', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) + '%' || '-' },
{ prop: 'hkdAmount', label: '预估入账金额HKD', sortable: true, width: '120', formatter: (row) => formatCurrency(row.hkdAmount || 0) }, { prop: 'hkdAmount', label: '预估入账金额HKD', sortable: true, width: '120', formatter: (row) => formatCurrency(row.hkdAmount || 0) },
{ prop: 'paidRatio', label: '已入账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' }, { prop: 'paidRatio', label: '已入账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' },
{ prop: 'paidAmount', label: '已入账金额HKD', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) }, { prop: 'paidAmount', label: '已入账金额HKD', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) },
...@@ -777,7 +777,7 @@ const receivableReportItemTableColumns = ref([ ...@@ -777,7 +777,7 @@ const receivableReportItemTableColumns = ref([
{ prop: 'totalPeriod', label: '入账总期数', sortable: true, width: '120', formatter: (row) => row.totalPeriod || '-' }, { prop: 'totalPeriod', label: '入账总期数', sortable: true, width: '120', formatter: (row) => row.totalPeriod || '-' },
{ prop: 'commissionName', label: '入账项目', sortable: true, width: '130', formatter: (row) => row.commissionName || '-' }, { prop: 'commissionName', label: '入账项目', sortable: true, width: '130', formatter: (row) => row.commissionName || '-' },
{ prop: 'commissionDate', label: '入账日(估)', sortable: true, width: '130', formatter: (row) => row.commissionDate || '-' }, { prop: 'commissionDate', label: '入账日(估)', sortable: true, width: '130', formatter: (row) => row.commissionDate || '-' },
{ prop: 'commissionRatio', label: '预估入账比例', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) + '%' || '-' }, { prop: 'commissionRatio', label: '产品对应来佣率', sortable: true, width: '120', formatter: (row) => (row.commissionRatio || 0) + '%' || '-' },
{ prop: 'expectedAmount', label: '预估入账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.expectedAmount || 0) }, { prop: 'expectedAmount', label: '预估入账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.expectedAmount || 0) },
{ prop: 'paidRatio', label: '已入账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' }, { prop: 'paidRatio', label: '已入账比例', sortable: true, width: '120', formatter: (row) => (row.paidRatio || 0) + '%' || '-' },
{ prop: 'paidAmount', label: '已入账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) }, { prop: 'paidAmount', label: '已入账金额', sortable: true, width: '120', formatter: (row) => formatCurrency(row.paidAmount || 0) },
......
...@@ -1506,6 +1506,8 @@ const handleFormValues = source => { ...@@ -1506,6 +1506,8 @@ const handleFormValues = source => {
} }
if (props.customerBizId && props.activeName == 'customer') { if (props.customerBizId && props.activeName == 'customer') {
submitObj['fnaBizId'] = props.idsObj.fnaBizId
editCustomer(submitObj).then(res => { editCustomer(submitObj).then(res => {
if (res.code == 200) { if (res.code == 200) {
handleEditStatus() handleEditStatus()
...@@ -1520,6 +1522,7 @@ const handleFormValues = source => { ...@@ -1520,6 +1522,7 @@ const handleFormValues = source => {
} else if (!props.customerBizId && props.activeName == 'customer') { } else if (!props.customerBizId && props.activeName == 'customer') {
addFna({ remark: '' }).then(response => { addFna({ remark: '' }).then(response => {
if (response.code == 200) { if (response.code == 200) {
submitObj['fnaBizId'] = response.data.fnaBizId
addCustomer(submitObj).then(res => { addCustomer(submitObj).then(res => {
if (res.code == 200) { if (res.code == 200) {
proxy.$message.success('客户新增成功') proxy.$message.success('客户新增成功')
...@@ -1604,14 +1607,15 @@ watch( ...@@ -1604,14 +1607,15 @@ watch(
editStatus.value = false editStatus.value = false
customerRightRef.value = null customerRightRef.value = null
if (newVal === 'customer') { if (newVal === 'customer') {
if (JSON.stringify(customerForm.value) != '{}') { processFormData()
form.value = JSON.parse(JSON.stringify(customerForm.value)) // if (JSON.stringify(customerForm.value) != '{}') {
// form.value = JSON.parse(JSON.stringify(customerForm.value))
processedCustomerData.value = JSON.parse(JSON.stringify(tempCustomerDom.value)) // processedCustomerData.value = JSON.parse(JSON.stringify(tempCustomerDom.value))
return // return
} else { // } else {
processFormData() // processFormData()
} // }
// 因为客户资料里的编辑状态是单独控制的 // 因为客户资料里的编辑状态是单独控制的
if (props.tabSource == 'customer' && props.customerBizId) { if (props.tabSource == 'customer' && props.customerBizId) {
editStatus.value = true editStatus.value = true
......
...@@ -446,7 +446,7 @@ const searchSelectList = async (query, fieldKey, row) => { ...@@ -446,7 +446,7 @@ const searchSelectList = async (query, fieldKey, row) => {
const params5 = { const params5 = {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
queryContent: queryString realName: queryString
} }
const response5 = await getUserSaleExpandList(params5) const response5 = await getUserSaleExpandList(params5)
if (response5.code == 200) { if (response5.code == 200) {
......
...@@ -96,6 +96,7 @@ ...@@ -96,6 +96,7 @@
:tabIndex="tabsList.findIndex(t => t.name === 'customer')" :tabIndex="tabsList.findIndex(t => t.name === 'customer')"
anchorContainer=".tabPaneBox" anchorContainer=".tabPaneBox"
tabSource="customer" tabSource="customer"
:idsObj="processInfo"
/> />
<div v-if="tab.name === 'fnaform'"> <div v-if="tab.name === 'fnaform'">
<FanForm <FanForm
......
...@@ -75,9 +75,21 @@ ...@@ -75,9 +75,21 @@
border border
max-height="380px" max-height="380px"
> >
<el-table-column type="index" width="60" label="序号" /> <el-table-column type="index" width="100" label="序号" />
<el-table-column label="客户姓名" align="center" prop="customerName" width="100" /> <el-table-column label="客户姓名" align="center" prop="customerName" width="180" >
<el-table-column label="中文姓名" align="center" prop="customerNameCn" width="100" /> <template #default="scope">
<el-button link size="default">
<span @click="copyToClipboard(scope.row.customerName,'客户姓名')">{{ scope.row.customerName }}</span>
</el-button>
</template>
</el-table-column>
<el-table-column label="中文姓名" align="center" prop="customerNameCn" width="180" >
<template #default="scope">
<el-button link size="default">
<span @click="copyToClipboard(scope.row.customerNameCn,'中文姓名')">{{ scope.row.customerNameCn }}</span>
</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="状态" align="center" prop="status" width="100" :formatter="getDictLabel('csf_fna_status')"/> --> <!-- <el-table-column label="状态" align="center" prop="status" width="100" :formatter="getDictLabel('csf_fna_status')"/> -->
<el-table-column label="流程状态" sortable align="center" prop="status" width="200"> <el-table-column label="流程状态" sortable align="center" prop="status" width="200">
<template #default="scope"> <template #default="scope">
...@@ -88,18 +100,29 @@ ...@@ -88,18 +100,29 @@
label="流程编号" label="流程编号"
align="center" align="center"
prop="fnaNo" prop="fnaNo"
width="200" width="240"
show-overflow-tooltip show-overflow-tooltip>
/> <template #default="scope">
<el-button link size="default">
<span @click="copyToClipboard(scope.row.fnaNo,'流程编号')">{{ scope.row.fnaNo }}</span>
</el-button>
</template>
</el-table-column>
<el-table-column <el-table-column
label="预约编号" label="预约编号"
align="center" align="center"
prop="appointmentNo" prop="appointmentNo"
width="200" width="240"
show-overflow-tooltip show-overflow-tooltip
/> >
<el-table-column label="新单编号" align="center" prop="policyId" /> <template #default="scope">
<el-table-column label="保单号" align="center" prop="policyNo" width="150" /> <el-button link size="default">
<span @click="copyToClipboard(scope.row.appointmentNo,'预约编号')">{{ scope.row.appointmentNo }}</span>
</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="新单编号" align="center" prop="policyId" /> -->
<el-table-column label="保单号" align="center" prop="policyNo" width="180" />
<el-table-column label="创建时间" sortable align="center" prop="createTime" width="200"> <el-table-column label="创建时间" sortable align="center" prop="createTime" width="200">
<template #default="scope"> <template #default="scope">
...@@ -107,7 +130,7 @@ ...@@ -107,7 +130,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" width="80" align="center"> <el-table-column fixed="right" label="操作" width="150" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-popover placement="left" :width="160" trigger="click"> <el-popover placement="left" :width="160" trigger="click">
<template #reference> <template #reference>
...@@ -158,6 +181,7 @@ import { getFnaList, deleteFna, subProcess } from '@/api/sign/fna' ...@@ -158,6 +181,7 @@ import { getFnaList, deleteFna, subProcess } from '@/api/sign/fna'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
import { MoreFilled, InfoFilled } from '@element-plus/icons-vue' import { MoreFilled, InfoFilled } from '@element-plus/icons-vue'
import useDictStore from '@/store/modules/dict' import useDictStore from '@/store/modules/dict'
import copyToClipboard from '@/utils/copyToClipboard';
const dictStore = useDictStore() const dictStore = useDictStore()
const userStore = useUserStore() const userStore = useUserStore()
const router = useRouter() const router = useRouter()
......
...@@ -321,7 +321,7 @@ ...@@ -321,7 +321,7 @@
:policyMailing="policyDetailInfo.policyMailing" :policyMailing="policyDetailInfo.policyMailing"
/> />
</div> </div>
<div v-if="tab.name === 'newpolicyTodo'">新单事项</div>
<div v-if="tab.name === 'verifyPolicyInfo'"> <div v-if="tab.name === 'verifyPolicyInfo'">
<VerifyPolicyInfo <VerifyPolicyInfo
:activeName="activeName" :activeName="activeName"
...@@ -752,7 +752,6 @@ function getCustomerInfo(customerBizId) { ...@@ -752,7 +752,6 @@ function getCustomerInfo(customerBizId) {
} }
// 获取各个流程所需要得字典数据 // 获取各个流程所需要得字典数据
const getDictsData = async () => { const getDictsData = async () => {
if (route.query.source == 'policyList') { if (route.query.source == 'policyList') {
const params4 = { const params4 = {
pageNo: 1, pageNo: 1,
...@@ -947,6 +946,7 @@ const handleSubmit = async type => { ...@@ -947,6 +946,7 @@ const handleSubmit = async type => {
submitAppointmentObj.value.apiAppointmentInfoDto = result submitAppointmentObj.value.apiAppointmentInfoDto = result
if (!submitAppointmentObj.value.apiAppointmentInfoDto) return if (!submitAppointmentObj.value.apiAppointmentInfoDto) return
} }
if (productPlanRef.value) { if (productPlanRef.value) {
submitAppointmentObj.value.apiProductPlanInfoDto = submitAppointmentObj.value.apiProductPlanInfoDto =
await productPlanRef.value[0].handleSubmitForm() await productPlanRef.value[0].handleSubmitForm()
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
> >
<template #form-right> <template #form-right>
<el-form ref="appointmentInfoFormRef" :model="form" :rules="rules" label-width="120px"> <el-form ref="appointmentInfoFormRef" :model="form" :rules="rules" label-width="120px">
<div v-for="father in processedAppointmentData"> <div v-for="(father, fIndex) in processedAppointmentData">
<el-row style="margin-bottom: 10px" v-if="father.showMoudle" :id="father.anchorKey"> <el-row style="margin-bottom: 10px" v-if="father.showMoudle" :id="father.anchorKey">
<div class="formBox"> <div class="formBox">
<CardOne :title="father.fatherTitle"> <CardOne :title="father.fatherTitle">
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<template #content> <template #content>
<!-- 不是表格 --> <!-- 不是表格 -->
<el-row :gutter="20" v-if="!father.showTable"> <el-row :gutter="20" v-if="!father.showTable">
<template v-for="child in father.data" :key="child.key"> <template v-for="(child, cIndex) in father.data" :key="child.key">
<el-col <el-col
:sm="child.sm" :sm="child.sm"
:lg="child.lg" :lg="child.lg"
...@@ -829,10 +829,9 @@ const changePageSize = val => { ...@@ -829,10 +829,9 @@ const changePageSize = val => {
queryParams.value.pageSize = val queryParams.value.pageSize = val
viewHistory() viewHistory()
} }
const timeValueChange = child => { const timeValueChange = child => {
if (form.value[child.key]) { if (!form.value[child.key]) {
child.finishTime = `${form.value[child.key]} ${child.timeValue}:00`
} else if (!form.value[child.key]) {
proxy.$message.warning(`请先选择${child.label}日期`) proxy.$message.warning(`请先选择${child.label}日期`)
child.timeValue = '' child.timeValue = ''
} }
...@@ -1058,6 +1057,7 @@ const disabledDate = (time, child) => { ...@@ -1058,6 +1057,7 @@ const disabledDate = (time, child) => {
} }
} }
const handleDateClear = child => { const handleDateClear = child => {
form.value[child.key] = ''
if (child.key == 'openAccountStartTime' && !form.value['openAccountStartTime']) { if (child.key == 'openAccountStartTime' && !form.value['openAccountStartTime']) {
form.value['openAccountEndTime'] = '' form.value['openAccountEndTime'] = ''
resetShow({ type: 'child', key: 'openAccountEndTime', status: true, flag: 'disabled' }) resetShow({ type: 'child', key: 'openAccountEndTime', status: true, flag: 'disabled' })
...@@ -1070,28 +1070,11 @@ const handleDateClear = child => { ...@@ -1070,28 +1070,11 @@ const handleDateClear = child => {
} }
} }
const handleDateChange = child => { const handleDateChange = child => {
// debugger;
if (child.key == 'openAccountStartTime' && form.value['openAccountStartTime']) { if (child.key == 'openAccountStartTime' && form.value['openAccountStartTime']) {
resetShow({ type: 'child', key: 'openAccountEndTime', status: false, flag: 'disabled' }) resetShow({ type: 'child', key: 'openAccountEndTime', status: false, flag: 'disabled' })
disabledDate(form.value['openAccountStartTime'], { key: 'openAccountEndTime' }) disabledDate(form.value['openAccountStartTime'], { key: 'openAccountEndTime' })
} }
// 拼接日期与时分
if (child.key == 'arrivalTime' && child.finishTime && child.finishTime.split(' ').length == 2) {
child.finishTime = `${form.value[child.key]} ${child.timeValue}:00`
} else if (
child.key == 'departureTime' &&
child.finishTime &&
child.finishTime.split(' ').length == 2
) {
child.finishTime = `${form.value[child.key]} ${child.timeValue}:00`
} else if (
child.key == 'signDate' &&
child.finishTime &&
child.finishTime.split(' ').length == 2
) {
child.finishTime = `${form.value[child.key]} ${child.timeValue}:00`
console.log('signDate', child.finishTime)
}
// 离港时间在到港时间之前 // 离港时间在到港时间之前
if ( if (
child.key == 'arrivalTime' && child.key == 'arrivalTime' &&
...@@ -1203,8 +1186,6 @@ const processFormData = async () => { ...@@ -1203,8 +1186,6 @@ const processFormData = async () => {
processedAppointmentData.value = processedData processedAppointmentData.value = processedData
console.log('processedAppointmentData.value', processedAppointmentData.value) console.log('processedAppointmentData.value', processedAppointmentData.value)
} }
console.log('processedAppointmentData.value', processedAppointmentData.value)
console.log('form.value', form.value)
anchorListReady.value = true anchorListReady.value = true
} }
...@@ -1673,7 +1654,13 @@ const handleFormValues = () => { ...@@ -1673,7 +1654,13 @@ const handleFormValues = () => {
}) })
} }
if (item1.compositionTime) { if (item1.compositionTime) {
submitObj[item1.key] = item1.finishTime let dateTime = ''
if (item1.timeValue) {
dateTime = proxy.formatToDateTime(`${form.value[item1.key]} ${item1.timeValue}`)
} else if (form.value[item1.key]) {
dateTime = proxy.formatToDateTime(`${form.value[item1.key]}`)
}
submitObj[item1.key] = dateTime
} }
}) })
} }
...@@ -1710,7 +1697,7 @@ const handleFormValues = () => { ...@@ -1710,7 +1697,7 @@ const handleFormValues = () => {
} }
}) })
console.log('submitObj', submitObj) console.log('submitObj表单值', submitObj)
if (submitObj['departureTime']) { if (submitObj['departureTime']) {
// 开始时间是否在结束时间之前 // 开始时间是否在结束时间之前
if ( if (
......
...@@ -435,23 +435,6 @@ const handleSearchSelectChange = (father, key) => { ...@@ -435,23 +435,6 @@ const handleSearchSelectChange = (father, key) => {
form.value[father.key][key] = item1.label form.value[father.key][key] = item1.label
form.value[father.key]['productLaunchBizId'] = item1.value form.value[father.key]['productLaunchBizId'] = item1.value
console.log('item1.apiAttributeSettingDtoList', item1.apiAttributeSettingDtoList) console.log('item1.apiAttributeSettingDtoList', item1.apiAttributeSettingDtoList)
// item1.apiAttributeSettingDtoList.forEach(item2 => {
// if (item2.fieldBizId == 'field_eWCnuwS3WPKog5kZ' && item.key == 'issueNumber') {
// if (item2.value) {
// item.options = item2.value
// .split(/[,,;;\s]+/)
// .map(item => item.trim())
// .filter(item => item !== '')
// .map(item => {
// return { label: item, value: item }
// })
// if (item.options.length > 0)
// form.value[father.key]['issueNumber'] = item.options[0].value
// }
// console.log(item.options, item, '1111')
// }
// })
} }
}) })
}) })
...@@ -482,6 +465,7 @@ const handleSearchSelectChange = (father, key) => { ...@@ -482,6 +465,7 @@ const handleSearchSelectChange = (father, key) => {
if (form.value[father.key][key] == item.value) { if (form.value[father.key][key] == item.value) {
form.value[father.key][key] = item.label form.value[father.key][key] = item.label
form.value[father.key].reconciliationCompanyId = item.value form.value[father.key].reconciliationCompanyId = item.value
form.value[father.key].reconciliationCompanyCode = item.code
} }
}) })
} }
......
...@@ -70,7 +70,13 @@ ...@@ -70,7 +70,13 @@
prop="appointmentNo" prop="appointmentNo"
width="200" width="200"
fixed="left" fixed="left"
/> >
<template #default="scope">
<el-button link size="default">
<span @click="copyToClipboard(scope.row.appointmentNo,'预约编号')">{{ scope.row.appointmentNo }}</span>
</el-button>
</template>
</el-table-column>
<el-table-column label="预约状态" align="center" prop="status" fixed="left" width="100"> <el-table-column label="预约状态" align="center" prop="status" fixed="left" width="100">
<template #default="scope"> <template #default="scope">
<dict-tag :options="csf_ap_status" :value="scope.row.status" /> <dict-tag :options="csf_ap_status" :value="scope.row.status" />
...@@ -94,16 +100,11 @@ ...@@ -94,16 +100,11 @@
<el-table-column label="投保人" align="center" prop="policyholder" width="150" /> <el-table-column label="投保人" align="center" prop="policyholder" width="150" />
<el-table-column label="受保人" align="center" prop="insurant" width="150" /> <el-table-column label="受保人" align="center" prop="insurant" width="150" />
<!-- <el-table-column label="供款频率" align="center" prop="paymentFrequency" width="100"> <!-- <el-table-column label="供款频率" align="center" width="150" prop="paymentFrequency">
<template #default="scope"> <template #default="scope">
<dict-tag :options="csf_ap_frequency" :value="scope.row.paymentFrequency" /> <dict-tag :options="csf_ap_frequency" :value="scope.row.paymentFrequency" />
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column label="供款频率" align="center" width="150" prop="paymentFrequency">
<template #default="scope">
<dict-tag :options="csf_ap_frequency" :value="scope.row.paymentFrequency" />
</template>
</el-table-column>
<el-table-column label="供款期数" align="center" prop="paymentTerm" width="100" /> <el-table-column label="供款期数" align="center" prop="paymentTerm" width="100" />
<el-table-column label="每期保费" align="center" prop="eachIssuePremium" width="100" /> <el-table-column label="每期保费" align="center" prop="eachIssuePremium" width="100" />
...@@ -212,6 +213,7 @@ import { ...@@ -212,6 +213,7 @@ import {
getItineraryExprot getItineraryExprot
} from '@/api/sign/appointment' } from '@/api/sign/appointment'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
import {copyToClipboard} from '@/utils/copyToClipboard'
const dictStore = useDictStore() const dictStore = useDictStore()
const userStore = useUserStore() const userStore = useUserStore()
const router = useRouter() const router = useRouter()
...@@ -270,7 +272,7 @@ const { bx_currency_type, csf_ap_status, csf_ap_meeting_point, csf_ap_frequency ...@@ -270,7 +272,7 @@ const { bx_currency_type, csf_ap_status, csf_ap_meeting_point, csf_ap_frequency
const baseDropdownItems = [ const baseDropdownItems = [
{ label: '修改', value: 'edit', confirm: '' }, { label: '修改', value: 'edit', confirm: '' },
{ {
label: '生成行程单', label: '确认生成行程单',
value: 'viewItinerary', value: 'viewItinerary',
confirm: '', confirm: '',
// 只有当 row.status == 1 时才显示 // 只有当 row.status == 1 时才显示
......
...@@ -330,7 +330,8 @@ const setPayoutAmountConfig = [ ...@@ -330,7 +330,8 @@ const setPayoutAmountConfig = [
prop: 'currentPaymentAmount', prop: 'currentPaymentAmount',
label: '出账金额', label: '出账金额',
inputType: 'decimal', inputType: 'decimal',
rules: [{ pattern: /^\d+$/, message: '只能输入正整数', trigger: 'blur' }] decimalDigits: 4,
rules: [{ pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }]
}, },
{ {
type: 'select', type: 'select',
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
? '首期保费对账' ? '首期保费对账'
: '续期保费对账' : '续期保费对账'
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="insuranceCompany" label="保险公司" width="150" /> <el-table-column prop="insuranceCompany" label="保险公司" width="150" />
...@@ -218,6 +217,7 @@ ...@@ -218,6 +217,7 @@
:showClose="true" :showClose="true"
@close="showAffirm = false" @close="showAffirm = false"
@confirm="confirmAffirm" @confirm="confirmAffirm"
:confirmLoading="settingAffirmLoading"
> >
<SearchForm ref="affirmFormRef" :config="affirmConfig" v-model="affirmFormModel" /> <SearchForm ref="affirmFormRef" :config="affirmConfig" v-model="affirmFormModel" />
</CommonDialog> </CommonDialog>
...@@ -320,6 +320,7 @@ const showRemittance = ref(false) ...@@ -320,6 +320,7 @@ const showRemittance = ref(false)
const remittanceFormRef = ref(null) const remittanceFormRef = ref(null)
const bankOptions = ref([]) //银行options const bankOptions = ref([]) //银行options
const currentRow = ref({}) //银行options const currentRow = ref({}) //银行options
const settingAffirmLoading = ref(false)
const searchConfig = ref([ const searchConfig = ref([
{ {
type: 'select', type: 'select',
...@@ -460,9 +461,10 @@ const affirmConfig = [ ...@@ -460,9 +461,10 @@ const affirmConfig = [
prop: 'recognizedAmount', prop: 'recognizedAmount',
label: '保司认定金额', label: '保司认定金额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入', trigger: 'blur' }, { required: true, message: '请输入', trigger: 'blur' },
{ pattern: /^\d+$/, message: '只能输入正整数' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -494,7 +496,8 @@ const affirmConfig = [ ...@@ -494,7 +496,8 @@ const affirmConfig = [
placeholder: '请选择', placeholder: '请选择',
maxDate: 'today', maxDate: 'today',
visible: formData => visible: formData =>
formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0 || Number(formData.remainingUnpaidAmount) == 0, (formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0) ||
Number(formData.remainingUnpaidAmount) == 0,
rules: [{ required: true, message: '请输入', trigger: 'blur' }] rules: [{ required: true, message: '请输入', trigger: 'blur' }]
}, },
{ {
...@@ -505,7 +508,8 @@ const affirmConfig = [ ...@@ -505,7 +508,8 @@ const affirmConfig = [
maxDate: 'today', maxDate: 'today',
rules: [{ required: true, message: '请输入', trigger: 'blur' }], rules: [{ required: true, message: '请输入', trigger: 'blur' }],
visible: formData => visible: formData =>
formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0 || Number(formData.remainingUnpaidAmount) == 0, (formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0) ||
Number(formData.remainingUnpaidAmount) == 0
}, },
{ {
type: 'select', type: 'select',
...@@ -513,7 +517,30 @@ const affirmConfig = [ ...@@ -513,7 +517,30 @@ const affirmConfig = [
label: '保单状态', label: '保单状态',
dictType: 'csf_policy_status_new', dictType: 'csf_policy_status_new',
visible: formData => visible: formData =>
formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0 || Number(formData.remainingUnpaidAmount) == 0, (formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0) ||
Number(formData.remainingUnpaidAmount) == 0
},
{
type: 'date',
prop: 'policyExpirationDate',
label: '保单截至日',
placeholder: '请选择',
// maxDate: 'today',
visible: formData =>
(formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0) ||
Number(formData.remainingUnpaidAmount) == 0
// rules: [{ required: true, message: '请输入', trigger: 'blur' }]
},
{
type: 'date',
prop: 'coolingOffEndDate',
label: '冷静期到期日',
placeholder: '请选择',
// maxDate: 'today',
visible: formData =>
(formData.remainingUnpaidAmount && Number(formData.remainingUnpaidAmount) < 0) ||
Number(formData.remainingUnpaidAmount) == 0,
rules: [{ required: true, message: '请输入', trigger: 'blur' }]
} }
] ]
//计算待付金额 //计算待付金额
...@@ -533,6 +560,7 @@ const calculateAmount = async () => { ...@@ -533,6 +560,7 @@ const calculateAmount = async () => {
} }
} }
const confirmAffirm = async () => { const confirmAffirm = async () => {
settingAffirmLoading.value = true
try { try {
const formData = await affirmFormRef.value.validate() const formData = await affirmFormRef.value.validate()
console.log(formData.value) console.log(formData.value)
...@@ -545,6 +573,7 @@ const confirmAffirm = async () => { ...@@ -545,6 +573,7 @@ const confirmAffirm = async () => {
newObj.premiumReconciliationBizId = currentRow.value.premiumReconciliationBizId newObj.premiumReconciliationBizId = currentRow.value.premiumReconciliationBizId
let res = await submitResult(newObj) let res = await submitResult(newObj)
if (res.code == 200) { if (res.code == 200) {
settingAffirmLoading.value = false
ElMessage.success('认定成功') ElMessage.success('认定成功')
showAffirm.value = false showAffirm.value = false
affirmFormModel.value = {} affirmFormModel.value = {}
...@@ -587,6 +616,7 @@ const remittanceConfig = [ ...@@ -587,6 +616,7 @@ const remittanceConfig = [
prop: 'paymentAmount', prop: 'paymentAmount',
label: '付款金额', label: '付款金额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入', trigger: 'blur' }, { required: true, message: '请输入', trigger: 'blur' },
{ {
...@@ -766,10 +796,10 @@ const handleUploadSuccess = (prop, Model) => { ...@@ -766,10 +796,10 @@ const handleUploadSuccess = (prop, Model) => {
// 代表是从新增保单对账开始 // 代表是从新增保单对账开始
if (item.response) { if (item.response) {
let newObj = JSON.parse(JSON.stringify(item.response.data)) let newObj = JSON.parse(JSON.stringify(item.response.data))
;(item.fileName = newObj.originalName), //文件名 ;((item.fileName = newObj.originalName), //文件名
(item.fileType = newObj.fileType), //文件类型 (item.fileType = newObj.fileType), //文件类型
(item.fileUrl = newObj.url), //文件URL, (item.fileUrl = newObj.url), //文件URL,
(item.url = newObj.url) (item.url = newObj.url))
} }
}) })
tempOtherFileList.value = list tempOtherFileList.value = list
...@@ -1186,6 +1216,7 @@ const handleSelect = (command, row) => { ...@@ -1186,6 +1216,7 @@ const handleSelect = (command, row) => {
getPremiumReconciliationDetail(row) getPremiumReconciliationDetail(row)
} else if (command === 'settingResult') { } else if (command === 'settingResult') {
affirmFormModel.value = {} affirmFormModel.value = {}
settingAffirmLoading.value = false
showAffirm.value = true showAffirm.value = true
currentRow.value = JSON.parse(JSON.stringify(row)) currentRow.value = JSON.parse(JSON.stringify(row))
} }
......
<template> <template>
<div> <div>
<CommonPage :operationBtnList='operationBtnList' :visibleDefaultButtons="visibleDefaultButtons" <CommonPage :operationBtnList='operationBtnList' :visibleDefaultButtons="visibleDefaultButtons" v-loading.fullscreen.lock="statusLoading"
:showSearchForm='true' :show-pagination='true' :total='pageTotal' :current-page='currentPage' :showSearchForm='true' :show-pagination='true' :total='pageTotal' :current-page='currentPage'
:page-size='pageSize' @size-change='handleSizeChange' @current-change='handleCurrentChange'> :page-size='pageSize' @size-change='handleSizeChange' @current-change='handleCurrentChange'>
<!-- 搜索区域 --> <!-- 搜索区域 -->
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</CommonPage> </CommonPage>
<!-- 弹窗--> <!-- 弹窗-->
<CommonDialog dialogTitle='修改状态' dialogWidth='80%' :openDialog=editStatusDialogFlag :showAction='true' <CommonDialog dialogTitle='修改状态' dialogWidth='80%' :openDialog=editStatusDialogFlag :showAction='true'
:showClose='true' @close='editStatusDialogFlag = false' @confirm='handleEditStatusSubmit' v-loading="statusLoading"> :showClose='true' @close='editStatusDialogFlag = false' @confirm='handleEditStatusSubmit'>
<SearchForm ref="editStatusFormRef" :config="editStatusFormConfig" v-model="editStatusFormData" /> <SearchForm ref="editStatusFormRef" :config="editStatusFormConfig" v-model="editStatusFormData" />
</CommonDialog> </CommonDialog>
...@@ -96,7 +96,7 @@ import { ...@@ -96,7 +96,7 @@ import {
policyFollowReport, policyFollowReport,
saveMailingInfo, updatePolicyfollow, batchSaveBrokers, saveInitialPayment,updatePolicyProduct saveMailingInfo, updatePolicyfollow, batchSaveBrokers, saveInitialPayment,updatePolicyProduct
} from '@/api/sign/underwritingMain' } from '@/api/sign/underwritingMain'
import {copyToClipboard} from '@/utils/copyToClipboard'
import PolicyDetail from './policyDetail.vue' import PolicyDetail from './policyDetail.vue'
const policyDetailFormRef = ref(null) const policyDetailFormRef = ref(null)
const policyDetailFormData = ref({}) const policyDetailFormData = ref({})
...@@ -200,7 +200,7 @@ const onSubmit = async (data) => { ...@@ -200,7 +200,7 @@ const onSubmit = async (data) => {
} else if (data.activeTab === 'productPlan') { } else if (data.activeTab === 'productPlan') {
params = { params = {
policyBizId: selectedRow.value.policyBizId, policyBizId: selectedRow.value.policyBizId,
...data, apiProductPlanMainInfoDto:{...data},
activeTab: undefined activeTab: undefined
} }
const res = await updatePolicyProduct(params) const res = await updatePolicyProduct(params)
...@@ -454,7 +454,9 @@ const handleSelect = async (e, row) => { ...@@ -454,7 +454,9 @@ const handleSelect = async (e, row) => {
} }
editStatusDialogFlag.value = true editStatusDialogFlag.value = true
editStatusFormData.value = { editStatusFormData.value = {
status: row.status status: row.status,
effectiveDate:row.effectiveDate,
underwritingDate:row.underwritingDate
} }
break break
case 'viewRelated': case 'viewRelated':
......
...@@ -297,7 +297,13 @@ const introducerConfig = [ ...@@ -297,7 +297,13 @@ const introducerConfig = [
})) }))
} }
}, },
{
type: 'input',
prop: 'brokerName',
label: '转介人姓名',
span: 4,
disabled: true
},
// { // {
// type: 'select', // type: 'select',
// prop: 'gender', // prop: 'gender',
...@@ -607,7 +613,9 @@ const basicPlanFormConfig = ref([ ...@@ -607,7 +613,9 @@ const basicPlanFormConfig = ref([
return res?.data.records || [] return res?.data.records || []
}, },
onChangeExtraFields: { onChangeExtraFields: {
insuranceCompany: 'fullName' insuranceCompany: 'fullName',
companyId: 'insuranceCompanyId',
companyName: 'fullName'
} }
}, },
{ {
...@@ -670,17 +678,26 @@ const basicPlanFormConfig = ref([ ...@@ -670,17 +678,26 @@ const basicPlanFormConfig = ref([
type: 'input', type: 'input',
prop: 'issueNumber', prop: 'issueNumber',
label: '供款期数', label: '供款期数',
inputType: 'decimal'
}, },
{ {
type: 'input', type: 'input',
prop: 'guaranteePeriod', prop: 'guaranteePeriod',
label: '保障期限' label: '保障年期',
inputType: 'decimal',
decimalDigits: 4,
rules: [
{ pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
]
}, },
{ {
type: 'input', type: 'input',
prop: 'sumInsured', prop: 'sumInsured',
label: '保额(重疾险)' label: '保额(重疾险)',
inputType: 'decimal',
decimalDigits: 4,
rules: [
{ pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
]
}, },
{ {
type: 'select', type: 'select',
...@@ -690,13 +707,13 @@ const basicPlanFormConfig = ref([ ...@@ -690,13 +707,13 @@ const basicPlanFormConfig = ref([
}, },
{ {
type: 'input', type: 'input',
prop: 'initialPremium', prop: 'eachIssuePremium',
label: '每期保费', label: '每期保费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -704,10 +721,10 @@ const basicPlanFormConfig = ref([ ...@@ -704,10 +721,10 @@ const basicPlanFormConfig = ref([
prop: 'policyLevy', prop: 'policyLevy',
label: '保单征费', label: '保单征费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -765,10 +782,10 @@ const firstPremiumFormConfig = ref([ ...@@ -765,10 +782,10 @@ const firstPremiumFormConfig = ref([
prop: 'initialPremium', prop: 'initialPremium',
label: '首期保费', label: '首期保费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -776,10 +793,10 @@ const firstPremiumFormConfig = ref([ ...@@ -776,10 +793,10 @@ const firstPremiumFormConfig = ref([
prop: 'policyLevy', prop: 'policyLevy',
label: '保单征费', label: '保单征费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -793,10 +810,10 @@ const firstPremiumFormConfig = ref([ ...@@ -793,10 +810,10 @@ const firstPremiumFormConfig = ref([
prop: 'initialPremiumPaid', prop: 'initialPremiumPaid',
label: '首期已缴保费', label: '首期已缴保费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -804,10 +821,10 @@ const firstPremiumFormConfig = ref([ ...@@ -804,10 +821,10 @@ const firstPremiumFormConfig = ref([
prop: 'initialPremiumDue', prop: 'initialPremiumDue',
label: '首期待缴保费', label: '首期待缴保费',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
{ {
...@@ -815,10 +832,10 @@ const firstPremiumFormConfig = ref([ ...@@ -815,10 +832,10 @@ const firstPremiumFormConfig = ref([
prop: 'initialPremiumTotal', prop: 'initialPremiumTotal',
label: '首期缴费总额', label: '首期缴费总额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
}, },
// { // {
...@@ -839,10 +856,10 @@ const firstPremiumFormConfig = ref([ ...@@ -839,10 +856,10 @@ const firstPremiumFormConfig = ref([
prop: 'initialPremiumDiscount', prop: 'initialPremiumDiscount',
label: '首期保费优惠金额', label: '首期保费优惠金额',
inputType: 'decimal', inputType: 'decimal',
decimalDigits: 2, decimalDigits: 4,
rules: [ rules: [
{ required: true, message: '请输入金额', trigger: 'blur' }, { required: true, message: '请输入金额', trigger: 'blur' },
{ pattern: /^\d+(\.\d{1,2})?$/, message: '最多两位小数', trigger: 'blur' } { pattern: /^\d+(\.\d{1,4})?$/, message: '最多四位小数', trigger: 'blur' }
] ]
} }
]) ])
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-col :sm="12" :lg="12" :xs="24"> <el-col :sm="12" :lg="12" :xs="24">
<div class="headerLeft"> <div class="headerLeft">
<div class="top">欢迎!</div> <div class="top">欢迎!</div>
<div class="bottom">王力群</div> <div class="bottom">CSF-HK</div>
</div> </div>
</el-col> </el-col>
<el-col :sm="12" :lg="12" :xs="24" class="right"> <el-col :sm="12" :lg="12" :xs="24" class="right">
...@@ -180,14 +180,14 @@ const headerList = ref([ ...@@ -180,14 +180,14 @@ const headerList = ref([
id: '1', id: '1',
title: '总保费(HKD)', title: '总保费(HKD)',
icon: 'icon-zongbaofei', icon: 'icon-zongbaofei',
count: '392.52', count: '--',
url: '/todo' url: '/todo'
}, },
{ {
id: '2', id: '2',
title: '有效保单数', title: '有效保单数',
icon: 'icon-youxiaobaodan', icon: 'icon-youxiaobaodan',
count: '0.00', count: '--',
url: '/todo' url: '/todo'
}, },
...@@ -195,7 +195,7 @@ const headerList = ref([ ...@@ -195,7 +195,7 @@ const headerList = ref([
id: '3', id: '3',
title: '待来佣保单', title: '待来佣保单',
icon: 'icon-daijiesuan', icon: 'icon-daijiesuan',
count: '10', count: '--',
url: '/todo' url: '/todo'
} }
]) ])
...@@ -275,7 +275,7 @@ const staticList = ref([ ...@@ -275,7 +275,7 @@ const staticList = ref([
id: '1', id: '1',
title: '财务需求分析数', title: '财务需求分析数',
icon: 'icon-xiexian', icon: 'icon-xiexian',
count: '3735', count: '--',
unit: '条', unit: '条',
url: '/todo', url: '/todo',
color: '#F53F3F' color: '#F53F3F'
...@@ -284,7 +284,7 @@ const staticList = ref([ ...@@ -284,7 +284,7 @@ const staticList = ref([
id: '2', id: '2',
title: '预约单数', title: '预约单数',
icon: 'icon-xiexian', icon: 'icon-xiexian',
count: '12', count: '--',
unit: '单', unit: '单',
url: '/todo', url: '/todo',
color: '#0FC6C2' color: '#0FC6C2'
...@@ -293,7 +293,7 @@ const staticList = ref([ ...@@ -293,7 +293,7 @@ const staticList = ref([
id: '3', id: '3',
title: '新单数', title: '新单数',
icon: 'icon-xiexian', icon: 'icon-xiexian',
count: '12', count: '--',
unit: '单', unit: '单',
url: '/todo', url: '/todo',
color: '#165DFF' color: '#165DFF'
...@@ -302,7 +302,7 @@ const staticList = ref([ ...@@ -302,7 +302,7 @@ const staticList = ref([
id: '4', id: '4',
title: '续期保单数', title: '续期保单数',
icon: 'icon-xiexian', icon: 'icon-xiexian',
count: '13', count: '--',
unit: '份', unit: '份',
url: '/todo', url: '/todo',
color: '#0FC6C2' color: '#0FC6C2'
...@@ -312,22 +312,22 @@ const infoList = ref([ ...@@ -312,22 +312,22 @@ const infoList = ref([
{ {
id: '1', id: '1',
title: '产品优惠', title: '产品优惠',
subTitle: 'XXXXX第四季度优惠政策' subTitle: '暂未开放'
}, },
{ {
id: '2', id: '2',
title: '产品培训', title: '产品培训',
subTitle: 'XXXXX产品培训回放' subTitle: '暂未开放'
}, },
{ {
id: '3', id: '3',
title: '重要通知', title: '重要通知',
subTitle: 'XXXXX保单未续费' subTitle: '暂未开放'
}, },
{ {
id: '4', id: '4',
title: '系统消息', title: '系统消息',
subTitle: 'FNA导出成功!' subTitle: '暂未开放!'
} }
]) ])
const timeList = ref([ const timeList = ref([
...@@ -351,21 +351,21 @@ const workList = ref([ ...@@ -351,21 +351,21 @@ const workList = ref([
{ {
id: '1', id: '1',
title: '新单跟进', title: '新单跟进',
subTitle: '张三预约单待录入', subTitle: '暂未开放',
unit: 'Q', unit: 'Q',
color: '#7BC616' color: '#7BC616'
}, },
{ {
id: '2', id: '2',
title: '续费提醒', title: '续费提醒',
subTitle: 'bug fix', subTitle: '暂未开放',
unit: 'Y', unit: 'Y',
color: '#14C9C9' color: '#14C9C9'
}, },
{ {
id: '3', id: '3',
title: '预约单生成', title: '预约单生成',
subTitle: '车险预约单已生成', subTitle: '暂未开放',
unit: 'N', unit: 'N',
color: '#168CFF' color: '#168CFF'
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment