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
0c4dc28a
Commit
0c4dc28a
authored
Jan 03, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产详情接口对接
parent
abd750cd
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
561 additions
and
249 deletions
+561
-249
property.js
src/api/property.js
+40
-8
index.vue
src/views/property/audit-manage/index.vue
+1
-1
reduceDrawer.vue
src/views/property/case-detail/components/reduceDrawer.vue
+86
-45
splitDrawer.vue
src/views/property/case-detail/components/splitDrawer.vue
+42
-32
index.vue
src/views/property/case-detail/index.vue
+298
-125
index.vue
src/views/property/case-manage/index.vue
+93
-37
vite.config.js
vite.config.js
+1
-1
No files found.
src/api/property.js
View file @
0c4dc28a
import
request
from
'@/utils/http/index'
;
import
request
from
'@/utils/http/index'
;
// 资产列表
export
const
getCreditPage
=
(
params
)
=>
{
return
request
.
get
(
'/Loan/page'
,
params
);
};
// 根据id获取资产详情
export
const
getCredit
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/getById?id='
+
id
);
};
// 根据借款人查询所有的案件
export
const
listByBorrower
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/listByBorrower?borrowerId='
+
id
);
};
export
const
saveUser
=
(
data
)
=>
{
// 根据借款人查询所有的跟进记录
return
request
.
post
(
'/login/save'
,
data
);
export
const
getTrackRecordPage
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/getTrackRecords?borrowerId='
+
id
);
};
};
export
const
getCreditPage
=
(
params
)
=>
{
// 根据借款人查询所有的减免记录
return
request
.
get
(
'/Credit/page'
,
params
);
export
const
getReduces
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/getReduces?borrowerId='
+
id
);
};
};
export
const
getCredit
=
(
id
)
=>
{
// 根据借款人查询所有的分期记录
return
request
.
get
(
'/Credit/getById?id='
+
id
);
export
const
getByStages
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/getByStages?borrowerId='
+
id
);
};
// 根据借款人查询所有的还款记录
export
const
getRepayRecords
=
(
id
)
=>
{
return
request
.
get
(
'/Loan/getRepayRecords?borrowerId='
+
id
);
};
// 还款申请保存
export
const
saveRepayRecord
=
(
data
)
=>
{
return
request
.
post
(
'/repayRecord/save'
,
data
);
};
// 减免申请保存
export
const
saveReduce
=
(
data
)
=>
{
return
request
.
post
(
'/reduce/save'
,
data
);
};
};
export
const
getTrackRecordPage
=
(
params
)
=>
{
// 分期申请保存
return
request
.
get
(
'/TrackRecord/page'
,
params
);
export
const
savebyStages
=
(
data
)
=>
{
return
request
.
post
(
'/byStages/save'
,
data
);
};
};
// 保存案件跟踪记录
export
const
saveTrackRecord
=
(
data
)
=>
{
export
const
saveTrackRecord
=
(
data
)
=>
{
return
request
.
post
(
'/TrackRecord/save'
,
data
);
return
request
.
post
(
'/TrackRecord/save'
,
data
);
};
};
src/views/property/audit-manage/index.vue
View file @
0c4dc28a
<
template
>
<
template
>
<div
class=
"
card content
-box"
>
<div
class=
"
table
-box"
>
<span
class=
"text"
>
稽核管理 🍓🍇🍈🍉
</span>
<span
class=
"text"
>
稽核管理 🍓🍇🍈🍉
</span>
</div>
</div>
</
template
>
</
template
>
...
...
src/views/property/case-detail/components/reduceDrawer.vue
View file @
0c4dc28a
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免类型:"
prop=
"name"
label-width=
"82px"
>
<el-form-item
class=
"w-full"
label=
"减免类型:"
prop=
"name"
label-width=
"82px"
>
<el-select
v-model=
"form.re
lation
"
placeholder=
"请选择"
>
<el-select
v-model=
"form.re
duceType
"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in options"
v-for=
"item in options"
:key=
"item.value"
:key=
"item.value"
...
@@ -30,26 +30,28 @@
...
@@ -30,26 +30,28 @@
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免申请时间:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"减免申请时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.
datetim
e"
type=
"datetime"
/>
<el-date-picker
v-model=
"form.
applyDat
e"
type=
"datetime"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<
!--
<
el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免到期时间:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"减免到期时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
type=
"datetime"
/>
<el-date-picker
v-model=
"form.datetime"
type=
"datetime"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
-->
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免金额(总计):"
prop=
"name"
label-width=
"120px"
>
<el-form-item
class=
"w-full"
label=
"减免金额(总计):"
prop=
"name"
label-width=
"120px"
>
4444
{{
form
.
totalReduceAmount
}}
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免案件数:"
prop=
"role"
>
1
</el-form-item>
<el-form-item
class=
"w-full"
label=
"减免案件数:"
prop=
"role"
>
{{
form
.
totalNumber
}}
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"应还金额:"
prop=
"relation"
>
<el-form-item
class=
"w-full"
label=
"应还金额:"
prop=
"relation"
>
<div>
<div>
<p>
3000
</p>
<p>
{{
form
.
totalPayAmount
}}
</p>
<p
class=
"text-red-600 leading-3"
>
*应还金额
</p>
<p
class=
"text-red-600 leading-3"
>
*应还金额
</p>
</div>
</div>
</el-form-item>
</el-form-item>
...
@@ -77,85 +79,124 @@
...
@@ -77,85 +79,124 @@
import
dayjs
from
'dayjs'
;
import
dayjs
from
'dayjs'
;
import
{
computed
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
saveReduce
}
from
'@/api/property'
;
const
showModal
=
ref
(
false
);
const
showModal
=
ref
(
false
);
const
tabledata
=
ref
([]);
const
tabledata
=
ref
([]);
const
form
=
reactive
({
const
form
=
reactive
({
name
:
''
,
totalReduceAmount
:
0
,
relation
:
''
,
totalNumber
:
''
,
datetime
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
reduceType
:
'settle'
,
totalPayAmount
:
0
,
applyDate
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
});
});
const
currentAccount
=
ref
({
people
:
0
,
case
:
0
,
money
:
0
});
const
selectdList
=
ref
([]);
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
form
.
totalNumber
=
row
.
records
.
length
;
};
const
currentDetail
=
ref
({});
const
onHide
=
(
done
)
=>
{
const
onHide
=
(
done
)
=>
{
current
Account
.
value
=
{
people
:
0
,
case
:
0
,
money
:
0
};
current
Detail
.
value
=
{
};
done
();
done
();
};
};
const
options
=
[
const
options
=
[
{
{
value
:
'Option1'
,
value
:
'settle'
,
label
:
'Option1'
,
label
:
'结清减免'
,
},
{
value
:
'Option2'
,
label
:
'Option2'
,
},
{
value
:
'Option3'
,
label
:
'Option3'
,
},
},
{
{
value
:
'Option4'
,
value
:
'by_stages'
,
label
:
'Option4'
,
label
:
'分期减免'
,
},
{
value
:
'Option5'
,
label
:
'Option5'
,
},
},
];
];
const
config
=
reactive
({
const
config
=
reactive
({
minHeight
:
200
,
minHeight
:
200
,
columns
:
[
columns
:
[
// { type: 'checkbox', title: '', width: '40px' },
{
{
field
:
'c
ode
'
,
field
:
'c
aseId
'
,
title
:
'案件ID'
,
title
:
'案件ID'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
product
'
,
title
:
'产品'
,
title
:
'产品'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
payOrg
'
,
title
:
'借款机构'
,
title
:
'借款机构'
,
},
},
{
{
field
:
'co
de
'
,
field
:
'co
mmissionAmount
'
,
title
:
'委案金额'
,
title
:
'委案金额'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
sumReductionAmount
'
,
title
:
'累计减免金额'
,
title
:
'累计减免金额'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
sumRepayAmount
'
,
title
:
'累计还款金额'
,
title
:
'累计还款金额'
,
},
},
{
{
field
:
'code'
,
field
:
'reduceAmount'
,
title
:
'剩余待还金额'
,
title
:
'减免金额'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
return
(
<>
<
ElInput
v
-
model
=
{
row
.
reduceAmount
}
onChange
=
{()
=>
changeNum
(
row
,
rowIndex
)}
/
>
<
/
>
);
},
},
},
{
field
:
'remainingAmount'
,
title
:
'剩余待还金额(减免前)'
,
},
{
field
:
'payAmount'
,
title
:
'应还金额(减免后)'
,
},
},
],
],
onCheckboxChange
:
onCheckboxChange
,
toolbarConfig
:
{
enabled
:
false
},
toolbarConfig
:
{
enabled
:
false
},
});
});
tabledata
.
value
=
[
const
changeNum
=
(
row
)
=>
{
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
,
num
:
1
},
row
.
payAmount
=
row
.
remainingAmount
-
row
.
reduceAmount
;
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
,
num
:
1
},
form
.
totalReduceAmount
=
0
;
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
form
.
totalPayAmount
=
0
;
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
tabledata
.
value
.
forEach
((
item
)
=>
{
];
form
.
totalReduceAmount
+=
Number
(
item
.
reduceAmount
)
||
0
;
const
openModal
=
(
account
)
=>
{
form
.
totalPayAmount
+=
Number
(
item
.
payAmount
)
||
0
;
});
};
const
openModal
=
(
detail
,
caselist
)
=>
{
showModal
.
value
=
true
;
showModal
.
value
=
true
;
currentAccount
.
value
=
{
people
:
333
,
case
:
44
,
money
:
1111
};
currentDetail
.
value
=
detail
;
console
.
log
(
'currentDetail'
,
currentDetail
.
value
,
caselist
);
form
.
totalReduceAmount
=
0
;
form
.
totalPayAmount
=
0
;
caselist
.
forEach
((
item
)
=>
{
form
.
totalReduceAmount
+=
Number
(
item
.
reduceAmount
)
||
0
;
form
.
totalPayAmount
+=
Number
(
item
.
payAmount
)
||
0
;
});
tabledata
.
value
=
caselist
;
form
.
totalNumber
=
caselist
.
length
;
};
const
submitForm
=
()
=>
{
const
params
=
{
...
currentDetail
.
value
,
...
form
,
reduceRecords
:
tabledata
.
value
,
id
:
null
,
};
saveReduce
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
}
});
};
};
const
submitForm
=
()
=>
{};
defineExpose
({
defineExpose
({
openModal
,
openModal
,
});
});
...
...
src/views/property/case-detail/components/splitDrawer.vue
View file @
0c4dc28a
...
@@ -27,18 +27,18 @@
...
@@ -27,18 +27,18 @@
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"剩余待还总额:"
prop=
"name"
>
<el-form-item
class=
"w-full"
label=
"剩余待还总额:"
prop=
"name"
>
{{ form.
sum
}}
{{ form.
remainingAmount
}}
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"还款总额:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"还款总额:"
prop=
"code"
>
<el-input
v-model=
"form.
num
"
placeholder=
"请输入"
/>
<el-input
v-model=
"form.
totalRepayAmount
"
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"分期申请时间:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"分期申请时间:"
prop=
"code"
>
<el-date-picker
<el-date-picker
v-model=
"form.
datetim
e"
v-model=
"form.
applyDat
e"
class=
"w-full"
class=
"w-full"
format=
"YYYY-MM-DD HH:mm:ss"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
type=
"datetime"
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"还款期数:"
prop=
"name"
>
<el-form-item
class=
"w-full"
label=
"还款期数:"
prop=
"name"
>
<el-select
v-model=
"form.
splitnum
"
placeholder=
"请选择"
>
<el-select
v-model=
"form.
totalPeriod
"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in options"
v-for=
"item in options"
:key=
"item.value"
:key=
"item.value"
...
@@ -61,7 +61,7 @@
...
@@ -61,7 +61,7 @@
<el-form-item
class=
"w-full"
label=
"首期还款日:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"首期还款日:"
prop=
"code"
>
<el-date-picker
<el-date-picker
class=
"w-full"
class=
"w-full"
v-model=
"form.
datetim
e"
v-model=
"form.
firstApplyDat
e"
format=
"YYYY-MM-DD HH:mm:ss"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
type=
"datetime"
/>
/>
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"分期生效时间:"
prop=
"code"
>
<el-form-item
class=
"w-full"
label=
"分期生效时间:"
prop=
"code"
>
<el-date-picker
<el-date-picker
v-model=
"form.
datet
ime"
v-model=
"form.
effectiveT
ime"
class=
"w-full"
class=
"w-full"
format=
"YYYY-MM-DD HH:mm:ss"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
type=
"datetime"
...
@@ -124,36 +124,38 @@
...
@@ -124,36 +124,38 @@
const
splitdata
=
ref
([]);
const
splitdata
=
ref
([]);
const
form
=
reactive
({
const
form
=
reactive
({
sum
:
0
,
remainingAmount
:
0
,
num
:
0
,
totalRepayAmount
:
0
,
splitnum
:
2
,
totalPeriod
:
2
,
datetime
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
applyDate
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
firstApplyDate
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
effectiveTime
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
});
});
const
current
Account
=
ref
({
people
:
0
,
case
:
0
,
money
:
0
});
const
current
Detail
=
ref
({
});
const
onHide
=
(
done
)
=>
{
const
onHide
=
(
done
)
=>
{
current
Account
.
value
=
{
people
:
0
,
case
:
0
,
money
:
0
};
current
Detail
.
value
=
{
};
done
();
done
();
};
};
const
options
=
[
const
options
=
[
{
{
value
:
'
Option1
'
,
value
:
'
2
'
,
label
:
'
Option1
'
,
label
:
'
2
'
,
},
},
{
{
value
:
'
Option2
'
,
value
:
'
3
'
,
label
:
'
Option2
'
,
label
:
'
3
'
,
},
},
{
{
value
:
'
Option3
'
,
value
:
'
4
'
,
label
:
'
Option3
'
,
label
:
'
4
'
,
},
},
{
{
value
:
'
Option4
'
,
value
:
'
5
'
,
label
:
'
Option4
'
,
label
:
'
5
'
,
},
},
{
{
value
:
'
Option5
'
,
value
:
'
6
'
,
label
:
'
Option5
'
,
label
:
'
6
'
,
},
},
];
];
const
selectdList
=
ref
([]);
const
selectdList
=
ref
([]);
...
@@ -163,33 +165,33 @@
...
@@ -163,33 +165,33 @@
const
config
=
reactive
({
const
config
=
reactive
({
minHeight
:
200
,
minHeight
:
200
,
columns
:
[
columns
:
[
{
type
:
'checkbox'
,
width
:
50
},
//
{ type: 'checkbox', width: 50 },
{
{
field
:
'c
ode
'
,
field
:
'c
aseId
'
,
title
:
'案件ID'
,
title
:
'案件ID'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
product
'
,
title
:
'产品'
,
title
:
'产品'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
payOrg
'
,
title
:
'借款机构'
,
title
:
'借款机构'
,
},
},
{
{
field
:
'co
de
'
,
field
:
'co
mmissionAmount
'
,
title
:
'委案金额'
,
title
:
'委案金额'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
sumReductionAmount
'
,
title
:
'累计减免金额'
,
title
:
'累计减免金额'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
sumRepayAmount
'
,
title
:
'累计还款金额'
,
title
:
'累计还款金额'
,
},
},
{
{
field
:
'
code
'
,
field
:
'
remainingAmount
'
,
title
:
'剩余待还金额'
,
title
:
'剩余待还金额'
,
},
},
],
],
...
@@ -243,9 +245,17 @@
...
@@ -243,9 +245,17 @@
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
];
];
const
openModal
=
(
accoun
t
)
=>
{
const
openModal
=
(
detail
,
caselis
t
)
=>
{
showModal
.
value
=
true
;
showModal
.
value
=
true
;
currentAccount
.
value
=
{
people
:
333
,
case
:
44
,
money
:
1111
};
currentDetail
.
value
=
detail
;
console
.
log
(
'currentDetail'
,
currentDetail
.
value
,
caselist
);
form
.
totalRepayAmount
=
0
;
form
.
remainingAmount
=
0
;
caselist
.
forEach
((
item
)
=>
{
form
.
totalRepayAmount
+=
Number
(
item
.
remainingAmount
)
||
0
;
form
.
remainingAmount
+=
Number
(
item
.
remainingAmount
)
||
0
;
});
tabledata
.
value
=
caselist
;
};
};
const
submitForm
=
()
=>
{};
const
submitForm
=
()
=>
{};
defineExpose
({
defineExpose
({
...
...
src/views/property/case-detail/index.vue
View file @
0c4dc28a
This diff is collapsed.
Click to expand it.
src/views/property/case-manage/index.vue
View file @
0c4dc28a
...
@@ -29,102 +29,125 @@
...
@@ -29,102 +29,125 @@
import
{
onMounted
}
from
'vue'
;
import
{
onMounted
}
from
'vue'
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
options
=
ref
([]);
const
onCellClick
=
({
row
,
rowIndex
})
=>
{
const
onCellClick
=
({
row
,
rowIndex
})
=>
{
router
.
push
({
router
.
push
({
path
:
'/property/case-detail'
,
path
:
'/property/case-detail'
,
query
:
{
id
:
row
.
id
},
//这里不能直接写成 query: JSON.stringify(item)
query
:
{
id
:
row
.
id
},
//这里不能直接写成 query: JSON.stringify(item)
});
});
};
};
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
creditStatusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'撤案'
,
value
:
'withdraw'
},
{
label
:
'留案'
,
value
:
'stay'
},
];
const
config
=
reactive
({
const
config
=
reactive
({
columns
:
[
columns
:
[
{
field
:
'
i
d'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
},
width
:
80
},
{
field
:
'
caseI
d'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
},
width
:
80
},
{
{
field
:
'
code
'
,
field
:
'
payOrg
'
,
title
:
'借款机构'
,
title
:
'借款机构'
,
width
:
100
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
code
'
,
field
:
'
manageOrg
'
,
title
:
'资管公司'
,
title
:
'资管公司'
,
width
:
100
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
rol
e'
,
field
:
'
borrower.nam
e'
,
title
:
'借款人姓名'
,
title
:
'借款人姓名'
,
width
:
120
,
width
:
120
,
search
:
{
search
:
{
el
:
'input'
,
el
:
'input'
,
key
:
'borrower.name'
,
props
:
{
clearable
:
true
},
props
:
{
clearable
:
true
},
slots
:
{
default
:
({
row
})
=>
{
return
<>
{
row
?.
borrower
?.
name
}
<
/>
;
},
},
},
},
},
},
{
{
field
:
'
role
'
,
field
:
'
borrower.idCard
'
,
title
:
'身份证'
,
title
:
'身份证'
,
width
:
140
,
width
:
140
,
search
:
{
search
:
{
el
:
'input'
,
el
:
'input'
,
props
:
{
clearable
:
true
},
props
:
{
clearable
:
true
},
slots
:
{
key
:
'borrower.idCard'
,
default
:
({
row
})
=>
{
return
<>
{
row
?.
borrower
?.
idCard
}
<
/>
;
},
},
},
},
},
},
{
{
field
:
'
rol
e'
,
field
:
'
borrower.phon
e'
,
title
:
'手机号'
,
title
:
'手机号'
,
width
:
140
,
width
:
140
,
search
:
{
search
:
{
el
:
'input'
,
el
:
'input'
,
props
:
{
clearable
:
true
},
props
:
{
clearable
:
true
},
slots
:
{
key
:
'borrower.phone'
,
default
:
({
row
})
=>
{
return
<>
{
row
?.
borrower
?.
phone
}
<
/>
;
},
},
},
},
},
},
{
{
field
:
'
loa
nAmount'
,
field
:
'
commissio
nAmount'
,
title
:
'委案金额'
,
title
:
'委案金额'
,
width
:
80
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
role
'
,
field
:
'
sumRepayAmount
'
,
title
:
'累计还款金额'
,
title
:
'累计还款金额'
,
width
:
110
,
width
:
110
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
role
'
,
field
:
'
sumReductionAmount
'
,
title
:
'累计减免金额'
,
title
:
'累计减免金额'
,
width
:
110
,
width
:
110
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'r
ole
'
,
field
:
'r
emainingAmount
'
,
title
:
'剩余待还金额'
,
title
:
'剩余待还金额'
,
width
:
110
,
width
:
110
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
rol
e'
,
field
:
'
cpe.usernam
e'
,
title
:
'CPE'
,
title
:
'CPE'
,
width
:
80
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
key
:
'cpe.username'
},
},
},
{
{
field
:
'
rol
e'
,
field
:
'
cpeDat
e'
,
title
:
'分配CPE日期'
,
title
:
'分配CPE日期'
,
width
:
110
,
width
:
110
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
}
},
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
}
},
...
@@ -148,28 +171,61 @@
...
@@ -148,28 +171,61 @@
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
},
{
{
field
:
'
role
'
,
field
:
'
followStatus
'
,
title
:
'跟进结果'
,
title
:
'跟进结果'
,
width
:
80
,
width
:
80
,
enum
:
options
,
enum
:
followStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
followStatus
?
followStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
followStatus
).
label
:
''
}
<
/
>
);
},
},
},
},
{
{
field
:
'
role
'
,
field
:
'
phoneResultStatus
'
,
title
:
'跟进状态'
,
title
:
'跟进状态'
,
width
:
80
,
width
:
80
,
enum
:
options
,
enum
:
phoneResultStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
phoneResultStatus
?
phoneResultStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
phoneResultStatus
).
label
:
''
}
<
/
>
);
},
},
},
},
{
{
field
:
'creditStatus'
,
field
:
'creditStatus'
,
title
:
'案件状态'
,
title
:
'案件状态'
,
width
:
80
,
width
:
80
,
enum
:
options
,
enum
:
creditStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
creditStatus
?
creditStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
creditStatus
).
label
:
''
}
<
/
>
);
},
},
},
},
],
],
onCellClick
:
onCellClick
,
onCellClick
:
onCellClick
,
...
...
vite.config.js
View file @
0c4dc28a
...
@@ -55,7 +55,7 @@ export default defineConfig(({ command, mode }) => {
...
@@ -55,7 +55,7 @@ export default defineConfig(({ command, mode }) => {
port
:
VITE_PORT
,
port
:
VITE_PORT
,
proxy
:
{
proxy
:
{
'/api'
:
{
'/api'
:
{
target
:
'http://
8.152.205.9
:8080'
,
target
:
'http://
192.168.31.128
:8080'
,
changeOrigin
:
true
,
changeOrigin
:
true
,
rewrite
:
(
path
)
=>
path
.
replace
(
/^
\/
api/
,
''
),
rewrite
:
(
path
)
=>
path
.
replace
(
/^
\/
api/
,
''
),
},
},
...
...
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