提交 fa31f407 编写于 作者: dmx_mac's avatar dmx_mac

feat:批发流程合规

上级 ff60539f
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
"iscroll": "^5.2.0", "iscroll": "^5.2.0",
"js-cookie": "^2.2.0", "js-cookie": "^2.2.0",
"js-md5": "^0.7.3", "js-md5": "^0.7.3",
"jsencrypt": "^3.0.0-rc.1", "jsencrypt": "^3.2.1",
"jspdf": "^1.5.3", "jspdf": "^1.5.3",
"node-sass": "^4.9.2", "node-sass": "^4.9.2",
"pdfh5": "^1.3.9", "pdfh5": "^1.3.9",
......
...@@ -82,6 +82,8 @@ const plazaList = r => require.ensure([], () => r(require('../views/plaza/plaza- ...@@ -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 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 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 [{ export default [{
path: '/', path: '/',
...@@ -347,7 +349,14 @@ export default [{ ...@@ -347,7 +349,14 @@ export default [{
path: 'video-manage', path: 'video-manage',
component: videoManage, component: videoManage,
}, },
{
path: 'qualification-list',
component:qualificationList
},
{
path: 'qualification-detail',
component:qualificationDetail
},
// { // {
// path: '/followup', // path: '/followup',
// name: 'followUp', // name: 'followUp',
......
@import './common.scss'; @import './common.scss';
// color
.c0D9078{
color:#0D9078;
}
//定位 //定位
.relative{ .relative{
position: relative; position: relative;
...@@ -18,9 +22,19 @@ ...@@ -18,9 +22,19 @@
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
.flex1{
flex: 1;
}
.textLeft{ .textLeft{
float: left; float: left;
} }
.cp{
cursor: pointer;
}
.flex-c{
display: flex;
align-items: center;
}
.center{ .center{
text-align: center; text-align: center;
} }
...@@ -125,11 +139,11 @@ ...@@ -125,11 +139,11 @@
padding-left: 5px !important; padding-left: 5px !important;
font-size: 14px !important; font-size: 14px !important;
color: #333; color: #333;
} }
.el-checkbox__input.is-checked+.el-checkbox__label { .el-checkbox__input.is-checked+.el-checkbox__label {
color: #449284; 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 { .el-checkbox__input.is-indeterminate .el-checkbox__inner {
color: #449284; color: #449284;
} }
...@@ -204,7 +218,7 @@ ...@@ -204,7 +218,7 @@
margin: 0; margin: 0;
padding: 25px 5px 30px; padding: 25px 5px 30px;
border-top: 0px solid #E4E7ED; border-top: 0px solid #E4E7ED;
} }
} }
.el-dialog__footer { .el-dialog__footer {
padding-top: 20px; padding-top: 20px;
...@@ -227,7 +241,7 @@ ...@@ -227,7 +241,7 @@
margin: 0; margin: 0;
padding: 25px 5px 30px; padding: 25px 5px 30px;
border-top: 1px solid #E4E7ED; border-top: 1px solid #E4E7ED;
} }
} }
} }
.el-cascader .el-input .el-input__inner:focus, .el-cascader .el-input.is-focus .el-input__inner { .el-cascader .el-input .el-input__inner:focus, .el-cascader .el-input.is-focus .el-input__inner {
......
import fetch from '@/utils/fetch' import fetch from '@/utils/fetch'
import { getBaseUrl, getReportUrl, getWorkApi, getCmsUrl } from '@/utils/index' import { getBaseUrl, getReportUrl, getWorkApi, getCmsUrl } from '@/utils/index'
import { CryptoJS } from '@/plugins/aes' import { CryptoJS } from '@/plugins/aes'
import 'jsencrypt' import JSEncrypt from 'jsencrypt'
import { getPubKey } from '@/utils/account/accountApi'; import { getPubKey } from '@/utils/account/accountApi';
...@@ -19,7 +19,7 @@ module.exports = { ...@@ -19,7 +19,7 @@ module.exports = {
// this.token = this.getUrlKey('token') || (query && query.token) || null // this.token = this.getUrlKey('token') || (query && query.token) || null
}, },
mounted: function() { mounted: function() {
}, },
methods: { methods: {
...@@ -56,7 +56,7 @@ module.exports = { ...@@ -56,7 +56,7 @@ module.exports = {
cb && cb(params); cb && cb(params);
} }
}else{ }else{
this.$message({ this.$message({
message: (res && res.message) || '接口出错', message: (res && res.message) || '接口出错',
type: 'warning' type: 'warning'
}); });
...@@ -85,7 +85,7 @@ module.exports = { ...@@ -85,7 +85,7 @@ module.exports = {
return encrypted.toString(); return encrypted.toString();
}, },
// RSA encrypt // RSA encrypt
RsaEncrypt(aesKey, pubKey){ RsaEncrypt(aesKey, pubKey){
let _encrypt = new JSEncrypt(); let _encrypt = new JSEncrypt();
let boss_public_key = pubKey; let boss_public_key = pubKey;
_encrypt.setPublicKey(boss_public_key); _encrypt.setPublicKey(boss_public_key);
...@@ -159,7 +159,7 @@ module.exports = { ...@@ -159,7 +159,7 @@ module.exports = {
setEntry: 'headers', setEntry: 'headers',
} }
let url = 'contents/searchKeyword/searchContent' let url = 'contents/searchKeyword/searchContent'
let csourceData = await this.GET(url, para).then(res => { let csourceData = await this.GET(url, para).then(res => {
// _this.searchText = '' // _this.searchText = ''
if (res.code == '000000') { if (res.code == '000000') {
...@@ -182,7 +182,7 @@ module.exports = { ...@@ -182,7 +182,7 @@ module.exports = {
}) })
return csourceData return csourceData
}, },
setEventByModuleCode(itemData){ setEventByModuleCode(itemData){
let modeCode = itemData.appModuleInfo.code || ''; let modeCode = itemData.appModuleInfo.code || '';
let paramList = itemData.appModuleInfo.paramList ? itemData.appModuleInfo.paramList : '' let paramList = itemData.appModuleInfo.paramList ? itemData.appModuleInfo.paramList : ''
...@@ -253,7 +253,7 @@ module.exports = { ...@@ -253,7 +253,7 @@ module.exports = {
params: para params: para
}) })
}, },
// 通用DELETE请求 // 通用DELETE请求
DELETE(api, para, callback,str) { DELETE(api, para, callback,str) {
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE" // para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
......
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: '获取错误模板',
})
};
<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>
<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>
<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>
<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>
因为 它太大了无法显示 源差异 。您可以改为 查看blob
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册