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
c684b47e
Commit
c684b47e
authored
Feb 06, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产导入撞库弹窗
parent
8ad5356f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
230 additions
and
22 deletions
+230
-22
import.js
src/api/import.js
+4
-0
caseDetailModal.vue
src/views/property/import/components/caseDetailModal.vue
+225
-20
errorModal.vue
src/views/property/import/components/errorModal.vue
+0
-1
index.vue
src/views/property/import/index.vue
+1
-1
No files found.
src/api/import.js
View file @
c684b47e
...
@@ -11,3 +11,7 @@ export const importLoanPage = (params) => {
...
@@ -11,3 +11,7 @@ export const importLoanPage = (params) => {
export
const
checkLoanExcel
=
(
params
)
=>
{
export
const
checkLoanExcel
=
(
params
)
=>
{
return
request
.
get
(
'/LoanExcel/check'
,
params
);
return
request
.
get
(
'/LoanExcel/check'
,
params
);
};
};
// 获取撞库的资产列表
export
const
pengLoanExcel
=
(
params
)
=>
{
return
request
.
get
(
'/LoanExcel/peng'
,
params
);
};
src/views/property/import/components/caseDetailModal.vue
View file @
c684b47e
...
@@ -8,51 +8,256 @@
...
@@ -8,51 +8,256 @@
show-footer
show-footer
esc-closable
esc-closable
>
>
<ProTable
:config=
"config"
:data=
"data"
>
</ProTable>
<vxe-button
@
click=
"exportEvent"
>
直接导出 CSV 文件
</vxe-button>
<ProTable
:config=
"config"
:data=
"data"
:showPagination=
"false"
ref=
"ProTableRef"
:showToolBar=
"false"
>
</ProTable>
<template
#
footer
>
</
template
>
<template
#
footer
>
</
template
>
</vxe-modal>
</vxe-modal>
</template>
</template>
<
script
setup
>
<
script
setup
lang=
"jsx"
>
import
{
computed
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
pengLoanExcel
}
from
'@/api/import'
;
const
ProTableRef
=
ref
();
const
showModal
=
ref
(
false
);
const
showModal
=
ref
(
false
);
const
data
=
ref
([]);
const
currentAccount
=
ref
(
undefined
);
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
({
type
:
'csv'
,
});
}
};
const
config
=
reactive
({
const
config
=
reactive
({
exportConfig
:
{},
toolbarConfig
:
{
enabled
:
false
},
columns
:
[
columns
:
[
{
field
:
'name'
,
title
:
'名称'
,
search
:
{
el
:
'input'
}
},
{
{
field
:
'code'
,
field
:
'caseId'
,
title
:
'账号'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
// search: { el: 'input', labelWidth: 80 },
width
:
190
},
{
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
:
'
code
'
,
field
:
'
discount
'
,
title
:
'
账号
'
,
title
:
'
折扣
'
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
}
,
width
:
80
,
},
},
{
{
field
:
'role'
,
field
:
'commissionAmount'
,
title
:
'角色'
,
title
:
'委案金额'
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
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
:
'cpe.username'
,
title
:
'CPE'
,
width
:
80
,
// search: { el: 'input', props: { clearable: true }, key: 'cpeName', 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
data
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
},
];
const
onHide
=
()
=>
{
const
onHide
=
()
=>
{
currentAccount
.
value
=
null
;
currentAccount
.
value
=
null
;
};
};
const
openModal
=
(
account
)
=>
{
const
openModal
=
(
account
)
=>
{
showModal
.
value
=
true
;
showModal
.
value
=
true
;
currentAccount
.
value
=
account
;
currentAccount
.
value
=
account
;
Object
.
assign
(
form
,
account
);
pengLoanExcel
({
batchCode
:
account
.
code
,
current
:
1
,
size
:
9999999
}).
then
(
res
=>
{
if
(
res
.
result
){
data
.
value
=
res
.
result
.
content
}
})
};
};
defineExpose
({
defineExpose
({
...
...
src/views/property/import/components/errorModal.vue
View file @
c684b47e
...
@@ -57,7 +57,6 @@
...
@@ -57,7 +57,6 @@
const
openModal
=
(
account
)
=>
{
const
openModal
=
(
account
)
=>
{
showModal
.
value
=
true
;
showModal
.
value
=
true
;
table
.
value
=
account
;
table
.
value
=
account
;
Object
.
assign
(
form
,
account
);
};
};
defineExpose
({
defineExpose
({
...
...
src/views/property/import/index.vue
View file @
c684b47e
...
@@ -98,7 +98,7 @@
...
@@ -98,7 +98,7 @@
import
{
ElButton
,
ElMessage
}
from
'element-plus'
;
import
{
ElButton
,
ElMessage
}
from
'element-plus'
;
import
{
Upload
}
from
'@element-plus/icons-vue'
;
import
{
Upload
}
from
'@element-plus/icons-vue'
;
import
{
inject
}
from
'vue'
;
import
{
inject
}
from
'vue'
;
import
{
LoanSubmit
,
importLoanPage
,
checkLoanExcel
}
from
'@/api/import'
;
import
{
LoanSubmit
,
importLoanPage
,
checkLoanExcel
}
from
'@/api/import'
;
const
downloadfile
=
inject
(
'download'
);
const
downloadfile
=
inject
(
'download'
);
const
envs
=
getAppEnvConfig
();
const
envs
=
getAppEnvConfig
();
...
...
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