Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jilinzhongdianrenqun-web
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
吴超
jilinzhongdianrenqun-web
Commits
df7a87f2
Commit
df7a87f2
authored
Nov 17, 2025
by
wuchao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
回访计划
parent
c390e525
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
74 行增加
和
71 行删除
+74
-71
src/api/key-person.js
+42
-61
src/view/key-person/key-person-dual/index.vue
+24
-2
src/view/key-person/key-person-visit-record/components/VisitHistoryModal.vue
+8
-8
src/view/key-person/key-person-visit-record/index.vue
+0
-0
src/view/key-person/key-person-visit/index.vue
+0
-0
没有找到文件。
src/api/key-person.js
View file @
df7a87f2
...
@@ -121,67 +121,6 @@ export const getKeyPersonUser = (param) => {
...
@@ -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,并合并已配置的可见部门)
// 列表(来源于字典 page_button,并合并已配置的可见部门)
export
const
selectPageButtonPowerList
=
(
param
)
=>
{
export
const
selectPageButtonPowerList
=
(
param
)
=>
{
...
@@ -380,3 +319,45 @@ export const getDualDetail = (param) => {
...
@@ -380,3 +319,45 @@ export const getDualDetail = (param) => {
data
:
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
})
}
src/view/key-person/key-person-dual/index.vue
View file @
df7a87f2
...
@@ -576,6 +576,14 @@ const buildFilters = {
...
@@ -576,6 +576,14 @@ const buildFilters = {
forward
:
()
=>
({
name
:
''
,
card_no
:
''
,
city_id
:
''
,
area_id
:
''
,
street_id
:
''
,
community_id
:
''
,
push_status
:
''
})
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
{
export
default
{
name
:
'key-person-dual-index'
,
name
:
'key-person-dual-index'
,
props
:
{
props
:
{
...
@@ -816,7 +824,15 @@ export default {
...
@@ -816,7 +824,15 @@ export default {
const
api
=
apiMap
[
tab
]
const
api
=
apiMap
[
tab
]
if
(
!
api
)
return
if
(
!
api
)
return
this
.
loading
[
tab
]
=
true
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
})
const
payload
=
Object
.
assign
({},
this
.
pagers
[
tab
],
{
params
})
api
(
payload
).
then
(
ret
=>
{
api
(
payload
).
then
(
ret
=>
{
if
(
ret
.
data
&&
ret
.
data
.
errcode
===
0
)
{
if
(
ret
.
data
&&
ret
.
data
.
errcode
===
0
)
{
...
@@ -926,10 +942,16 @@ export default {
...
@@ -926,10 +942,16 @@ export default {
if
(
pageNo
!==
undefined
&&
pageNo
!==
null
)
{
if
(
pageNo
!==
undefined
&&
pageNo
!==
null
)
{
this
.
pushModal
.
personPager
.
pageNo
=
pageNo
this
.
pushModal
.
personPager
.
pageNo
=
pageNo
}
}
const
normalizedCardNo
=
normalizeCardNo
(
this
.
pushModal
.
personFilters
.
card_no
)
const
payload
=
{
const
payload
=
{
pageNo
:
this
.
pushModal
.
personPager
.
pageNo
,
pageNo
:
this
.
pushModal
.
personPager
.
pageNo
,
pageSize
:
this
.
pushModal
.
personPager
.
pageSize
,
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
this
.
pushModal
.
personLoading
=
true
getDualPersonOptions
(
payload
).
then
(
ret
=>
{
getDualPersonOptions
(
payload
).
then
(
ret
=>
{
...
...
src/view/key-person/key-person-visit-record/components/VisitHistoryModal.vue
View file @
df7a87f2
...
@@ -19,7 +19,6 @@
...
@@ -19,7 +19,6 @@
<Form
:label-width=
"100"
>
<Form
:label-width=
"100"
>
<FormItem
label=
"风险等级"
><Input
:value=
"renderRatingType(detail.rating_type)"
disabled
/></FormItem>
<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 || '-'"
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
:value=
"formatDateTime(detail.visit_time)"
disabled
/></FormItem>
<FormItem
label=
"回访记录"
><Input
type=
"textarea"
:rows=
"4"
:value=
"detail.visit_record || '-'"
disabled
/></FormItem>
<FormItem
label=
"回访记录"
><Input
type=
"textarea"
:rows=
"4"
:value=
"detail.visit_record || '-'"
disabled
/></FormItem>
<FormItem
label=
"回访图片"
>
<FormItem
label=
"回访图片"
>
...
@@ -44,9 +43,8 @@
...
@@ -44,9 +43,8 @@
<div>
<div>
<Form
:label-width=
"100"
>
<Form
:label-width=
"100"
>
<FormItem
label=
"风险等级"
><Input
:value=
"renderRatingType(recordModal.data.rating_type)"
disabled
/></FormItem>
<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 || 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=
"回访记录"
><Input
type=
"textarea"
:rows=
"4"
:value=
"recordModal.data.visit_record || '-'"
disabled
/></FormItem>
<FormItem
label=
"回访图片"
>
<FormItem
label=
"回访图片"
>
<div
class=
"img-list"
>
<div
class=
"img-list"
>
...
@@ -87,11 +85,9 @@ export default {
...
@@ -87,11 +85,9 @@ export default {
page
:
{
pageNo
:
1
,
pageSize
:
10
,
totalRecord
:
0
},
page
:
{
pageNo
:
1
,
pageSize
:
10
,
totalRecord
:
0
},
visitHistoryColumns
:
[
visitHistoryColumns
:
[
{
title
:
'风险等级'
,
key
:
'rating_type'
,
align
:
'center'
,
width
:
120
,
render
:
(
h
,
{
row
})
=>
h
(
'span'
,
this
.
renderRatingType
(
row
.
rating_type
))
},
{
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
:
'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
:
'visit_user'
,
align
:
'center'
,
width
:
120
},
{
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
:
'action'
,
align
:
'center'
,
width
:
100
,
render
:
(
h
,
{
row
})
=>
h
(
'Button'
,
{
props
:
{
type
:
'primary'
,
size
:
'small'
},
on
:
{
click
:
()
=>
this
.
openRecord
(
row
)
}
},
'详情'
)
}
],
],
ratingTypeOptions
:
[],
ratingTypeOptions
:
[],
nationMap
:
{},
nationMap
:
{},
...
@@ -142,7 +138,11 @@ export default {
...
@@ -142,7 +138,11 @@ export default {
this
.
fetchHistory
({
key_person_id
:
this
.
key_person_id
,
order_by
:
'visit_time desc'
})
this
.
fetchHistory
({
key_person_id
:
this
.
key_person_id
,
order_by
:
'visit_time desc'
})
},
},
fetchHistory
(
extraParams
)
{
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
}
const
payload
=
{
params
,
pageNo
:
this
.
page
.
pageNo
,
pageSize
:
this
.
page
.
pageSize
}
selectVisitHistoryPage
(
payload
).
then
((
ret
)
=>
{
selectVisitHistoryPage
(
payload
).
then
((
ret
)
=>
{
if
(
ret
&&
ret
.
data
&&
ret
.
data
.
errcode
===
0
)
{
if
(
ret
&&
ret
.
data
&&
ret
.
data
.
errcode
===
0
)
{
...
...
src/view/key-person/key-person-visit-record/index.vue
View file @
df7a87f2
差异被折叠。
点击展开。
src/view/key-person/key-person-visit/index.vue
View file @
df7a87f2
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论