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
546766b0
Commit
546766b0
authored
May 24, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
标签临时提交
parent
de2b5a50
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
604 additions
and
447 deletions
+604
-447
property.js
src/api/property.js
+16
-0
caseModal.vue
src/views/property/case-manage/components/caseModal.vue
+0
-427
tagModal.vue
src/views/property/case-manage/components/tagModal.vue
+236
-0
index.vue
src/views/property/case-manage/index.vue
+133
-19
tagModal.vue
src/views/workplace/case/components/tagModal.vue
+171
-0
index.vue
src/views/workplace/case/index.vue
+48
-1
No files found.
src/api/property.js
View file @
546766b0
...
@@ -156,3 +156,19 @@ export const applyDownloadById = (params) => {
...
@@ -156,3 +156,19 @@ export const applyDownloadById = (params) => {
export
const
downLoadApplyStatusById
=
(
params
)
=>
{
export
const
downLoadApplyStatusById
=
(
params
)
=>
{
return
request
.
get
(
'/RepairApply/downLoadApplyStatusById'
,
params
);
return
request
.
get
(
'/RepairApply/downLoadApplyStatusById'
,
params
);
};
};
// 添加标签
export
const
addTag
=
(
params
)
=>
{
return
request
.
get
(
'/Loan/addTag'
,
params
);
};
// 导入标签
export
const
importTag
=
(
params
)
=>
{
return
request
.
get
(
'/Loan/importTag'
,
params
);
};
// 删除标签
export
const
deleteTag
=
(
params
)
=>
{
return
request
.
get
(
'/Loan/deleteTag'
,
params
);
};
// 获取标签
export
const
listTags
=
(
params
)
=>
{
return
request
.
get
(
'/Loan/listTags'
,
params
);
};
\ No newline at end of file
src/views/property/case-manage/components/caseModal.vue
deleted
100644 → 0
View file @
de2b5a50
This diff is collapsed.
Click to expand it.
src/views/property/case-manage/components/tagModal.vue
0 → 100644
View file @
546766b0
<
template
>
<vxe-modal
resize
v-model=
"showModal"
:title=
"title"
@
hide=
"onHide"
height=
"300"
width=
"430"
show-footer
esc-closable
>
<div
class=
"tag-wrapper"
>
<template
v-if=
"title === '添加临时标签'"
>
<div
class=
"flex items-center"
>
<div>
临时标签:
</div>
<el-input
v-model=
"form.tag"
placeholder=
"请输入临时标签"
style=
"width: 200px"
/>
</div>
</
template
>
<
template
v-if=
"title === '导入批量添加标签'"
>
<div
class=
"flex justify-center"
>
<div
style=
"line-height: 28px;"
>
上传文件:
</div>
<el-upload
class=
"avatar-uploader"
:headers=
"
{ timeout: 600000 }"
ref="uploadRef"
:action="upload.url"
:disabled="upload.isUploading"
accept=".xls, .xlsx"
:auto-upload="true"
:limit="1"
:on-success="handleFileSuccess"
:on-remove="handleRemove"
:on-progress="uploadVideoProcess"
>
<el-button
type=
"primary"
plain
:loading=
"upload.isUploading"
>
点击上传
</el-button
>
</el-upload>
</div>
</
template
>
<
template
v-if=
"title === '删除临时标签'"
>
<div
class=
"flex items-center"
>
<div>
临时标签:
</div>
<el-select
v-model=
"form.tag"
style=
"width: 200px"
placeholder=
"请选择临时标签"
>
<el-option
v-for=
"item in tagOpt"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
<div
class=
"w-full"
>
<el-checkbox
v-model=
"form.check"
>
从所有案件中删除此标签
</el-checkbox>
</div>
</
template
>
</div>
<
template
#
footer
>
<el-button
type=
"primary"
link
style=
"float: left;"
v-if=
"title === '导入批量添加标签'"
@
click=
"downloadtemplate"
>
点击下载模版
</el-button>
<el-button
type=
"default"
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确认
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
setup
lang=
"jsx"
name=
"allocationModal"
>
import
{
UserFilled
}
from
'@element-plus/icons-vue'
;
import
{
RefreshRight
}
from
'@element-plus/icons-vue'
;
import
{
ElInputNumber
}
from
'element-plus'
;
import
{
addTag
,
importTag
,
deleteTag
,
listTags
}
from
'@/api/property'
;
import
{
inject
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
ElMessageBox
,
ElMessage
}
from
'element-plus'
;
const
data
=
ref
([]);
const
uploadRef
=
ref
();
const
tabledata
=
ref
([]);
const
showModal
=
ref
(
false
);
const
form
=
ref
({
tag
:
''
,
fileUrl
:
''
,
check
:
false
});
const
currentAllBtn
=
ref
(
1
);
const
editRowIndex
=
ref
(
-
1
);
const
envs
=
getAppEnvConfig
();
const
tagOpt
=
ref
([]);
const
title
=
ref
();
const
curParam
=
ref
({})
const
downloadfile
=
inject
(
'download'
);
const
emits
=
defineEmits
([
'success'
]);
const
upload
=
reactive
({
// 是否禁用上传
isUploading
:
false
,
// 上传的地址
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/upload'
,
});
const
onHide
=
()
=>
{
form
.
value
=
{
tag
:
''
,
fileUrl
:
''
,
check
:
false
};
};
const
handleFileSuccess
=
(
response
,
file
,
fileList
)
=>
{
if
(
!
response
.
success
)
{
ElMessage
.
error
({
message
:
response
.
message
||
'检查失败'
,
plain
:
true
,
});
upload
.
isUploading
=
false
;
uploadRef
.
value
.
clearFiles
();
}
if
(
response
.
success
)
{
ElMessage
.
success
({
message
:
'上传成功'
,
plain
:
true
,
});
form
.
value
.
fileUrl
=
response
.
message
;
upload
.
isUploading
=
false
;
}
};
const
handleRemove
=
()
=>
{
form
.
value
.
fileUrl
=
''
;
};
const
openModal
=
(
type
,
paramsStatic
,
selectlist
)
=>
{
showModal
.
value
=
true
;
if
(
type
==
'add'
)
title
.
value
=
'添加临时标签'
if
(
type
==
'import'
)
title
.
value
=
'导入批量添加标签'
if
(
type
==
'del'
)
title
.
value
=
'删除临时标签'
if
(
selectlist
&&
selectlist
.
length
)
{
curParam
.
value
[
'ids'
]
=
selectlist
.
map
((
v
)
=>
v
.
id
).
join
(
','
);
}
else
{
curParam
.
value
=
paramsStatic
;
}
listTags
().
then
(
res
=>
{
if
(
res
.
success
)
{
tagOpt
.
value
=
res
.
result
}
})
};
const
uploadVideoProcess
=
(
event
,
file
,
fileList
)
=>
{
upload
.
isUploading
=
true
;
};
const
backform
=
()
=>
{
step
.
value
=
0
;
};
const
submitForm
=
()
=>
{
if
(
title
.
value
===
'添加临时标签'
)
{
addTag
({
tag
:
form
.
value
.
tag
,
...
curParam
.
value
}).
then
(
res
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
({
message
:
'添加成功'
,
plain
:
true
,
});
showModal
.
value
=
false
;
emits
(
'success'
);
}
})
}
else
if
(
title
.
value
===
'导入批量添加标签'
)
{
if
(
!
form
.
value
.
fileUrl
)
{
return
ElMessage
.
warning
({
message
:
'请上传标签文件'
,
plain
:
true
,
});
}
importTag
({
fileUrl
:
form
.
value
.
fileUrl
}).
then
(
res
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
({
message
:
'上传成功'
,
plain
:
true
,
});
showModal
.
value
=
false
;
emits
(
'success'
);
}
})
}
else
{
if
(
!
form
.
value
.
tag
)
{
return
ElMessage
.
warning
({
message
:
'请选择临时标签'
,
plain
:
true
,
});
}
const
param
=
{
tags
:
form
.
value
.
tag
,
}
if
(
!
form
.
check
)
{
param
[
'ids'
]
=
curParam
.
value
[
'ids'
]
}
deleteTag
(
param
).
then
(
res
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
({
message
:
'上传成功'
,
plain
:
true
,
});
showModal
.
value
=
false
;
emits
(
'success'
);
}
})
}
};
const
downloadtemplate
=
()
=>
{
downloadfile
(
'/Loan/downloadTag'
,
{},
'标签模版.xls'
);
};
const
handleNodeClick
=
(
data
)
=>
{
console
.
log
(
data
);
};
const
resetAllocation
=
()
=>
{
editRowIndex
.
value
=
-
1
;
};
const
changeNum
=
(
type
,
row
,
index
)
=>
{
editRowIndex
.
value
=
index
;
console
.
log
(
'changeNum'
,
type
,
row
,
index
);
};
const
leftChange
=
(
value
,
direction
)
=>
{
console
.
log
(
value
,
direction
);
//这个就是它包含的所有的属性以及事件,如果需要别的操作直接执行,也可以查询到
};
defineExpose
({
openModal
,
});
</
script
>
<
style
lang=
"scss"
scoped
>
.tag-wrapper
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
height
:
100%
;
padding-left
:
20px
;
}
</
style
>
src/views/property/case-manage/index.vue
View file @
546766b0
<
template
>
<
template
>
<div
class=
"table-box"
>
<div
class=
"table-box"
>
<div
class=
"table-inner"
>
<div
class=
"table-inner"
>
<ProTable
:config=
"config"
ref=
"caseL
Ref"
:api=
"getCreditPage"
:paramCallback=
"paramCallback"
>
<ProTable
:config=
"config"
key=
"caseManag"
ref=
"caseMan
Ref"
:api=
"getCreditPage"
:paramCallback=
"paramCallback"
>
<template
#
table_top
>
<template
#
table_top
>
<div
class=
"style-lable"
style=
"width: 100%"
>
<div
class=
"style-lable"
style=
"width: 100%"
>
<div
class=
"item_warp"
style=
"width: 23%"
>
<div
class=
"item_warp"
style=
"width: 23%"
>
...
@@ -43,31 +43,64 @@
...
@@ -43,31 +43,64 @@
</div>
</div>
</
template
>
</
template
>
<
template
#
left_buttons
>
<
template
#
left_buttons
>
<el-button
type=
"primary"
@
click=
"download"
v-permission=
"'caseManageExport'"
>
导出
</el-button>
<div
class=
"flex rounded w-full h-11 items-center pl-2 btn-grp mb-1"
>
<el-dropdown
@
command=
"(command) => (dataValue = command)"
>
<span
class=
"el-dropdown-link"
>
{{
dataValue
}}
<el-icon
class=
"el-icon--right"
>
<arrow-down
/>
</el-icon>
</span>
<template
#
dropdown
>
<el-dropdown-item
v-for=
"item in dataOptions"
:key=
"item.value"
:command=
"item.value"
>
{{
item
.
label
}}
</el-dropdown-item
>
</
template
>
</el-dropdown>
<el-dropdown>
<el-button
type=
"primary"
@
click=
"addTag"
>
<el-icon
class=
"el-icon--left"
><arrow-down
/></el-icon>
添加临时标签
</el-button>
<
template
#
dropdown
>
<el-dropdown-menu
@
click=
"handleClick"
>
<el-dropdown-item>
导入批量添加标签
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
<el-button
type=
"primary"
@
click=
"delTag"
style=
"margin-left: 10px"
>
删除临时标签
</el-button>
<el-button
type=
"primary"
@
click=
"download"
v-permission=
"'caseManageExport'"
style=
"margin-left: 10px"
v-if=
"dataValue === '对查询结果操作'"
>
导出
</el-button>
</div>
<div
style=
"font-size: 15px; margin-top: 10px;"
>
选中项:{{ selectdList.length }}
<span
class=
"text-blue-400 cursor-pointer ml-4"
@
click=
"cancel"
>
取消
</span></div
>
</template>
</template>
</ProTable>
</ProTable>
</div>
</div>
<
caseModal
ref=
"caseModalRef"
/>
<
tagModal
ref=
"tagModalRef"
@
success=
"query"
/>
</div>
</div>
</template>
</template>
<
script
setup
name=
"case-manage"
lang=
"jsx"
>
<
script
setup
name=
"case-manage"
lang=
"jsx"
>
import
caseModal
from
'./components/case
Modal.vue'
;
import
tagModal
from
'./components/tag
Modal.vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
getCreditPage
,
getCreditTotal
}
from
'@/api/property'
;
import
{
getCreditPage
,
getCreditTotal
}
from
'@/api/property'
;
import
{
ElButton
,
ElMessage
,
ElTag
}
from
'element-plus'
;
import
{
ElButton
,
ElMessage
,
ElTag
}
from
'element-plus'
;
import
{
getTenantPage
}
from
'@/api/tenant'
;
import
{
getTenantPage
}
from
'@/api/tenant'
;
import
{
useAuthStore
}
from
'@/stores/modules/auth'
;
import
{
useAuthStore
}
from
'@/stores/modules/auth'
;
const
case
ModalRef
=
ref
();
const
tag
ModalRef
=
ref
();
const
case
L
Ref
=
ref
();
const
case
Man
Ref
=
ref
();
const
statisis
=
ref
({});
const
statisis
=
ref
({});
const
paramsStatic
=
ref
({});
const
paramsStatic
=
ref
({});
const
{
authButtonListGet
}
=
useAuthStore
();
// 获取用户权限列表
const
{
authButtonListGet
}
=
useAuthStore
();
// 获取用户权限列表
import
{
inject
}
from
'vue'
;
import
{
inject
}
from
'vue'
;
const
downloadfile
=
inject
(
'download'
);
const
downloadfile
=
inject
(
'download'
);
import
{
onMounted
}
from
'vue'
;
import
{
onMounted
,
nextTick
}
from
'vue'
;
import
{
getPlatformPage
}
from
'@/api/platform'
;
import
{
getPlatformPage
}
from
'@/api/platform'
;
import
{
getManageOrgPage
}
from
'@/api/manageOrg'
;
import
{
getManageOrgPage
}
from
'@/api/manageOrg'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
import
{
useDict
}
from
'@/hooks/useDict'
;
...
@@ -90,7 +123,83 @@
...
@@ -90,7 +123,83 @@
'AuditStatus'
,
'AuditStatus'
,
'CaseStatus'
'CaseStatus'
);
);
const
selectdList
=
ref
([]);
const
dataValue
=
ref
(
'对查询结果操作'
);
const
onCheckboxChange
=
(
row
)
=>
{
nextTick
(()
=>
{
selectdList
.
value
=
row
.
records
;
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
;
})
};
const
cancel
=
()
=>
{
caseManRef
.
value
.
element
.
setAllCheckboxRow
(
false
);
onCheckboxAll
({
checked
:
false
,
records
:
[]
});
}
const
onCheckboxAll
=
(
flag
)
=>
{
if
(
flag
.
checked
)
{
selectdList
.
value
=
flag
.
records
;
}
else
{
selectdList
.
value
=
[];
}
dataValue
.
value
=
selectdList
.
value
.
length
>
0
?
'对选中项操作'
:
'对查询结果操作'
;
};
const
dataOptions
=
[
{
label
:
'对查询结果操作'
,
value
:
'对查询结果操作'
,
},
{
label
:
'对选中项操作'
,
value
:
'对选中项操作'
,
},
];
const
router
=
useRouter
();
const
router
=
useRouter
();
const
addTag
=
()
=>
{
if
(
dataValue
.
value
===
'对选中项操作'
&&
(
!
selectdList
.
value
||
!
selectdList
.
value
.
length
))
{
return
ElMessage
.
warning
({
message
:
'请先选择操作对象!'
,
plain
:
true
,
});
}
if
(
dataValue
.
value
===
'对选中项操作'
)
{
tagModalRef
.
value
?.
openModal
(
'add'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
JSON
.
parse
(
JSON
.
stringify
(
selectdList
.
value
)))
}
else
{
tagModalRef
.
value
?.
openModal
(
'add'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
[])
}
}
const
handleClick
=
()
=>
{
if
(
dataValue
.
value
===
'对选中项操作'
&&
(
!
selectdList
.
value
||
!
selectdList
.
value
.
length
))
{
return
ElMessage
.
warning
({
message
:
'请先选择操作对象!'
,
plain
:
true
,
});
}
if
(
dataValue
.
value
===
'对选中项操作'
)
{
tagModalRef
.
value
?.
openModal
(
'import'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
JSON
.
parse
(
JSON
.
stringify
(
selectdList
.
value
)))
}
else
{
tagModalRef
.
value
?.
openModal
(
'import'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
[])
}
}
const
delTag
=
()
=>
{
if
(
dataValue
.
value
===
'对选中项操作'
&&
(
!
selectdList
.
value
||
!
selectdList
.
value
.
length
))
{
return
ElMessage
.
warning
({
message
:
'请先选择操作对象!'
,
plain
:
true
,
});
}
if
(
dataValue
.
value
===
'对选中项操作'
)
{
tagModalRef
.
value
?.
openModal
(
'del'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
JSON
.
parse
(
JSON
.
stringify
(
selectdList
.
value
)))
}
else
{
tagModalRef
.
value
?.
openModal
(
'del'
,
JSON
.
parse
(
JSON
.
stringify
(
paramsStatic
.
value
)),
[])
}
}
const
onCellClick
=
(
row
)
=>
{
const
onCellClick
=
(
row
)
=>
{
router
.
push
({
router
.
push
({
path
:
'/property/case-detail'
,
path
:
'/property/case-detail'
,
...
@@ -129,7 +238,9 @@
...
@@ -129,7 +238,9 @@
downloadfile
(
'/LoanExcel/download'
,
paramsStatic
.
value
,
'资产列表.xls'
);
downloadfile
(
'/LoanExcel/download'
,
paramsStatic
.
value
,
'资产列表.xls'
);
};
};
const
config
=
reactive
({
const
config
=
reactive
({
id
:
'caseManage'
,
columns
:
[
columns
:
[
{
type
:
'checkbox'
,
title
:
''
,
width
:
60
,
fixed
:
'left'
},
{
{
field
:
'caseId'
,
field
:
'caseId'
,
title
:
'案件ID'
,
title
:
'案件ID'
,
...
@@ -206,6 +317,18 @@
...
@@ -206,6 +317,18 @@
labelWidth
:
90
,
labelWidth
:
90
,
},
},
},
},
{
field
:
'tag'
,
title
:
'临时标签'
,
showOverflow
:
'tooltip'
,
width
:
140
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'queryTag'
,
labelWidth
:
90
,
},
},
{
{
field
:
'discount'
,
field
:
'discount'
,
title
:
'折扣'
,
title
:
'折扣'
,
...
@@ -449,17 +572,6 @@
...
@@ -449,17 +572,6 @@
width
:
80
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
90
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
labelWidth
:
90
},
},
},
{
field
:
'repayStatus'
,
title
:
'还款状态'
,
showOverflow
:
'tooltip'
,
width
:
80
,
slots
:
{
default
:
({
row
})
=>
{
return
<
div
>
{
row
.
repayStatus
==
'over'
?
'已还款'
:
'待还款'
}
<
/div>
;
},
},
},
{
{
field
:
'commission'
,
field
:
'commission'
,
showOverflow
:
'tooltip'
,
showOverflow
:
'tooltip'
,
...
@@ -644,9 +756,11 @@
...
@@ -644,9 +756,11 @@
width
:
80
,
width
:
80
,
},
},
],
],
onCheckboxChange
:
onCheckboxChange
,
onCheckboxAll
:
onCheckboxAll
,
});
});
const
query
=
()
=>
case
L
Ref
.
value
?.
search
();
const
query
=
()
=>
case
Man
Ref
.
value
?.
search
();
onMounted
(()
=>
{
onMounted
(()
=>
{
query
();
query
();
...
...
src/views/workplace/case/components/tagModal.vue
0 → 100644
View file @
546766b0
<
template
>
<vxe-modal
resize
v-model=
"showModal"
:title=
"title"
@
hide=
"onHide"
height=
"300"
width=
"430"
show-footer
esc-closable
>
<div
class=
"tag-wrapper"
>
<template
v-if=
"title === '添加临时标签'"
>
<div
class=
"flex items-center"
>
<div>
临时标签:
</div>
<el-input
v-model=
"form.tag"
placeholder=
"请输入临时标签"
style=
"width: 200px"
/>
</div>
</
template
>
<
template
v-if=
"title === '导入批量添加标签'"
>
<div
class=
"flex items-center"
>
<div>
上传文件:
</div>
<el-upload
class=
"avatar-uploader"
:headers=
"
{ timeout: 600000 }"
ref="uploadRef"
:action="upload.url"
:disabled="upload.isUploading"
accept=".xls, .xlsx"
:auto-upload="false"
:limit="1"
:on-success="handleFileSuccess"
:on-remove="handleRemove"
:on-progress="uploadVideoProcess"
>
<el-button
type=
"primary"
plain
:loading=
"upload.isUploading"
>
点击上传
</el-button
>
</el-upload>
</div>
</
template
>
</div>
<
template
#
footer
>
<el-button
type=
"default"
link
style=
"margin-right:auto"
v-if=
"title === '导入批量添加标签'"
@
click=
"downloadtemplate"
>
点击下载模版
</el-button>
<el-button
type=
"default"
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确认
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
setup
lang=
"jsx"
name=
"allocationModal"
>
import
{
UserFilled
}
from
'@element-plus/icons-vue'
;
import
{
RefreshRight
}
from
'@element-plus/icons-vue'
;
import
{
ElInputNumber
}
from
'element-plus'
;
import
{
addTag
}
from
'@/api/property'
;
import
{
inject
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
reactive
,
ref
}
from
'vue'
;
const
data
=
ref
([]);
const
uploadRef
=
ref
();
const
tabledata
=
ref
([]);
const
showModal
=
ref
(
false
);
const
form
=
ref
({
tag
:
''
});
const
currentAllBtn
=
ref
(
1
);
const
editRowIndex
=
ref
(
-
1
);
const
envs
=
getAppEnvConfig
();
const
radio
=
ref
(
0
);
const
title
=
ref
();
const
curParam
=
ref
({})
const
downloadfile
=
inject
(
'download'
);
const
emits
=
defineEmits
([
'success'
]);
const
upload
=
reactive
({
// 是否禁用上传
isUploading
:
false
,
// 上传的地址
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/Loan/importTag'
,
});
const
onHide
=
()
=>
{
form
.
value
=
{
tag
:
''
};
};
const
handleFileSuccess
=
(
response
,
file
,
fileList
)
=>
{
if
(
!
response
.
success
)
{
ElMessage
.
error
({
message
:
response
.
message
||
'上传失败'
,
plain
:
true
,
});
upload
.
isUploading
=
false
;
uploadRef
.
value
.
clearFiles
();
}
if
(
response
.
success
)
{
ElMessage
.
success
({
message
:
'上传成功'
,
plain
:
true
,
});
upload
.
isUploading
=
false
;
showModal
.
value
=
false
;
emits
(
'success'
);
}
};
const
handleRemove
=
()
=>
{
};
const
openModal
=
(
type
,
paramsStatic
,
selectlist
)
=>
{
showModal
.
value
=
true
;
if
(
type
==
'add'
)
title
.
value
=
'添加临时标签'
if
(
type
==
'import'
)
title
.
value
=
'导入批量添加标签'
if
(
type
==
'del'
)
title
.
value
=
'删除临时标签'
if
(
selectlist
&&
selectlist
.
length
)
{
curParam
.
value
[
'ids'
]
=
selectlist
.
map
((
v
)
=>
v
.
id
);
}
else
{
curParam
.
value
=
paramsStatic
;
}
};
const
uploadVideoProcess
=
(
event
,
file
,
fileList
)
=>
{
upload
.
isUploading
=
true
;
};
const
backform
=
()
=>
{
step
.
value
=
0
;
};
const
submitForm
=
()
=>
{
if
(
title
.
value
===
'添加临时标签'
)
{
addTag
({
...
form
.
value
,
...
curParam
.
value
}).
then
(
res
=>
{
if
(
res
.
success
)
{
return
ElMessage
.
success
({
message
:
'添加成功'
,
plain
:
true
,
});
showModal
.
value
=
false
;
emits
(
'success'
);
}
})
}
else
if
(
title
.
value
===
'导入批量添加标签'
)
{
uploadRef
.
value
?.
submit
()
}
else
{
}
};
const
downloadtemplate
=
()
=>
{
downloadfile
(
'/Loan/downloadTag'
,
{},
'标签模版.xls'
);
};
const
handleNodeClick
=
(
data
)
=>
{
console
.
log
(
data
);
};
const
resetAllocation
=
()
=>
{
editRowIndex
.
value
=
-
1
;
};
const
changeNum
=
(
type
,
row
,
index
)
=>
{
editRowIndex
.
value
=
index
;
console
.
log
(
'changeNum'
,
type
,
row
,
index
);
};
const
leftChange
=
(
value
,
direction
)
=>
{
console
.
log
(
value
,
direction
);
//这个就是它包含的所有的属性以及事件,如果需要别的操作直接执行,也可以查询到
};
defineExpose
({
openModal
,
});
</
script
>
<
style
lang=
"scss"
scoped
>
.tag-wrapper
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
height
:
100%
;
}
</
style
>
src/views/workplace/case/index.vue
View file @
546766b0
...
@@ -78,15 +78,28 @@
...
@@ -78,15 +78,28 @@
</el-dropdown-menu>
</el-dropdown-menu>
</
template
>
</
template
>
</el-dropdown>
</el-dropdown>
<el-dropdown>
<el-button
type=
"primary"
@
click=
"addTag"
>
<el-icon
class=
"el-icon--left"
><arrow-down
/></el-icon>
添加临时标签
</el-button>
<
template
#
dropdown
>
<el-dropdown-menu
@
click=
"handleClick1"
>
<el-dropdown-item>
导入批量添加标签
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
<el-button
type=
"primary"
@
click=
"delTag"
style=
"margin-left: 10px"
>
删除临时标签
</el-button>
<el-button
type=
"primary"
@
click=
"stayCase"
>
留案
</el-button>
<el-button
type=
"primary"
@
click=
"stayCase"
>
留案
</el-button>
</div>
</div>
</template>
</template>
</ProTable>
</ProTable>
</div>
</div>
<tagModal
ref=
"tagModalRef"
@
success=
"query"
/>
</div>
</div>
</template>
</template>
<
script
setup
name=
"case-manage"
lang=
"jsx"
>
<
script
setup
name=
"case-manage"
lang=
"jsx"
>
import
tagModal
from
'./components/tagModal.vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
computed
,
reactive
,
ref
,
nextTick
}
from
'vue'
;
import
{
computed
,
reactive
,
ref
,
nextTick
}
from
'vue'
;
import
{
getCreditPage
,
getCreditTotal
}
from
'@/api/property'
;
import
{
getCreditPage
,
getCreditTotal
}
from
'@/api/property'
;
...
@@ -118,11 +131,33 @@
...
@@ -118,11 +131,33 @@
'AuditStatus'
,
'AuditStatus'
,
'CaseStatus'
'CaseStatus'
);
);
const
tagModalRef
=
ref
();
const
{
userInfo
}
=
useUserStore
();
const
{
userInfo
}
=
useUserStore
();
const
router
=
useRouter
();
const
router
=
useRouter
();
const
tabs
=
ref
([
'全部'
,
'今天待跟进'
,
'明天待跟进'
,
'后天待跟进'
]);
const
tabs
=
ref
([
'全部'
,
'今天待跟进'
,
'明天待跟进'
,
'后天待跟进'
]);
const
activeName
=
ref
(
'全部'
);
const
activeName
=
ref
(
'全部'
);
const
addTag
=
()
=>
{
if
(
dataValue
.
value
===
'对选中项操作'
&&
(
!
selectdList
.
value
||
!
selectdList
.
value
.
length
))
{
return
ElMessage
.
warning
({
message
:
'请先选择操作对象!'
,
plain
:
true
,
});
}
if
(
dataValue
.
value
===
'对选中项操作'
)
{
tagModalRef
.
value
?.
openModal
(
'add'
,
JSON
.
parse
(
JSON
.
stringify
(
curParam
.
value
)),
JSON
.
parse
(
JSON
.
stringify
(
selectdList
.
value
)))
}
else
{
tagModalRef
.
value
?.
openModal
(
'add'
,
JSON
.
parse
(
JSON
.
stringify
(
curParam
.
value
)),
[])
}
}
const
handleClick1
=
()
=>
{
tagModalRef
.
value
?.
openModal
(
'import'
)
}
const
delTag
=
()
=>
{
tagModalRef
.
value
?.
openModal
(
'del'
)
}
const
selectdList
=
ref
([]);
const
selectdList
=
ref
([]);
const
tableTrue
=
ref
(
true
);
const
tableTrue
=
ref
(
true
);
const
curParam
=
ref
({});
const
curParam
=
ref
({});
...
@@ -301,6 +336,18 @@
...
@@ -301,6 +336,18 @@
labelWidth
:
90
,
labelWidth
:
90
,
},
},
},
},
{
field
:
'tag'
,
title
:
'临时标签'
,
showOverflow
:
'tooltip'
,
width
:
140
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'queryTag'
,
labelWidth
:
90
,
},
},
{
{
field
:
'discount'
,
field
:
'discount'
,
title
:
'折扣'
,
title
:
'折扣'
,
...
...
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