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
74f4fe3d
Commit
74f4fe3d
authored
Nov 18, 2025
by
wangchunyang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://code.palacesun.com/wuchao/jilinzhongdianrenqun-web
parents
27678366
b0c326b6
全部展开
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
153 行增加
和
124 行删除
+153
-124
src/api/key-person.js
+51
-61
src/view/key-person/index.vue
+70
-53
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 @
74f4fe3d
...
@@ -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
)
=>
{
...
@@ -244,6 +183,15 @@ export const getOverdueWarningStatistics = (param) => {
...
@@ -244,6 +183,15 @@ export const getOverdueWarningStatistics = (param) => {
})
})
}
}
// 获取评分统计数据
export
const
getScoreStatistics
=
(
param
)
=>
{
return
axios
.
request
({
url
:
'/api/ac/jilinsscgsdp/keyPersonStatistics/getScoreStatistics'
,
method
:
'post'
,
data
:
param
})
}
// ===== 评分等级维护(sys_dict: rating_level) =====
// ===== 评分等级维护(sys_dict: rating_level) =====
export
const
selectLevelSetList
=
(
param
)
=>
{
export
const
selectLevelSetList
=
(
param
)
=>
{
return
axios
.
request
({
return
axios
.
request
({
...
@@ -380,3 +328,45 @@ export const getDualDetail = (param) => {
...
@@ -380,3 +328,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/index.vue
View file @
74f4fe3d
...
@@ -339,7 +339,35 @@
...
@@ -339,7 +339,35 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getScoreStatistics
,
getOverdueWarningStatistics
,
getRatingStatistics
}
from
'@/api/key-person'
import
{
getScoreStatistics
,
getRatingStatistics
,
getOverdueWarningStatistics
,
selectCurrentUserInfo
}
from
'@/api/key-person'
const
createVisitWarningBucket
=
()
=>
({
total
:
0
,
completed
:
0
,
uncompleted
:
0
,
nearOverdue
:
0
,
overdue
:
0
})
const
createVisitWarningData
=
()
=>
({
summary
:
createVisitWarningBucket
(),
mentalPatient
:
createVisitWarningBucket
(),
released
:
createVisitWarningBucket
(),
minors
:
createVisitWarningBucket
()
})
const
VISIT_BUCKET_FIELDS
=
[
'total'
,
'completed'
,
'uncompleted'
,
'nearOverdue'
,
'overdue'
]
const
normalizeVisitWarningResponse
=
(
payload
=
{})
=>
{
const
normalized
=
createVisitWarningData
()
Object
.
keys
(
normalized
).
forEach
((
key
)
=>
{
const
source
=
payload
[
key
]
||
{}
VISIT_BUCKET_FIELDS
.
forEach
(
field
=>
{
normalized
[
key
][
field
]
=
Number
(
source
[
field
])
||
0
})
})
return
normalized
}
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -365,36 +393,8 @@ export default {
...
@@ -365,36 +393,8 @@ export default {
released
:
{
total
:
0
,
categories
:
[]
}
released
:
{
total
:
0
,
categories
:
[]
}
},
},
// 临期预警数据
// 临期预警数据
overdueWarningData
:
{
overdueWarningData
:
createVisitWarningData
(),
summary
:
{
visitScopeParams
:
null
,
total
:
0
,
completed
:
0
,
uncompleted
:
0
,
nearOverdue
:
0
,
overdue
:
0
},
mentalPatient
:
{
total
:
0
,
completed
:
0
,
uncompleted
:
0
,
nearOverdue
:
0
,
overdue
:
0
},
released
:
{
total
:
0
,
completed
:
0
,
uncompleted
:
0
,
nearOverdue
:
0
,
overdue
:
0
},
minors
:
{
total
:
0
,
completed
:
0
,
uncompleted
:
0
,
nearOverdue
:
0
,
overdue
:
0
}
},
// 评分临期预警数据
// 评分临期预警数据
ratingWarningData
:
{
ratingWarningData
:
{
summary
:
{
summary
:
{
...
@@ -451,21 +451,38 @@ export default {
...
@@ -451,21 +451,38 @@ export default {
this
.
$Message
.
error
(
'获取数据失败,请稍后重试'
)
this
.
$Message
.
error
(
'获取数据失败,请稍后重试'
)
})
})
},
},
// 获取临期预警统计数据
// 获取临期预警统计数据(基于回访状态)
getOverdueWarningData
()
{
async
getOverdueWarningData
()
{
getOverdueWarningStatistics
().
then
(
ret
=>
{
try
{
if
(
ret
.
data
.
errcode
===
0
)
{
const
scopeParams
=
await
this
.
getVisitScopeParams
()
// 只有在成功获取数据时才更新
const
res
=
await
getOverdueWarningStatistics
(
scopeParams
||
{})
this
.
overdueWarningData
=
ret
.
data
.
data
if
(
res
&&
res
.
data
&&
res
.
data
.
errcode
===
0
)
{
}
else
{
this
.
overdueWarningData
=
normalizeVisitWarningResponse
(
res
.
data
.
data
)
// 请求失败,显示错误提示,保持初始数据不变
return
this
.
$Message
.
error
(
ret
.
data
.
errmsg
||
'获取临期预警数据失败'
)
}
}
}).
catch
(
err
=>
{
const
message
=
(
res
&&
res
.
data
&&
res
.
data
.
errmsg
)
||
'获取失败'
// 网络错误或其他异常,显示错误提示,保持初始数据不变
throw
new
Error
(
message
)
}
catch
(
err
)
{
console
.
error
(
'获取临期预警数据失败:'
,
err
)
console
.
error
(
'获取临期预警数据失败:'
,
err
)
this
.
$Message
.
error
(
'获取临期预警数据失败,请稍后重试'
)
this
.
$Message
.
error
(
'获取回访临期预警数据失败,请稍后重试'
)
})
}
},
async
getVisitScopeParams
()
{
if
(
this
.
visitScopeParams
)
{
return
this
.
visitScopeParams
}
try
{
const
ret
=
await
selectCurrentUserInfo
({})
if
(
ret
&&
ret
.
data
&&
ret
.
data
.
errcode
===
0
)
{
this
.
visitScopeParams
=
ret
.
data
.
data
||
{}
}
else
{
this
.
visitScopeParams
=
{}
}
}
catch
(
err
)
{
console
.
error
(
'获取用户范围失败:'
,
err
)
this
.
visitScopeParams
=
{}
}
return
this
.
visitScopeParams
},
},
// 获取评分临期预警统计数据
// 获取评分临期预警统计数据
getRatingWarningData
()
{
getRatingWarningData
()
{
...
@@ -830,24 +847,24 @@ export default {
...
@@ -830,24 +847,24 @@ export default {
'km'
:
'/keyPerson/keyPersonVisitRecordKm'
// 重点未成年人
'km'
:
'/keyPerson/keyPersonVisitRecordKm'
// 重点未成年人
}
}
// 根据状态类型确定查询参数
// 根据状态类型确定查询参数
(传递 visit_status 用于自动设置回访状态筛选)
let
query
=
{}
let
query
=
{}
switch
(
statusType
)
{
switch
(
statusType
)
{
case
'completed'
:
case
'completed'
:
// 已办:
do_status=1
// 已办:
不设置 visit_status,因为已办是已完成的状态
query
=
{
do_status
:
'1'
}
query
=
{}
break
break
case
'uncompleted'
:
case
'uncompleted'
:
//
待办:do_status=0
//
正常待办 -> 正常待访:visit_status=1
query
=
{
do_status
:
'0
'
}
query
=
{
visit_status
:
'1
'
}
break
break
case
'nearOverdue'
:
case
'nearOverdue'
:
// 临期待办
:do_status=0&is_overdue=1
// 临期待办
-> 临期待访:visit_status=2
query
=
{
do_status
:
'0'
,
is_overdue
:
'1
'
}
query
=
{
visit_status
:
'2
'
}
break
break
case
'overdue'
:
case
'overdue'
:
// 超期未办
:do_status=2
// 超期未办
-> 超期待访:visit_status=3
query
=
{
do_status
:
'2
'
}
query
=
{
visit_status
:
'3
'
}
break
break
}
}
...
...
src/view/key-person/key-person-dual/index.vue
View file @
74f4fe3d
...
@@ -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 @
74f4fe3d
...
@@ -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 @
74f4fe3d
差异被折叠。
点击展开。
src/view/key-person/key-person-visit/index.vue
View file @
74f4fe3d
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论