Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
source-trace-manage
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenqikuai
source-trace-manage
Commits
d5b6ddeb
Commit
d5b6ddeb
authored
Aug 02, 2022
by
chenqikuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
备案人
parent
beefa8da
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
362 additions
and
106 deletions
+362
-106
link.png
src/assets/img/link.png
+0
-0
status.ts
src/components/ApproveStatus/status.ts
+11
-10
copyrightService.ts
src/service/copyrightService.ts
+15
-7
index.ts
src/service/index.ts
+7
-0
copyright.d.ts
src/types/copyright.d.ts
+1
-1
index.vue
src/views/AddFilingPerson/index.vue
+29
-6
index.vue
src/views/FilingPersonDetail/index.vue
+125
-27
Service.ts
...gPersonManagement/components/FilingPersonTable/Service.ts
+34
-8
index.vue
...ngPersonManagement/components/FilingPersonTable/index.vue
+54
-10
table.ts
...ingPersonManagement/components/FilingPersonTable/table.ts
+10
-9
index.vue
src/views/FilingPersonManagement/index.vue
+76
-28
No files found.
src/assets/img/link.png
0 → 100644
View file @
d5b6ddeb
971 Bytes
src/components/ApproveStatus/status.ts
View file @
d5b6ddeb
...
@@ -5,17 +5,18 @@ import error from "@/assets/img/error.png";
...
@@ -5,17 +5,18 @@ import error from "@/assets/img/error.png";
/**审核状态(待提交:WAITING_SUBMIT 待审核:WAITING_CHECK 备案成功:RECORD_SUCCESS 不通过:NOT_PASSED ) */
/**审核状态(待提交:WAITING_SUBMIT 待审核:WAITING_CHECK 备案成功:RECORD_SUCCESS 不通过:NOT_PASSED ) */
export
enum
eStatusOfCopyright
{
export
enum
eStatusOfCopyright
{
WAITING_SUBMIT
,
WAITING_SUBMIT
=
"WAITING_SUBMIT"
,
WAITING_CHECK
,
WAITING_CHECK
=
"WAITING_CHECK"
,
RECORD_SUCCESS
,
RECORD_SUCCESS
=
"RECORD_SUCCESS"
,
NOT_PASSED
,
NOT_PASSED
=
"NOT_PASSED"
,
ALL
,
ALL
=
"ALL"
,
}
}
export
enum
eStatusOfFilerCertification
{
export
enum
eStatusOfFilerCertification
{
WAITING
,
WAITING_CHECK
=
"WAITING_CHECK"
,
NOT_PASSED
,
NOT_PASSED
=
"NOT_PASSED"
,
SUCCESS
,
PASSED
=
"PASSED"
,
ALL
=
"ALL"
,
}
}
export
const
WAITING_SUBMIT
=
{
export
const
WAITING_SUBMIT
=
{
...
@@ -44,13 +45,13 @@ export const NOT_PASSED = {
...
@@ -44,13 +45,13 @@ export const NOT_PASSED = {
};
};
export
const
WAITING_FOR_Cert
=
{
export
const
WAITING_FOR_Cert
=
{
value
:
eStatusOfFilerCertification
.
WAITING
,
value
:
eStatusOfFilerCertification
.
WAITING
_CHECK
,
label
:
"待审核"
,
label
:
"待审核"
,
style
:
yellow
,
style
:
yellow
,
icon
:
pending
,
icon
:
pending
,
};
};
export
const
SUCCESS_FOR_Cert
=
{
export
const
SUCCESS_FOR_Cert
=
{
value
:
eStatusOfFilerCertification
.
SUCCESS
,
value
:
eStatusOfFilerCertification
.
PASSED
,
label
:
"实名成功"
,
label
:
"实名成功"
,
style
:
green
,
style
:
green
,
icon
:
check
,
icon
:
check
,
...
...
src/service/copyrightService.ts
View file @
d5b6ddeb
...
@@ -10,6 +10,14 @@ export function getAuth(id: number) {
...
@@ -10,6 +10,14 @@ export function getAuth(id: number) {
});
});
}
}
export
function
editAuth
(
params
:
Omit
<
iAuth
,
"create_time"
|
"update_time"
>
)
{
return
$ajax
({
type
:
"put"
,
url
:
"/api/authentication"
,
params
,
});
}
export
function
postAuth
(
export
function
postAuth
(
params
:
Omit
<
params
:
Omit
<
iAuth
,
iAuth
,
...
@@ -40,19 +48,19 @@ export function deleteAuth(id: number) {
...
@@ -40,19 +48,19 @@ export function deleteAuth(id: number) {
export
function
getAuths
(
export
function
getAuths
(
authentication_name
:
string
,
authentication_name
:
string
,
authentication_status
:
string
,
authentication_status
:
string
[]
,
page
:
number
,
page
:
number
,
page_size
:
number
page_size
:
number
)
{
)
{
const
params
=
{
authentication_status
,
page
,
page_size
}
as
any
;
if
(
authentication_name
.
trim
()
!==
""
)
{
params
.
authentication_name
=
authentication_name
;
}
return
$ajax
({
return
$ajax
({
type
:
"get"
,
type
:
"get"
,
url
:
"/api/authentications"
,
url
:
"/api/authentications"
,
params
:
{
params
:
params
,
authentication_name
,
authentication_status
,
page
,
page_size
,
},
});
});
}
}
...
...
src/service/index.ts
View file @
d5b6ddeb
...
@@ -54,12 +54,19 @@ async function $ajax(
...
@@ -54,12 +54,19 @@ async function $ajax(
const
params
=
(
param
as
GetParam
).
params
||
[];
const
params
=
(
param
as
GetParam
).
params
||
[];
let
num
=
length
(
params
);
let
num
=
length
(
params
);
Object
.
keys
(
params
).
forEach
(
function
(
key
)
{
Object
.
keys
(
params
).
forEach
(
function
(
key
)
{
if
(
Array
.
isArray
(
params
[
key
]))
{
(
params
[
key
]
||
[]).
forEach
((
i
:
string
)
=>
{
restfulUrl
+=
`
${
key
}
=
${
i
}
&`
;
});
num
--
;
}
else
{
if
(
num
===
1
)
{
if
(
num
===
1
)
{
restfulUrl
+=
`
${
key
}
=
${
params
[
key
]}
`
;
restfulUrl
+=
`
${
key
}
=
${
params
[
key
]}
`
;
}
else
{
}
else
{
restfulUrl
+=
`
${
key
}
=
${
params
[
key
]}
&`
;
restfulUrl
+=
`
${
key
}
=
${
params
[
key
]}
&`
;
num
--
;
num
--
;
}
}
}
});
});
(
result
||
{}).
url
=
restfulUrl
;
(
result
||
{}).
url
=
restfulUrl
;
}
else
{
}
else
{
...
...
src/types/copyright.d.ts
View file @
d5b6ddeb
...
@@ -28,7 +28,7 @@ export interface iAuth {
...
@@ -28,7 +28,7 @@ export interface iAuth {
authentication_business_license
:
iPostFile
;
authentication_business_license
:
iPostFile
;
authentication_certificate_of_authorization_image
:
iPostFile
;
authentication_certificate_of_authorization_image
:
iPostFile
;
authentication_held_front_id_card
:
iPostFile
;
authentication_held_front_id_card
:
iPostFile
;
authentication_held_back_id_card
:
{}
;
authentication_held_back_id_card
:
iPostFile
;
authentication_certificate_of_authorization_date
:
string
;
authentication_certificate_of_authorization_date
:
string
;
contact_person
:
string
;
contact_person
:
string
;
contact_email
:
string
;
contact_email
:
string
;
...
...
src/views/AddFilingPerson/index.vue
View file @
d5b6ddeb
...
@@ -221,6 +221,7 @@
...
@@ -221,6 +221,7 @@
type=
"primary"
type=
"primary"
size=
"large"
size=
"large"
class=
"w-full"
class=
"w-full"
:loading=
"loading"
@
click=
"handleConfirm"
@
click=
"handleConfirm"
>
确定提交
</syButton
>
确定提交
</syButton
>
>
...
@@ -237,7 +238,7 @@ import CustomizeFormItem from "@/components/Form/CustomizeFormItem.vue";
...
@@ -237,7 +238,7 @@ import CustomizeFormItem from "@/components/Form/CustomizeFormItem.vue";
import
CollectIdCardImg
from
"@/components/Form/Collect/CollectIdCardImg.vue"
;
import
CollectIdCardImg
from
"@/components/Form/Collect/CollectIdCardImg.vue"
;
import
{
globalState
}
from
"@/store/state"
;
import
{
globalState
}
from
"@/store/state"
;
import
CollectImage
from
"./components/CollectImage.vue"
;
import
CollectImage
from
"./components/CollectImage.vue"
;
import
{
postAuth
}
from
"@/service/copyrightService"
;
import
{
editAuth
,
postAuth
}
from
"@/service/copyrightService"
;
import
CommonDialog
from
"@/components/CommonDialog/index.vue"
;
import
CommonDialog
from
"@/components/CommonDialog/index.vue"
;
import
syDialogInput
from
"@/components/CommonInput/index.vue"
;
import
syDialogInput
from
"@/components/CommonInput/index.vue"
;
import
syRadio
from
"@/components/Radio/index.vue"
;
import
syRadio
from
"@/components/Radio/index.vue"
;
...
@@ -249,18 +250,21 @@ function handle() {
...
@@ -249,18 +250,21 @@ function handle() {
const
props
=
defineProps
<
{
const
props
=
defineProps
<
{
visible
:
boolean
;
visible
:
boolean
;
}
>
();
}
>
();
const
emit
=
defineEmits
([
"update:visible"
]);
const
emit
=
defineEmits
([
"update:visible"
,
"addSuccess"
]);
const
certFormRef
=
ref
<
InstanceType
<
typeof
ElForm
>>
();
const
certFormRef
=
ref
<
InstanceType
<
typeof
ElForm
>>
();
const
contactFormRef
=
ref
<
InstanceType
<
typeof
ElForm
>>
();
const
contactFormRef
=
ref
<
InstanceType
<
typeof
ElForm
>>
();
const
g
=
computed
(()
=>
globalState
);
const
g
=
computed
(()
=>
globalState
);
const
loading
=
ref
(
false
);
const
mode
=
ref
(
"add"
);
const
id
=
ref
(
NaN
);
const
modelOfCert
=
ref
({
const
modelOfCert
=
ref
({
name
:
""
,
name
:
""
,
property
:
1
,
property
:
1
,
idCard
:
""
,
idCard
:
""
,
city
:
""
,
city
:
[]
as
string
[]
,
idCardImg
:
null
as
any
,
idCardImg
:
null
as
any
,
auth
:
true
,
auth
:
true
,
authorizationValidityPeriod
:
""
,
authorizationValidityPeriod
:
""
,
...
@@ -322,11 +326,17 @@ const rulesOfContact = {
...
@@ -322,11 +326,17 @@ const rulesOfContact = {
addr
:
[{
required
:
true
,
message
:
"请输入联系地址"
}],
addr
:
[{
required
:
true
,
message
:
"请输入联系地址"
}],
};
};
defineExpose
({
modelOfCert
,
modelOfContact
,
mode
,
id
,
});
const
handleConfirm
=
()
=>
{
const
handleConfirm
=
()
=>
{
loading
.
value
=
true
;
certFormRef
.
value
?.
validate
((
isValidOfCert
)
=>
{
certFormRef
.
value
?.
validate
((
isValidOfCert
)
=>
{
contactFormRef
.
value
?.
validate
(
async
(
isValidOfContact
,
invalidFields
)
=>
{
contactFormRef
.
value
?.
validate
(
async
(
isValidOfContact
,
invalidFields
)
=>
{
console
.
log
(
isValidOfCert
,
isValidOfContact
,
invalidFields
);
if
(
isValidOfCert
&&
isValidOfContact
)
{
if
(
isValidOfCert
&&
isValidOfContact
)
{
const
{
file
:
f1
,
...
front
}
=
const
{
file
:
f1
,
...
front
}
=
(
modelOfCert
.
value
.
idCardImg
&&
modelOfCert
.
value
.
idCardImg
.
front
)
||
(
modelOfCert
.
value
.
idCardImg
&&
modelOfCert
.
value
.
idCardImg
.
front
)
||
...
@@ -351,6 +361,7 @@ const handleConfirm = () => {
...
@@ -351,6 +361,7 @@ const handleConfirm = () => {
powerOfAttorneyImage
,
powerOfAttorneyImage
,
authentication_certificate_of_authorization_date
:
authentication_certificate_of_authorization_date
:
modelOfCert
.
value
.
authorizationValidityPeriod
,
modelOfCert
.
value
.
authorizationValidityPeriod
,
contact_person
:
modelOfContact
.
value
.
name
,
contact_person
:
modelOfContact
.
value
.
name
,
contact_email
:
modelOfContact
.
value
.
email
,
contact_email
:
modelOfContact
.
value
.
email
,
contact_mobile
:
modelOfContact
.
value
.
cellphoneNumber
,
contact_mobile
:
modelOfContact
.
value
.
cellphoneNumber
,
...
@@ -369,12 +380,23 @@ const handleConfirm = () => {
...
@@ -369,12 +380,23 @@ const handleConfirm = () => {
params
.
authentication_held_front_id_card
=
front
;
params
.
authentication_held_front_id_card
=
front
;
params
.
authentication_held_back_id_card
=
back
;
params
.
authentication_held_back_id_card
=
back
;
}
}
const
ret
=
await
postAuth
(
params
);
let
ret
:
any
;
if
(
mode
.
value
===
"add"
)
{
ret
=
await
postAuth
(
params
);
}
else
{
ret
=
await
editAuth
({
...
params
,
id
:
id
.
value
});
}
if
(
ret
&&
ret
.
code
===
200
)
{
if
(
ret
&&
ret
.
code
===
200
)
{
emit
(
"update:visible"
,
false
);
emit
(
"update:visible"
,
false
);
if
(
mode
.
value
===
"add"
)
{
ElMessage
.
success
(
"新建成功"
);
ElMessage
.
success
(
"新建成功"
);
}
else
{
}
else
{
ElMessage
.
success
(
"编辑成功"
);
}
emit
(
"addSuccess"
);
}
else
{
}
}
loading
.
value
=
false
;
}
}
});
});
});
});
...
@@ -386,6 +408,7 @@ watch(
...
@@ -386,6 +408,7 @@ watch(
if
(
props
.
visible
===
false
)
{
if
(
props
.
visible
===
false
)
{
certFormRef
.
value
?.
resetFields
();
certFormRef
.
value
?.
resetFields
();
contactFormRef
.
value
?.
resetFields
();
contactFormRef
.
value
?.
resetFields
();
mode
.
value
=
"add"
;
}
}
}
}
);
);
...
...
src/views/FilingPersonDetail/index.vue
View file @
d5b6ddeb
<
template
>
<
template
>
<div
class=
"min-h-screen flow-root"
style=
"background: #f9f9f9"
>
<div
class=
"min-h-screen flow-root"
style=
"background: #f9f9f9"
>
<syHeaderNavBar
@
back=
"() => $router.back()"
@
close=
"() => $router.back()"
<syHeaderNavBar
@
back=
"() => $router.back()"
@
close=
"() => $router.back()"
>
杭州库链科技有限公司
>
{{
data
?.
authentication_name
}}
</syHeaderNavBar>
</syHeaderNavBar>
<ModuleContainer
class=
"mx-auto"
style=
"width: 858px; margin-top: 17px"
>
<ModuleContainer
class=
"mx-auto"
style=
"width: 858px; margin-top: 17px"
>
<div
class=
"overflow-hidden"
>
<div
class=
"overflow-hidden"
>
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
/>
/>
备案人
备案人
</div>
</div>
<div
class=
"filingPersonBox"
>
杭州苦练科技公司
</div>
<div
class=
"filingPersonBox"
>
{{
data
?.
authentication_name
}}
</div>
</div>
</div>
<div
class=
"line"
></div>
<div
class=
"line"
></div>
<div
class=
"overflow-hidden"
>
<div
class=
"overflow-hidden"
>
...
@@ -33,55 +33,122 @@
...
@@ -33,55 +33,122 @@
>
>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content"
>
姓名/名称:
姓名/名称:
<span
style=
"color: var(--sy-black)"
>
东郡
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_name
}}
</span>
</div>
</div>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content"
>
主体性质:
主体性质:
<span
style=
"color: var(--sy-black)"
>
自然人
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_subject_nature
===
1
?
"自然人"
:
"企业组织"
}}
</span>
</div>
</div>
<div
<div
class=
"w-1/2 content"
class=
"w-1/2 content"
v-if=
"typeofFilingPerson === 'naturePerson'"
v-if=
"typeofFilingPerson === 'naturePerson'"
>
>
身份证号码:
身份证号码:
<span
style=
"color: var(--sy-black)"
>
20938409238409234
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_subject_nature_code
}}
</span>
</div>
</div>
<div
<div
class=
"w-1/2 content"
class=
"w-1/2 content"
v-if=
"typeofFilingPerson === 'businessOrganization'"
v-if=
"typeofFilingPerson === 'businessOrganization'"
>
>
统一社会信用代码/营业执照号码:
统一社会信用代码/营业执照号码:
<span
style=
"color: var(--sy-black)"
>
20938409238409234
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_subject_nature_code
}}
</span>
</div>
</div>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content"
>
所在城市:
所在城市:
<span
style=
"color: var(--sy-black)"
>
浙江省-杭州市-西湖区
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_province
}}
-
{{
data
?.
authentication_city
}}
-
{{
data
?.
authentication_district
}}
</span
>
</div>
</div>
<div
<div
class=
"w-1/2 content"
class=
"w-1/2 content
flex items-center
"
v-if=
"typeofFilingPerson === 'naturePerson'"
v-if=
"typeofFilingPerson === 'naturePerson'"
>
>
身份证正反面:
身份证正反面:
<span
style=
"color: var(--sy-black)"
>
</span>
<div
style=
"color: var(--sy-black)"
class=
"flex"
>
<img
:src=
"data?.authentication_held_front_id_card?.url"
alt=
""
class=
"cursor-pointer"
style=
"height: 20px"
@
click=
"showIdImg1 = true"
/>
<img
class=
"ml-2 cursor-pointer"
:src=
"data?.authentication_held_back_id_card?.url"
alt=
""
style=
"height: 20px"
@
click=
"showIdImg2 = true"
/>
<ImageDisplay
v-model:visible=
"showIdImg1"
:url=
"data?.authentication_held_front_id_card?.url || ''"
>
</ImageDisplay>
<ImageDisplay
v-model:visible=
"showIdImg2"
:url=
"data?.authentication_held_back_id_card?.url || ''"
>
</ImageDisplay>
</div>
</div>
</div>
<div
<div
class=
"w-1/2 content"
class=
"w-1/2 content
flex items-center
"
v-if=
"typeofFilingPerson === 'businessOrganization'"
v-if=
"typeofFilingPerson === 'businessOrganization'"
>
>
营业执照或副本:
营业执照或副本:
<span
style=
"color: var(--sy-black)"
>
</span>
<span
style=
"color: var(--sy-black)"
>
<img
style=
"height: 23px"
@
click=
"showLicense = true"
:src=
"data?.authentication_business_license.url"
class=
"cursor-pointer"
alt=
""
/>
</span>
<ImageDisplay
v-model:visible=
"showLicense"
:url=
"data?.authentication_business_license.url || ''"
/>
</div>
</div>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content"
>
备案属性:
备案属性:
<span
style=
"color: var(--sy-black)"
>
授权备案
</span>
<span
style=
"color: var(--sy-black)"
>
授权备案
</span>
</div>
</div>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content
flex items-center
"
>
授权书图像:
授权书图像:
<span
style=
"color: var(--sy-black)"
></span>
<span
style=
"color: var(--sy-black)"
>
<img
style=
"height: 23px"
:src=
"
data?.authentication_certificate_of_authorization_image?.url
"
class=
"cursor-pointer"
@
click=
"showAuthImg = true"
/>
</span>
<ImageDisplay
v-model:visible=
"showAuthImg"
:url=
"
data?.authentication_certificate_of_authorization_image?.url ||
''
"
/>
</div>
</div>
<div
class=
"w-1/2 content"
>
<div
class=
"w-1/2 content"
>
授权有效期:
授权有效期:
<span
style=
"color: var(--sy-black)"
>
2020-10-19
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
authentication_certificate_of_authorization_date
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -105,38 +172,49 @@
...
@@ -105,38 +172,49 @@
<div
class=
"w-1/2"
>
<div
class=
"w-1/2"
>
<div
class=
"content"
>
<div
class=
"content"
>
联系人:
联系人:
<span
style=
"color: var(--sy-black)"
>
杭州库链科技有限公司
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_person
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
手机:
手机:
<span
style=
"color: var(--sy-black)"
>
15019230123
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_mobile
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
邮箱:
邮编:
<span
style=
"color: var(--sy-black)"
>
2223
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_post_code
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"w-2/3"
>
<div
class=
"w-2/3"
>
联系地址:
联系地址:
<span
style=
"color: var(--sy-black)"
<span
style=
"color: var(--sy-black)"
>
{{
>
杭州市
data
?.
contact_address
西区胡西区胡西区胡西区胡西区胡西区胡西区胡西区胡西区胡西区胡西区胡西区胡
</span
}}
</span>
>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"w-1/2"
>
<div
class=
"w-1/2"
>
<div
class=
"content"
>
<div
class=
"content"
>
电子邮箱:
电子邮箱:
<span
style=
"color: var(--sy-black)"
>
cj@disanbo.com
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_email
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
电话:
电话:
<span
style=
"color: var(--sy-black)"
>
400-1120-100
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_telephone
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
传真:
传真:
<span
style=
"color: var(--sy-black)"
>
1209102
</span>
<span
style=
"color: var(--sy-black)"
>
{{
data
?.
contact_fax
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -149,15 +227,35 @@
...
@@ -149,15 +227,35 @@
import
{
syHeaderNavBar
,
syButton
}
from
"cqk-sy-ui"
;
import
{
syHeaderNavBar
,
syButton
}
from
"cqk-sy-ui"
;
import
ModuleContainer
from
"@/components/ModuleContainer/index.vue"
;
import
ModuleContainer
from
"@/components/ModuleContainer/index.vue"
;
import
ImageDisplay
from
"@/components/ImageDisplay/index.vue"
;
import
ImageDisplay
from
"@/components/ImageDisplay/index.vue"
;
import
{
ref
}
from
"vue"
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
{
saveAs
}
from
"file-saver"
;
import
{
saveAs
}
from
"file-saver"
;
import
printJS
from
"print-js"
;
import
printJS
from
"print-js"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
getAuth
}
from
"@/service/copyrightService"
;
import
{
iAuth
}
from
"@/types/copyright"
;
const
route
=
useRoute
();
const
data
=
ref
<
iAuth
>
();
onMounted
(
async
()
=>
{
const
res
=
await
getAuth
(
Number
(
route
.
query
.
id
));
if
(
res
?.
code
===
200
)
{
data
.
value
=
res
.
data
;
if
(
res
.
data
.
authentication_subject_nature
===
2
)
{
typeofFilingPerson
.
value
=
"businessOrganization"
;
}
}
});
const
props
=
defineProps
<
{}
>
();
const
props
=
defineProps
<
{}
>
();
// typeofFilingPerson?: "naturePerson" | "businessOrganization";
// typeofFilingPerson?: "naturePerson" | "businessOrganization";
const
typeofFilingPerson
=
ref
(
"naturePerson"
);
const
typeofFilingPerson
=
ref
(
"naturePerson"
);
const
showCert
=
ref
(
false
);
const
showIdImg1
=
ref
(
false
);
const
showIdImg2
=
ref
(
false
);
const
showAuthImg
=
ref
(
false
);
const
showLicense
=
ref
(
false
);
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/FilingPersonManagement/components/FilingPersonTable/Service.ts
View file @
d5b6ddeb
import
{
ElMessage
}
from
"element-plus"
;
import
{
eStatusOfFilerCertification
}
from
"@/components/ApproveStatus/status"
;
import
{
eStatusOfFilerCertification
}
from
"@/components/ApproveStatus/status"
;
import
{
router
}
from
"@/router"
;
import
{
deleteAuth
}
from
"@/service/copyrightService"
;
export
default
class
Service
{
export
default
class
Service
{
static
instance
:
Service
;
static
instance
:
Service
;
...
@@ -11,11 +14,12 @@ export default class Service {
...
@@ -11,11 +14,12 @@ export default class Service {
}
}
getOperateListOfFilterStatus
()
{
getOperateListOfFilterStatus
()
{
// 待审核:WAITING_CHECK 通过:PASSED 不通过:NOT_PASSED
return
[
return
[
{
name
:
"待审核"
,
value
:
"pending"
},
{
name
:
"待审核"
,
value
:
eStatusOfFilerCertification
.
WAITING_CHECK
},
{
name
:
"
实名失败"
,
value
:
"failed"
},
{
name
:
"
通过"
,
value
:
eStatusOfFilerCertification
.
PASSED
},
{
name
:
"
实名成功"
,
value
:
"success"
},
{
name
:
"
不通过"
,
value
:
eStatusOfFilerCertification
.
NOT_PASSED
},
{
name
:
"所有状态"
,
value
:
"all"
},
{
name
:
"所有状态"
,
value
:
eStatusOfFilerCertification
.
ALL
},
];
];
}
}
...
@@ -34,14 +38,36 @@ export default class Service {
...
@@ -34,14 +38,36 @@ export default class Service {
};
};
if
(
status
===
eStatusOfFilerCertification
.
NOT_PASSED
)
{
if
(
status
===
eStatusOfFilerCertification
.
NOT_PASSED
)
{
return
[
seeDetail
,
edit
,
del
];
return
[
seeDetail
,
edit
,
del
];
}
else
if
(
status
===
eStatusOfFilerCertification
.
SUCCESS
)
{
}
else
if
(
status
===
eStatusOfFilerCertification
.
PASSED
)
{
return
[
seeDetail
];
return
[
seeDetail
];
}
else
if
(
status
===
eStatusOfFilerCertification
.
WAITING
)
{
}
else
if
(
status
===
eStatusOfFilerCertification
.
WAITING
_CHECK
)
{
return
[
seeDetail
];
return
[
seeDetail
];
}
}
}
}
handleClickOperateItemOfAction
(
operateValue
:
string
,
slotProps
:
any
)
{
handleClickOperateItemOfAction
(
console
.
log
(
operateValue
,
slotProps
);
operateValue
:
string
,
slotProps
:
any
,
emit
:
any
)
{
if
(
operateValue
===
"seeDetail"
)
{
router
.
push
({
name
:
"filingPersonDetail"
,
query
:
{
id
:
slotProps
.
id
,
},
});
}
else
if
(
operateValue
===
"edit"
)
{
emit
(
"edit"
,
{
id
:
slotProps
.
id
,
});
}
else
if
(
operateValue
===
"del"
)
{
deleteAuth
(
slotProps
.
id
).
then
((
ret
)
=>
{
if
(
ret
)
{
ElMessage
.
success
(
"删除成功"
);
emit
(
"refresh"
);
}
});
}
}
}
}
}
src/views/FilingPersonManagement/components/FilingPersonTable/index.vue
View file @
d5b6ddeb
...
@@ -10,11 +10,10 @@
...
@@ -10,11 +10,10 @@
>
>
<template
#
currentStatusCell=
"slotProps"
>
<template
#
currentStatusCell=
"slotProps"
>
<div
class=
"flex items-center"
>
<div
class=
"flex items-center"
>
<ApproveStatus
:type=
"2"
mode=
"filingPerson"
></ApproveStatus>
<ApproveStatus
<!--
<HoverShowReason
:type=
"slotProps.authentication_status"
v-if=
"slotProps.status === eStatusOfFilerCertification.NOT_PASSED"
mode=
"filingPerson"
:rowData=
"slotProps"
></ApproveStatus>
></HoverShowReason>
-->
</div>
</div>
</
template
>
</
template
>
<
template
#
currentStatusHeader
>
<
template
#
currentStatusHeader
>
...
@@ -33,6 +32,33 @@
...
@@ -33,6 +32,33 @@
</syMoreOperate>
</syMoreOperate>
</div>
</div>
</
template
>
</
template
>
<
template
#
additional=
"slotProps"
>
<div
class=
"flex items-center"
>
{{
slotProps
.
authentication_subject_nature
===
2
?
"营业执照"
:
"居民身份证"
}}
<img
src=
"@/assets/img/link.png"
style=
"width: 14px"
class=
"ml-2.5 cursor-pointer"
/>
</div>
</
template
>
<
template
#
auth=
"slotProps"
><div
class=
"flex items-center"
>
{{
slotProps
.
authentication_subject_nature
===
2
?
"授权备案"
:
"本人备案"
}}
<img
src=
"@/assets/img/link.png"
style=
"width: 14px"
class=
"ml-2.5 cursor-pointer"
/></div
></
template
>
<
template
#
operate=
"slotProps"
>
<
template
#
operate=
"slotProps"
>
<syMoreOperate
<syMoreOperate
:teleport=
"true"
:teleport=
"true"
...
@@ -61,7 +87,6 @@ import {
...
@@ -61,7 +87,6 @@ import {
eStatusOfFilerCertification
,
eStatusOfFilerCertification
,
}
from
"@/components/ApproveStatus/status"
;
}
from
"@/components/ApproveStatus/status"
;
import
ApproveStatus
from
"@/components/ApproveStatus/index.vue"
;
import
ApproveStatus
from
"@/components/ApproveStatus/index.vue"
;
// import HoverShowReason from "./HoverShowReason.vue";
import
{
useTableScrollListener
}
from
"@/components/Table/hooks"
;
import
{
useTableScrollListener
}
from
"@/components/Table/hooks"
;
import
Icon
from
"@/components/Icon/index.vue"
;
import
Icon
from
"@/components/Icon/index.vue"
;
...
@@ -81,11 +106,22 @@ const emit = defineEmits<{
...
@@ -81,11 +106,22 @@ const emit = defineEmits<{
raw
:
any
;
raw
:
any
;
}
}
):
void
;
):
void
;
(
e
:
"clickStatusFilter"
,
payload
:
eStatusOfCopyright
):
void
;
(
e
:
"clickStatusFilter"
,
payload
:
eStatusOfFilerCertification
):
void
;
(
e
:
"edit"
,
paylaod
:
{
id
:
number
;
}
):
any
;
(
e
:
"refresh"
):
any
;
}
>
();
}
>
();
const
tableRef
=
ref
<
InstanceType
<
typeof
Table
>>
();
const
tableRef
=
ref
<
InstanceType
<
typeof
Table
>>
();
defineExpose
({
tableRef
,
});
useTableScrollListener
(
tableRef
,
()
=>
{
useTableScrollListener
(
tableRef
,
()
=>
{
emit
(
"scrollToEnd"
);
emit
(
"scrollToEnd"
);
});
});
...
@@ -93,12 +129,20 @@ useTableScrollListener(tableRef, () => {
...
@@ -93,12 +129,20 @@ useTableScrollListener(tableRef, () => {
const
operateListOfFilterStatus
=
const
operateListOfFilterStatus
=
Service
.
getInstance
().
getOperateListOfFilterStatus
();
Service
.
getInstance
().
getOperateListOfFilterStatus
();
const
getOperateList
=
(
slotProps
:
any
)
=>
{
const
getOperateList
=
(
slotProps
:
any
)
=>
{
return
Service
.
getInstance
().
getOperateListOfAction
(
slotProps
.
status
);
return
Service
.
getInstance
().
getOperateListOfAction
(
slotProps
.
authentication_status
);
};
};
const
handleClickItem
=
(
operateValue
:
string
,
slotProps
:
any
)
=>
{
const
handleClickItem
=
(
operateValue
:
string
,
slotProps
:
any
)
=>
{
Service
.
getInstance
().
handleClickOperateItemOfAction
(
operateValue
,
slotProps
);
Service
.
getInstance
().
handleClickOperateItemOfAction
(
operateValue
,
slotProps
,
emit
);
};
};
const
handleClickCurrentStatusTableHeader
=
(
v
:
eStatusOfCopyright
)
=>
{
const
handleClickCurrentStatusTableHeader
=
(
v
:
eStatusOfFilerCertification
)
=>
{
emit
(
"clickStatusFilter"
,
v
);
emit
(
"clickStatusFilter"
,
v
);
};
};
</
script
>
</
script
>
...
...
src/views/FilingPersonManagement/components/FilingPersonTable/table.ts
View file @
d5b6ddeb
...
@@ -2,32 +2,33 @@ import { iTableColumn } from "@/components/Table/types";
...
@@ -2,32 +2,33 @@ import { iTableColumn } from "@/components/Table/types";
export
const
tableColumns
=
[
export
const
tableColumns
=
[
{
{
label
:
"备案人"
,
label
:
"备案人"
,
prop
:
"name"
,
prop
:
"
authentication_
name"
,
minWidth
:
300
,
//
minWidth: 300,
},
},
{
{
label
:
"证件号码"
,
label
:
"证件号码"
,
prop
:
"a
ddress
"
,
prop
:
"a
uthentication_subject_nature_code
"
,
minWidth
:
280
,
//
minWidth: 280,
},
},
{
{
label
:
"证件附件"
,
label
:
"证件附件"
,
minWidth
:
200
,
slotName
:
"additional"
,
// minWidth: 200,
},
},
{
{
label
:
"授权"
,
label
:
"授权"
,
prop
:
"date
"
,
slotName
:
"auth
"
,
minWidth
:
280
,
//
minWidth: 280,
},
},
{
{
label
:
"当前状态"
,
label
:
"当前状态"
,
slotName
:
"currentStatusCell"
,
slotName
:
"currentStatusCell"
,
headerSlotName
:
"currentStatusHeader"
,
headerSlotName
:
"currentStatusHeader"
,
minWidth
:
200
,
//
minWidth: 200,
},
},
{
{
label
:
"操作"
,
label
:
"操作"
,
slotName
:
"operate"
,
slotName
:
"operate"
,
minWidth
:
100
,
//
minWidth: 100,
},
},
]
as
iTableColumn
[];
]
as
iTableColumn
[];
src/views/FilingPersonManagement/index.vue
View file @
d5b6ddeb
...
@@ -30,10 +30,15 @@
...
@@ -30,10 +30,15 @@
</div>
</div>
<AddFilingPerson
<AddFilingPerson
v-model:visible=
"addFilingPersonDailogVisible"
v-model:visible=
"addFilingPersonDailogVisible"
@
add-success=
"handleRefetch"
ref=
"AddFilingPersonRef"
></AddFilingPerson>
></AddFilingPerson>
<div
class=
"flex-grow overflow-hidden mt-4"
>
<div
class=
"flex-grow overflow-hidden mt-4"
>
<FilingPersonTable
<FilingPersonTable
ref=
"FilingPersonTableRef"
@
click-status-filter=
"handleClickStatusFilter"
@
click-status-filter=
"handleClickStatusFilter"
@
edit=
"handleClickEdit"
@
refresh=
"handleRefetch"
:data=
"tableData"
:data=
"tableData"
:loading=
"loading"
:loading=
"loading"
></FilingPersonTable>
></FilingPersonTable>
...
@@ -48,16 +53,20 @@ import Search from "@/components/Search/index.vue";
...
@@ -48,16 +53,20 @@ import Search from "@/components/Search/index.vue";
import
Avatar
from
"@/components/Avatar/index.vue"
;
import
Avatar
from
"@/components/Avatar/index.vue"
;
import
Title
from
"@/components/Title.vue"
;
import
Title
from
"@/components/Title.vue"
;
import
{
syButton
}
from
"cqk-sy-ui"
;
import
{
syButton
}
from
"cqk-sy-ui"
;
import
{
eStatusOf
Copyright
}
from
"@/components/ApproveStatus/status"
;
import
{
eStatusOf
FilerCertification
}
from
"@/components/ApproveStatus/status"
;
import
{
useTableData
}
from
"@/components/Table/hooks"
;
import
{
useTableData
}
from
"@/components/Table/hooks"
;
import
{
debounce
}
from
"lodash"
;
import
{
debounce
}
from
"lodash"
;
import
FilingPersonTable
from
"./components/FilingPersonTable/index.vue"
;
import
FilingPersonTable
from
"./components/FilingPersonTable/index.vue"
;
import
AddFilingPerson
from
"@/views/AddFilingPerson/index.vue"
;
import
AddFilingPerson
from
"@/views/AddFilingPerson/index.vue"
;
import
{
getAuths
}
from
"@/service/copyrightService"
;
import
{
iAuth
}
from
"@/types/copyright"
;
const
searchValue
=
ref
(
""
);
const
searchValue
=
ref
(
""
);
const
addFilingPersonDailogVisible
=
ref
(
false
);
const
addFilingPersonDailogVisible
=
ref
(
false
);
const
currentStatus
=
ref
(
eStatusOfCopyright
.
ALL
);
// 进行中的表格的状态
const
currentStatus
=
ref
(
eStatusOfFilerCertification
.
ALL
);
// 进行中的表格的状态
const
FilingPersonTableRef
=
ref
<
InstanceType
<
typeof
FilingPersonTable
>>
();
const
AddFilingPersonRef
=
ref
<
InstanceType
<
typeof
AddFilingPerson
>>
();
const
fetchTableData
=
({
const
fetchTableData
=
({
page
,
page
,
...
@@ -66,34 +75,27 @@ const fetchTableData = ({
...
@@ -66,34 +75,27 @@ const fetchTableData = ({
}:
{
}:
{
page
:
number
;
page
:
number
;
page_size
:
number
;
page_size
:
number
;
currentStatus
:
eStatusOf
Copyright
;
currentStatus
:
eStatusOf
FilerCertification
;
})
=>
{
})
=>
{
/* 请求所需要的参数 */
const
list
=
page
;
currentStatus
===
eStatusOfFilerCertification
.
ALL
page_size
;
?
[
// 当前状态
eStatusOfFilerCertification
.
NOT_PASSED
,
currentStatus
;
eStatusOfFilerCertification
.
PASSED
,
return
new
Promise
<
any
>
((
r
)
=>
{
eStatusOfFilerCertification
.
WAITING_CHECK
,
setTimeout
(()
=>
{
]
r
({
:
[
currentStatus
];
total
:
100
,
return
getAuths
(
searchValue
.
value
,
list
,
page
,
page_size
).
then
((
ret
)
=>
{
data
:
"1"
return
{
.
repeat
(
page_size
)
data
:
(
ret
?.
data
.
results
as
iAuth
[])
||
[],
.
split
(
""
)
total
:
ret
?.
data
.
total
||
0
,
.
map
((
i
,
index
)
=>
({
};
name
:
index
+
(
page
-
1
)
*
page_size
+
currentStatus
,
status
:
currentStatus
===
eStatusOfCopyright
.
ALL
?
eStatusOfCopyright
.
RECORD_SUCCESS
:
currentStatus
,
address
:
searchValue
.
value
,
})),
});
},
1000
);
});
});
};
};
const
generateFetchTableData
=
(
getCurrentStatus
:
()
=>
eStatusOfCopyright
)
=>
{
const
generateFetchTableData
=
(
getCurrentStatus
:
()
=>
eStatusOfFilerCertification
)
=>
{
return
({
page
,
page_size
}:
{
page
:
number
;
page_size
:
number
})
=>
{
return
({
page
,
page_size
}:
{
page
:
number
;
page_size
:
number
})
=>
{
return
fetchTableData
({
return
fetchTableData
({
page
,
page
,
...
@@ -112,15 +114,61 @@ const {
...
@@ -112,15 +114,61 @@ const {
fetchData
:
generateFetchTableData
(()
=>
currentStatus
.
value
),
fetchData
:
generateFetchTableData
(()
=>
currentStatus
.
value
),
});
});
const
refetchDebounce
=
debounce
(()
=>
{
function
handleRefetch
()
{
FilingPersonTableRef
.
value
?.
tableRef
?.
scrollTo
(
0
,
0
);
refetch
();
refetch
();
}
const
refetchDebounce
=
debounce
(()
=>
{
handleRefetch
();
},
500
);
},
500
);
const
handleClickStatusFilter
=
(
status
:
eStatusOf
Copyright
)
=>
{
const
handleClickStatusFilter
=
(
status
:
eStatusOf
FilerCertification
)
=>
{
currentStatus
.
value
=
status
;
currentStatus
.
value
=
status
;
refetch
();
refetch
();
};
};
const
handleClickEdit
=
({
id
}:
{
id
:
number
})
=>
{
addFilingPersonDailogVisible
.
value
=
true
;
const
raw
=
tableData
.
value
.
find
((
i
)
=>
i
.
id
===
id
);
AddFilingPersonRef
.
value
!
.
mode
=
"edit"
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
name
=
raw
!
.
authentication_name
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
property
=
raw
!
.
authentication_subject_nature
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
idCard
=
raw
!
.
authentication_subject_nature_code
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
unifiedSocialCreditCode
=
raw
!
.
authentication_subject_nature_code
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
powerOfAttorneyImage
=
raw
!
.
authentication_certificate_of_authorization_image
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
authorizationValidityPeriod
=
raw
!
.
authentication_certificate_of_authorization_date
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
name
=
raw
!
.
contact_person
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
email
=
raw
!
.
contact_email
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
cellphoneNumber
=
raw
!
.
contact_mobile
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
phoneNumber
=
raw
!
.
contact_telephone
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
postCode
=
raw
!
.
contact_post_code
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
fax
=
raw
!
.
contact_fax
;
AddFilingPersonRef
.
value
!
.
modelOfContact
.
addr
=
raw
!
.
contact_address
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
city
=
[
raw
!
.
authentication_province
,
raw
!
.
authentication_city
,
raw
!
.
authentication_district
,
];
AddFilingPersonRef
.
value
!
.
modelOfCert
.
businessLicenseOrCopy
=
raw
!
.
authentication_business_license
;
AddFilingPersonRef
.
value
!
.
modelOfCert
.
idCardImg
=
{
front
:
raw
!
.
authentication_held_front_id_card
,
back
:
raw
!
.
authentication_held_back_id_card
,
};
AddFilingPersonRef
.
value
!
.
id
=
id
;
};
watch
(
searchValue
,
()
=>
{
watch
(
searchValue
,
()
=>
{
refetchDebounce
();
refetchDebounce
();
});
});
...
...
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