Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
csbr-daop
/
fe-data-trusted-space
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
266e97ec
authored
2025-04-08 16:57:12 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
证件管理
1 parent
3f016796
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
246 additions
and
26 deletions
src/api/modules/dataAsset.ts
src/views/data_asset/certificateManagement.vue
src/views/indexNewBigScreen.vue
src/api/modules/dataAsset.ts
View file @
266e97e
...
...
@@ -205,13 +205,39 @@ export const getCertificateDetail = (params) => request({
params
})
/** 发证确认 */
/** 获取登记证件管理的资产列表 */
export
const
getRegisterSelectList
=
()
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/register-base/register-select`
,
method
:
'get'
})
/** 新增发证 */
export
const
saveCertificate
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/register-document/save`
,
method
:
'post'
,
data
:
params
})
export
const
updateCertificate
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/register-document/update
-state
`
,
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/register-document/update`
,
method
:
'post'
,
data
:
params
})
/** 删除发证 */
export
const
delCertificate
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_API_NEW_PORTAL
}
/register-document/del`
,
method
:
'delete'
,
data
:
params
})
/** 发证确认 */
// export const updateCertificate = (params) => request({
// url: `${import.meta.env.VITE_API_NEW_PORTAL}/register-document/update-state`,
// method: 'post',
// data: params
// })
/** 获取当前会员分配的交易所 */
export
const
getServiceDetail
=
(
params
)
=>
request
({
url
:
`
${
import
.
meta
.
env
.
VITE_APP_API_BASEURL
}
/tenant-service/list-by-tenant?tenantGuid=
${
params
}
`
,
...
...
src/views/data_asset/certificateManagement.vue
View file @
266e97e
...
...
@@ -9,13 +9,17 @@ import TableTools from "@/components/Tools/table_tools.vue";
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
;
import
{
getRegistDocumentList
,
updateCertificate
updateCertificate
,
getRegisterSelectList
,
saveCertificate
,
delCertificate
}
from
"@/api/modules/dataAsset"
;
import
useUserStore
from
"@/store/modules/user"
;
import
useDataAssetStore
from
"@/store/modules/dataAsset"
;
import
{
useValidator
}
from
'@/hooks/useValidator'
;
const
assetStore
=
useDataAssetStore
();
const
{
required
}
=
useValidator
();
const
router
=
useRouter
();
const
{
proxy
}
=
getCurrentInstance
()
as
any
;
...
...
@@ -25,6 +29,8 @@ const userData = JSON.parse(userStore.userData);
/** 是否时企业端。不是企业端,则是服务端,需要显示企业名称。 */
const
isCompanyPlatform
=
ref
(
userData
.
tenantType
==
1
);
const
registerSelectData
:
any
=
ref
([]);
onBeforeMount
(()
=>
{
if
(
isCompanyPlatform
.
value
)
{
tableInfo
.
value
.
fields
=
tableFields
.
value
;
...
...
@@ -40,6 +46,14 @@ onActivated(() => {
getTableData
();
assetStore
.
set
(
false
);
}
getRegisterSelectList
().
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
registerSelectData
.
value
=
res
.
data
||
[];
formItems
.
value
[
0
].
options
=
registerSelectData
.
value
;
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
})
});
const
searchItemList
=
ref
([
...
...
@@ -164,7 +178,7 @@ const tableInfo = ref({
actionInfo
:
{
label
:
"操作"
,
type
:
"btn"
,
width
:
1
2
0
,
width
:
1
5
0
,
btns
:
(
scope
)
=>
{
let
row
=
scope
.
row
;
return
getTableBtns
(
row
);
...
...
@@ -174,10 +188,14 @@ const tableInfo = ref({
const
getTableBtns
=
(
row
)
=>
{
let
btnsArr
:
any
[]
=
[];
if
(
row
.
state
==
3
)
{
btnsArr
.
push
({
label
:
"确认"
,
value
:
"confirm"
})
// if (row.state == 3) {
// btnsArr.push({ label: "确认", value: "confirm" })
// }
if
(
row
.
state
!=
0
)
{
btnsArr
.
push
({
label
:
"编辑"
,
value
:
"edit"
})
}
btnsArr
.
push
({
label
:
"详情"
,
value
:
"path_detail"
})
btnsArr
.
push
({
label
:
"删除"
,
value
:
"del"
})
return
btnsArr
;
}
...
...
@@ -190,7 +208,31 @@ const tableBtnClick = (scope, btn) => {
if
(
type
==
"confirm"
)
{
formItems
.
value
[
0
].
default
=
[];
dialogInfo
.
value
.
visible
=
true
;
}
if
(
type
===
'path_detail'
)
{
// 详情
}
else
if
(
type
==
"edit"
)
{
dialogInfo
.
value
.
visible
=
true
;
dialogInfo
.
value
.
type
=
'edit'
;
dialogInfo
.
value
.
header
.
title
=
'编辑'
;
formItems
.
value
.
forEach
(
item
=>
{
item
.
default
=
row
[
item
.
field
];
if
(
item
.
field
==
'registerGuid'
||
item
.
field
==
'daCode'
)
{
item
.
disabled
=
true
;
}
})
}
else
if
(
type
==
'del'
)
{
proxy
.
$openMessageBox
(
'确定删除该资产登记证件吗?'
,
()
=>
{
delCertificate
([
row
.
guid
]).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
ElMessage
.
success
(
'删除资产登记证件成功'
);
page
.
value
.
curr
=
1
;
getTableData
();
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
})
},
()
=>
{
proxy
.
$ElMessage
.
info
(
"已取消删除"
);
});
}
else
if
(
type
===
'path_detail'
)
{
// 详情
router
.
push
({
name
:
'certificateDetail'
,
query
:
{
guid
:
row
.
registerGuid
,
certificateGuid
:
row
.
guid
,
type
:
'certificate'
,
tenantGuid
:
row
.
tenantGuid
}
...
...
@@ -205,6 +247,104 @@ const tablePageChange = (info) => {
};
const
formItems
=
ref
([{
label
:
"资产名称"
,
type
:
"select"
,
placeholder
:
"请选择"
,
field
:
"registerGuid"
,
default
:
''
,
options
:
registerSelectData
.
value
,
props
:
{
label
:
'daName'
,
value
:
'guid'
},
disabled
:
false
,
clearable
:
true
,
required
:
true
,
},
{
label
:
'资产编码'
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'daCode'
,
maxlength
:
50
,
default
:
''
,
required
:
true
,
visible
:
true
},
{
label
:
''
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'daName'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
col
:
'hide'
,
},
{
label
:
'登记时间'
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'registerTime'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
visible
:
true
},
{
label
:
''
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'tenantGuid'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
col
:
'hide'
,
},
{
label
:
'企业名称'
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'tenantName'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
visible
:
true
},
{
label
:
'发证主体'
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'issuingEntityName'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
visible
:
true
},
{
label
:
''
,
type
:
'input'
,
placeholder
:
'请输入'
,
field
:
'issuingEntityGuid'
,
default
:
''
,
disabled
:
true
,
required
:
false
,
col
:
'hide'
,
},
{
label
:
'有限期'
,
type
:
'date'
,
placeholder
:
'请输入'
,
field
:
'effectiveDate'
,
default
:
""
,
unlink
:
true
,
clearable
:
true
,
required
:
false
},
{
label
:
"证件类型"
,
type
:
"select"
,
placeholder
:
"请选择"
,
field
:
"documentType"
,
default
:
1
,
options
:
[{
label
:
'A证'
,
value
:
1
},
{
label
:
'B证'
,
value
:
2
},
{
label
:
'C证'
,
value
:
3
}],
disabled
:
false
,
clearable
:
true
,
required
:
true
,
},
{
label
:
'证件上传'
,
tip
:
'支持扩展名:.jpg .png'
,
accept
:
'.jpg, .png'
,
...
...
@@ -217,6 +357,10 @@ const formItems = ref([{
}]);
const
formRules
=
ref
({
damGuid
:
[
required
(
'请选择资产'
)],
effectiveDate
:
[
required
(
'请选择有限期'
)],
documentType
:
[
required
(
'请选择证件类型'
)],
daCode
:
[
required
(
'请输入资产编码'
)],
documentFile
:
[{
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
?.
length
)
{
...
...
@@ -230,10 +374,10 @@ const formRules = ref({
const
dialogInfo
=
ref
({
visible
:
false
,
size
:
4
00
,
size
:
6
00
,
direction
:
"column"
,
header
:
{
title
:
"
确认发证
"
,
title
:
"
新增
"
,
},
type
:
''
,
contents
:
[
...
...
@@ -250,29 +394,42 @@ const dialogInfo = ref({
footer
:
{
btns
:
[
{
type
:
"default"
,
label
:
"取消"
,
value
:
"cancel"
},
{
type
:
"primary"
,
label
:
"确定"
,
value
:
"submit"
},
{
type
:
"primary"
,
label
:
"确定"
,
value
:
"submit"
,
loading
:
false
},
],
},
});
const
updatePromise
:
any
=
ref
(
null
);
/** 确认发证上传后的确定按钮处理。 */
const
dialogBtnClick
=
(
btn
,
info
)
=>
{
if
(
btn
.
value
==
'submit'
)
{
if
(
updatePromise
.
value
)
{
return
;
if
(
info
.
documentFile
?.
length
)
{
info
.
documentFile
=
info
.
documentFile
.
map
(
f
=>
{
return
{
name
:
f
.
name
,
url
:
f
.
url
}
updatePromise
.
value
=
updateCertificate
({
guid
:
currTableData
.
value
.
guid
,
tenantGuid
:
userData
.
tenantGuid
,
daCode
:
currTableData
.
value
.
daCode
,
state
:
4
,
documentFile
:
info
.
documentFile
?.
map
(
f
=>
f
.
url
)
||
[]
}).
then
((
res
:
any
)
=>
{
updatePromise
.
value
=
null
;
})
}
if
(
dialogInfo
.
value
.
type
==
'add'
)
{
dialogInfo
.
value
.
footer
.
btns
[
1
].
loading
=
true
;
saveCertificate
(
info
).
then
((
res
:
any
)
=>
{
dialogInfo
.
value
.
footer
.
btns
[
1
].
loading
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
ElMessage
.
success
(
'新增资产登记证件提交成功'
);
dialogInfo
.
value
.
visible
=
false
;
page
.
value
.
curr
=
1
;
getTableData
();
}
else
{
ElMessage
.
error
(
res
.
msg
);
}
})
}
else
{
info
.
guid
=
currTableData
.
value
.
guid
;
dialogInfo
.
value
.
footer
.
btns
[
1
].
loading
=
true
;
updateCertificate
(
info
).
then
((
res
:
any
)
=>
{
dialogInfo
.
value
.
footer
.
btns
[
1
].
loading
=
false
;
if
(
res
?.
code
==
proxy
.
$passCode
)
{
ElMessage
.
success
(
'该资产发证确认
成功'
);
ElMessage
.
success
(
'编辑提交
成功'
);
dialogInfo
.
value
.
visible
=
false
;
page
.
value
.
curr
=
1
;
getTableData
();
...
...
@@ -280,22 +437,59 @@ const dialogBtnClick = (btn, info) => {
ElMessage
.
error
(
res
.
msg
);
}
})
}
}
else
if
(
btn
.
value
==
'cancel'
)
{
dialogInfo
.
value
.
visible
=
false
;
}
};
const
handleDialogSelectChange
=
(
val
,
row
,
info
)
=>
{
if
(
row
.
field
==
'registerGuid'
)
{
let
register
=
val
&&
registerSelectData
.
value
.
find
(
r
=>
r
.
guid
==
val
);
formItems
.
value
.
forEach
(
item
=>
{
item
.
default
=
info
[
item
.
field
];
if
(
item
.
field
==
'daName'
||
item
.
field
==
'registerTime'
||
item
.
field
==
'tenantGuid'
||
item
.
field
==
'tenantName'
)
{
item
.
default
=
register
?.[
item
.
field
]
||
'-'
;
}
else
if
(
item
.
field
==
'issuingEntityGuid'
)
{
item
.
default
=
register
?.
exchangeGuid
||
''
;
}
else
if
(
item
.
field
==
'issuingEntityName'
)
{
item
.
default
=
register
?.
exchangeName
||
'-'
;
}
})
}
}
const
handleCreate
=
()
=>
{
dialogInfo
.
value
.
visible
=
true
;
dialogInfo
.
value
.
type
=
'add'
;
dialogInfo
.
value
.
header
.
title
=
'新增'
;
formItems
.
value
.
forEach
(
item
=>
{
item
.
default
=
''
;
if
(
item
.
field
==
'documentType'
)
{
item
.
default
=
1
;
}
else
if
(
item
.
field
==
'documentFile'
)
{
item
.
default
=
[];
}
if
(
item
.
field
==
'registerGuid'
||
item
.
field
==
'daCode'
)
{
item
.
disabled
=
false
;
}
})
}
</
script
>
<
template
>
<div
class=
"container_wrap"
>
<div
class=
"table_tool_wrap"
>
<TableTools
:searchItems=
"searchItemList"
:searchId=
"'register-data-search'"
@
search=
"toSearch"
:init=
"true"
/>
<div
class=
"tools_btns"
>
<el-button
type=
"primary"
@
click=
"handleCreate"
>
新增登记证件
</el-button>
</div>
</div>
<div
class=
"table_panel_wrap"
>
<Table
:tableInfo=
"tableInfo"
@
tableBtnClick=
"tableBtnClick"
@
tablePageChange=
"tablePageChange"
/>
</div>
<Dialog
:dialogInfo=
"dialogInfo"
@
btnClick=
"dialogBtnClick"
/>
<Dialog
:dialogInfo=
"dialogInfo"
@
btnClick=
"dialogBtnClick"
@
select-change=
"handleDialogSelectChange"
/>
</div>
</
template
>
...
...
src/views/indexNewBigScreen.vue
View file @
266e97e
...
...
@@ -558,7 +558,7 @@ function fetchRegisterUrl() {
d
.
documentTypeDesc
=
d
.
documentType
===
1
?
'A证'
:
d
.
documentType
===
2
?
'B证'
:
'C证'
;
// 使用注释替换的代码逻辑
const
refSignInfo
:
any
=
await
getDownFileSignByUrl
(
parseAndDecodeUrl
(
d
.
documentFile
[
0
]).
fileName
);
const
refSignInfo
:
any
=
await
getDownFileSignByUrl
(
parseAndDecodeUrl
(
d
.
documentFile
[
0
]
.
url
).
fileName
);
if
(
!
refSignInfo
?.
data
)
{
refSignInfo
?.
msg
&&
ElMessage
.
error
(
refSignInfo
?.
msg
);
return
null
;
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment