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
6a1b186b
Commit
6a1b186b
authored
Mar 03, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
案件分派
parent
ea98ead8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1374 additions
and
61 deletions
+1374
-61
index.vue
src/components/ProTable/index.vue
+2
-4
useProTable.js
src/hooks/useProTable.js
+5
-1
allocationModal.vue
...s/property/case-allocation/components/allocationModal.vue
+6
-21
index.vue
src/views/property/case-allocation/index.vue
+6
-5
allocationModal.vue
...roperty/case-allocationCpe/components/allocationModal.vue
+718
-0
index.vue
src/views/property/case-allocationCpe/index.vue
+573
-0
index.vue
src/views/property/case-back/index.vue
+20
-8
index.vue
src/views/property/case-repair/index.vue
+2
-0
index.vue
src/views/property/case-return/index.vue
+20
-8
index.vue
src/views/property/import/index.vue
+18
-14
index.vue
src/views/property/repair-manage/index.vue
+2
-0
index.vue
src/views/workplace/case/index.vue
+2
-0
No files found.
src/components/ProTable/index.vue
View file @
6a1b186b
...
...
@@ -118,7 +118,8 @@
props
.
showPagination
,
props
.
dataCallback
,
props
.
requestError
,
props
.
paramCallback
props
.
paramCallback
,
props
.
config
);
// 显示搜索
...
...
@@ -183,9 +184,6 @@
const
_search
=
()
=>
{
search
();
if
(
props
.
config
.
onCheckboxAll
)
{
props
.
config
.
onCheckboxAll
({
checked
:
false
,
records
:
[]})
}
};
const
_reset
=
()
=>
{
...
...
src/hooks/useProTable.js
View file @
6a1b186b
...
...
@@ -6,7 +6,8 @@ export function useProTable(
isPageable
,
dataCallBack
,
requestError
,
paramCallback
paramCallback
,
config
)
{
const
state
=
reactive
({
loading
:
false
,
...
...
@@ -121,6 +122,9 @@ export function useProTable(
* */
const
search
=
()
=>
{
state
.
pageable
.
current
=
1
;
if
(
config
.
onCheckboxAll
)
{
config
.
onCheckboxAll
({
checked
:
false
,
records
:
[]})
}
updatedTotalParam
();
getTableList
();
};
...
...
src/views/property/case-allocation/components/allocationModal.vue
View file @
6a1b186b
...
...
@@ -49,7 +49,7 @@
<div
style=
"margin-top: 10px; margin-bottom: 10px"
>
<el-radio-group
v-model=
"radio"
@
change=
"changeRadio"
>
<el-radio
:value=
"0"
v-permission=
"'allcation_for_tenant'"
>
分派到调解中心
</el-radio>
<
el-radio
:value=
"1"
>
分派到CPE
</el-radio
>
<
!--
<el-radio
:value=
"1"
>
分派到CPE
</el-radio>
--
>
</el-radio-group>
</div>
<template
v-if=
"radio === 0 || (radio === 1 && !step)"
>
...
...
@@ -276,7 +276,7 @@
const
chooseIdea
=
(
type
)
=>
{
editRowIndex
.
value
=
-
1
;
currentAllBtn
.
value
=
type
;
cons
t
param
=
{
le
t
param
=
{
type
:
currentAllBtn
.
value
,
tenantId
:
currentTenant
.
value
,
};
...
...
@@ -286,12 +286,7 @@
if
(
lonsArr
.
value
&&
lonsArr
.
value
.
length
)
{
param
[
'loanIds'
]
=
lonsArr
.
value
.
map
((
v
)
=>
v
.
id
);
}
else
{
param
[
'borrowerName'
]
=
pageParams
.
value
.
borrowerName
;
param
[
'batchCode'
]
=
pageParams
.
value
.
batchCode
;
param
[
'borrowerIdCard'
]
=
pageParams
.
value
.
idCard
;
param
[
'borrowerPhone'
]
=
pageParams
.
value
.
borrowerPhone
;
param
[
'commissionAmount'
]
=
pageParams
.
value
.
commissionAmount
;
param
[
'remainingAmount'
]
=
pageParams
.
value
.
remainingAmount
;
param
=
{
...
param
,
...
pageParams
.
value
};
}
distributeCpe
(
param
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
...
...
@@ -319,12 +314,7 @@
getTree
();
step
.
value
=
0
;
if
(
!
authButtonListGet
.
includes
(
'allcation_for_tenant'
))
{
radio
.
value
=
1
;
}
else
{
radio
.
value
=
0
;
}
radio
.
value
=
0
;
let
p
=
{}
if
(
lonsArr
.
value
&&
lonsArr
.
value
.
length
)
{
p
[
'loanIds'
]
=
lonsArr
.
value
.
map
((
v
)
=>
v
.
id
);
...
...
@@ -413,16 +403,11 @@
}
}
else
if
(
radio
.
value
===
0
)
{
// chooseIdea('BORROWER');
cons
t
param
=
{};
le
t
param
=
{};
if
(
lonsArr
.
value
&&
lonsArr
.
value
.
length
)
{
param
[
'loanIds'
]
=
lonsArr
.
value
.
map
((
v
)
=>
v
.
id
);
}
else
{
param
[
'borrowerName'
]
=
pageParams
.
value
.
borrowerName
;
param
[
'batchCode'
]
=
pageParams
.
value
.
batchCode
;
param
[
'borrowerIdCard'
]
=
pageParams
.
value
.
idCard
;
param
[
'borrowerPhone'
]
=
pageParams
.
value
.
borrowerPhone
;
param
[
'commissionAmount'
]
=
pageParams
.
value
.
commissionAmount
;
param
[
'remainingAmount'
]
=
pageParams
.
value
.
remainingAmount
;
param
=
{
...
pageParams
.
value
};
param
[
'tenantId'
]
=
null
;
}
distributeLoan
(
currentTenant
.
value
,
param
).
then
((
res
)
=>
{
...
...
src/views/property/case-allocation/index.vue
View file @
6a1b186b
...
...
@@ -9,7 +9,7 @@
<img
src=
"@/assets/images/caselist.svg"
/>
</div>
<div
class=
"title_warp"
>
<div
class=
"items"
>
未分
派案件数
</div>
<div
class=
"items"
>
在
派案件数
</div>
<div
class=
"item items1"
>
{{
statisis
.
caseNum
}}
</div>
</div>
</div>
...
...
@@ -18,8 +18,8 @@
<img
src=
"@/assets/images/userlist.svg"
/>
</div>
<div
class=
"title_warp"
>
<div
class=
"items"
>
未分派CPE
数
</div>
<div
class=
"item items1"
>
{{
statisis
.
cpe
Num
}}
</div>
<div
class=
"items"
>
在派案人
数
</div>
<div
class=
"item items1"
>
{{
statisis
.
borrower
Num
}}
</div>
</div>
</div>
<div
class=
"item_warp"
>
...
...
@@ -27,7 +27,7 @@
<img
src=
"@/assets/images/money.svg"
/>
</div>
<div
class=
"title_warp"
>
<div
class=
"items"
>
未分派总金额数
</div>
<div
class=
"items"
>
在派金额
</div>
<div
class=
"item items1"
>
¥
{{
statisis
.
amount
}}
</div>
</div>
</div>
...
...
@@ -89,6 +89,7 @@
const
router
=
useRouter
();
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
statisis
=
ref
({});
const
getStatisis
=
(
params
)
=>
{
...
...
@@ -160,6 +161,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
config
=
reactive
({
columns
:
[
...
...
@@ -264,7 +266,6 @@
showOverflow
:
'tooltip'
,
width
:
80
,
enum
:
DistributeStatus
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
105
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
src/views/property/case-allocationCpe/components/allocationModal.vue
0 → 100644
View file @
6a1b186b
This diff is collapsed.
Click to expand it.
src/views/property/case-allocationCpe/index.vue
0 → 100644
View file @
6a1b186b
This diff is collapsed.
Click to expand it.
src/views/property/case-back/index.vue
View file @
6a1b186b
...
...
@@ -66,13 +66,13 @@
<vxe-modal
resize
v-model=
"showModal"
title=
"
提示
"
title=
"
案件收回
"
height=
"342"
width=
"560"
show-footer
esc-closable
>
<div
class=
"top"
>
<div
class=
"top
px-3
"
>
<div
class=
"number-box"
>
<div
class=
"number-left"
>
<div
class=
"icon-wrapper"
>
...
...
@@ -107,15 +107,18 @@
</div>
</div>
</div>
<div
class=
"w-full px-3 mt-3 overflow-auto flex-col flex mytable"
>
⚠️回收处理后可重新分派
<br
/>
回收:只回收未留案的案件
<br
/>
强制回收:所有案件都会回收,留案案件会被强制回收
<br
/>
<div
class=
"w-full mt-6 px-3 overflow-hidden flex mytable items-center"
>
<div
class=
"font-bold pr-6"
>
留案案件:
</div>
<el-radio-group
v-model=
"form.option"
>
<!-- works when >=2.6.0, recommended ✔️ not work when <2.6.0 ❌ -->
<el-radio
value=
"withdraw"
>
回收
</el-radio>
<!-- works when <2.6.0, deprecated act as value when >=3.0.0 -->
<el-radio
label=
"fullWithdraw"
>
强制回收
</el-radio>
</el-radio-group>
</div>
<
template
#
footer
>
<el-button
type=
"default"
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('withdraw')"
>
回收
</el-button>
<el-button
type=
"danger"
@
click=
"submitForm('fullWithdraw')"
>
强制回收
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm1"
>
确认
</el-button>
</
template
>
</vxe-modal>
</div>
...
...
@@ -141,6 +144,9 @@
const
curParam
=
ref
({});
const
showModal
=
ref
(
false
);
const
dataValue
=
ref
(
'对查询结果操作'
);
const
form
=
reactive
({
option
:
'withdraw'
});
const
dataOptions
=
[
{
label
:
'对查询结果操作'
,
...
...
@@ -153,6 +159,7 @@
];
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
statisis
=
ref
({});
const
statisis1
=
ref
({});
...
...
@@ -190,6 +197,7 @@
p
=
curParam
.
value
;
}
getStatisis1
(
p
);
form
.
option
=
'withdraw'
showModal
.
value
=
true
;
};
const
submitForm
=
async
(
type
)
=>
{
...
...
@@ -220,6 +228,9 @@
query
();
showModal
.
value
=
false
;
};
const
submitForm1
=
()
=>
{
submitForm
(
form
.
option
)
}
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
obj
[
'tenant'
]
=
0
...
...
@@ -249,6 +260,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
onCellClick
=
(
row
)
=>
{
router
.
push
({
...
...
src/views/property/case-repair/index.vue
View file @
6a1b186b
...
...
@@ -92,6 +92,7 @@
const
RefImage
=
ref
(
false
);
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
// watch(
// () => AuditStatus.value,
...
...
@@ -176,6 +177,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
config
=
computed
(()
=>
{
return
{
...
...
src/views/property/case-return/index.vue
View file @
6a1b186b
...
...
@@ -66,13 +66,13 @@
<vxe-modal
resize
v-model=
"showModal"
title=
"
提示
"
title=
"
案件撤案
"
height=
"342"
width=
"560"
show-footer
esc-closable
>
<div
class=
"top"
>
<div
class=
"top
px-3
"
>
<div
class=
"number-box"
>
<div
class=
"number-left"
>
<div
class=
"icon-wrapper"
>
...
...
@@ -107,15 +107,18 @@
</div>
</div>
</div>
<div
class=
"w-full px-3 mt-3 overflow-auto flex-col flex mytable"
>
⚠️撤案处理后不可重新分派
<br
/>
撤案:只撤案未留案的案件
<br
/>
强制撤案:所有案件都会撤案,留案案件会被强制撤案
<br
/>
<div
class=
"w-full mt-6 px-3 overflow-hidden flex mytable items-center"
>
<div
class=
"font-bold pr-6"
>
撤案案件:
</div>
<el-radio-group
v-model=
"form.option"
>
<!-- works when >=2.6.0, recommended ✔️ not work when <2.6.0 ❌ -->
<el-radio
value=
"withdraw"
>
撤案
</el-radio>
<!-- works when <2.6.0, deprecated act as value when >=3.0.0 -->
<el-radio
label=
"fullWithdraw"
>
强制撤案
</el-radio>
</el-radio-group>
</div>
<
template
#
footer
>
<el-button
type=
"default"
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('withdraw')"
>
撤案
</el-button>
<el-button
type=
"danger"
@
click=
"submitForm('fullWithdraw')"
>
强制撤案
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm1"
>
确认
</el-button>
</
template
>
</vxe-modal>
</div>
...
...
@@ -141,6 +144,9 @@
const
curParam
=
ref
({});
const
showModal
=
ref
(
false
);
const
dataValue
=
ref
(
'对查询结果操作'
);
const
form
=
reactive
({
option
:
'withdraw'
});
const
dataOptions
=
[
{
label
:
'对查询结果操作'
,
...
...
@@ -153,6 +159,7 @@
];
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
statisis
=
ref
({});
const
statisis1
=
ref
({});
...
...
@@ -241,6 +248,7 @@
p
=
curParam
.
value
;
}
getStatisis1
(
p
);
form
.
option
=
'withdraw'
showModal
.
value
=
true
;
};
const
onCheckboxAll
=
(
flag
)
=>
{
...
...
@@ -249,6 +257,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
onCellClick
=
(
row
)
=>
{
router
.
push
({
...
...
@@ -629,6 +638,9 @@
onCheckboxChange
:
onCheckboxChange
,
onCheckboxAll
:
onCheckboxAll
,
});
const
submitForm1
=
()
=>
{
submitForm
(
form
.
option
)
}
const
query
=
()
=>
caseLRef
.
value
?.
search
();
...
...
src/views/property/import/index.vue
View file @
6a1b186b
...
...
@@ -87,13 +87,17 @@
</el-form-item>
</el-col>
<el-col
:span=
"11"
>
<el-form-item
class=
"w-full"
label=
"分期最大期数:"
prop=
"maxStagesNum"
>
<el-input
v-model
.
number=
"form.maxStagesNum"
placeholder=
"请输入"
style=
"width: 100%"
/>
<el-form-item
class=
"w-full"
label=
"是否共案处理:"
prop=
"mergerCase"
>
<el-radio-group
v-model=
"form.mergerCase"
>
<el-radio
value=
"Y"
>
是
</el-radio>
<el-radio
value=
"N"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"13"
>
<el-form-item
class=
"w-full"
label=
"最低分期金额:"
prop=
"minAmount"
>
<el-input
v-model=
"form.minAmount"
placeholder=
"请输入"
style=
"width: 100%"
/>
<el-input
v-model=
"form.minAmount"
type=
"number"
placeholder=
"请输入"
style=
"width: 100%"
/>
</el-form-item>
</el-col>
<el-col
:span=
"11"
>
...
...
@@ -102,11 +106,8 @@
</el-form-item>
</el-col>
<el-col
:span=
"13"
>
<el-form-item
class=
"w-full"
label=
"是否共案处理:"
prop=
"mergerCase"
>
<el-radio-group
v-model=
"form.mergerCase"
>
<el-radio
value=
"Y"
>
是
</el-radio>
<el-radio
value=
"N"
>
否
</el-radio>
</el-radio-group>
<el-form-item
class=
"w-full"
label=
"分期最大期数:"
prop=
"maxStagesNum"
>
<el-input
v-model
.
number=
"form.maxStagesNum"
placeholder=
"请输入"
style=
"width: 100%"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -164,9 +165,9 @@
}
}
}
const
checkm
inAmount
=
(
rule
,
value
,
callback
)
=>
{
if
(
isNaN
(
Number
(
value
)))
{
callback
(
new
Error
(
'请输入
数字
值'
));
const
checkm
axStagesNum
=
(
rule
,
value
,
callback
)
=>
{
if
(
isNaN
(
Number
(
value
))
||
Number
(
value
)
%
1
!==
0
)
{
callback
(
new
Error
(
'请输入
整数
值'
));
}
else
{
callback
();
}
...
...
@@ -175,9 +176,12 @@
discount
:
[
{
validator
:
checkDiscount
,
trigger
:
'blur'
},
],
minAmount
:
[
{
validator
:
checkminAmount
,
trigger
:
'blur'
},
]
// minAmount: [
// { validator: checkminAmount, trigger: 'blur' },
// ],
maxStagesNum
:
[
{
validator
:
checkmaxStagesNum
,
trigger
:
'blur'
},
],
});
const
downloadfile
=
inject
(
'download'
);
const
formRef
=
ref
();
...
...
src/views/property/repair-manage/index.vue
View file @
6a1b186b
...
...
@@ -104,6 +104,7 @@
};
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
onCheckboxAll
=
(
flag
)
=>
{
if
(
flag
.
checked
)
{
...
...
@@ -111,6 +112,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
paramCallback
=
(
param
)
=>
{
console
.
log
(
'objobj'
,
param
)
...
...
src/views/workplace/case/index.vue
View file @
6a1b186b
...
...
@@ -107,6 +107,7 @@
};
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
onCheckboxAll
=
(
flag
)
=>
{
if
(
flag
.
checked
)
{
...
...
@@ -114,6 +115,7 @@
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
};
const
onCellClick
=
(
row
)
=>
{
router
.
push
({
...
...
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