Commit df7a87f2 by wuchao

回访计划

parent c390e525
......@@ -121,67 +121,6 @@ export const getKeyPersonUser = (param) => {
})
}
// ===== 回访记录(办理)模块 =====
// 列表
export const findVisitRecordList = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/findVisitRecordList',
method: 'post',
data: param
})
}
// 获取本次评分统计数据
export const getScoreStatistics = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonStatistics/getScoreStatistics',
method: 'post',
data: param
})
}
// 详情(含基本信息、计划信息、历史记录)
export const getVisitRecordDetail = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/getVisitRecordDetail',
method: 'post',
data: param
})
}
// 新增回访记录
export const insertVisitRecord = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/insertVisitRecord',
method: 'post',
data: param
})
}
// 获取回访按钮权限
export const getVisitButtonPower = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/getVisitButtonPower',
method: 'post',
data: param
})
}
// 历史回访记录分页
export const selectVisitHistoryPage = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/selectVisitHistoryPage',
method: 'post',
data: param
})
}
// 待办统计(正常/临期)
export const getPendingStats = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/getPendingStats',
method: 'post',
data: param
})
}
// ===== 按钮可见权限配置 =====
// 列表(来源于字典 page_button,并合并已配置的可见部门)
export const selectPageButtonPowerList = (param) => {
......@@ -380,3 +319,45 @@ export const getDualDetail = (param) => {
data: param
})
}
// ===== 回访记录办理 =====
// 查询回访记录列表
export const findVisitRecordList = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/findVisitRecordList',
method: 'post',
data: param
})
}
// 获取人员信息(用于回访)
export const getPersonInfoForVisit = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/getPersonInfoForVisit',
method: 'post',
data: param
})
}
// 保存回访记录
export const saveVisitRecord = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/saveVisitRecord',
method: 'post',
data: param
})
}
// 查询回访历史(分页)
export const selectVisitHistoryPage = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/selectVisitHistoryPage',
method: 'post',
data: param
})
}
// 查询回访记录详情
export const getVisitRecordDetail = (param) => {
return axios.request({
url: '/api/ac/jilinsscgsdp/keyPersonVisitRecord/getVisitRecordDetail',
method: 'post',
data: param
})
}
......@@ -576,6 +576,14 @@ const buildFilters = {
forward: () => ({ name: '', card_no: '', city_id: '', area_id: '', street_id: '', community_id: '', push_status: '' })
}
// 身份证号统一转码、规整(去除所有空白并大写),避免查询、筛选不生效
function normalizeCardNo (val) {
if (!val) return ''
const s = String(val).replace(/\s+/g, '').trim()
if (!s) return ''
return s.toUpperCase()
}
export default {
name: 'key-person-dual-index',
props: {
......@@ -816,7 +824,15 @@ export default {
const api = apiMap[tab]
if (!api) return
this.loading[tab] = true
const params = Object.assign({}, this.filters[tab], { sys_type: this.currentCategory })
// 统一处理身份证号(空白 -> 删除,末位 X -> 大写),避免查询/筛选失败
const rawFilters = this.filters[tab] || {}
const normalizedCardNo = normalizeCardNo(rawFilters.card_no)
const params = Object.assign(
{},
rawFilters,
{ card_no: normalizedCardNo, cardNo: normalizedCardNo },
{ sys_type: this.currentCategory }
)
const payload = Object.assign({}, this.pagers[tab], { params })
api(payload).then(ret => {
if (ret.data && ret.data.errcode === 0) {
......@@ -926,10 +942,16 @@ export default {
if (pageNo !== undefined && pageNo !== null) {
this.pushModal.personPager.pageNo = pageNo
}
const normalizedCardNo = normalizeCardNo(this.pushModal.personFilters.card_no)
const payload = {
pageNo: this.pushModal.personPager.pageNo,
pageSize: this.pushModal.personPager.pageSize,
params: Object.assign({}, this.pushModal.personFilters, { sys_type: this.currentCategory })
params: Object.assign(
{},
this.pushModal.personFilters,
{ card_no: normalizedCardNo, cardNo: normalizedCardNo },
{ sys_type: this.currentCategory }
)
}
this.pushModal.personLoading = true
getDualPersonOptions(payload).then(ret => {
......
......@@ -19,7 +19,6 @@
<Form :label-width="100">
<FormItem label="风险等级"><Input :value="renderRatingType(detail.rating_type)" disabled /></FormItem>
<FormItem label="回访人"><Input :value="detail.visit_user || '-'" disabled /></FormItem>
<FormItem label="回访部门"><Input :value="detail.visit_user_company || '-'" disabled /></FormItem>
<FormItem label="回访时间"><Input :value="formatDateTime(detail.visit_time)" disabled /></FormItem>
<FormItem label="回访记录"><Input type="textarea" :rows="4" :value="detail.visit_record || '-'" disabled /></FormItem>
<FormItem label="回访图片">
......@@ -44,9 +43,8 @@
<div>
<Form :label-width="100">
<FormItem label="风险等级"><Input :value="renderRatingType(recordModal.data.rating_type)" disabled /></FormItem>
<FormItem label="回访时间"><Input :value="recordModal.data.visit_time || '-'" disabled /></FormItem>
<FormItem label="回访时间"><Input :value="formatDateTime(recordModal.data.visit_time)" disabled /></FormItem>
<FormItem label="回访人"><Input :value="recordModal.data.visit_user || recordModal.data.do_user_name || recordModal.data.operator_name || recordModal.data.create_user_name || '-'" disabled /></FormItem>
<FormItem label="回访部门"><Input :value="recordModal.data.visit_user_company || '-'" disabled /></FormItem>
<FormItem label="回访记录"><Input type="textarea" :rows="4" :value="recordModal.data.visit_record || '-'" disabled /></FormItem>
<FormItem label="回访图片">
<div class="img-list">
......@@ -87,11 +85,9 @@ export default {
page: { pageNo: 1, pageSize: 10, totalRecord: 0 },
visitHistoryColumns: [
{ title: '风险等级', key: 'rating_type', align: 'center', width: 120, render: (h, { row }) => h('span', this.renderRatingType(row.rating_type)) },
{ title: '回访人', key: 'visit_user', align: 'center', width: 120 },
{ title: '回访部门', key: 'visit_user_company', align: 'center', width: 180 },
{ title: '回访时间', key: 'visit_time', align: 'center', width: 180, render: (h, { row }) => h('span', this.formatDateTime(row.visit_time)) },
{ title: '回访状态', key: 'do_status', align: 'center', width: 120, render: (h, { row }) => h('span', this.renderVisitStatus(row.do_status)) },
{ title: '操作', key: 'action', align: 'center', width: 100, render: (h, { row }) => (String(row.do_status) === '2' ? h('span', '') : h('Button', { props: { type: 'primary', size: 'small' }, on: { click: () => this.openRecord(row) } }, '查看')) }
{ title: '回访人', key: 'visit_user', align: 'center', width: 120 },
{ title: '操作', key: 'action', align: 'center', width: 100, render: (h, { row }) => h('Button', { props: { type: 'primary', size: 'small' }, on: { click: () => this.openRecord(row) } }, '详情') }
],
ratingTypeOptions: [],
nationMap: {},
......@@ -142,7 +138,11 @@ export default {
this.fetchHistory({ key_person_id: this.key_person_id, order_by: 'visit_time desc' })
},
fetchHistory (extraParams) {
const params = Object.assign({}, extraParams)
const params = Object.assign(
{},
extraParams,
{ rating_dict_type: String(this.rating_dict_type || '') }
)
const payload = { params, pageNo: this.page.pageNo, pageSize: this.page.pageSize }
selectVisitHistoryPage(payload).then((ret) => {
if (ret && ret.data && ret.data.errcode === 0) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论