Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Y
yishuju-ui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
yishuju-ui
Commits
f86181cc
Commit
f86181cc
authored
Feb 12, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
字典改成调用接口
parent
b928c284
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
54 additions
and
245 deletions
+54
-245
index.vue
src/views/property/case-allocation/index.vue
+6
-15
callDrawer.vue
src/views/property/case-detail/components/callDrawer.vue
+3
-35
reduceDrawer.vue
src/views/property/case-detail/components/reduceDrawer.vue
+3
-12
returnModal.vue
src/views/property/case-detail/components/returnModal.vue
+3
-16
splitDrawer.vue
src/views/property/case-detail/components/splitDrawer.vue
+5
-12
caseDetailModal.vue
src/views/property/import/components/caseDetailModal.vue
+8
-42
index.vue
src/views/workplace/audit/index.vue
+8
-45
index.vue
src/views/workplace/case/index.vue
+8
-43
index.vue
src/views/workplace/todo/index.vue
+10
-25
No files found.
src/views/property/case-allocation/index.vue
View file @
f86181cc
...
...
@@ -51,7 +51,8 @@
import
{
getPlatformPage
}
from
'@/api/platform'
;
import
{
getManageOrgPage
}
from
'@/api/manageOrg'
;
import
{
getTenantPage
}
from
'@/api/tenant'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
DistributeStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"DistributeStatus"
,
"CaseStatus"
);
const
allocationModalRef
=
ref
();
const
caseLRef
=
ref
();
const
selectdList
=
ref
([]);
...
...
@@ -84,11 +85,6 @@
});
query
();
};
const
caseStatusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'撤案'
,
value
:
'withdraw'
},
{
label
:
'留案'
,
value
:
'stay'
},
];
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
if
(
obj
.
arealist
&&
obj
.
arealist
.
length
>
0
)
{
...
...
@@ -111,11 +107,6 @@
getStatisis
(
obj
);
return
obj
;
};
const
distributeStatusOpt
=
[
{
label
:
'未分派'
,
value
:
'undistributed'
},
{
label
:
'分派到调解中心'
,
value
:
'tenant'
},
{
label
:
'分派到CPE'
,
value
:
'CPE'
},
];
const
onCheckboxAll
=
(
flag
)
=>
{
if
(
flag
.
checked
)
{
selectdList
.
value
=
flag
.
records
;
...
...
@@ -199,7 +190,7 @@
title
:
'分派状态'
,
showOverflow
:
'tooltip'
,
width
:
80
,
enum
:
distributeStatusOpt
,
enum
:
DistributeStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
78
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -207,7 +198,7 @@
return
(
<>
{
row
.
distributeStatus
?
distributeStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
distributeStatus
)?.
label
?
DistributeStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
distributeStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -317,14 +308,14 @@
title
:
'案件状态'
,
showOverflow
:
'tooltip'
,
width
:
80
,
enum
:
caseStatusOpt
,
enum
:
CaseStatus
,
// search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
caseStatus
?
caseStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
{
row
.
caseStatus
?
CaseStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
<
/
>
);
},
...
...
src/views/property/case-detail/components/callDrawer.vue
View file @
f86181cc
...
...
@@ -128,7 +128,7 @@
class=
"mr-2 mb-2"
:type=
"form.phoneResultStatus === item1.value ? 'primary' : null"
plain
v-for=
"(item1, index1) in
statusArr
"
v-for=
"(item1, index1) in
PhoneResultStatus
"
:key=
"`btn${index1}`"
@
click=
"form.phoneResultStatus = item1.value"
>
{{ item1.label }}
</el-button
...
...
@@ -233,6 +233,8 @@
import
{
Upload
}
from
'@element-plus/icons-vue'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
saveTrackRecord
}
from
'@/api/property'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
envs
=
getAppEnvConfig
();
const
url
=
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/upload'
;
const
showModal
=
ref
(
false
);
...
...
@@ -309,40 +311,6 @@
const
onHide
=
(
done
)
=>
{
done
();
};
const
statusArr
=
[
{
label
:
'后续再跟进'
,
value
:
'later'
,
},
{
label
:
'承诺还款'
,
value
:
'Promise_Repayment'
,
},
{
label
:
'暂无还款意愿'
,
value
:
'No_Repay'
,
},
{
label
:
'要求停催'
,
value
:
'Stop_Urging'
,
},
{
label
:
'情绪激动抗拒'
,
value
:
'resistance'
,
},
{
label
:
'拒绝还款'
,
value
:
'Refuse_Repayment'
,
},
{
label
:
'已还款'
,
value
:
'Repaired'
,
},
{
label
:
'代履行还款'
,
value
:
'repayment_others'
,
},
];
const
selectdList
=
ref
([]);
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
...
...
src/views/property/case-detail/components/reduceDrawer.vue
View file @
f86181cc
...
...
@@ -21,7 +21,7 @@
<el-form-item
class=
"w-full"
label=
"减免类型:"
prop=
"name"
label-width=
"82px"
>
<el-select
v-model=
"form.reduceType"
placeholder=
"请选择"
>
<el-option
v-for=
"item in
options
"
v-for=
"item in
ReduceType
"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
...
...
@@ -92,6 +92,8 @@
import
{
onMounted
}
from
'vue'
;
import
{
watch
}
from
'vue'
;
import
Decimal
from
'decimal.js'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
emits
=
defineEmits
([
'success'
]);
const
showModal
=
ref
(
false
);
const
tabledata
=
ref
([]);
...
...
@@ -144,17 +146,6 @@
const
onHide
=
(
done
)
=>
{
done
();
};
const
options
=
[
{
value
:
'settle'
,
label
:
'结清减免'
,
},
{
value
:
'by_stages'
,
label
:
'分期减免'
,
},
];
const
config
=
reactive
({
checkboxConfig
:
{
checkMethod
:
({
row
})
=>
{
...
...
src/views/property/case-detail/components/returnModal.vue
View file @
f86181cc
...
...
@@ -194,7 +194,8 @@
import
{
reactive
,
ref
}
from
'vue'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
ElMessage
}
from
'element-plus'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
RepayType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"RepayType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
import
{
saveRepayRecord
}
from
'@/api/property'
;
const
envs
=
getAppEnvConfig
();
const
data
=
ref
([]);
...
...
@@ -262,26 +263,12 @@
dialogImageUrl
.
value
=
uploadFile
.
url
;
dialogVisible
.
value
=
true
;
};
const
options
=
[
{
value
:
'repay'
,
label
:
'直接还款'
,
},
{
value
:
'by_stages'
,
label
:
'分期还款'
,
},
{
value
:
'settle'
,
label
:
'结清减免还款'
,
},
];
const
submitForm
=
()
=>
{
console
.
log
(
'currentInfo.value'
,
currentInfo
.
value
,
currentDetail
.
value
,
tabledata
.
value
);
formRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
const
param
=
{
repayType
:
options
.
find
((
v
)
=>
v
.
label
===
currentType
.
value
).
value
,
repayType
:
RepayType
.
value
.
find
((
v
)
=>
v
.
label
===
currentType
.
value
).
value
,
...
form
,
repayAmount
:
form
.
realRepayAmount
,
borrower
:
currentInfo
.
value
.
borrower
,
...
...
src/views/property/case-detail/components/splitDrawer.vue
View file @
f86181cc
...
...
@@ -144,7 +144,9 @@
import
{
savebyStages
}
from
'@/api/property'
;
import
{
getByIdPlatforms
}
from
'@/api/platform'
;
import
Decimal
from
'decimal.js'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
RepayStatus
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"RepayStatus"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
ProTableRef
=
ref
();
const
showModal
=
ref
(
false
);
const
editFirst
=
ref
(
false
);
...
...
@@ -302,16 +304,7 @@
//
});
};
const
repayStatusOpt
=
[
{
value
:
'pending'
,
label
:
'待还款'
,
},
{
value
:
'over'
,
label
:
'已还款'
,
},
];
const
selectdList
=
ref
([]);
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
...
...
@@ -420,7 +413,7 @@
return
(
<>
{
row
.
repayStatus
?
repayStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
repayStatus
)?.
label
?
RepayStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
repayStatus
)?.
label
:
''
}
<
/
>
);
...
...
src/views/property/import/components/caseDetailModal.vue
View file @
f86181cc
...
...
@@ -26,46 +26,12 @@
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
pengLoanExcel
}
from
'@/api/import'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
ProTableRef
=
ref
();
const
showModal
=
ref
(
false
);
const
data
=
ref
([]);
const
currentAccount
=
ref
(
undefined
);
const
followStatusOpt
=
[
{
label
:
'接通后挂断'
,
value
:
'hang_up'
},
{
label
:
'接通有实质进展'
,
value
:
'progress'
},
{
label
:
'接通有效转告'
,
value
:
'pass_on'
},
{
label
:
'接通拒绝转告'
,
value
:
'no_pass'
},
{
label
:
'接听后挂断'
,
value
:
'Hang_up_after_answering'
},
{
label
:
'接通无应答'
,
value
:
'No_response_when_connected'
},
{
label
:
'称与债人无关'
,
value
:
'Claims_unrelated_to_creditors'
},
{
label
:
'称非本人'
,
value
:
'Claiming_not_to_be_myself'
},
{
label
:
'无人接听'
,
value
:
'no_answer'
},
{
label
:
'关机'
,
value
:
'Shutdown'
},
{
label
:
'空号'
,
value
:
'dead_number'
},
{
label
:
'占线/忙音/正在通话中'
,
value
:
'Busy'
},
{
label
:
'停机'
,
value
:
'closing_down'
},
{
label
:
'机器人回复'
,
value
:
'Robot_reply'
},
{
label
:
'微信'
,
value
:
'WeChat'
},
{
label
:
'短信'
,
value
:
'short_message'
},
{
label
:
'QQ'
,
value
:
'QQ'
},
{
label
:
'飞书'
,
value
:
'fly'
},
{
label
:
'钉钉'
,
value
:
'DING'
},
];
const
phoneResultStatusOpt
=
[
{
label
:
'后续再跟进'
,
value
:
'later'
},
{
label
:
'承诺还款'
,
value
:
'Promise_Repayment'
},
{
label
:
'暂无还款意愿'
,
value
:
'No_Repay'
},
{
label
:
'要求停催'
,
value
:
'Stop_Urging'
},
{
label
:
'情绪激动抗拒'
,
value
:
'resistance'
},
{
label
:
'拒绝还款'
,
value
:
'Refuse_Repayment'
},
{
label
:
'已还款'
,
value
:
'Repaired'
},
{
label
:
'代履行还款'
,
value
:
'repayment_others'
},
];
const
caseStatusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'撤案'
,
value
:
'withdraw'
},
{
label
:
'留案'
,
value
:
'stay'
},
];
const
exportEvent
=
()
=>
{
if
(
ProTableRef
.
value
&&
ProTableRef
.
value
.
element
)
{
ProTableRef
.
value
.
element
.
exportData
({
...
...
@@ -190,7 +156,7 @@
field
:
'followStatus'
,
title
:
'跟进结果'
,
width
:
80
,
enum
:
followStatusOpt
,
enum
:
FollowStatus
,
// search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -198,7 +164,7 @@
return
(
<>
{
row
.
followStatus
?
followStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
?
FollowStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -209,7 +175,7 @@
field
:
'phoneResultStatus'
,
title
:
'跟进状态'
,
width
:
80
,
enum
:
phoneResultStatusOpt
,
enum
:
PhoneResultStatus
,
// search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -217,7 +183,7 @@
return
(
<>
{
row
.
phoneResultStatus
?
phoneResultStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
?
PhoneResultStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -228,14 +194,14 @@
field
:
'caseStatus'
,
title
:
'案件状态'
,
width
:
80
,
enum
:
caseStatusOpt
,
enum
:
CaseStatus
,
// search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
caseStatus
?
caseStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
{
row
.
caseStatus
?
CaseStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
<
/
>
);
},
...
...
src/views/workplace/audit/index.vue
View file @
f86181cc
...
...
@@ -13,7 +13,7 @@
<el-tab-pane
:label=
"item.label"
:name=
"item.value"
v-for=
"(item, index) in
auditStatusOpt
"
v-for=
"(item, index) in
AuditStatus
"
:key=
"index"
></el-tab-pane>
</el-tabs>
...
...
@@ -48,7 +48,8 @@
import
{
useUserStore
}
from
'@/stores/modules/user'
;
const
{
userInfo
}
=
useUserStore
();
import
{
getTenantPage
}
from
'@/api/tenant'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
envs
=
getAppEnvConfig
();
import
{
reactive
,
ref
}
from
'vue'
;
const
downloadfile
=
inject
(
'download'
);
...
...
@@ -63,44 +64,6 @@
selectdList
.
value
=
row
.
records
;
};
const
followStatusOpt
=
[
{
label
:
'接通后挂断'
,
value
:
'hang_up'
},
{
label
:
'接通有实质进展'
,
value
:
'progress'
},
{
label
:
'接通有效转告'
,
value
:
'pass_on'
},
{
label
:
'接通拒绝转告'
,
value
:
'no_pass'
},
{
label
:
'接听后挂断'
,
value
:
'Hang_up_after_answering'
},
{
label
:
'接通无应答'
,
value
:
'No_response_when_connected'
},
{
label
:
'称与债人无关'
,
value
:
'Claims_unrelated_to_creditors'
},
{
label
:
'称非本人'
,
value
:
'Claiming_not_to_be_myself'
},
{
label
:
'无人接听'
,
value
:
'no_answer'
},
{
label
:
'关机'
,
value
:
'Shutdown'
},
{
label
:
'空号'
,
value
:
'dead_number'
},
{
label
:
'占线/忙音/正在通话中'
,
value
:
'Busy'
},
{
label
:
'停机'
,
value
:
'closing_down'
},
{
label
:
'机器人回复'
,
value
:
'Robot_reply'
},
{
label
:
'微信'
,
value
:
'WeChat'
},
{
label
:
'短信'
,
value
:
'short_message'
},
{
label
:
'QQ'
,
value
:
'QQ'
},
{
label
:
'飞书'
,
value
:
'fly'
},
{
label
:
'钉钉'
,
value
:
'DING'
},
];
const
phoneResultStatusOpt
=
[
{
label
:
'后续再跟进'
,
value
:
'later'
},
{
label
:
'承诺还款'
,
value
:
'Promise_Repayment'
},
{
label
:
'暂无还款意愿'
,
value
:
'No_Repay'
},
{
label
:
'要求停催'
,
value
:
'Stop_Urging'
},
{
label
:
'情绪激动抗拒'
,
value
:
'resistance'
},
{
label
:
'拒绝还款'
,
value
:
'Refuse_Repayment'
},
{
label
:
'已还款'
,
value
:
'Repaired'
},
{
label
:
'代履行还款'
,
value
:
'repayment_others'
},
];
const
auditStatusOpt
=
[
{
label
:
'未稽核'
,
value
:
'un_audit'
},
{
label
:
'稽核中'
,
value
:
'audit'
},
{
label
:
'已拒绝'
,
value
:
'rejected'
},
{
label
:
'已完成'
,
value
:
'complete'
},
{
label
:
'稽核通过'
,
value
:
'passed'
},
];
const
activeName
=
ref
(
'un_audit'
);
const
callMode
=
ref
(
''
);
const
paramCallback
=
(
param
)
=>
{
...
...
@@ -240,7 +203,7 @@
title
:
'拨打跟进结果'
,
showOverflow
:
'tooltip'
,
width
:
120
,
enum
:
followStatusOpt
,
enum
:
FollowStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
,
multiple
:
true
,
'collapse-tags'
:
true
},
...
...
@@ -259,7 +222,7 @@
return
(
<>
{
row
.
followStatus
?
followStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
?
FollowStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -271,7 +234,7 @@
title
:
'拨打处置状态'
,
showOverflow
:
'tooltip'
,
width
:
120
,
enum
:
phoneResultStatusOpt
,
enum
:
PhoneResultStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
78
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -279,7 +242,7 @@
return
(
<>
{
row
.
phoneResultStatus
?
phoneResultStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
?
PhoneResultStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -296,7 +259,7 @@
return
(
<>
{
row
.
auditStatus
?
auditStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
auditStatus
)?.
label
?
AuditStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
auditStatus
)?.
label
:
''
}
<
/
>
);
...
...
src/views/workplace/case/index.vue
View file @
f86181cc
...
...
@@ -26,7 +26,8 @@
import
{
useUserStore
}
from
'@/stores/modules/user'
;
import
{
getPlatformPage
}
from
'@/api/platform'
;
import
{
getManageOrgPage
}
from
'@/api/manageOrg'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
PhoneResultStatus
,
ReduceType
,
FlowStatus
,
FollowStatus
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"PhoneResultStatus"
,
"ReduceType"
,
"FlowStatus"
,
"FollowStatus"
,
"AuditStatus"
,
"CaseStatus"
);
const
{
userInfo
}
=
useUserStore
();
const
router
=
useRouter
();
const
selectdList
=
ref
([]);
...
...
@@ -83,42 +84,6 @@
});
query
();
};
const
followStatusOpt
=
[
{
label
:
'接通后挂断'
,
value
:
'hang_up'
},
{
label
:
'接通有实质进展'
,
value
:
'progress'
},
{
label
:
'接通有效转告'
,
value
:
'pass_on'
},
{
label
:
'接通拒绝转告'
,
value
:
'no_pass'
},
{
label
:
'接听后挂断'
,
value
:
'Hang_up_after_answering'
},
{
label
:
'接通无应答'
,
value
:
'No_response_when_connected'
},
{
label
:
'称与债人无关'
,
value
:
'Claims_unrelated_to_creditors'
},
{
label
:
'称非本人'
,
value
:
'Claiming_not_to_be_myself'
},
{
label
:
'无人接听'
,
value
:
'no_answer'
},
{
label
:
'关机'
,
value
:
'Shutdown'
},
{
label
:
'空号'
,
value
:
'dead_number'
},
{
label
:
'占线/忙音/正在通话中'
,
value
:
'Busy'
},
{
label
:
'停机'
,
value
:
'closing_down'
},
{
label
:
'机器人回复'
,
value
:
'Robot_reply'
},
{
label
:
'微信'
,
value
:
'WeChat'
},
{
label
:
'短信'
,
value
:
'short_message'
},
{
label
:
'QQ'
,
value
:
'QQ'
},
{
label
:
'飞书'
,
value
:
'fly'
},
{
label
:
'钉钉'
,
value
:
'DING'
},
];
const
phoneResultStatusOpt
=
[
{
label
:
'后续再跟进'
,
value
:
'later'
},
{
label
:
'承诺还款'
,
value
:
'Promise_Repayment'
},
{
label
:
'暂无还款意愿'
,
value
:
'No_Repay'
},
{
label
:
'要求停催'
,
value
:
'Stop_Urging'
},
{
label
:
'情绪激动抗拒'
,
value
:
'resistance'
},
{
label
:
'拒绝还款'
,
value
:
'Refuse_Repayment'
},
{
label
:
'已还款'
,
value
:
'Repaired'
},
{
label
:
'代履行还款'
,
value
:
'repayment_others'
},
];
const
caseStatusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'撤案'
,
value
:
'withdraw'
},
{
label
:
'留案'
,
value
:
'stay'
},
];
const
config
=
reactive
({
columns
:
[
{
type
:
'checkbox'
,
title
:
''
,
width
:
40
},
...
...
@@ -261,7 +226,7 @@
showOverflow
:
'tooltip'
,
title
:
'跟进结果'
,
width
:
80
,
enum
:
followStatusOpt
,
enum
:
FollowStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
80
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -269,7 +234,7 @@
return
(
<>
{
row
.
followStatus
?
followStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
?
FollowStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -281,7 +246,7 @@
showOverflow
:
'tooltip'
,
title
:
'跟进状态'
,
width
:
80
,
enum
:
phoneResultStatusOpt
,
enum
:
PhoneResultStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
80
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -289,7 +254,7 @@
return
(
<>
{
row
.
phoneResultStatus
?
phoneResultStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
?
PhoneResultStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
)?.
label
:
''
}
<
/
>
);
...
...
@@ -301,14 +266,14 @@
showOverflow
:
'tooltip'
,
title
:
'案件状态'
,
width
:
80
,
enum
:
caseStatusOpt
,
enum
:
CaseStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
80
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
caseStatus
?
caseStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
{
row
.
caseStatus
?
CaseStatus
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
)?.
label
:
''
}
<
/
>
);
},
...
...
src/views/workplace/todo/index.vue
View file @
f86181cc
...
...
@@ -10,24 +10,9 @@
import
{
ElMessageBox
,
ElMessage
,
ElTag
}
from
'element-plus'
;
import
{
onMounted
}
from
'vue'
;
import
{
pageMyMesage
}
from
'@/api/message'
;
const
statusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'已撤销'
,
value
:
'cancel'
},
];
const
messageTypeOpt
=
[
{
label
:
'通知'
,
value
:
'system'
},
{
label
:
'任务消息'
,
value
:
'task'
},
];
const
sendTypeOpt
=
[
{
label
:
'群发'
,
value
:
'all'
},
{
label
:
'指定用户发送'
,
value
:
'user'
},
{
label
:
'指定角色发送'
,
value
:
'role'
},
{
label
:
'指定调节中心发送'
,
value
:
'tentant'
},
];
const
serviceTypeOpt
=
[
{
label
:
'流程'
,
value
:
'bpm'
},
{
label
:
'提示'
,
value
:
'tip'
},
];
import
{
useDict
}
from
'@/hooks/useDict'
;
const
{
MessageStatus
,
SendType
,
MessageType
,
ServiceType
,
AuditStatus
,
CaseStatus
}
=
useDict
(
"MessageStatus"
,
"SendType"
,
"MessageType"
,
"ServiceType"
,
"AuditStatus"
,
"CaseStatus"
);
const
proTable
=
ref
();
const
socketStore
=
useSocketStore
();
const
config
=
reactive
({
...
...
@@ -58,7 +43,7 @@
title
:
'状态'
,
showOverflow
:
'tooltip'
,
width
:
100
,
enum
:
statusOpt
,
enum
:
MessageStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
,
labelWidth
:
65
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -82,7 +67,7 @@
width
:
100
,
showOverflow
:
'tooltip'
,
title
:
'消息类型'
,
enum
:
messageTypeOpt
,
enum
:
MessageType
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
,
labelWidth
:
65
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -90,7 +75,7 @@
return
(
<>
{
row
.
messageType
?
messageTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
messageType
)?.
label
?
MessageType
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
messageType
)?.
label
:
''
}
<
/
>
);
...
...
@@ -102,13 +87,13 @@
width
:
100
,
title
:
'发送方式'
,
showOverflow
:
'tooltip'
,
enum
:
sendTypeOpt
,
enum
:
SendType
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
,
labelWidth
:
65
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
sendType
?
sendTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
sendType
)?.
label
:
''
}
<
/
>
<>
{
row
.
sendType
?
SendType
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
sendType
)?.
label
:
''
}
<
/
>
);
},
},
...
...
@@ -118,7 +103,7 @@
width
:
100
,
title
:
'业务类型'
,
showOverflow
:
'tooltip'
,
enum
:
serviceTypeOpt
,
enum
:
ServiceType
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
,
labelWidth
:
65
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
...
...
@@ -126,7 +111,7 @@
return
(
<>
{
row
.
serviceType
?
serviceTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
serviceType
)?.
label
?
ServiceType
.
value
?
.
find
((
v
)
=>
v
.
value
===
row
.
serviceType
)?.
label
:
''
}
<
/
>
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment