Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
fa31f407
提交
fa31f407
编写于
11月 29, 2021
作者:
dmx_mac
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:批发流程合规
上级
ff60539f
变更
10
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
7438 行增加
和
13 行删除
+7438
-13
package.json
package.json
+1
-1
router.js
src/router/router.js
+10
-1
global.scss
src/style/global.scss
+18
-4
mixins.js
src/utils/mixins.js
+7
-7
index.js
src/utils/qualification/index.js
+43
-0
historyDialog.vue
src/views/qualification/components/historyDialog.vue
+83
-0
refuseDialog.vue
src/views/qualification/components/refuseDialog.vue
+90
-0
detail.vue
src/views/qualification/detail.vue
+470
-0
list.vue
src/views/qualification/list.vue
+292
-0
yarn.lock
yarn.lock
+6424
-0
未找到文件。
package.json
浏览文件 @
fa31f407
...
...
@@ -26,7 +26,7 @@
"
iscroll
"
:
"
^5.2.0
"
,
"
js-cookie
"
:
"
^2.2.0
"
,
"
js-md5
"
:
"
^0.7.3
"
,
"
jsencrypt
"
:
"
^3.
0.0-rc
.1
"
,
"
jsencrypt
"
:
"
^3.
2
.1
"
,
"
jspdf
"
:
"
^1.5.3
"
,
"
node-sass
"
:
"
^4.9.2
"
,
"
pdfh5
"
:
"
^1.3.9
"
,
...
...
src/router/router.js
浏览文件 @
fa31f407
...
...
@@ -82,6 +82,8 @@ const plazaList = r => require.ensure([], () => r(require('../views/plaza/plaza-
const
activityMember
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/activitymanagement/activity-member.vue'
)),
'activity-member'
)
const
videoManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/shortvideo/video-manage.vue'
)),
'video-manage'
)
const
qualificationList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/qualification/list.vue'
)),
'qualification'
)
const
qualificationDetail
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/qualification/detail.vue'
)),
'qualification'
)
export
default
[{
path
:
'/'
,
...
...
@@ -347,7 +349,14 @@ export default [{
path
:
'video-manage'
,
component
:
videoManage
,
},
{
path
:
'qualification-list'
,
component
:
qualificationList
},
{
path
:
'qualification-detail'
,
component
:
qualificationDetail
},
// {
// path: '/followup',
// name: 'followUp',
...
...
src/style/global.scss
浏览文件 @
fa31f407
@import
'./common.scss'
;
// color
.c0D9078
{
color
:
#0D9078
;
}
//定位
.relative
{
position
:
relative
;
...
...
@@ -18,9 +22,19 @@
display
:
flex
;
justify-content
:
flex-end
;
}
.flex1
{
flex
:
1
;
}
.textLeft
{
float
:
left
;
}
.cp
{
cursor
:
pointer
;
}
.flex-c
{
display
:
flex
;
align-items
:
center
;
}
.center
{
text-align
:
center
;
}
...
...
@@ -125,11 +139,11 @@
padding-left
:
5px
!
important
;
font-size
:
14px
!
important
;
color
:
#333
;
}
}
.el-checkbox__input.is-checked
+
.el-checkbox__label
{
color
:
#449284
;
}
.el-checkbox__input.is-checked
.el-checkbox__inner
,
.el-checkbox__input.is-checked
.el-checkbox__inner
,
.el-checkbox__input.is-indeterminate
.el-checkbox__inner
{
color
:
#449284
;
}
...
...
@@ -204,7 +218,7 @@
margin
:
0
;
padding
:
25px
5px
30px
;
border-top
:
0px
solid
#E4E7ED
;
}
}
}
.el-dialog__footer
{
padding-top
:
20px
;
...
...
@@ -227,7 +241,7 @@
margin
:
0
;
padding
:
25px
5px
30px
;
border-top
:
1px
solid
#E4E7ED
;
}
}
}
}
.el-cascader
.el-input
.el-input__inner
:focus
,
.el-cascader
.el-input.is-focus
.el-input__inner
{
...
...
src/utils/mixins.js
浏览文件 @
fa31f407
import
fetch
from
'@/utils/fetch'
import
{
getBaseUrl
,
getReportUrl
,
getWorkApi
,
getCmsUrl
}
from
'@/utils/index'
import
{
CryptoJS
}
from
'@/plugins/aes'
import
'jsencrypt'
import
JSEncrypt
from
'jsencrypt'
import
{
getPubKey
}
from
'@/utils/account/accountApi'
;
...
...
@@ -19,7 +19,7 @@ module.exports = {
// this.token = this.getUrlKey('token') || (query && query.token) || null
},
mounted
:
function
()
{
},
methods
:
{
...
...
@@ -56,7 +56,7 @@ module.exports = {
cb
&&
cb
(
params
);
}
}
else
{
this
.
$message
({
this
.
$message
({
message
:
(
res
&&
res
.
message
)
||
'接口出错'
,
type
:
'warning'
});
...
...
@@ -85,7 +85,7 @@ module.exports = {
return
encrypted
.
toString
();
},
// RSA encrypt
RsaEncrypt
(
aesKey
,
pubKey
){
RsaEncrypt
(
aesKey
,
pubKey
){
let
_encrypt
=
new
JSEncrypt
();
let
boss_public_key
=
pubKey
;
_encrypt
.
setPublicKey
(
boss_public_key
);
...
...
@@ -159,7 +159,7 @@ module.exports = {
setEntry
:
'headers'
,
}
let
url
=
'contents/searchKeyword/searchContent'
let
csourceData
=
await
this
.
GET
(
url
,
para
).
then
(
res
=>
{
// _this.searchText = ''
if
(
res
.
code
==
'000000'
)
{
...
...
@@ -182,7 +182,7 @@ module.exports = {
})
return
csourceData
},
setEventByModuleCode
(
itemData
){
let
modeCode
=
itemData
.
appModuleInfo
.
code
||
''
;
let
paramList
=
itemData
.
appModuleInfo
.
paramList
?
itemData
.
appModuleInfo
.
paramList
:
''
...
...
@@ -253,7 +253,7 @@ module.exports = {
params
:
para
})
},
// 通用DELETE请求
DELETE
(
api
,
para
,
callback
,
str
)
{
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
...
...
src/utils/qualification/index.js
0 → 100644
浏览文件 @
fa31f407
import
fetch
from
'../fetch'
;
import
{
getBaseUrl
,
getSaasDomain
,
getSaasApiDomain
}
from
'@/utils/index'
let
headers
=
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
token
:
localStorage
.
getItem
(
'storageToken'
),
};
export
const
getCertifyList
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`certify/list`
),
method
:
'post'
,
data
:
params
,
description
:
'审核记录列表(批发和供应商)'
,
})
};
export
const
getCertifyHistory
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`certify/certifyHistory`
),
method
:
'get'
,
data
:
params
,
description
:
'查看审核历史'
,
})
};
export
const
getCertifyDetail
=
(
storeId
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`certify/certifyDetail`
),
method
:
'get'
,
description
:
'获取认证申请的审核详情'
,
})
};
export
const
getRefuseTemplate
=
(
storeId
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cert/constant/refuse/template`
),
method
:
'get'
,
description
:
'获取错误模板'
,
})
};
src/views/qualification/components/historyDialog.vue
0 → 100644
浏览文件 @
fa31f407
<
template
>
<el-dialog
title=
"提示"
:visible
.
sync=
"hidden"
width=
"80%"
:before-close=
"handleClose"
>
<el-table
:data=
"gridData"
>
<el-table-column
property=
"date"
label=
"审核时间"
></el-table-column>
<el-table-column
property=
"name"
label=
"审核人"
></el-table-column>
<el-table-column
property=
"address"
label=
"审核结果"
></el-table-column>
<el-table-column
property=
"address"
label=
"失败原因"
width=
"200"
>
<template
class=
""
>
</
template
>
</el-table-column>
<el-table-column
property=
"address"
label=
"操作"
></el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleNumChange"
:current-page=
"pageNo"
:page-sizes=
"[10, 30, 50, 100]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
</div>
</el-dialog>
</template>
<
script
>
import
{
getCertifyHistory
}
from
'@/utils/qualification'
export
default
{
props
:{
hidden
:{
type
:
Boolean
,
default
:()
=>
{
return
false
;
}
},
id
:{
type
:
Number
,
default
:()
=>
{
return
0
;
}
}
},
data
()
{
return
{
pageNo
:
0
,
pageSize
:
10
,
total
:
100
,
gridData
:[],
}
},
created
(){},
methods
:{
init
(){
const
params
=
{
certificateInfoId
:
this
.
id
,
pageNo
:
this
.
pageNo
,
pageSize
:
this
.
pageSize
}
getCertifyHistory
(
params
).
then
(
res
=>
{
})
},
handleSizeChange
()
{},
handleNumChange
()
{},
show
()
{
},
handleClose
(){
this
.
$emit
(
'close'
)
}
}
}
</
script
>
<
style
lang=
'less'
scoped
>
</
style
>
src/views/qualification/components/refuseDialog.vue
0 → 100644
浏览文件 @
fa31f407
<
template
>
<el-dialog
title=
"拒绝原因"
:visible
.
sync=
"dialogVisible"
width=
"40%"
:before-close=
"handleClose"
>
<div
class=
"refuse-dialog"
>
<el-radio
v-model=
"checkId"
v-for=
"item in list"
:key=
"item.id"
:label=
"item.id"
>
{{
item
.
name
}}
</el-radio
>
<el-radio
v-model=
"checkId"
:label=
"4"
>
手动输入
</el-radio>
<el-input
v-if=
"checkId === -1"
type=
"textarea"
placeholder=
"请输入拒绝原因"
v-model=
"refuse"
maxlength=
"30"
show-word-limit
/>
</div>
<div
class=
"btn"
>
<el-button
type=
"default"
size=
"small"
@
click=
"handleClose"
>
取消
</el-button
>
<el-button
type=
"primary"
size=
"small"
@
click=
"confirm"
>
确认
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
getRefuseTemplate
}
from
"@/utils/qualification"
;
export
default
{
props
:
{},
data
()
{
return
{
dialogVisible
:
false
,
checkId
:
-
1
,
refuse
:
""
,
list
:[],
type
:
''
};
},
created
()
{},
methods
:
{
init
(
type
)
{
this
.
type
=
type
getRefuseTemplate
({
type
}).
then
((
res
)
=>
{
console
.
log
(
res
);
this
.
list
=
res
.
data
||
[]
});
},
show
()
{
this
.
dialogVisible
=
true
;
},
handleClose
()
{
this
.
dialogVisible
=
false
;
},
confirm
()
{
const
params
=
{
refuseTemplateNo
:
this
.
checkId
,
infoType
:
this
.
type
}
if
(
this
.
checkId
===
-
1
)
{
params
.
refuseContent
=
this
.
refuse
}
else
{
params
.
refuseContent
=
this
.
list
.
filters
(
v
=>
{
return
v
.
id
===
checkId
})[
0
].
name
}
this
.
handleClose
();
this
.
$emit
(
"confirm"
,
params
);
},
},
};
</
script
>
<
style
lang=
'less'
scoped
>
.refuse-dialog {
display: flex;
flex-direction: column;
margin-bottom: 20px;
}
.btn {
text-align: right;
}
</
style
>
src/views/qualification/detail.vue
0 → 100644
浏览文件 @
fa31f407
<
template
>
<div
class=
"qualification-detail"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
></bread-crumb>
<div
class=
"qualification-content screenSet"
id=
"screenSet"
>
<div
class=
"head"
>
<div
class=
"top space-between"
>
<div
class=
"flex-c"
>
<div
class=
"name"
>
审核状态
</div>
<div
class=
"type"
:class=
"typeState"
>
{{
typeStateText
}}
</div>
<div
class=
"history cp"
@
click=
"showHistoryDialog"
>
<i
class=
"el-icon-document"
></i>
查看审核历史
</div>
</div>
<div
class=
"flex-c fs14"
>
<div
class=
"mLR10"
>
审核人:
{{
detail
.
auditName
}}
</div>
<div>
审核时间:
{{
detail
.
auditTime
}}
</div>
</div>
</div>
<div
class=
"hr"
></div>
<div
class=
"bottom"
v-if=
"$route.query.source === 'ghs'"
>
<div>
店铺名称:
{{
detail
.
storeName
}}
</div>
<div>
管理员姓名:
{{
detail
.
adminName
}}
<span
class=
"c0D9078 cp"
@
click=
"copyTxt"
>
复制
</span>
</div>
<div>
管理员手机号:
{{
detail
.
adminMobile
}}
</div>
</div>
<div
class=
"bottom"
v-if=
"$route.query.source === 'pf'"
>
<div>
医生姓名:
{{
detail
.
doctorName
}}
</div>
<div>
医生ID:
{{
detail
.
doctorId
}}
<span
class=
"c0D9078 cp"
@
click=
"copyTxt"
>
复制
</span>
</div>
<div>
申请时间:
{{
detail
.
applyTime
}}
</div>
</div>
</div>
</div>
<div
class=
"company"
>
<div
class=
"tit"
>
<div
class=
"mr5"
>
公司信息
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
1
|
reasonRejection
}}
</div>
<div
class=
"info"
>
<div>
<div>
企业类型:
{{
detail
.
orgType
}}
</div>
<div>
联系人:
{{
detail
.
contactName
}}
</div>
</div>
<div>
<div>
企业地区:
{{
detail
.
areaStr
}}
</div>
<div>
联系电话:
{{
detail
.
contactPhone
}}
</div>
</div>
<div>
详情地址:
{{
detail
.
orgAddress
}}
</div>
</div>
</div>
<div
class=
"business"
>
<div
class=
"tit"
>
<div>
工商信息
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
2
|
reasonRejection
}}
</div>
<div
class=
""
>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
营业执照
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.businessLicenseUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div
class=
"space-between flex-c"
>
<div>
企业名称:
{{
detail
.
orgName
}}
</div>
<div>
信用代码:
{{
detail
.
creditCode
}}
</div>
<div>
有效日期:
{{
detail
.
licenseValidDateBegin
}}
至
{{
detail
.
licenseValidDateEnd
}}
</div>
</div>
</div>
<el-divider></el-divider>
<div>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
上一年度报告
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
3
|
reasonRejection
}}
</div>
<div
class=
"img"
>
<el-image
src=
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div>
有效日期:
</div>
</div>
<el-divider></el-divider>
<div>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
委托人身份证照片
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
4
|
reasonRejection
}}
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.assignorCertBackUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.assignorCertFrontUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div
class=
"space-between flex-c"
>
<div>
委托人姓名:
{{
detail
.
assignorName
}}
</div>
<div>
委托人身份证号:
{{
detail
.
assignorCertNo
}}
</div>
<div>
委托人身份证有效日期:
{{
detail
.
assignorValidDateBegin
}}
至
{{
detail
.
assignorValidDateEnd
}}
</div>
</div>
</div>
<el-divider></el-divider>
<div>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
委托书
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
5
|
reasonRejection
}}
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.assignorCertBackUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
</div>
<el-divider></el-divider>
<div>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
法人身份证照片
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
6
|
reasonRejection
}}
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.legalCertBackUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div
class=
"img"
>
<el-image
:src=
"detail.legalCertFrontUrl"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div
class=
"space-between flex-c"
>
<div>
法人人姓名:
{{
detail
.
legalName
}}
</div>
<div>
法人身份证号:
{{
detail
.
legalCertNo
}}
</div>
<div>
法人身份证有效日期:
{{
detail
.
legalValidDateBegin
}}
至
{{
detail
.
legalValidDateEnd
}}
</div>
</div>
</div>
<div>
<div
class=
"tit"
>
<div>
资质信息
</div>
</div>
<div
class=
"flex-start"
>
<div
class=
""
>
经营范围:
</div>
<div
class=
"flex1"
>
{{
detail
.
bizScope
}}
</div>
</div>
<div
v-for=
"item in 4"
:key=
"item"
class=
"item"
>
<div
class=
"flex-c fs12"
>
<div
class=
"mr5"
>
药品经营许可证
</div>
<div
class=
"c0D9078 cp"
@
click=
"refuse"
>
<i
class=
"el-icon-edit-outline"
></i>
拒绝原因
</div>
</div>
<div
class=
"refuse-info"
>
拒绝原因:
{{
7
|
reasonRejection
}}
</div>
<div
class=
"img"
>
<el-image
src=
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list=
"[
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
]"
/>
</div>
<div>
有效日期:沙发沙发沙发沙发
</div>
</div>
</div>
</div>
<history-dialog
:hidden=
"historyDialogHidden"
@
close=
"historyDialogClose"
/>
<refuse-dialog
/>
<footer>
<el-button
type=
"primary"
size=
"small"
@
click=
"confirm"
>
审核通过
</el-button
>
<el-button
type=
"default"
size=
"small"
@
click=
"handleClose"
>
审核不通过
</el-button
>
</footer>
</div>
</
template
>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
historyDialog
from
"./components/historyDialog.vue"
;
import
refuseDialog
from
"./components/refuseDialog.vue"
;
import
{
getCertifyDetail
}
from
"@/utils/qualification"
;
import
Footer
from
"../layout/footer.vue"
;
export
default
{
components
:
{
BreadCrumb
,
historyDialog
,
refuseDialog
,
Footer
,
},
filters
:
{},
computed
:
{
typeState
()
{
const
reviewType
=
[
"tobe-reviewed"
,
"success-reviewed"
,
"no-reviewed"
];
return
reviewType
[
this
.
$route
.
query
.
type
];
},
typeStateText
()
{
const
reviewType
=
[
"待审核"
,
"审核成功"
,
"审核不通过"
];
return
reviewType
[
this
.
$route
.
query
.
type
];
},
},
filters
:
{
reasonRejection
(
type
)
{
return
this
.
certifyValidDtoList
.
filters
(
v
=>
{
return
v
.
infoType
===
type
})[
0
]
},
},
data
()
{
return
{
curmbFirst
:
"批发资质详情"
,
historyDialogHidden
:
false
,
detail
:
{},
certifyValidDtoList
:
[],
//认证审核校验描述
certifyLicenseImgList
:
[],
//认证图片list:资质信息类
certifyReportImgList
:
[],
//认证图片list 年度报告类
};
},
created
()
{},
methods
:
{
init
()
{
getCertifyDetail
(
this
.
id
).
then
((
res
)
=>
{
const
{
certifyValidDtoList
=
[],
certifyLicenseImgList
=
[],
certifyReportImgList
=
[],
}
=
res
.
data
;
this
.
certifyValidDtoList
=
certifyValidDtoList
;
this
.
certifyLicenseImgList
=
certifyLicenseImgList
;
this
.
certifyReportImgList
=
certifyReportImgList
;
this
.
detail
=
res
.
data
;
});
},
showHistoryDialog
()
{
this
.
historyDialogHidden
=
true
;
},
historyDialogClose
()
{
this
.
historyDialogHidden
=
false
;
},
// copy
copyTxt
(
text
)
{
var
type
=
"text/plain"
;
var
blob
=
new
Blob
([
text
],
{
type
});
var
data
=
[
new
ClipboardItem
({
[
type
]:
blob
})];
navigator
.
clipboard
.
write
(
data
).
then
(
()
=>
{
/* success */
this
.
$message
.
success
(
"复制成功"
);
},
()
=>
{
/* failure */
this
.
$message
.
error
(
"复制失败"
);
}
);
},
confirm
()
{
const
msg
=
"部分内容你已经标记拒绝,不可通过审核,请返回查看"
;
this
.
$confirm
(
msg
,
"确认通过审核吗?"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{})
.
catch
(()
=>
{});
},
handleClose
()
{
const
msg
=
"未检测到有标记拒绝原因的项目,请返回查看"
;
this
.
$confirm
(
msg
,
"确认通过审核不通过吗?"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
document
.
body
.
scrollTop
=
0
;
})
.
catch
(()
=>
{});
},
refuse
(
type
)
{
switch
(
type
)
{
case
1
:
break
;
}
},
},
};
</
script
>
<
style
lang=
"scss"
scope
>
.hr
{
background-color
:
#dcdfe6
;
position
:
relative
;
display
:
block
;
height
:
1px
;
width
:
100%
;
margin
:
10px
0
;
}
.mr5
{
margin-right
:
5px
;
}
.qualification-detail
{
.qualification-content
{
background
:
#fff
;
padding
:
10px
;
.head
{
.top
{
display
:
flex
;
align-items
:
center
;
.name
{
font-weight
:
bold
;
font-size
:
16px
;
}
.type
{
border
:
1px
solid
#ccc
;
padding
:
2px
5px
;
font-size
:
14px
;
border-radius
:
5px
;
margin
:
0
5px
;
&
.tobe-reviewed
{
color
:
#fac94d
;
border
:
1px
solid
#fac94d
;
}
&
.success-reviewed
{
color
:
#71d60a
;
border
:
1px
solid
#71d60a
;
}
&
.no-reviewed
{
color
:
#e2292a
;
border
:
1px
solid
#e2292a
;
}
}
.history
{
color
:
#0d9078
;
font-size
:
12px
;
}
}
.bottom
{
display
:
flex
;
justify-content
:
space-between
;
}
}
}
.company
{
background-color
:
#fff
;
margin
:
10px
30px
;
padding
:
20px
;
.c0D9078
{
margin-left
:
5px
;
font-size
:
12px
;
}
.info
{
display
:
flex
;
justify-content
:
space-between
;
flex-wrap
:
nowrap
;
line-height
:
40px
;
div
{
}
}
}
.business
{
background-color
:
#fff
;
margin
:
10px
30px
;
padding
:
20px
;
font-size
:
12px
;
.img
{
width
:
80px
;
height
:
150px
;
}
.item
{
margin-bottom
:
10px
;
}
.flex-c
{
margin-bottom
:
10px
;
}
.flex-start
{
margin-bottom
:
20px
;
}
}
.tit
{
display
:
flex
;
align-items
:
center
;
position
:
relative
;
font-size
:
16px
;
margin-bottom
:
20px
;
>
:first-child
{
font-weight
:
bold
;
}
&
:
:
before
{
content
:
""
;
width
:
2px
;
height
:
70%
;
position
:
absolute
;
left
:
-5px
;
background-color
:
#0d9078
;
}
}
footer
{
position
:
fixed
;
bottom
:
0
;
right
:
0
;
background-color
:
#fff
;
width
:
calc
(
100%
-
255px
);
text-align
:
right
;
padding
:
10px
20px
;
}
.refuse-info
{
font-size
:
12px
;
color
:
#e54543
;
}
}
</
style
>
src/views/qualification/list.vue
0 → 100644
浏览文件 @
fa31f407
<
template
>
<div
class=
"qualification-list"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
></bread-crumb>
<div
class=
"qualification-content screenSet"
id=
"screenSet"
>
<el-form
ref=
"searchForm"
:model=
"searchForm"
label-width=
"100px"
label-suffix=
":"
:inline=
"true"
>
<template
v-if=
"$route.query.source === 'ghs'"
>
<el-form-item
label=
"店铺名称"
>
<el-input
v-model=
"searchForm.storeNameStr"
size=
"small"
style=
"width:200px"
placeholder=
"请输入店铺名称,用‘、’隔开"
></el-input>
</el-form-item>
<el-form-item
label=
"管理员姓名"
>
<el-input
v-model=
"searchForm.adminNameStr"
size=
"small"
style=
"width:220px"
placeholder=
"请输入管理员姓名,用‘、’隔开"
></el-input>
</el-form-item>
<el-form-item
label=
"管理员手机号"
>
<el-input
v-model=
"searchForm.adminMobileStr"
size=
"small"
style=
"width:220px"
placeholder=
"亲输入管理员手机号,用‘、’隔开"
></el-input>
</el-form-item>
<el-form-item
label=
"企业类型"
>
<el-select
v-model=
"searchForm.orgType"
placeholder=
"请选择"
size=
"small"
clearable
>
<el-option
v-for=
"(item,index) in orgList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</
template
>
<
template
v-if=
"$route.query.source === 'pf'"
>
<el-form-item
label=
"医生ID"
>
<el-input
v-model=
"searchForm.doctorIdStr"
size=
"small"
style=
"width:200px"
placeholder=
"请输入医生ID,用‘、’隔开"
></el-input>
</el-form-item>
<el-form-item
label=
"医生姓名"
>
<el-input
v-model=
"searchForm.doctorNameStr"
size=
"small"
style=
"width:200px"
placeholder=
"请输入医生姓名,用‘、’隔开"
></el-input>
</el-form-item>
<el-form-item
label=
"企业名称"
>
<el-input
v-model=
"searchForm.orgNameStr"
size=
"small"
style=
"width:200px"
placeholder=
"亲输入企业名称,用‘、’隔开"
></el-input>
</el-form-item>
</
template
>
<el-form-item
label=
"审核状态"
>
<el-select
v-model=
"searchForm.status"
placeholder=
"请选择"
size=
"small"
>
<el-option
v-for=
"(item,index) in statusList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
class=
"form-btn"
>
<el-button
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
type=
"default"
size=
"small"
>
重制
</el-button>
</div>
</div>
<div
class=
"table"
>
<div
class=
"tab"
>
<span
:class=
"{checked:item.id === tabChecked}"
v-for=
"item in tabList"
:key=
"item.id"
@
click=
"checkTab(item)"
>
{{item.name}}
</span>
</div>
<el-table
:data=
"tableData"
align=
"left"
class=
"item-table"
style=
"width: 100%;margin-top: 10px;"
>
<el-table-column
prop=
"id"
label=
"申请ID"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<
template
v-if=
"$route.query.source === 'ghs'"
>
<el-table-column
prop=
"storeName"
label=
"店铺名称"
min-width=
"100"
align=
"center"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"storeType"
label=
"管理员姓名"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeType
|
storeTypeFormat
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"storeType"
label=
"管理员手机号"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeType
|
storeTypeFormat
}}
</span>
</
template
>
</el-table-column>
</template>
<
template
v-if=
"$route.query.source === 'pf'"
>
<el-table-column
prop=
"storeName"
label=
"医生ID"
min-width=
"100"
align=
"center"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"storeType"
label=
"医生姓名"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeType
|
storeTypeFormat
}}
</span>
</
template
>
</el-table-column>
</template>
<el-table-column
prop=
"storeStatus"
label=
"企业姓名"
min-width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
storeStatus
|
statusFormat
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"count"
label=
"企业类型"
min-width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
count
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"createdTime"
label=
"审核状态"
min-width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
:class=
"scope.row.createdTime | typeState"
>
{{
scope
.
row
.
createdTime
|
examineType
}}
</span>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"Top Left 提示文字"
placement=
"top-start"
>
<i
class=
"el-icon-warning-outline no-reviewed"
></i>
</el-tooltip>
</
template
>
</el-table-column>
<el-table-column
prop=
"commissionType"
label=
"申请时间"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
commissionType
|
commissionTypeFormat
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"commissionPrice"
label=
"审核人"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.commissionType == 1"
>
{{
scope
.
row
.
commissionPrice
|
priceNum
}}
%
</span>
<span
v-if=
"scope.row.commissionType == 2"
>
{{
scope
.
row
.
commissionPrice
|
priceNum
}}
元
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"commissionType"
label=
"审核时间"
width=
"120"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
proxyCommissionType
|
commissionTypeFormat
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
min-width=
"230"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<div
class=
"operation"
>
<el-button
@
click=
"shopManage(scope.row)"
type=
"text"
size=
"small"
>
审核
</el-button>
<el-button
@
click=
"orderManage(scope.row)"
type=
"text"
size=
"small"
>
查看详情
</el-button>
</div>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleNumChange"
:current-page=
"searchForm.pageNo"
:page-sizes=
"[10, 30, 50, 100]"
:page-size=
"searchForm.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"totalRows"
></el-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
{
getCertifyList
}
from
'@/utils/qualification'
export
default
{
components
:
{
BreadCrumb
},
filters
:{
examineType
(
type
){
const
obj
=
{
0
:
'待审核'
,
1
:
'审核通过'
,
2
:
'审核不通过'
,
}
return
obj
[
type
]
},
typeState
(
type
){
const
reviewType
=
[
'tobe-reviewed'
,
'success-reviewed'
,
'no-reviewed'
]
return
reviewType
[
type
]
},
},
data
(){
return
{
curmbFirst
:
'首营资质审核'
,
tabList
:[
{
id
:
1
,
name
:
'全部'
,
},
{
id
:
2
,
name
:
'待审核'
,
},
{
id
:
3
,
name
:
'已审核'
,
},
],
searchForm
:
{
adminMobileStr
:
''
,
adminNameStr
:
''
,
doctorIdStr
:
0
,
doctorNameStr
:
1
,
orgNameStr
:
10
,
orgType
:
null
,
pageNo
:
null
,
pageSize
:
0
,
status
:
0
,
storeNameStr
:
0
,
type
:
1
},
orgList
:[
{
id
:
1
,
name
:
'医疗机构(非营利性)'
},
{
id
:
2
,
name
:
'医疗机构(营利性)'
},
{
id
:
3
,
name
:
'零售-单体药店'
},
{
id
:
4
,
name
:
'零售-连锁药店'
},
],
statusList
:[
{
id
:
0
,
name
:
'全部'
},
{
id
:
1
,
name
:
'待审核'
},
{
id
:
2
,
name
:
'已审核'
},
],
tableData
:[{
id
:
1
,
storeName
:
'11'
,
storeType
:
2
,
storeStatus
:
2
,
count
:
2
,
createdTime
:
2
,
commissionType
:
2
,
}],
tabChecked
:
1
}
},
created
(){
this
.
init
()
},
methods
:{
init
()
{
const
params
=
{
}
getCertifyList
(
params
).
then
(
res
=>
{
console
.
log
(
res
);
})
},
checkTab
(
item
)
{
this
.
tabChecked
=
item
.
id
;
}
}
}
</
script
>
<
style
lang=
"scss"
scope
>
.qualification-list
{
.qualification-content
{
background
:
#fff
;
padding
:
10px
;
}
.form-btn
{
text-align
:
right
;
}
.table
{
background-color
:
#fff
;
margin
:
10px
30px
;
padding
:
20px
;
.tobe-reviewed
{
color
:
#FAC94D
;
}
.success-reviewed
{
color
:
#71D60A
;
}
.no-reviewed
{
color
:
#E2292A
;
}
.tab
{
span
{
font-weight
:
bold
;
font-size
:
18px
;
margin-right
:
30px
;
cursor
:
pointer
;
&
.checked
{
color
:
#0D9078
;
}
}
}
.operation
{
span
{
color
:
#0D9078
;
}
}
}
}
</
style
>
yarn.lock
0 → 100644
浏览文件 @
fa31f407
因为 它太大了无法显示 源差异 。您可以改为
查看blob
。
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录