You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-cpt-vue/src/views/basic/corpMaintain/corpMaintain.vue

1599 lines
55 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<el-card class="el-card">
<el-form v-if="queryList && queryList.length > 0" :model="query" label-width="100px" class="query-form" size="mini" v-show="showSearch">
<!-- <el-row>-->
<!-- <el-col type="flex" :span="8">-->
<!-- <el-form-item label="注册企业名称:">-->
<!-- <el-input-->
<!-- v-model="query.companyName"-->
<!-- style="width: 90%"-->
<!-- placeholder="注册企业名称:"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col type="flex" :span="8">-->
<!-- <el-form-item label="往来单位名称:">-->
<!-- <el-input-->
<!-- v-model="query.name"-->
<!-- style="width: 90%"-->
<!-- placeholder="往来单位名称"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col span="8">-->
<!-- <el-form-item label="往来单位类型:">-->
<!-- <el-select v-model="query.corpType" style="width: 90%" placeholder="请选择往来单位类型">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="客户" value="1"></el-option>-->
<!-- <el-option label="供应商" value="2"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList" >
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="query[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && !query.bussinessStatus && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select v-model="query[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select
v-model="query[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
v-model="query[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
<el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
<!-- <el-button type="primary" icon="el-icon-plus" @click.native="handleForm(null, null)"-->
<!-- :disabled="!configParms.basicCorp">新增-->
<!-- </el-button>-->
<!-- <el-button type="primary" icon="el-icon-plus" @click.native="handleForm(null, null)">新增</el-button>-->
<!-- <el-button type="primary" icon="el-icon-bottom-right" @click="intentDetail">选入往来单位信息</el-button>-->
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" border highlight-current-row @current-change="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)">
<!-- <el-table-column label="序号" type="index" width="50"></el-table-column>-->
<!-- <el-table-column label="注册企业" prop="companyName" width="230"></el-table-column>-->
<!-- <el-table-column label="往来单位" prop="name" width="230"></el-table-column>-->
<!-- <el-table-column label="往来单位编码" prop="erpId" width="120" show-overflow-tooltip></el-table-column>-->
<!-- <el-table-column label="第三方主系统ID" prop="thirdId" width="120" show-overflow-tooltip></el-table-column>-->
<!-- &lt;!&ndash; <el-table-column label="名称" prop="name" show-overflow-tooltip></el-table-column>&ndash;&gt;-->
<!-- <el-table-column label="简写" prop="spell" show-overflow-tooltip></el-table-column>-->
<!-- <el-table-column label="社会信用号" prop="creditNo" width="230" show-overflow-tooltip></el-table-column>-->
<!-- <el-table-column label="地址" prop="addr" width="230" show-overflow-tooltip></el-table-column>-->
<!-- <el-table-column label="操作" width="180" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button type="text" @click.native="handleForm(scope.$index, scope.row)">编辑</el-button>-->
<!-- <el-button type="text" @click.native="handCert(scope.$index, scope.row)">资质证书</el-button>-->
<!--&lt;!&ndash; <el-button type="text" @click.native.stop="deleteDialog(scope.row)">&ndash;&gt;-->
<!--&lt;!&ndash; 删除&ndash;&gt;-->
<!--&lt;!&ndash; </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </el-table-column>-->
<template v-for="(item, index) in tableHeader">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true) && buttonItem.name !== '资质证书'"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name}}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'num' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}" v-if="scope.row[item.columnName] == 0 || scope.row[item.columnName] == null ">
<el-tag type="danger">未上传证书</el-tag>
</span>
<el-tag v-else type="success">证书数量:{{ scope.row[item.columnName]}}</el-tag>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="query.page"
:limit.sync="query.limit"
@pagination="handleCurrentChange"
></pagination>
<el-dialog
:title="combinTypeMap[combinType]"
:visible.sync="selectDrugDialogVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="selectDrugDialogVisible"
>
<selectUnit v-on:closeMain="closeMain"></selectUnit>
</el-dialog>
<el-dialog
:title="combinTypeMap[combinType]"
:visible.sync="selectSingleUnitVisible"
width="85%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="selectSingleUnitVisible"
>
<selectSingleUnit v-on:cancelDialog="cancelDialog" :corpData="corpData"
:defaultSys="defaultSys"></selectSingleUnit>
</el-dialog>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:before-close="hideForm"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
top="5vh"
>
<el-form :model="editQuery" :rules="formRules" style="margin-top: -30px" label-width="150px" ref="dataForm">
<el-card class="el-card">
<div style="clear: both;height: 60px;text-align: right;">
<el-button type="primary" @click.native="formSubmit()" :loading="formLoading">提交</el-button>
</div>
<el-row type="flex">
<el-col :span="12" type="flex">
<el-form-item label="所属企业" prop="name">
<el-input v-model="editQuery.companyName" size="small"
style="width: 90%" auto-complete="off"
@input="change()"
splaceholder="请输入往来单位名称"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="12" type="flex">
<el-form-item label="往来单位名称" prop="name">
<el-input v-model="editQuery.name" size="small" style="width: 90%" auto-complete="off" @input="change()"
splaceholder="请输入往来单位名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12" type="flex">
<el-form-item label="往来单位编码" prop="erpId">
<el-input v-model="editQuery.erpId" style="width: 90%" auto-complete="off" disabled="true"
splaceholder="请输入往来单位编码"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" type="flex">
<el-form-item label="社会信用号" prop="creditNo">
<el-input v-model="editQuery.creditNo" style="width: 90%" splaceholder="请输入社会信用号"
auto-complete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12" type="flex">
<el-form-item label="联系人" prop="contact">
<el-input v-model="editQuery.contact" splaceholder="请输入联系人" style="width: 90%"
auto-complete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" type="flex">
<el-form-item label="地址" prop="addr">
<el-input type="" v-model="editQuery.addr" splaceholder="请输入地址" style="width: 90%"
auto-complete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :type="flex">
<el-col :span="12" type="flex">
<el-form-item label="联系电话" prop="mobile">
<el-input v-model="editQuery.mobile" splaceholder="请输入联系电话" auto-complete="off"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" type="flex">
<el-form-item label="往来单位类型" prop="corpType">
<el-select v-model="editQuery.corpType" style="width: 90%" placeholder="请选择往来单位类型">
<el-option
v-for="item in corpTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12" type="flex">
<el-form-item label="拼音码" prop="spell">
<el-input v-model="editQuery.spell" placeholder="请输入拼音码" auto-complete="off"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-card>
<!--分割线-------------------------------------------------------->
</el-form>
<el-card class="el-card" v-if="this.formName == 'cert'">
<div style="float:right ">
<!-- <el-button type="primary" size="mini" icon="search" @click="selectCert"-->
<!-- >选入资质证书-->
<!-- </el-button-->
<!-- >-->
<!-- <el-button type="primary" size="mini" icon="search" @click="addCert()">添加资质证书</el-button>-->
</div>
<el-table v-loading="certLoading" :data="certList" style="width: 100%;margin-top: 40px" border
highlight-current-row>
<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="code"></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="auditStatus" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.auditStatus) | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusType">
{{ statusFlag[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native="addCert(scope.row)"
>编辑
</el-button
>
<el-button type="text" size="mini" @click.native="showImgViewer(scope.row)">预览</el-button>
<el-button
type="text"
size="small"
:disabled="scope.row.auditStatus === 1"
@click.native="deleteCompanyCert(scope.row)"
>删除
</el-button
>
<el-button
type="text"
size="small"
v-if="scope.row.auditStatus === 2"
@click.native.stop="rejectInfo(scope.row)"
>说明
</el-button>
</template>
</el-table-column>
</el-table>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer"
:url-list="imgList"/>
<pagination
v-show="certTotal>0"
:total="certTotal"
:page.sync="certQuery.page"
:limit.sync="certQuery.limit"
@pagination="certHandleCurrentChange"
></pagination>
</el-card>
<el-dialog
title="添加资质证书"
:visible.sync="addCertVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="70%"
v-if="addCertVisible"
append-to-body
@close='closeLocalDialog'
>
<companyAddCert
:closeDialog="closeLocalDialog"
:inputQuery="inputQuery"
:addType="addType"
:editTye="editTye"
></companyAddCert>
</el-dialog>
<!-- <div style='text-align: center; margin-bottom: 10px;'>-->
<!-- <el-button @click.native="hideForm">取消</el-button>-->
<!-- &lt;!&ndash; <el-button type="primary" @click.native="formSubmit()" :loading="formLoading"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="!configParms.basicCorp">提交&ndash;&gt;-->
<!-- &lt;!&ndash; </el-button>&ndash;&gt;-->
<!-- <el-button type="primary" @click.native="formSubmit()" :loading="formLoading"></el-button>-->
<!-- </div>-->
</el-dialog>
<el-dialog
:title="formCertMap[formCertName]"
:visible.sync="orderMutiSetCertVisible"
:before-close="close"
width="60%"
v-if="orderMutiSetCertVisible"
@close='closeCertDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<ylqxzczhManuDialog
:closeDialog="closeCertDialog"
:inputQuery="inputCertQuery"
:formName="formCertName"
></ylqxzczhManuDialog>
</el-dialog>
<el-dialog
:title="formAuthName"
:visible.sync="orderMutiSetAuthVisible"
:before-close="close"
width="85%"
v-if="orderMutiSetAuthVisible"
@close='closeAuthDialog'
:close-on-click-modal="false"
:modal-append-to-body="false"
:close-on-press-escape="false"
>
<certList
:closeDialog="closeAuthDialog"
:inputQuery="inputAuthQuery"
:formName="formAuthName"
></certList>
</el-dialog>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane>
<span slot="label">企业资质</span>
<el-form v-if="queryList2 && queryList2.length > 0" :inline="true" :model="bizQuery" class="query-form" size="mini">
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList2" >
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="bizQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select v-model="bizQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-select
v-model="bizQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`">
<el-date-picker
v-model="bizQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button type="primary" icon="el-icon-refresh" @click="onBizReset">重置</el-button>
<el-button type="primary" icon="el-icon-search" @click="onBizSubmit">查询</el-button>
<el-button type="primary" icon="el-icon-plus" @click="addOrderMutiAuth()">选入资质证书</el-button>
<el-button type="primary" icon="el-icon-plus" @click="addOrderMutiCert()">新增资质证书</el-button>
</el-button-group>
</div>
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
row-key="id"
>
<template v-for="(item, index) in tableHeader2">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<!--<el-table-column-->
<!-- v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"-->
<!-- :prop="item.columnName"-->
<!-- :label="item.columnDesc"-->
<!-- :sortable="item.sort"-->
<!-- :width="item.width"-->
<!-- :show-overflow-tooltip="item.tooltip"-->
<!-- :key="item.columnName"-->
<!--&gt;-->
<!-- <template slot-scope="scope">-->
<!-- <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span>-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="bizTotal>0"
:total="bizTotal"
:page.sync="bizQuery.page"
:limit.sync="bizQuery.limit"
@pagination="getBizDetailList"
/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
getBasicUnitMaintains,
basicUnitMaintainSave,
deleteBasicUnitMaintain,
getThrsysUnit,
removeRl,
getSystemParamConfig
} from "@/api/basic/basicUnitMaintain";
import selectUnit from "./corpRelevance";
import selectSingleUnit from "./corpSingleRelevance";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
import {findConfig} from "@/api/sync/spsSyncStatus";
import {getSupComapnys, previewImage} from "@/api/purchase/supCompany";
import {deleteCompanyCert, filterCompanyCert} from "@/api/purchase/companyCert";
import companyAddCert from "@/views/purchase/cert/supCertAddDialog.vue";
import {getUUID,isBlank} from "@/utils/strUtil";
import {getCompanyList} from "@/api/purchase/supManufacturer";
import {executeFuc, getHead} from "@/utils/customConfig";
import certList from "./certList";
import ylqxzczhManuDialog from "./certDialog";
var pinyin = require("pinyin");
export default {
props: {
closeRegistrationDialog: {
type: Function,
required: true,
},
inputQuery: {
type: Object,
required: true,
},
editType: {
type: Object,
required: true,
},
currentManufacturer: {
type: Object,
required: true,
}
},
data() {
return {
formAuthName: '资质证书列表',
formAuthNameMap:{
0:"供应商信息",
1:"客户信息"
},
bizQuery: {
page: 1,
limit: 10
},
codeQuery: {
page: 1,
limit: 10
},
formCertName: 1,
formCertMap: {
1: "新增资质",
2: "编辑资质",
3:"客户资质维护"
},
inputAuthQuery:{},
orderMutiSetAuthVisible: false,
BASE_URL: process.env.VUE_APP_BASE_API,
certFileUrl: '',
uploadUrl: '',
fileList: [],
fileUrl: '',
pmQuery: {
customerId: null,
companyIdFk: null,
companyName: null,
page: 1,
limit: 10,
},
orderMutiSetCertVisible: false,
inputCertQuery:{},
cuStatus: 0,
imgViewerVisible: false,
imgList: [],
certTotal: 0,
addCertVisible: false,
addType: "4", //证书类型1:供应商2.生产企业3.产品品种 4往来单位
editTye: 1,
certQuery: {
customerId: null,
companyIdFk: null,
manufacturerIdFk: null,
page: 1,
limit: 20
},
query: {
key: "",
corpType: this.$route.query.corpType,
bussinessStatus: this.$route.query.bussinessStatus,
page: 1,
limit: 20,
},
tableHeader2: [],
queryList2 : [],
fromList2 : [],
checkFlag: {
0: "草稿",
1: "已通过",
2: "已拒绝",
3: "变更未审核",
6: "未审核",
},
statusFlag: {
0: "有效",
1: "失效",
},
showSearch: true,
erpIdColumn: false,
thirdIdColumn: false,
editQuery: {
id: "",
thirdId: "",
erpId: "",
name: "",
spell: "",
addr: "",
status: "",
type: "",
creditNo: "",
contact: "",
mobile: ""
},
corpData: null,
checked: false,
formName: null,
formMap: {
add: "新增",
update: "编辑",
cert: "添加资质证书"
},
formLoading: false,
formVisible: false,
combinType: 0,//0:新增1修改
combinTypeMap: {
0: "选入往来单位信息",
1: "关联往来单位信息",
},
corpTypeList: [
{
value: 1,
label: "客户"
},
{
value: 2,
label: "供应商"
},
// {
// value: 3,
// // label: "特殊科室"
// label: "内部科室"
// },
// {
// value: 4,
// label: "特殊往来"
// }
],
certLoading: false,
certList: [],
formRules: {
name: [
{required: true, message: "请输入名称", trigger: "blur"}
],
// erpId: [
// {required: true, message: "请输入自定义码", trigger: "blur"}
// ],
creditNo: [
{required: true, message: "请输入社会信用号", trigger: "blur"}
],
corpType: [
{required: true, message: "请选择往来单位类型", trigger: "blur"}
]
},
spellUpdate: false,
editDialogVisible: false,
selectDrugDialogVisible: false,
selectSingleUnitVisible: false,
list: [],
sysList: [],
loading: false,
total: 0,
tableHeader:[],
queryList:[],
fromList:[],
options: {
},
multipleSelection: [],
thirdSys: [],
thirdSysFk: null,
defaultSys: null,
companyIdFk: null,
configParms: {},
bizDetailLoading:false,
bizTotal: 0,
bizDetailList: [],
currentRow: {
companyIdFk: ""
},
};
},
methods: {
//添加资质证书
addCert(row) {
console.log(this.row);
if (this.$isNotBlank(row)) {
//this.formName = 2
this.inputQuery = row;
this.editTye = 2;
this.inputQuery.companyIdFk=row.companyIdFk;
console.log("编辑"+this.inputQuery);
} else {
this.editTye = 1;
this.inputQuery=this.list;
this.inputQuery.companyIdFk=this.curProductQuery.companyIdFk;
this.inputQuery.customerId=this.curProductQuery.erpId;
}
this.addCertVisible = true;
},
onReset() {
this.$router.push({
path: "",
});
this.query = {
key: "",
corpType: "2",
page: 1,
limit: 20,
};
this.getList();
},
search() {
this.query.page = 1;
this.getList();
},
findPMMethod(key) {
this.fromPMOptions = [];
this.pmQuery.companyName = key;
getCompanyList(this.pmQuery)
.then((response) => {
this.loading = false;
this.fromPMOptions = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.fromPMOptions = [];
this.total = 0;
});
},
findMethod(query) {
this.fromOptions = [];
let cQuery = {
companyName: query,
};
getSupComapnys(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.list || [];
})
.catch(() => {
this.loading = false;
});
},
getList() {
this.loading = true;
this.erpIdColumn = false;
this.thirdIdColumn = false;
getBasicUnitMaintains(this.query)
.then((response) => {
//this.getSystemParamConfig();
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
getSystemParamConfig() {
getSystemParamConfig().then((req) => {
this.erpIdColumn = req.data.BUMErpIdValue == "1" ? true : false;
this.thirdIdColumn = req.data.BUMThirdIdValue == "1" ? true : false;
})
},
hideSearch() {
this.showSearch = !this.showSearch;
},
// 刷新表单
resetForm() {
if (this.$refs["dataForm"]) {
// 清空验证信息表单
this.$refs["dataForm"].clearValidate();
// 刷新表单
this.$refs["dataForm"].resetFields();
this.getList();
}
},
closeLocalDialog() {
this.addCertVisible = false;
this.selectCertVisible = false;
this.getCompanyCertList();
},
certHandleCurrentChange(val) {
this.certQuery.page = val.page;
this.getCompanyCertList();
},
getCompanyCertList() {
this.certLoading = true;
this.certQuery.companyIdFk = this.curProductQuery.companyIdFk;
this.certQuery.type=4;
this.certQuery.customerId = this.curProductQuery.erpId;
// this.certQuery.manufacturerIdFk = this.inputQuery.manufacturerIdFk;
// this.certQuery.productIdFk = this.inputQuery.productId;
filterCompanyCert(this.certQuery)
.then((response) => {
this.certLoading = false;
this.certList = response.data.list || [];
this.certTotal = response.data.total
})
.catch(() => {
this.certLoading = false;
this.certList = [];
});
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
rejectInfo(row) {
this.$confirm(row.auditComment, "拒绝说明", {
confirmButtonText: "确定",
type: "warning",
showCancelButton: false,
})
.then(() => {
});
},
deleteCompanyCert(row) {
this.$confirm("是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.certLoading = true;
let tquery = {
id: row.id,
filePath: row.filePath,
};
deleteCompanyCert(tquery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getCompanyCertList();
this.$message({
type: "success",
message: "删除成功",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
showImgViewer(row) {
let newWindow = window.open();
newWindow.document.write(row.filePath)
// 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=response.data;
// }
// });
// this.imgViewerVisible = true;
// const m = (e) => {
// e.preventDefault()
// };
// document.body.style.overflow = 'hidden';
// document.addEventListener("touchmove", m, false); // 禁止页面滑动
},
// 隐藏表单
hideForm() {
// 更改值
this.formVisible = !this.formVisible;
this.getList();
return true;
},
handCert(_this, row) {
console.log(row);
_this.registrationId = row.id;
_this.curProductQuery = row;
// this.curProductQuery.cuStatus = this.currentManufacturer.auditStatus;
// this.curProductQuery.companyIdFk =
// this.list.companyIdFk;
console.log(_this.curProductQuery)
if (_this.editType == 0) {
// this.inputQuery.productId = getUUID("");
_this.inputQuery.companyIdFk = _this.list.companyIdFk;
_this.inputQuery.customerId=_this.curProductQuery.erpId;
} else {
_this.getCompanyCertList();
_this.pmQuery.customerId = _this.curProductQuery.erpId;
_this.pmQuery.companyIdFk = _this.curProductQuery.companyIdFk;
console.log("2"+ _this.list.companyIdFk);
}
_this.cuStatus = _this.certList.auditStatus;
_this.findMethod();
_this.findPMMethod();
_this.certFileUrl = _this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
console.log("666666666666:"+_this.cuStatus);
_this.formName = "cert";
_this.editProductType = 1;
_this.formVisible = true;
// this.formName = "add";
_this.spellUpdate = false;
_this.formName = "cert";
_this.spellUpdate = true;
_this.editQuery = row;
//this.getThirdSysDetail();
},
// 显示表单
handleForm(_this, row) {
_this.formVisible = true;
_this.spellUpdate = false;
_this.formName = "update";
_this.spellUpdate = true;
_this.editQuery = row;
//this.getThirdSysDetail();
},
formSubmit() {
if (this.$isBlank(this.editQuery.corpType)) {
this.$message.error("往来单位类型不能为空");
return;
}
this.$refs["dataForm"].validate(valid => {
if (valid) {
this.formLoading = true;
this.editQuery.thirdId = null;
this.editQuery.thirdId1 = null;
this.editQuery.thirdId2 = null;
this.editQuery.thirdId3 = null;
this.editQuery.thirdId4 = null;
this.editQuery.thirdName = null;
this.editQuery.thirdName1 = null;
this.editQuery.thirdName2 = null;
this.editQuery.thirdName3 = null;
this.editQuery.thirdName4 = null;
let data = Object.assign({}, this.editQuery);
basicUnitMaintainSave(data, this.formName)
.then(response => {
this.formLoading = false;
if (response.code !== 20000) {
this.$message.error(response.message);
return false;
}
this.$message.success("操作成功");
this.formVisible = false;
if (this.formName === "add") {
// 向头部添加数据
if (response.data && response.data.id) {
data.id = response.data.id;
this.list.unshift(data);
}
} else {
this.list.splice(this.index, 1, data);
}
// 刷新表单
this.resetForm();
})
.catch(() => {
this.formLoading = false;
});
}
});
},
deleteUnit(data) {
this.loading = true;
let tquery = {
id: data.id + "",
};
deleteBasicUnitMaintain(tquery)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
cancelDialog() {
this.editDialogVisible = false;
this.selectSingleUnitVisible = false;
this.getList();
//this.getThirdSysDetail();
},
closeMain(val) {
this.selectDrugDialogVisible = false;
if (val) {
this.$message.success("添加成功");
this.getList();
} else {
this.$message.error("添加失败");
}
},
getBizDetailList() {
console.log("hshhhshhshshhshshs")
if (isBlank(this.currentRow.companyIdFk)) {
this.$message.error("请先选择用户")
return;
}
this.bizDetailLoading = true;
this.bizQuery.companyIdFk = this.currentRow.companyIdFk;
filterCompanyCert(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];
this.bizTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.bizDetailList = [];
this.bizTotal = 0;
}
}).catch((error) => {
this.bizDetailLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.bizTotal = 0;
})
},
onBizReset() {
this.bizQuery = {
page: 1,
limit: 10
};
this.getBizDetailList();
},
onBizSubmit() {
this.bizQuery.page = 1;
this.getBizDetailList();
},
addOrderMutiAuth(){
if (isBlank(this.currentRow.companyIdFk)) {
this.$message.error("请先选择用户")
return;
}
this.inputAuthQuery={
companyIdFk:this.currentRow.companyIdFk
}
this.orderMutiSetAuthVisible = true;
},
addOrderMutiCert(){
if (isBlank(this.currentRow.companyIdFk)) {
this.$message.error("请先选择用户")
return;
}
this.inputCertQuery={
companyIdFk:this.currentRow.companyIdFk
}
this.formCertName=1;
this.orderMutiSetCertVisible = true;
},
handleModifyClick(row) {
this.editDialogVisible = true;
this.editQuery = row;
//this.getThirdSysDetail();
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该往来单位信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteUnit(rowId);
})
.catch(() => {
});
},
exportTxt() {
},
closeAuthDialog(){
this.orderMutiSetAuthVisible = false;
this.getBizDetailList();
this.getList();
},
detailOrderMutiAuth(_this,row){
_this.inputAuthQuery={
corpId:row.id
}
_this.orderMutiSetAuthVisible = true;
},
intentDetail() {
this.combinType = 0;
this.selectDrugDialogVisible = true;
},
intentSelect(row) {
this.combinType = 1;
this.corpData = this.editQuery;
this.defaultSys = row.sysId;
this.selectSingleUnitVisible = true;
},
editCertDialog(_this,row){
_this.formCertName=2;
console.log("dangqianduixxiag",row)
_this.inputCertQuery=row
_this.orderMutiSetCertVisible = true;
},
closeCertDialog(){
this.orderMutiSetCertVisible = false;
this.getBizDetailList();
this.getList();
},
deleteCertDialog(_this,row) {
_this.$confirm("确认删除吗?", "提示", {
type: "warning",
})
.then(() => {
deleteCompanyCert(row)
.then((response) => {
if(response.code == 20000){
_this.getBizDetailList()
_this.getList()
}else{
_this.$message.error(response.message);
}
})
.catch(() => {
_this.$message.error(response.message);
});
});
},
handleCurrentChange(val) {
this.query.page = val.page;
this.getList();
},
handleSelectionChange(_this,val) {
console.log("ddddddddddddddddddddddddddddd",val)
this.multipleSelection = val;
if(val){
_this.currentRow.companyIdFk = val.id;
_this.getOrderDetails();
}
},
// 获取单据 业务详情、扫码详情、扫码明细
getOrderDetails() {
this.bizQuery.page = 1;
this.codeQuery.page = 1;
this.getBizDetailList();
},
getBasicThirdSys() {
let query = {
enabled: null,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.thirdSysFk = this.thirdSys[0].thirdId;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
getThirdSysDetail() {
let query = {};
if (this.formName == "update") {
query = {
id: this.editQuery.id,
}
}
getThrsysUnit(query)
.then((response) => {
this.loading = false;
this.sysList = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.sysList = [];
});
}
,
change() {
var pinyin = require("pinyin");
var py = pinyin(this.editQuery.name, {
style: pinyin.STYLE_FIRST_LETTER, // 设置拼音风格
heteronym: true,
});
var str = "";
py.forEach((item) => {
str = str + item[0];
});
this.editQuery.spell = str;
},
removeErp(row) {
this.$confirm("此操作将解除该绑定往来单位信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let query = {
relId: this.editQuery.id,
thirdSys: row.sysId
};
removeRl(query)
.then((response) => {
if (response.code == 20000) {
this.getThirdSysDetail()();
this.$message({
type: "success",
message: "解绑成功",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
})
.catch(() => {
});
},
getSyncConfig() {
findConfig()
.then((response) => {
if (response.code == 20000) {
this.configParms = response.data;
}
})
.catch(() => {
});
},
executeFuc(row,type,clickFuc,value){
return executeFuc(this,row,type,clickFuc,value);
},
executeEval(row,expression,defaultRet){
if(expression){
return eval(expression);
}
return defaultRet;
},
}
,
mounted() {
}
,
components: {
companyAddCert,
selectUnit, selectSingleUnit,certList,ylqxzczhManuDialog
}
,
created() {
console.log("shayebushuo l xianda yin chu zhege ba ",this.inputQuery)
console.log("shayebushuo l xianda yin chu zhege leixing ",this.editType)
getHead("corpMaintain","1").then((re) => {
// 处理返回的数据
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
this.getList()
});
getHead("client-usercert","1").then((re) => {
// 处理返回的数据
this.tableObj2 = re.data;
this.tableHeader2 = re.data.tableList;
this.queryList2 = re.data.queryList;
this.fromList2 = re.data.fromList;
});
//this.getSyncConfig();
//this.getBasicThirdSys();
if (this.editType == 0) {
this.inputQuery.manufacturerId = getUUID('')
} else {
this.certQuery.customerId = this.inputQuery.customerId
this.selectedOptions = this.inputQuery.placeAreaCode.split(',')
if (this.inputQuery.productionAreaCode != '' && this.inputQuery.productionAreaCode != null && this.inputQuery.productionAreaCode != undefined) {
this.selectedOptions2 = this.inputQuery.productionAreaCode.split(',')
}
}
this.certQuery.manufacturerIdFk = this.inputQuery.manufacturerId
this.manufacturerId = this.inputQuery.manufacturerId
this.customerId = this.inputQuery.customerId
// this.getData();
this.getCompanyCertList()
this.findMethod()
this.uploadUrl = this.BASE_URL + '/udiwms/upload/register/file'
this.fileUrl = this.BASE_URL + '/udiwms/image/register/file/getImage?type=image2&name='
this.certFileUrl = this.BASE_URL + '/udiwms/image/register/file/getImage?type=image2&name='
}
,
filters: {
statusFilterType(status) {
const statusMap = {
0: "warning",
1: "success",
2: "danger",
6: "warning",
};
return statusMap[status];
},
},
}
;
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.el-row {
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
.el-card {
margin-right: 20px;
margin-top: 15px;
/*transition: all .5s;*/
}
.two {
margin-top: 80px;
}
</style>