资质证书页面修改

prod
郑明梁 2 years ago
parent 93f9a72b45
commit 587e009dc2

@ -53,6 +53,15 @@ export function deleteCompanyCert(query) {
} }
export function revokeSupCert(query) {
return axios(
{
url: "/sale/sup/cert/revoke",
method: "post",
data: query
}
);
}

@ -32,7 +32,7 @@
<el-row> <el-row>
<el-col :span="3"> <el-col :span="3">
<div class="ao-text"> <div class="ao-text">
<span>效期</span> <span>效期</span>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -70,21 +70,6 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="3">
<div class="ao-text">
<span>状态</span>
</div>
</el-col>
<el-col :span="8">
<el-form-item prop="need">
<el-select v-model="formData.status" style="width: 100%">
<el-option label="失效" :value=1></el-option>
<el-option label="有效" :value=0></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3"> <el-col :span="3">
<div class="ao-text"> <div class="ao-text">
<span>备注</span> <span>备注</span>

@ -28,12 +28,44 @@
<el-divider style="margin: 15px"></el-divider> <el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @row-click="supCompanyClick"> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@row-click="supCompanyClick">
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="配送企业名称" prop="companyName" show-overflow-tooltip></el-table-column> <el-table-column label="配送企业名称" prop="companyName" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="统一社会信用号" prop="creditNum"></el-table-column> <el-table-column label="统一社会信用号" prop="creditNum" width="160"></el-table-column>
<el-table-column label="所属地区" prop="area"></el-table-column> <el-table-column label="所属地区" prop="area" width="180"></el-table-column>
<el-table-column label="详细地址" prop="detailAddr" :show-overflow-tooltip="true"></el-table-column> <el-table-column label="详细地址" prop="detailAddr" :show-overflow-tooltip="true" width="180"></el-table-column>
<el-table-column label="生产企业证书" prop="auditStatus" width="120">
<template slot-scope="scope">
<el-tag type="danger" v-if="scope.row.failCout==0 && scope.row.passCout==0">
未添加证书
</el-tag>
<el-tag type="warning" v-if="scope.row.failCout>0">
未全部审核
</el-tag>
<el-tag type="success" v-if="scope.row.failCout==0 && scope.row.passCout>0">
已全部审核
</el-tag>
</template>
</el-table-column>
<el-table-column label="配送产品证书" prop="auditStatus" width="120">
<template slot-scope="scope">
<el-tag type="danger" v-if="scope.row.productFailCout==0 && scope.row.prouctPassCout==0">
未添加证书
</el-tag>
<el-tag type="warning" v-if="scope.row.productFailCout>0">
未全部审核
</el-tag>
<el-tag type="success" v-if="scope.row.productFailCout==0 && scope.row.prouctPassCout>0">
已全部审核
</el-tag>
</template>
</el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
@ -74,6 +106,7 @@
<el-dialog <el-dialog
:title="formMap[formName]" :title="formMap[formName]"
:visible.sync="supCompanyVisible" :visible.sync="supCompanyVisible"
:before-close="close"
width="80%" width="80%"
v-if="supCompanyVisible" v-if="supCompanyVisible"
@close='closeDialog' @close='closeDialog'
@ -94,12 +127,14 @@
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="生产企业名称"> <el-form-item label="生产企业名称">
<el-input v-model="filterManufacturerQuery.companyName" style="width: 90%" placeholder="请输入生产企业名称"></el-input> <el-input v-model="filterManufacturerQuery.companyName" style="width: 90%"
placeholder="请输入生产企业名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="统一社会信用号"> <el-form-item label="统一社会信用号">
<el-input v-model="filterManufacturerQuery.creditCode" style="width: 90%" placeholder="请输入统一社会信用号"></el-input> <el-input v-model="filterManufacturerQuery.creditCode" style="width: 90%"
placeholder="请输入统一社会信用号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -114,7 +149,8 @@
</div> </div>
<el-divider style="margin: 15px"></el-divider> <el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loadManufacturerLoading" :data="manufacturerList" style="width: 100%" ref="table" highlight-current-row border @row-click="supManufacturerClick"> <el-table v-loading="loadManufacturerLoading" :data="manufacturerList" style="width: 100%" ref="table"
highlight-current-row border @row-click="supManufacturerClick">
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="生产企业名称" prop="companyName" width="200" show-overflow-tooltip></el-table-column> <el-table-column label="生产企业名称" prop="companyName" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="社会信用号" prop="creditCode"></el-table-column> <el-table-column label="社会信用号" prop="creditCode"></el-table-column>
@ -126,6 +162,21 @@
<el-table-column label="所在地区" prop="placeArea"></el-table-column> <el-table-column label="所在地区" prop="placeArea"></el-table-column>
<el-table-column label="所在地址" prop="placeAddress" :show-overflow-tooltip="true"></el-table-column> <el-table-column label="所在地址" prop="placeAddress" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="所属供应商" prop="supName" :show-overflow-tooltip="true"></el-table-column> <el-table-column label="所属供应商" prop="supName" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="配送产品证书" prop="auditStatus" width="120">
<template slot-scope="scope">
<el-tag type="danger" v-if="scope.row.failCout==0 && scope.row.passCout==0">
未添加证书
</el-tag>
<el-tag type="warning" v-if="scope.row.failCout>0">
未全部审核
</el-tag>
<el-tag type="success" v-if="scope.row.failCout==0 && scope.row.passCout>0">
已全部审核
</el-tag>
</template>
</el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
@ -136,21 +187,13 @@
<el-table-column label="操作" width="120"> <el-table-column label="操作" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small"
type="text"
size="small"
v-if="scope.row.auditStatus ==6 || scope.row.auditStatus ==3|| scope.row.auditStatus ==4" v-if="scope.row.auditStatus ==6 || scope.row.auditStatus ==3|| scope.row.auditStatus ==4"
@click.native.stop="addInfoDialog(scope.row)" @click.native.stop="addInfoDialog(scope.row)">审核
>审核
</el-button> </el-button>
<el-button type="text" size="small"
<el-button
type="text"
size="small"
v-if="scope.row.auditStatus !=6 && scope.row.auditStatus !=3 && scope.row.auditStatus !=4" v-if="scope.row.auditStatus !=6 && scope.row.auditStatus !=3 && scope.row.auditStatus !=4"
@click.native.stop="addInfoDialog(scope.row)" @click.native.stop="addInfoDialog(scope.row)">详情
>详情
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -192,17 +235,20 @@
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="产品名称:"> <el-form-item label="产品名称:">
<el-input v-model="registrationQuery.recordProductName" style="width: 90%;" clearable="true" placeholder="请输入产品名称"></el-input> <el-input v-model="registrationQuery.recordProductName" style="width: 90%;" clearable="true"
placeholder="请输入产品名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="注册备案号:"> <el-form-item label="注册备案号:">
<el-input v-model="registrationQuery.recordCode" style="width: 90%;" clearable="true" placeholder="请输入注册备案号"></el-input> <el-input v-model="registrationQuery.recordCode" style="width: 90%;" clearable="true"
placeholder="请输入注册备案号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="注册备案人:"> <el-form-item label="注册备案人:">
<el-input v-model="registrationQuery.recordPeopleName" style="width: 90%;" clearable="true" placeholder="请输入注册备案人"></el-input> <el-input v-model="registrationQuery.recordPeopleName" style="width: 90%;" clearable="true"
placeholder="请输入注册备案人"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -218,7 +264,8 @@
</div> </div>
<el-divider style="margin: 15px"></el-divider> <el-divider style="margin: 15px"></el-divider>
<el-table v-loading="registrationLoading" :data="registrationList" border highlight-current-row style="width: 100%"> <el-table v-loading="registrationLoading" :data="registrationList" border highlight-current-row
style="width: 100%">
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="产品名称" prop="recordProductName" show-overflow-tooltip></el-table-column> <el-table-column label="产品名称" prop="recordProductName" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案号" prop="recordCode" show-overflow-tooltip></el-table-column> <el-table-column label="注册/备案号" prop="recordCode" show-overflow-tooltip></el-table-column>
@ -411,6 +458,17 @@ export default {
}; };
return statusMap[status]; return statusMap[status];
}, },
manufacturerStatusType(passCount,failCout) {
const statusMap = {
0: "warning",
1: "success",
2: "danger",
6: "warning",
3: "warning",
};
return statusMap[status];
},
statusFilterName(status) { statusFilterName(status) {
const statusMap = { const statusMap = {
0: "禁用", 0: "禁用",
@ -443,6 +501,7 @@ export default {
}, },
getList() { getList() {
this.loading = true; this.loading = true;
this.filterQuery.manufacturerStatus=1;
getSupComapnys(this.filterQuery) getSupComapnys(this.filterQuery)
.then((response) => { .then((response) => {
console.log(response) console.log(response)
@ -517,19 +576,25 @@ export default {
this.manufacturerList = []; this.manufacturerList = [];
this.getManufacturerList(); this.getManufacturerList();
}, },
close() {
this.getList();
this.supCompanyVisible = false;
},
headClose() { headClose() {
this.addInfoVisible = false; this.addInfoVisible = false;
this.getManufacturerList(); this.getManufacturerList();
}, },
onManufacturerSubmit() { onManufacturerSubmit() {
this.manufacturerList = []; //this.onManufacturerReset();
this.getManufacturerList(); this.getManufacturerList();
this.addInfoVisible = false;
}, },
hideSearch2() { hideSearch2() {
this.showSearch2 = !this.showSearch2; this.showSearch2 = !this.showSearch2;
}, },
getManufacturerList() { getManufacturerList() {
this.manufacturerLoading = true; this.manufacturerLoading = true;
this.filterManufacturerQuery.productStatus=1;
getCompanyList(this.filterManufacturerQuery) getCompanyList(this.filterManufacturerQuery)
.then((response) => { .then((response) => {
this.manufacturerLoading = false; this.manufacturerLoading = false;

@ -31,8 +31,8 @@
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="企业名称" prop="companyName" show-overflow-tooltip></el-table-column> <el-table-column label="企业名称" prop="companyName" show-overflow-tooltip></el-table-column>
<el-table-column label="社会信用号" prop="creditNum"></el-table-column> <el-table-column label="统一社会信用号" prop="creditNum"></el-table-column>
<el-table-column label="企业法人" prop="contacts"></el-table-column> <el-table-column label="联系人" prop="contacts"></el-table-column>
<el-table-column label="所属地区" prop="area"></el-table-column> <el-table-column label="所属地区" prop="area"></el-table-column>
<el-table-column label="详细地址" prop="detailAddr" :show-overflow-tooltip="true"></el-table-column> <el-table-column label="详细地址" prop="detailAddr" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="审核状态" prop="auditStatus" width="120">

@ -9,33 +9,11 @@
<el-card class="el-card" style="margin-top: -25px"> <el-card class="el-card" style="margin-top: -25px">
<div style="display: flex;"> <div style="display: flex;">
<el-button <el-button v-if="editType==2" type="primary" size="mini" icon="search" @click="onPassSubmit"></el-button>
v-if="editType==2" <el-button v-if="editType==2" type="primary" size="mini" @click="onRejectSubmit"></el-button>
type="primary" <el-button v-if="editType==1" type="primary" size="mini" icon="search" @click="printSupCertAll"></el-button>
size="mini"
icon="search"
@click="onPassSubmit"
>审核通过
</el-button
>
<el-button
v-if="editType==2"
type="primary"
size="mini"
icon="search"
@click="onRejectSubmit"
>审核拒绝
</el-button
>
<el-button
v-if="editType==1"
type="primary"
size="mini"
icon="search"
@click="printSupCertAll"
>打印
</el-button>
</div> </div>
<el-row :gutter="20" class="el-row" type="flex" style="margin-top: 20px"> <el-row :gutter="20" class="el-row" type="flex" style="margin-top: 20px">
<el-col :span="10" class="el-col"> <el-col :span="10" class="el-col">
<el-form-item label="企业名称:" label-width="150px" prop="companyName"> <el-form-item label="企业名称:" label-width="150px" prop="companyName">
@ -128,6 +106,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
<el-card> <el-card>
@ -143,60 +122,37 @@
</div> </div>
<el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border highlight-current-row> <el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border
<el-table-column type="selection" width="55"> highlight-current-row>
</el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="code"></el-table-column> <el-table-column label="证书编号" prop="code"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="证书状态" prop="status"> <el-table-column label="证书状态" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
{{ supStatus[scope.row.status] }} {{ supStatus[scope.row.status] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="确认状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }} {{ checkFlag[scope.row.auditStatus] }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="确认说明" prop="auditComment" show-overflow-tooltip></el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="editType==1" type="text" size="small" @click.native="printSupCert(scope.row)">
type="text" </el-button>
size="small" <el-button type="text" size="small" v-if="editType==2" @click.native="auditCert(scope.row)"></el-button>
@click.native="toViewCompanyCert(scope.row)" <el-button type="text" size="small" v-if="scope.row.auditStatus==1" @click.native="revoke(scope.row)">
>预览 撤回
</el-button </el-button>
>
<el-button
v-if="editType==1"
type="text"
size="small"
@click.native="printSupCert(scope.row)"
>打印
</el-button
>
<el-button
type="text"
size="small"
v-if="editType==2"
@click.native="auditCert(scope.row)"
>审核
</el-button
>
<el-button
type="text"
size="small"
@click.native="rejectInfo(scope.row)"
>说明
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -211,17 +167,99 @@
</el-form> </el-form>
<el-dialog width="30%" :visible.sync="certAuditVisible" append-to-body> <el-dialog width="60%" :visible.sync="certAuditVisible" append-to-body title="配送企业资质证书确认">
<el-form :model="currentAudit"> <el-form :model="currentAudit" label-width="120px">
<label></label> <el-row>
<el-form-item label="审核备注:" :label-width="120"> <el-col :span="11">
<el-input type="textarea" v-model="currentAudit.auditComment" autocomplete="off" <el-form-item label="证书名称:" prop="name">
<el-input v-model="currentAudit.name" auto-complete="off"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="证书编号:" prop="code">
<el-input v-model="currentAudit.code" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="生效期:" prop="vailDate">
<el-date-picker
v-model="currentAudit.vailDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择生效期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="失效期:" prop="expireDate">
<el-date-picker
v-model="currentAudit.expireDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择失效期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书状态:" prop="status">
<el-select v-model="currentAudit.status" :disabled="isOpen!=1" style="width: 100%">
<el-option label="失效" :value=1></el-option>
<el-option label="有效" :value=0></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="确认状态:" prop="confirmStatus">
<el-select v-model="confirmStatus" :disabled="isOpen==1" style="width: 100%">
<el-option label="符合" :value="1"></el-option>
<el-option label="不符合" :value="2"></el-option>
<el-option label="未确认" :value="6"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书文件:">
<el-button type="primary" size="mini" @click.native="showImgViewer(currentAudit)">证书预览</el-button>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"
:url-list="imgList"/>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 12px">
<el-col :span="22">
<el-form-item label="结果说明:">
<el-input type="textarea" :disabled="isOpen==1" v-model="currentAudit.auditComment" autocomplete="off"
autosize></el-input> autosize></el-input>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="rejectAuditCert"></el-button> <el-button type="primary" @click="confirm"></el-button>
<el-button type="primary" @click="passAuditCert"></el-button> <el-button type="primary" @click="cancel"></el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -229,7 +267,14 @@
</template> </template>
<script> <script>
import {modifyCompany, auditCompany,printSupCert, verifyTemplateFile} from "../../../api/purchase/supCompany"; import {
modifyCompany,
auditCompany,
printSupCert,
verifyTemplateFile,
getRoId,
previewImage
} from '../../../api/purchase/supCompany'
import { import {
provinceAndCityData, provinceAndCityData,
regionData, regionData,
@ -238,8 +283,11 @@ import {
CodeToText, CodeToText,
TextToCode, TextToCode,
} from "element-china-area-data"; } from "element-china-area-data";
import {filterCompanyCert, deleteCompanyCert, auditSupCert} from "../../../api/purchase/companyCert"; import {filterCompanyCert, deleteCompanyCert, auditSupCert, revokeSupCert} from "../../../api/purchase/companyCert";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import {customerlist} from '@/api/system/role'
import store from '@/store'
import ElImageViewer from "element-ui/packages/image/src/image-viewer"
export default { export default {
@ -265,6 +313,8 @@ export default {
return { return {
BASE_URL: process.env.VUE_APP_BASE_API, BASE_URL: process.env.VUE_APP_BASE_API,
headers: {}, headers: {},
imgViewerVisible: false,
imgList: [],
classesDisplay: false, classesDisplay: false,
selectedOptions: [], selectedOptions: [],
options: regionDataPlus, options: regionDataPlus,
@ -342,6 +392,7 @@ export default {
limit: 20 limit: 20
}, },
certList: [], certList: [],
roleList: [],
certTotal: 0, certTotal: 0,
certLoading: false, certLoading: false,
addCertVisible: false, addCertVisible: false,
@ -357,6 +408,8 @@ export default {
certTypeMap: { certTypeMap: {
1: '身份证' 1: '身份证'
}, },
confirmStatus: null,
selectLocalVisible: false, selectLocalVisible: false,
productQuery: { productQuery: {
ylqxzcrbarmc: "", ylqxzcrbarmc: "",
@ -370,15 +423,25 @@ export default {
productLoading: false, productLoading: false,
uuid: null, uuid: null,
companyApplyUpdateVisible: false, companyApplyUpdateVisible: false,
isOpen: false,
companyEditDisabled: true, companyEditDisabled: true,
companyEditButtonStr: "编辑", companyEditButtonStr: "编辑",
checkFlag: { checkFlag: {
0: "草稿", 0: "草稿",
1: "已通过", 1: "已确认",
2: "已拒绝",
3: "变更未确认",
6: "未确认",
},
checkSupFlage: {
0: "草稿",
1: "已审核",
2: "已拒绝", 2: "已拒绝",
3: "变更未审核", 3: "变更未审核",
6: "未审核", 6: "未审核",
}, },
supStatus: { supStatus: {
0: "有效", 0: "有效",
1: "失效", 1: "失效",
@ -389,11 +452,12 @@ export default {
}, },
created() { created() {
this.getCompanyCertList(); this.getCompanyCertList();
this.customerlist();
this.selectedOptions = this.inputQuery.areaCode.split(","); this.selectedOptions = this.inputQuery.areaCode.split(",");
}, },
components: { components: {
draggable draggable,
ElImageViewer
}, },
methods: { methods: {
@ -417,9 +481,8 @@ export default {
}).catch(() => { }).catch(() => {
}); });
}, },
onRejectSubmit() { onRejectSubmit() {
this.$prompt('请输入驳回意见', '提示', { this.$prompt('请输入结果说明', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
}).then(({value}) => { }).then(({value}) => {
@ -440,8 +503,42 @@ export default {
}); });
} }
, ,
isAssetTypeAnImage(ext) {
return [
'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(ext.toLowerCase()) !== -1;
},
showImgViewer(row) {
var varindex = row.filePath.lastIndexOf(".");
var varext = row.filePath.substring(varindex + 1);
var isImage = this.isAssetTypeAnImage(varext);
if (isImage == true) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList.push(response.data);
}
});
this.imgViewerVisible = true;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
} else {
this.toViewCompanyCert(row);
}
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
cancelDialog() { cancelDialog() {
this.closeDialog(); this.closeDialog();
} }
@ -479,6 +576,8 @@ export default {
auditCert(row) { auditCert(row) {
this.certAuditVisible = true; this.certAuditVisible = true;
this.currentAudit = row; this.currentAudit = row;
this.isOpen = this.currentAudit.auditStatus;
this.confirmStatus = this.currentAudit.auditStatus;
}, },
passAuditCert() { passAuditCert() {
@ -489,6 +588,10 @@ export default {
this.currentAudit.auditStatus = 2; this.currentAudit.auditStatus = 2;
this.auditSupCert(this.currentAudit); this.auditSupCert(this.currentAudit);
}, },
notAuditCert() {
this.currentAudit.auditStatus = 6;
this.auditSupCert(this.currentAudit);
},
auditSupCert(inputQuery) { auditSupCert(inputQuery) {
@ -520,6 +623,12 @@ export default {
} }
, ,
getRoIds() {
let params = {companyId: this.inputQuery.customerId}
getRoId(params).then((res) => {
this.inputQuery.roleId = parseInt(res.data.roleId);
})
},
getCompanyCertList() { getCompanyCertList() {
this.certLoading = true; this.certLoading = true;
this.certQuery.customerId = this.inputQuery.customerId; this.certQuery.customerId = this.inputQuery.customerId;
@ -639,7 +748,63 @@ export default {
}); });
} }
, ,
customerlist() {
customerlist().then((response) => {
if (response.code === 20000) {
this.roleList = response.data;
}
})
.catch(() => {
this.roleList = null;
});
},
confirm() {
debugger
if (this.confirmStatus == null) {
this.$message.error("请选择确认状态");
return;
}
if (this.confirmStatus == 1) {
this.passAuditCert();
} else if (this.confirmStatus == 2) {
this.rejectAuditCert();
} else if (this.confirmStatus == 6) {
this.notAuditCert();
}
},
revoke(inputQuery) {
this.$confirm("是否确定撤回证书状态至未确认?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
inputQuery.auditStatus = 6
revokeSupCert(inputQuery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getCompanyCertList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
cancel() {
this.certAuditVisible = false;
},
}, },
filters: { filters: {
statusFilterType(status) { statusFilterType(status) {

@ -124,22 +124,24 @@
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="code"></el-table-column> <el-table-column label="证书编号" prop="code"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="证书状态" > <el-table-column label="确认状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ expire[scope.row.status] }}</span> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }}
</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="确认说明" prop="auditComment"></el-table-column>
<el-table-column label="状态" prop="status" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.status) | statusType">
{{ checkFlag[scope.row.auditStatus] }} {{ statusFlag[scope.row.status] }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column> <el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="180"> <el-table-column label="操作" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -364,9 +366,9 @@ export default {
page: 1, page: 1,
limit: 20 limit: 20
}, },
expire:{ statusFlag: {
0: "有效", 0: "有效",
1:"失效" 1: "失效",
}, },
certList: [], certList: [],
certTotal: 0, certTotal: 0,
@ -401,11 +403,11 @@ export default {
companyEditButtonStr: "编辑", companyEditButtonStr: "编辑",
addType: "1", //1:2.3. addType: "1", //1:2.3.
checkFlag: { checkFlag: {
0: "草稿", 0: "未认证",
1: "已通过", 1: "已确认",
2: "已拒绝", 2: "已拒绝",
3: "变更未审核", 3: "变更未确认",
6: "未审核", 6: "未确认",
}, },
editTye: 1, editTye: 1,
@ -661,6 +663,13 @@ export default {
return statusMap[status]; return statusMap[status];
} }
, ,
statusType(status) {
const statusMap = {
0: "success",
1: "danger",
};
return statusMap[status];
},
} }
, ,
} }

@ -10,31 +10,10 @@
<el-card class="el-card"> <el-card class="el-card">
<div style="display: flex;"> <div style="display: flex;">
<el-button <el-button v-if="editType==2" type="primary" size="mini" icon="search" @click="onPassSubmit"></el-button>
v-if="editType==2" <el-button v-if="editType==2" type="primary" size="mini" icon="search" @click="onRejectSubmit">
type="primary" </el-button>
size="mini" <el-button v-if="editType==1" type="primary" size="mini" icon="search" @click="printSupCertAll">
icon="search"
@click="onPassSubmit"
>审核通过
</el-button
>
<el-button
v-if="editType==2"
type="primary"
size="mini"
icon="search"
@click="onRejectSubmit"
>审核拒绝
</el-button
>
<el-button
v-if="editType==1"
type="primary"
size="mini"
icon="search"
@click="printSupCertAll"
>打印
</el-button> </el-button>
</div> </div>
<el-row :gutter="20" class="el-row" type="flex" style="margin-top: 20px"> <el-row :gutter="20" class="el-row" type="flex" style="margin-top: 20px">
@ -198,12 +177,12 @@
<!-- </el-button--> <!-- </el-button-->
<!-- >--> <!-- >-->
</div> </div>
<el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border highlight-current-row> <el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border
<el-table-column type="selection" width="55"></el-table-column> highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="code"></el-table-column> <el-table-column label="证书编号" prop="code"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column> <el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="证书状态" prop="status"> <el-table-column label="证书状态" prop="status">
@ -211,7 +190,7 @@
{{ supStatus[scope.row.status] }} {{ supStatus[scope.row.status] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="确认状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }} {{ checkFlag[scope.row.auditStatus] }}
@ -220,37 +199,12 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="editType==1" type="text" size="small" @click.native="printSupCert(scope.row)">
<el-button </el-button>
type="text" <el-button type="text" size="small" v-if="editType==2" @click.native="auditCert(scope.row)"></el-button>
size="small" <el-button type="text" size="small" v-if="scope.row.auditStatus==1" @click.native="revoke(scope.row)">
@click.native="toViewCompanyCert(scope.row)" 撤回
>预览 </el-button>
</el-button
>
<el-button
type="text"
size="small"
v-if="editType==2"
@click.native="auditCert(scope.row)"
>审核
</el-button
>
<el-button
v-if="editType==1"
type="text"
size="small"
@click.native="printSupCert(scope.row)"
>打印
</el-button
>
<el-button
type="text"
size="small"
@click.native="rejectInfo(scope.row)"
>说明
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -264,17 +218,99 @@
</el-card> </el-card>
<el-dialog width="30%" :visible.sync="certAuditVisible" append-to-body> <el-dialog width="60%" title="生产企业资质证书确认" :visible.sync="certAuditVisible" append-to-body>
<el-form :model="currentAudit"> <el-form :model="currentAudit" label-width="120px">
<label></label> <el-row>
<el-form-item label="审核备注:" :label-width="120"> <el-col :span="11">
<el-input type="textarea" v-model="currentAudit.auditComment" autocomplete="off" <el-form-item label="证书名称:" prop="name">
<el-input v-model="currentAudit.name" auto-complete="off"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="证书编号:" prop="code">
<el-input v-model="currentAudit.code" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="生效期:" prop="vailDate">
<el-date-picker
v-model="currentAudit.vailDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择生效期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="失效期:" prop="expireDate">
<el-date-picker
v-model="currentAudit.expireDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择失效期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书状态:" prop="status">
<el-select v-model="currentAudit.status" :disabled="isOpen!=1" style="width: 100%">
<el-option label="失效" :value=1></el-option>
<el-option label="有效" :value=0></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="确认状态:" prop="confirmStatus">
<el-select v-model="confirmStatus" :disabled="isOpen==1" style="width: 100%">
<el-option label="符合" :value="1"></el-option>
<el-option label="不符合" :value="2"></el-option>
<el-option label="未确认" :value="6"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书文件:">
<el-button type="primary" size="mini" @click.native="showImgViewer(currentAudit)">证书预览</el-button>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"
:url-list="imgList"/>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 12px">
<el-col :span="22">
<el-form-item label="结果说明:">
<el-input type="textarea" :disabled="isOpen==1" v-model="currentAudit.auditComment" autocomplete="off"
autosize></el-input> autosize></el-input>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="rejectAuditCert"></el-button> <el-button type="primary" @click="confirm"></el-button>
<el-button type="primary" @click="passAuditCert"></el-button> <el-button type="primary" @click="cancel"></el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -285,15 +321,16 @@
<script> <script>
import {auditManufacturer, addOrModifyCompany} from "../../../api/purchase/supManufacturer"; import {auditManufacturer, addOrModifyCompany} from "../../../api/purchase/supManufacturer";
import {regionDataPlus, CodeToText} from "element-china-area-data"; import {regionDataPlus, CodeToText} from "element-china-area-data";
import {filterCompanyCert, deleteCompanyCert, auditSupCert} from "../../../api/purchase/companyCert"; import {filterCompanyCert, deleteCompanyCert, auditSupCert, revokeSupCert} from "../../../api/purchase/companyCert";
import companyAddCert from "@/views/purchase/cert/supCertAddDialog"; import companyAddCert from "@/views/purchase/cert/supCertAddDialog";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import { import {
getSupComapnys, getSupComapnys, previewImage,
printSupCertManufacturer, printSupCertManufacturer,
verifyTemplateFile verifyTemplateFile
} from "@/api/purchase/supCompany"; } from '@/api/purchase/supCompany'
import {getUUID} from "@/utils/strUtil"; import {getUUID} from "@/utils/strUtil";
import ElImageViewer from "element-ui/packages/image/src/image-viewer"
export default { export default {
name: "supManufacturerAuditDialog", name: "supManufacturerAuditDialog",
@ -319,6 +356,8 @@ export default {
classesDisplay: false, classesDisplay: false,
selectedOptions: [], selectedOptions: [],
selectedOptions2: [], selectedOptions2: [],
imgViewerVisible: false,
imgList: [],
options: regionDataPlus, options: regionDataPlus,
rules: { rules: {
@ -408,8 +447,10 @@ export default {
certList: [], certList: [],
certTotal: 0, certTotal: 0,
certLoading: false, certLoading: false,
isOpen: false,
addCertVisible: false, addCertVisible: false,
fromOptions: [], fromOptions: [],
confirmStatus: null,
idQuery: { idQuery: {
id: "", id: "",
}, },
@ -417,10 +458,10 @@ export default {
checkFlag: { checkFlag: {
0: "草稿", 0: "草稿",
1: "已通过", 1: "已确认",
2: "已拒绝", 2: "已拒绝",
3: "变更未审核", 3: "变更未确认",
6: "未审核", 6: "未确认",
}, },
supStatus: { supStatus: {
0: "有效", 0: "有效",
@ -452,7 +493,7 @@ export default {
}, },
components: { components: {
draggable, draggable,
companyAddCert, companyAddCert, ElImageViewer
}, },
methods: { methods: {
@ -480,7 +521,7 @@ export default {
}, },
onRejectSubmit() { onRejectSubmit() {
this.$prompt('请输入驳回意见', '提示', { this.$prompt('请输入结果说明', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
}).then(({value}) => { }).then(({value}) => {
@ -499,7 +540,42 @@ export default {
}); });
} }
, ,
isAssetTypeAnImage(ext) {
return [
'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(ext.toLowerCase()) !== -1;
},
showImgViewer(row) {
var varindex = row.filePath.lastIndexOf(".");
var varext = row.filePath.substring(varindex + 1);
var isImage = this.isAssetTypeAnImage(varext);
if (isImage == true) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList = [];
previewImage({imageUrl: row.filePath, certFileUrl: this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList.push(response.data);
}
});
this.imgViewerVisible = true;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
} else {
this.toViewCompanyCert(row);
}
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
openFile() { openFile() {
window.open(this.fileUrl + this.inputQuery.filePath); window.open(this.fileUrl + this.inputQuery.filePath);
@ -541,8 +617,34 @@ export default {
auditCert(row) { auditCert(row) {
this.certAuditVisible = true; this.certAuditVisible = true;
this.currentAudit = row; this.currentAudit = row;
this.isOpen = this.currentAudit.auditStatus;
this.confirmStatus = this.currentAudit.auditStatus;
}, },
revoke(inputQuery) {
this.$confirm("是否确定撤回证书状态至未确认?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
inputQuery.auditStatus = 6
revokeSupCert(inputQuery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getCompanyCertList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
passAuditCert() { passAuditCert() {
this.currentAudit.auditStatus = 1; this.currentAudit.auditStatus = 1;
this.auditSupCert(this.currentAudit); this.auditSupCert(this.currentAudit);
@ -551,8 +653,20 @@ export default {
this.currentAudit.auditStatus = 2; this.currentAudit.auditStatus = 2;
this.auditSupCert(this.currentAudit); this.auditSupCert(this.currentAudit);
}, },
confirm() {
if (this.confirmStatus == null) {
this.$message.error("请选择确认状态");
return;
}
if (this.confirmStatus == 1) {
this.passAuditCert();
} else if (this.confirmStatus == 2) {
this.rejectAuditCert();
}
},
cancel() {
this.certAuditVisible = false;
},
auditSupCert(inputQuery) { auditSupCert(inputQuery) {
auditSupCert(inputQuery).then(response => { auditSupCert(inputQuery).then(response => {
this.loading = false; this.loading = false;
@ -669,9 +783,9 @@ export default {
return; return;
} }
// //
const isLt = file.size / 1024 / 1024 / 2 <= 1; const isLt = file.size / 1024 / 1024 / 10 <= 1;
if (!isLt) { if (!isLt) {
this.$message.error("上传文件大小不能超过 2MB"); this.$message.error("上传文件大小不能超过 10MB");
for (let i = 0; i < fileList.length; i++) { for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) { if (fileList[i].uid === uid) {
fileList.splice(i, 1) fileList.splice(i, 1)

@ -208,7 +208,7 @@
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="name"></el-table-column> <el-table-column label="证书编号" prop="name"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">

@ -213,11 +213,10 @@
</el-form> </el-form>
<el-card class="el-card"> <el-card class="el-card">
<el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border highlight-current-row> <el-table v-loading="certLoading" :data="certList" ref="certTable" style="width: 100%" border highlight-current-row>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="code"></el-table-column> <el-table-column label="证书编号" prop="code"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column> <el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="证书状态" prop="status"> <el-table-column label="证书状态" prop="status">
@ -225,7 +224,7 @@
{{ supStatus[scope.row.status] }} {{ supStatus[scope.row.status] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="确认状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType"> <el-tag :type="(scope.row.auditStatus) | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }} {{ checkFlag[scope.row.auditStatus] }}
@ -235,45 +234,11 @@
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="editType==1" type="text" size="small" @click.native="printSupCert(scope.row)"></el-button>
<el-button <el-button type="text" size="small" v-if="editType==2" @click.native="auditCert(scope.row)"></el-button>
type="text" <el-button type="text" size="small" v-if="scope.row.auditStatus==1" @click.native="revoke(scope.row)">
size="small" 撤回
@click.native="toViewCompanyCert(scope.row)" </el-button>
>预览
</el-button
>
<el-button
v-if="editType==1"
type="text"
size="small"
@click.native="printSupCert(scope.row)"
>打印
</el-button
>
<el-button
type="text"
size="small"
v-if="editType==2"
@click.native="auditCert(scope.row)"
>审核
</el-button
>
<el-button
type="text"
size="small"
@click.native="rejectInfo(scope.row)"
>说明
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native="deleteCompanyCert(scope.row)"-->
<!-- >删除-->
<!-- </el-button-->
<!-- >-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -286,17 +251,97 @@
</el-pagination> </el-pagination>
</el-card> </el-card>
<el-dialog width="30%" :visible.sync="certAuditVisible" append-to-body> <el-dialog width="60%" title="配送产品资质证书确认" :visible.sync="certAuditVisible" append-to-body>
<el-form :model="currentAudit"> <el-form :model="currentAudit" label-width="120px">
<label></label> <el-row>
<el-form-item label="审核备注:" :label-width="120"> <el-col :span="11">
<el-input type="textarea" v-model="currentAudit.auditComment" autocomplete="off" <el-form-item label="证书名称:" prop="name">
autosize></el-input> <el-input v-model="currentAudit.name" auto-complete="off"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="证书编号:" prop="code">
<el-input v-model="currentAudit.code" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="生效期:" prop="vailDate">
<el-date-picker
v-model="currentAudit.vailDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择生效期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="失效期:" prop="expireDate">
<el-date-picker
v-model="currentAudit.expireDate"
type="date"
disabled
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择失效期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书状态:" prop="status">
<el-select v-model="currentAudit.status" :disabled="isOpen!=1" style="width: 100%">
<el-option label="失效" :value=1></el-option>
<el-option label="有效" :value=0></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="确认状态:" prop="confirmStatus">
<el-select v-model="confirmStatus" :disabled="isOpen==1" style="width: 100%">
<el-option label="符合" :value="1"></el-option>
<el-option label="不符合" :value="2"></el-option>
<el-option label="未确认" :value="6"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="证书文件:">
<el-button type="primary" size="mini" @click.native="showImgViewer(currentAudit)">证书预览</el-button>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 12px">
<el-col :span="22">
<el-form-item label="结果说明:">
<el-input type="textarea":disabled="isOpen==1" v-model="currentAudit.auditComment" autocomplete="off" autosize></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="rejectAuditCert"></el-button> <el-button type="primary" @click="confirm"></el-button>
<el-button type="primary" @click="passAuditCert"></el-button> <el-button type="primary" @click="cancel"></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -314,14 +359,15 @@ import {
} from "element-china-area-data"; } from "element-china-area-data";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import { import {
getSupComapnys, getSupComapnys, previewImage,
printSupCertProduction, printSupCertProduction,
verifyTemplateFile verifyTemplateFile
} from "@/api/purchase/supCompany"; } from '@/api/purchase/supCompany'
import {addOrModifyCompany, getCompanyList} from "@/api/purchase/supManufacturer"; import {addOrModifyCompany, getCompanyList} from "@/api/purchase/supManufacturer";
import {auditSupCert, deleteCompanyCert, filterCompanyCert} from "@/api/purchase/companyCert"; import {auditSupCert, deleteCompanyCert, filterCompanyCert, revokeSupCert} from "@/api/purchase/companyCert";
import companyAddCert from "@/views/purchase/cert/supCertAddDialog"; import companyAddCert from "@/views/purchase/cert/supCertAddDialog";
import {getUUID} from "@/utils/strUtil"; import {getUUID} from "@/utils/strUtil";
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default { export default {
@ -345,6 +391,8 @@ export default {
BASE_URL: process.env.VUE_APP_BASE_API, BASE_URL: process.env.VUE_APP_BASE_API,
fromOptions: [], fromOptions: [],
fromPMOptions: [], fromPMOptions: [],
imgViewerVisible:false,
imgList:[],
pmQuery: { pmQuery: {
customerId: null, customerId: null,
companyName: null, companyName: null,
@ -445,15 +493,17 @@ export default {
addType: "3", //1:2.3. addType: "3", //1:2.3.
checkFlag: { checkFlag: {
0: "草稿", 0: "草稿",
1: "已通过", 1: "已确认",
2: "已拒绝", 2: "已拒绝",
3: "变更未审核", 3: "变更未确认",
6: "未审核", 6: "未确认",
}, },
supStatus: { supStatus: {
0: "有效", 0: "有效",
1: "失效", 1: "失效",
}, },
confirmStatus: null,
isOpen:false,
certAuditVisible: false, certAuditVisible: false,
currentAudit: {}, currentAudit: {},
}; };
@ -465,6 +515,7 @@ export default {
if(this.editType!=2 && this.editType!=0){ if(this.editType!=2 && this.editType!=0){
this.certQuery.auditStatus = 20; this.certQuery.auditStatus = 20;
} }
debugger
this.getCompanyCertList(); this.getCompanyCertList();
this.pmQuery.customerId = this.inputQuery.customerId; this.pmQuery.customerId = this.inputQuery.customerId;
this.findPMMethod(); this.findPMMethod();
@ -475,7 +526,7 @@ export default {
}, },
components: { components: {
draggable, companyAddCert draggable, companyAddCert,ElImageViewer
}, },
methods: { methods: {
@ -499,9 +550,41 @@ export default {
}).catch(() => { }).catch(() => {
}); });
}, },
isAssetTypeAnImage(ext) {
return [
'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].
indexOf(ext.toLowerCase()) !== -1;
},
showImgViewer(row){
var varindex= row.filePath.lastIndexOf(".");
var varext = row.filePath.substring(varindex+1);
var isImage=this.isAssetTypeAnImage(varext);
if(isImage==true){
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList=[];
previewImage({imageUrl:row.filePath,certFileUrl:this.certFileUrl}).then(response => {
if (response.code === 20000) {
this.imgList.push(response.data);
}
});
this.imgViewerVisible = true;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'hidden';
document.addEventListener("touchmove", m, false); //
}else{
this.toViewCompanyCert(row);
}
},
closeImgViewer(){
this.imgViewerVisible = false;
const m = (e) => { e.preventDefault() };
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
onRejectSubmit() { onRejectSubmit() {
this.$prompt('请输入驳回意见', '提示', { this.$prompt('请输入结果说明', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
}).then(({value}) => { }).then(({value}) => {
@ -520,9 +603,21 @@ export default {
}).catch(() => { }).catch(() => {
}); });
},
confirm() {
if (this.confirmStatus == null) {
this.$message.error("请选择确认状态");
return;
} }
, if (this.confirmStatus == 1) {
this.passAuditCert();
} else if (this.confirmStatus == 2) {
this.rejectAuditCert();
}
},
cancel() {
this.certAuditVisible = false;
},
findMethod(query) { findMethod(query) {
this.fromOptions = []; this.fromOptions = [];
@ -625,6 +720,33 @@ export default {
auditCert(row) { auditCert(row) {
this.certAuditVisible = true; this.certAuditVisible = true;
this.currentAudit = row; this.currentAudit = row;
this.isOpen=this.currentAudit.auditStatus;
this.confirmStatus = this.currentAudit.auditStatus;
},
revoke(inputQuery) {
this.$confirm("是否确定撤回证书状态至未确认?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
inputQuery.auditStatus = 6
revokeSupCert(inputQuery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getCompanyCertList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
}, },
passAuditCert() { passAuditCert() {

@ -180,45 +180,72 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="10" class="el-col">-->
<!-- <el-form-item label="代理人名称:" label-width="150px" prop="agentName">-->
<!-- <el-input-->
<!-- size="small"-->
<!-- placeholder="请输入内容"-->
<!-- v-model="inputQuery.agentName"-->
<!-- @input="change()"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row> </el-row>
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col"> <el-col :span="10" class="el-col">
<el-form-item label="产品描述:" label-width="150px" prop="cpms"> <el-form-item label="允许无批次号" label-width="150px">
<el-input <el-select v-model="inputQuery.allowNoBatch" style="width: 100%" size="small">
size="small" <el-option label="是" :value="true"></el-option>
placeholder="请输入内容" <el-option label="否" :value="false"></el-option>
v-model="inputQuery.cpms" </el-select>
@input="change()"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" class="el-col"> <el-col :span="10" class="el-col">
<el-form-item label="规格型号:" label-width="150px" prop="specification" > <el-form-item label="允许无失效日期" label-width="150px">
<el-input <el-select v-model="inputQuery.allowNoExpire" style="width: 100%" size="small">
size="small" <el-option label="是" :value="true"></el-option>
type="textarea" <el-option label="否" :value="false"></el-option>
autosize </el-select>
placeholder="请输入内容" </el-form-item>
v-model="inputQuery.specification" </el-col>
@input="change()" </el-row>
></el-input> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<el-form-item label="允许无生产日期" label-width="150px">
<el-select v-model="inputQuery.allowNoProduct" style="width: 100%" size="small">
<el-option label="是" :value="true"></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" class="el-col">
<el-form-item label="允许无序列号" label-width="150px">
<el-select v-model="inputQuery.allowNoSerial" style="width: 100%" size="small">
<el-option label="是" :value="true"></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- <el-row :gutter="20" class="el-row" type="flex">-->
<!-- <el-col :span="10" class="el-col">-->
<!-- <el-form-item label="产品描述:" label-width="150px" prop="cpms">-->
<!-- <el-input-->
<!-- size="small"-->
<!-- placeholder="请输入内容"-->
<!-- v-model="inputQuery.cpms"-->
<!-- @input="change()"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="10" class="el-col">-->
<!-- <el-form-item label="规格型号:" label-width="150px" prop="specification" >-->
<!-- <el-input-->
<!-- size="small"-->
<!-- type="textarea"-->
<!-- autosize-->
<!-- placeholder="请输入内容"-->
<!-- v-model="inputQuery.specification"-->
<!-- @input="change()"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="20" class="el-row" type="flex"> <el-row :gutter="20" class="el-row" type="flex">
<el-col :span="20" class="el-col"> <el-col :span="20" class="el-col">
<el-form-item label="备注:" label-width="150px" prop="remark"> <el-form-item label="备注:" label-width="150px" prop="remark">
@ -254,7 +281,7 @@
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="证书名称" prop="name"></el-table-column> <el-table-column label="证书名称" prop="name"></el-table-column>
<el-table-column label="证书编号" prop="name"></el-table-column> <el-table-column label="证书编号" prop="name"></el-table-column>
<el-table-column label="效期" prop="vailDate"></el-table-column> <el-table-column label="效期" prop="vailDate"></el-table-column>
<el-table-column label="失效期" prop="expireDate"></el-table-column> <el-table-column label="失效期" prop="expireDate"></el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120"> <el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope"> <template slot-scope="scope">

@ -70,7 +70,7 @@
<el-table-column type="index" label="序号" width="50"></el-table-column> <el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column :label="msgName" prop="name" width="160" show-overflow-tooltip></el-table-column> <el-table-column :label="msgName" prop="name" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="证书名称" prop="certName" width="160" show-overflow-tooltip></el-table-column> <el-table-column label="证书名称" prop="certName" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="效期" prop="vailDate" width="120"></el-table-column> <el-table-column label="效期" prop="vailDate" width="120"></el-table-column>
<el-table-column label="失效期" prop="expireDate" width="120" show-overflow-tooltip></el-table-column> <el-table-column label="失效期" prop="expireDate" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="消息状态" prop="status" width="100"> <el-table-column label="消息状态" prop="status" width="100">
<template slot-scope="scope"> <template slot-scope="scope">

Loading…
Cancel
Save