0326-海宁pad走访修改

This commit is contained in:
2026-03-26 18:03:33 +08:00
parent 7bbe527477
commit a7a7f40a35
14 changed files with 491 additions and 150 deletions

View File

@@ -112,6 +112,7 @@ import { Message } from "element-ui";
import {
privateTotalColumns, publicTotalColumns,
privateTotalColumnsNew825,
privateTotalColumnsNm, publicTotalColumnsNm,
privateTotalColumnsMap, publicTotalColumnsMap,
privateTotalColumnsAll, publicTotalColumnsAll,
@@ -163,7 +164,7 @@ export default {
},
computed: {
...mapGetters(["roles"]),
...mapGetters(["roles", "deptId"]),
//对公
isPublic() {
return this.roles.includes("headPublic");
@@ -172,6 +173,9 @@ export default {
isPrivate() {
return this.roles.includes("headPrivate");
},
isRetailNew825Tenant() {
return String(this.deptId || '').slice(0, 3) === '965';
},
},
created() {
const {
@@ -196,7 +200,7 @@ export default {
this.shapeName = shapeName;
this.shapeId = shapeId;
if (type == '1') {
this.tableColumns = this.isActive1 ? privateTotalColumns : this.isActive3 ?
this.tableColumns = this.isActive1 ? (this.isRetailNew825Tenant ? privateTotalColumnsNew825 : privateTotalColumns) : this.isActive3 ?
privateTotalColumnsNm : this.isActive4 ? privateTotalColumnsMap : privateTotalColumnsAll;
}
if (type == '2') {

View File

@@ -279,6 +279,7 @@ import { cloneDeep, isEmpty } from 'lodash'
import { Message } from 'element-ui'
import {
privateColumns,
privateColumnsNew825,
publicColumns,
privateColumnsNm,
publicColumnsNm,
@@ -349,7 +350,7 @@ export default {
}
},
computed: {
...mapGetters(['roles', 'userName']),
...mapGetters(['roles', 'userName', 'deptId']),
// 对公
isPublic() {
return this.roles.includes('headPublic')
@@ -361,52 +362,17 @@ export default {
// 965租户
is965() {
return this.userName.slice(0, 3) == 965
},
isRetailNew825Tenant() {
return String(this.deptId || '').slice(0, 3) === '965'
}
},
watch: {
selectedTab: {
handler(val) {
if (val) {
if (val == '1') {
this.tableColumns = this.isActive1
? privateColumns
: this.isActive3
? privateColumnsNm
: this.isActive4
? privateColumnsMap
: this.isActive7
? customAuth
: privateColumnsAll
this.tableKey = this.isActive1
? '11'
: this.isActive3
? '12'
: this.isActive4
? '13'
: this.isActive7
? '15'
: '14'
}
if (val == '2') {
this.tableColumns = this.isActive1
? publicColumns
: this.isActive3
? publicColumnsNm
: this.isActive4
? publicColumnsMap
: this.isActive7
? customAuth
: publicColumnsAll
this.tableKey = this.isActive1
? '21'
: this.isActive3
? '22'
: this.isActive4
? '23'
: this.isActive7
? '25'
: '24'
}
this.tableColumns = this.getCurrentColumns(val)
this.tableKey = this.getCurrentTableKey(val)
}
},
immediate: true
@@ -432,46 +398,8 @@ export default {
this.isActive3 = isActive == '3'
this.isActive4 = isActive == '4'
this.isActive6 = isActive == '6'
if (type == '1') {
this.tableColumns = this.isActive1
? privateColumns
: this.isActive3
? privateColumnsNm
: this.isActive4
? privateColumnsMap
: this.isActive7
? customAuth
: privateColumnsAll
this.tableKey = this.isActive1
? '11'
: this.isActive3
? '12'
: this.isActive4
? '13'
: this.isActive7
? '15'
: '14'
}
if (type == '2') {
this.tableColumns = this.isActive1
? publicColumns
: this.isActive3
? publicColumnsNm
: this.isActive4
? publicColumnsMap
: this.isActive7
? customAuth
: publicColumnsAll
this.tableKey = this.isActive1
? '21'
: this.isActive3
? '22'
: this.isActive4
? '23'
: this.isActive7
? '25'
: '24'
}
this.tableColumns = this.getCurrentColumns(type)
this.tableKey = this.getCurrentTableKey(type)
for (const key in this.$route.query) {
delete this.$route.query[key]
}
@@ -489,6 +417,53 @@ export default {
this.init()
},
methods: {
getRetailPrivateColumns() {
return this.isRetailNew825Tenant ? privateColumnsNew825 : privateColumns
},
getCurrentColumns(tab) {
if (tab == '1') {
return this.isActive1
? this.getRetailPrivateColumns()
: this.isActive3
? privateColumnsNm
: this.isActive4
? privateColumnsMap
: this.isActive7
? customAuth
: privateColumnsAll
}
return this.isActive1
? publicColumns
: this.isActive3
? publicColumnsNm
: this.isActive4
? publicColumnsMap
: this.isActive7
? customAuth
: publicColumnsAll
},
getCurrentTableKey(tab) {
if (tab == '1') {
return this.isActive1
? (this.isRetailNew825Tenant ? '11-825' : '11')
: this.isActive3
? '12'
: this.isActive4
? '13'
: this.isActive7
? '15'
: '14'
}
return this.isActive1
? '21'
: this.isActive3
? '22'
: this.isActive4
? '23'
: this.isActive7
? '25'
: '24'
},
handleMyApprove(type) {
this.isActive1 = type == '1'
this.isActive2 = type == '2'
@@ -504,46 +479,8 @@ export default {
this.isActive6 ||
this.isActive7
) {
if (this.selectedTab == '1') {
this.tableColumns = this.isActive1
? privateColumns
: this.isActive3
? privateColumnsNm
: this.isActive4
? privateColumnsMap
: this.isActive7
? customAuth
: privateColumnsAll
this.tableKey = this.isActive1
? '11'
: this.isActive3
? '12'
: this.isActive4
? '13'
: this.isActive7
? '15'
: '14'
}
if (this.selectedTab == '2') {
this.tableColumns = this.isActive1
? publicColumns
: this.isActive3
? publicColumnsNm
: this.isActive4
? publicColumnsMap
: this.isActive7
? customAuth
: publicColumnsAll
this.tableKey = this.isActive1
? '21'
: this.isActive3
? '22'
: this.isActive4
? '23'
: this.isActive7
? '25'
: '24'
}
this.tableColumns = this.getCurrentColumns(this.selectedTab)
this.tableKey = this.getCurrentTableKey(this.selectedTab)
const date = new Date()
date.setDate(date.getDate() - 1)
const year = date.getFullYear()

View File

@@ -201,6 +201,57 @@ export const privateColumns = [
}
]
export const privateColumnsNew825 = [
{ prop: 'dt', label: '统计日期(T+1)', width: 140 },
{ prop: 'gridName', label: '一级网格名称', width: 160 },
{ prop: 'gridName2', label: '二级网格名称', width: 160 },
{ prop: 'county', label: '县/区', width: 120 },
{ prop: 'town', label: '镇/街道', width: 140 },
{ prop: 'village', label: '村/社区', width: 140 },
{ prop: 'deptId', label: '归属支行机构号', width: 140 },
{ prop: 'deptName', label: '归属支行名称', width: 140 },
{ prop: 'outletsId', label: '归属网点机构号', width: 140 },
{ prop: 'outletsName', label: '归属网点名称', width: 140 },
{ prop: 'userName', label: '归属客户经理', width: 140 },
{ prop: 'custNum', label: '入格客户数', width: 120 },
{ prop: 'zf365cnt', label: '近365天已走访人数', width: 150 },
{ prop: 'zf180cnt', label: '近180天已走访人数', width: 150 },
{ prop: 'zf90cnt', label: '近90天已走访人数', width: 150 },
{ prop: 'zf30cnt', label: '近30天已走访人数', width: 150 },
{ prop: 'curBalD', label: '活期存款余额(元)', width: 160 },
{ prop: 'sxNum', label: '授信户数', width: 120 },
{ prop: 'yxNum', label: '用信户数', width: 120 },
{ prop: 'sxBal', label: '授信金额(合同)', width: 160 },
{ prop: 'balLoan', label: '贷款余额(元)', width: 150 },
{ prop: 'loanAve', label: '贷款年日均(元)', width: 150 },
{ prop: 'yxhtNum', label: '合同签约客户数', width: 150 },
{ prop: 'dianNum', label: '代扣电费客户数', width: 150 },
{ prop: 'shuiNum', label: '代扣水费客户数', width: 150 },
{ prop: 'taxNum', label: '代扣税费数', width: 140 },
{ prop: 'openNum', label: '开户数', width: 120 },
{ prop: 'depBal', label: '存款余额(元)', width: 150 },
{ prop: 'finBal', label: '财富余额(元)', width: 150 },
{ prop: 'grhxNum', label: '个人核心客户数', width: 150 },
{ prop: 'cfyxNum', label: '财富有效客户数', width: 150 },
{ prop: 'yxxykNum', label: '有效信用卡数', width: 140 },
{ prop: 'yxsbkNum', label: '有效社保卡户数', width: 150 },
{ prop: 'twoTo3SbkNum', label: '二换三社保卡户数', width: 160 },
{ prop: 'yljToSbkNum', label: '养老金迁移至社保卡户数', width: 180 },
{ prop: 'fshlNum', label: '丰收互联客户数', width: 150 },
{ prop: 'yxsdNum', label: '有效收单商户', width: 140 },
{ prop: 'zf365rt', label: '近365天走访率', width: 140 },
{ prop: 'zf180rt', label: '近180天走访率', width: 140 },
{ prop: 'zf90rt', label: '近90天走访率', width: 140 },
{ prop: 'zf30rt', label: '近30天走访率', width: 140 },
{ prop: 'sxRat', label: '授信率(%', width: 120 },
{ prop: 'yxRat', label: '用信覆盖率', width: 120 },
{ prop: 'yxhtRat', label: '合同签约率(%', width: 140 },
{ prop: 'dianRat', label: '代扣电费覆盖率(%', width: 150 },
{ prop: 'shuiRat', label: '代扣水费率(%', width: 140 },
{ prop: 'taxRat', label: '代扣税费率(%', width: 140 },
{ prop: 'openRat', label: '开户率(%', width: 120 }
]
// 公司
export const publicColumns = [
{
@@ -564,6 +615,37 @@ export const privateTotalColumns = [
}
]
export const privateTotalColumnsNew825 = [
{ prop: 'custName', label: '客户名称', width: 120 },
{ prop: 'custIdc', label: '客户证件号', width: 140 },
{ prop: 'custIsn', label: '客户内码', width: 120 },
{ prop: 'curBalD', label: '活期存款余额', width: 140 },
{ prop: 'balLoan', label: '贷款余额', width: 140 },
{ prop: 'loanAve', label: '贷款年日均', width: 140 },
{ prop: 'isSx', label: '是否授信', width: 100 },
{ prop: 'isYx', label: '是否用信', width: 100 },
{ prop: 'sxBal', label: '授信金额', width: 120 },
{ prop: 'isYxht', label: '是否合同签约', width: 120 },
{ prop: 'isXyk', label: '是否持有信用卡', width: 130 },
{ prop: 'fshl', label: '是否开通丰收互联', width: 140 },
{ prop: 'isSd', label: '是否办理收单', width: 120 },
{ prop: 'dian', label: '是否代扣电费', width: 120 },
{ prop: 'shui', label: '是否代扣水费', width: 120 },
{ prop: 'tax', label: '是否代扣税费', width: 120 },
{ prop: 'openNum', label: '开户数', width: 100 },
{ prop: 'depBal', label: '存款余额', width: 120 },
{ prop: 'finBal', label: '财富余额', width: 120 },
{ prop: 'isGrhx', label: '是否个人核心客户', width: 140 },
{ prop: 'isCfyx', label: '是否财富有效客户', width: 140 },
{ prop: 'isYxsbk', label: '是否有效社保卡客户', width: 150 },
{ prop: 'is2to3Sbk', label: '是否二换三社保卡', width: 150 },
{ prop: 'isYljToSbk', label: '是否养老金迁移至社保卡', width: 180 },
{ prop: 'is365zf', label: '近365天有无走访', width: 140 },
{ prop: 'is180zf', label: '近180天有无走访', width: 140 },
{ prop: 'is90zf', label: '近90天有无走访', width: 140 },
{ prop: 'is30zf', label: '近30天有无走访', width: 140 }
]
// 公司明细
export const publicTotalColumns = [
{

View File

@@ -422,6 +422,15 @@
<el-radio v-for="item in sourceOptions" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="走访备注">
<el-input
v-model="feedbackForm.remark"
type="textarea"
:rows="3"
maxlength="200"
show-word-limit
/>
</el-form-item>
<el-form-item label="客户意愿" required>
<div class="feedback-groups">
<section v-for="type in feedbackTypeOptions" :key="type" class="feedback-group">
@@ -541,6 +550,7 @@ export default {
feedbackForm: {
id: null,
source: "",
remark: "",
feedbackSelections: createEmptyFeedbackSelections()
}
};
@@ -616,6 +626,7 @@ export default {
this.feedbackForm = {
id: null,
source: "",
remark: "",
feedbackSelections: createEmptyFeedbackSelections()
};
},
@@ -666,6 +677,7 @@ export default {
this.feedbackForm = {
id: row.id,
source: row.source === null || row.source === undefined ? "" : String(row.source),
remark: row.remark || "",
feedbackSelections: this.parseFeedbackValue(row.intentionProductValue)
};
this.feedbackDialogVisible = true;
@@ -683,6 +695,7 @@ export default {
const payload = {
id: this.feedbackForm.id,
source: this.feedbackForm.source || null,
remark: this.feedbackForm.remark || null,
feedbackItems
};
this.feedbackSubmitting = true;