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
140521ef
Commit
140521ef
authored
Feb 07, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
我的案件和我的待办
parent
8c506804
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1311 additions
and
16 deletions
+1311
-16
index.vue
src/views/property/audit-manage/index.vue
+8
-10
callDrawer.vue
src/views/workplace/audit/components/callDrawer.vue
+583
-0
index.vue
src/views/workplace/audit/index.vue
+434
-3
index.vue
src/views/workplace/case/index.vue
+286
-3
No files found.
src/views/property/audit-manage/index.vue
View file @
140521ef
...
@@ -45,7 +45,11 @@
...
@@ -45,7 +45,11 @@
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
getTrackRecord
}
from
'@/api/property'
;
import
{
getTrackRecord
}
from
'@/api/property'
;
import
{
batchSave
}
from
'@/api/audit'
;
import
{
batchSave
}
from
'@/api/audit'
;
import
{
useUserStore
}
from
'@/stores/modules/user'
;
const
envs
=
getAppEnvConfig
();
const
envs
=
getAppEnvConfig
();
const
{
userInfo
}
=
useUserStore
();
import
{
reactive
,
ref
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
const
downloadfile
=
inject
(
'download'
);
const
downloadfile
=
inject
(
'download'
);
...
@@ -101,6 +105,9 @@
...
@@ -101,6 +105,9 @@
const
callMode
=
ref
(
''
);
const
callMode
=
ref
(
''
);
const
paramCallback
=
(
param
)
=>
{
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
if
(
userInfo
.
id
)
{
obj
[
'createBy'
]
=
userInfo
.
id
}
obj
[
'auditStatus'
]
=
activeName
.
value
;
obj
[
'auditStatus'
]
=
activeName
.
value
;
if
(
obj
[
'trackTime'
])
{
if
(
obj
[
'trackTime'
])
{
if
(
obj
[
'trackTime'
][
0
])
obj
[
'trackTimeBegin'
]
=
obj
[
'trackTime'
][
0
];
if
(
obj
[
'trackTime'
][
0
])
obj
[
'trackTimeBegin'
]
=
obj
[
'trackTime'
][
0
];
...
@@ -314,7 +321,7 @@
...
@@ -314,7 +321,7 @@
field
:
'status'
,
field
:
'status'
,
title
:
'超时状态'
,
title
:
'超时状态'
,
width
:
100
,
width
:
100
,
search
:
{
el
:
'select'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'select'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
78
},
slots
:
{
slots
:
{
default
:
({
row
})
=>
{
default
:
({
row
})
=>
{
return
(
return
(
...
@@ -373,7 +380,6 @@
...
@@ -373,7 +380,6 @@
width
:
80
,
width
:
80
,
visible
:
visible
:
activeName
.
value
===
'audit'
||
activeName
.
value
===
'audit'
||
activeName
.
value
===
'complete'
||
activeName
.
value
===
'rejected'
activeName
.
value
===
'rejected'
?
true
?
true
:
false
,
:
false
,
...
@@ -387,14 +393,6 @@
...
@@ -387,14 +393,6 @@
<
/ElButton
>
<
/ElButton
>
<
/
>
<
/
>
);
);
}
else
{
return
(
<>
<
ElButton
type
=
"primary"
onClick
=
{()
=>
callTelephone
(
row
,
'audit'
)}
>
审核
<
/ElButton
>
<
/
>
);
}
}
},
},
},
},
...
...
src/views/workplace/audit/components/callDrawer.vue
0 → 100644
View file @
140521ef
This diff is collapsed.
Click to expand it.
src/views/workplace/audit/index.vue
View file @
140521ef
This diff is collapsed.
Click to expand it.
src/views/workplace/case/index.vue
View file @
140521ef
<
template
>
<
template
>
<div
class=
"card content-box"
>
<div
class=
"table-box"
>
<span
class=
"text"
>
我的案件 🍓🍇🍈🍉
</span>
<div
class=
"table-inner"
>
<ProTable
:config=
"config"
ref=
"caseLRef"
:api=
"getCreditPage"
:paramCallback=
"paramCallback"
>
<!--
<ProTable
:config=
"config"
ref=
"caseLRef"
:data=
"data"
>
-->
<!--
<template
#
table_top
>
<div
class=
"topgrp"
>
<div
class=
"topbox"
>
<div
class=
"topinner"
>
<p>
统计值
</p>
<p>
111
</p>
</div>
</div>
</div>
</
template
>
-->
</ProTable>
</div>
</div>
</div>
</template>
</template>
<
script
setup
name=
"systemLog"
></
script
>
<
script
setup
name=
"case-manage"
lang=
"jsx"
>
import
{
useRouter
}
from
'vue-router'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
getCreditPage
}
from
'@/api/property'
;
const
caseLRef
=
ref
();
import
{
onMounted
}
from
'vue'
;
import
{
useUserStore
}
from
'@/stores/modules/user'
;
const
{
userInfo
}
=
useUserStore
();
const
router
=
useRouter
();
const
onCellClick
=
(
row
)
=>
{
router
.
push
({
path
:
'/property/case-detail'
,
query
:
{
id
:
row
.
id
},
//这里不能直接写成 query: JSON.stringify(item)
});
};
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
if
(
userInfo
.
id
)
{
obj
[
'cpe'
]
=
userInfo
.
id
}
return
obj
;
};
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
:
[
{
field
:
'caseId'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
,
labelWidth
:
80
},
width
:
190
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
<>
<
div
onClick
=
{()
=>
onCellClick
(
row
)}
className
=
" text-blue-400 underline cursor-pointer"
>
{
row
.
caseId
}
<
/div
>
<
/
>
);
},
},
},
{
field
:
'loanPlatform.name'
,
title
:
'借款机构'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'payOrg'
,
labelWidth
:
80
},
},
{
field
:
'manageOrg.orgName'
,
title
:
'资管公司'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'manageOrg'
,
labelWidth
:
80
},
},
{
field
:
'borrower.name'
,
title
:
'借款人姓名'
,
width
:
120
,
search
:
{
el
:
'input'
,
key
:
'borrowerName'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
,
},
},
{
field
:
'borrower.idCard'
,
title
:
'身份证'
,
width
:
140
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'borrowerIdCard'
,
labelWidth
:
80
,
},
},
{
field
:
'borrower.phone'
,
title
:
'手机号'
,
width
:
140
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'borrowerPhone'
,
labelWidth
:
80
,
},
},
{
field
:
'discount'
,
title
:
'折扣'
,
width
:
80
,
},
{
field
:
'commissionAmount'
,
title
:
'委案金额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'sumRepayAmount'
,
title
:
'累计还款金额'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'sumReductionAmount'
,
title
:
'累计减免金额'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'remainingAmount'
,
title
:
'剩余待还金额'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'cpeDate'
,
title
:
'分派CPE日期'
,
width
:
130
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
80
,
},
},
{
field
:
'principalBalance'
,
title
:
'本金余额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'debitInterest'
,
title
:
'欠息额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'commission'
,
title
:
'手续费'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
80
},
},
{
field
:
'followStatus'
,
title
:
'跟进结果'
,
width
:
80
,
enum
:
followStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
80
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
followStatus
?
followStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
).
label
:
''
}
<
/
>
);
},
},
},
{
field
:
'phoneResultStatus'
,
title
:
'跟进状态'
,
width
:
80
,
enum
:
phoneResultStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
80
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
phoneResultStatus
?
phoneResultStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
).
label
:
''
}
<
/
>
);
},
},
},
{
field
:
'caseStatus'
,
title
:
'案件状态'
,
width
:
80
,
enum
:
caseStatusOpt
,
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
:
''
}
<
/
>
);
},
},
},
],
});
const
query
=
()
=>
caseLRef
.
value
?.
search
();
onMounted
(()
=>
{
query
();
});
</
script
>
<
style
lang=
"scss"
scoped
>
.table-inner
{
width
:
100%
;
:deep
(
.topgrp
)
{
display
:
flex
;
margin-bottom
:
8px
;
.topbox
{
margin-right
:
10px
;
background
:
rgba
(
0
,
0
,
0
,
0
.02
);
border-radius
:
16px
;
width
:
146px
;
height
:
97px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
font-size
:
24px
;
p
:nth-child
(
1
)
{
font-size
:
14px
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
}
}
}
}
</
style
>
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