You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1424 lines
51 KiB
1424 lines
51 KiB
<template>
|
|
<div class="app-container">
|
|
<div class="filter-container">
|
|
<sticky style="margin-bottom: 10px;">
|
|
<div class="sub-navbar">
|
|
<el-button type="success" @click="batchSend">
|
|
<svg-icon icon-class="send" /> 批量发送
|
|
</el-button>
|
|
<el-button v-if="hasPerm('ysjl:un-done-jybg:reject')" type="primary" @click="batchBohui">
|
|
<svg-icon icon-class="reject" /> 批量驳回
|
|
</el-button>
|
|
<el-button type="success" @click="batchSign">
|
|
<svg-icon icon-class="sign" /> 批量签名
|
|
</el-button>
|
|
<el-button type="warning" @click="clearSignName">
|
|
<svg-icon icon-class="clear" /> 清空签名
|
|
</el-button>
|
|
<el-button type="danger" icon="el-icon-delete" @click="delReport">
|
|
退回到记录
|
|
</el-button>
|
|
</div>
|
|
</sticky>
|
|
<el-form>
|
|
<el-form-item>
|
|
<el-input v-model="listQuery.baogaobianhao" placeholder="报告编号" clearable style="width: 200px" @keyup.enter.native="handleFilter" />
|
|
<el-input v-model="listQuery.zhucedaima" placeholder="注册代码" clearable style="width: 200px" @keyup.enter.native="handleFilter" />
|
|
<el-input v-model="listQuery.shiyongdanwei" placeholder="使用单位" clearable style="width: 350px" @keyup.enter.native="handleFilter" />
|
|
<el-select v-model="listQuery.bglx" placeholder="报告类型" style="width: 160px">
|
|
<el-option
|
|
v-for="item in bglxOptions"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value"
|
|
/>
|
|
</el-select><br>
|
|
<span class="radio-group-label">当前环节:</span>
|
|
<el-radio-group v-model="listQuery.flowstatus" @change="handleFilter">
|
|
<el-radio :label="undefined">
|
|
全部
|
|
</el-radio>
|
|
<el-radio :label="1">
|
|
起草
|
|
</el-radio>
|
|
<el-radio :label="2">
|
|
审核
|
|
</el-radio>
|
|
<el-radio :label="3">
|
|
审批
|
|
</el-radio>
|
|
</el-radio-group>
|
|
<el-button type="primary" size="small" icon="el-icon-search" @click="handleFilter">
|
|
查询
|
|
</el-button>
|
|
<el-button type="primary" size="small" icon="el-icon-search" @click="highQuery">
|
|
高级查询
|
|
</el-button>
|
|
<el-button type="info" size="small" icon="el-icon-close" @click="clearQuery">
|
|
清空条件
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<el-table
|
|
ref="list"
|
|
v-adaptive="{bottomOffset: 50}"
|
|
height="0"
|
|
:data="list"
|
|
:default-sort="{prop:'update_time', order:'ascending'}"
|
|
:row-class-name="tableRowClassName"
|
|
border
|
|
fit
|
|
highlight-current-row
|
|
stripe
|
|
size="small"
|
|
width="100%"
|
|
@row-click="onRowClick"
|
|
@selection-change="handleSelectionChange"
|
|
@sort-change="sortChange"
|
|
>
|
|
<el-table-column type="selection" width="40" />
|
|
<el-table-column fixed="left" align="center" label="序号" width="50">
|
|
<template slot-scope="scope">
|
|
<span v-text="getIndex(scope.$index)" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column fixed="left" align="center" label="报告编号" prop="baogaobianhao" width="160" sortable="custom" />
|
|
<el-table-column :formatter="formatter.formatterCategory" align="center" label="检验类别" prop="jianyanleibie" width="80" />
|
|
<template v-if="$store.getters.departmentId === 69 || $store.getters.departmentId === 86">
|
|
<el-table-column v-if="$store.getters.departmentId === 69" align="center" label="使用单位" prop="shiyongdanwei" width="200" />
|
|
<el-table-column v-if="$store.getters.departmentId === 86" align="center" label="安装单位" prop="shigongdanwei" width="200" />
|
|
<el-table-column align="center" label="产品编号/出厂编号" prop="chanpinbianhao" width="130" />
|
|
<el-table-column align="center" label="制造单位" prop="zhizaodanwei" width="200" />
|
|
</template>
|
|
<template v-else-if="$store.getters.departmentId === 74">
|
|
<el-table-column align="center" label="制造单位" prop="zhizaodanwei" width="200" />
|
|
<el-table-column align="center" label="设备代码" prop="shebeidaima" width="200" />
|
|
<el-table-column align="center" label="锅炉型号" prop="guigexinghao" width="200" />
|
|
<el-table-column align="center" label="产品编号/出厂编号" prop="chanpinbianhao" width="130" />
|
|
</template>
|
|
<template v-else>
|
|
<el-table-column align="center" label="使用登记证号" prop="shiyongdengjibianhao" width="150" sortable="custom" />
|
|
<el-table-column align="center" label="注册代码" prop="zhucedaima" width="170" sortable="custom" />
|
|
<el-table-column align="center" label="使用单位" prop="shiyongdanwei" width="200" />
|
|
<el-table-column align="center" label="产品名称/设备名称" prop="shebeimingcheng" width="130" />
|
|
<el-table-column align="center" label="制造单位" prop="zhizaodanwei" width="200" />
|
|
<el-table-column align="center" label="产品编号/出厂编号" prop="chanpinbianhao" width="130" />
|
|
<el-table-column align="center" label="单位内编号" prop="danweineibubianhao" width="130" sortable="custom" />
|
|
</template>
|
|
<el-table-column :formatter="formatter.getChineseName" align="center" label="检验人员" prop="jianyanrenyuan" width="100" />
|
|
<el-table-column align="center" label="检验日期" prop="jianyanjieshuriqi" width="100" sortable="custom" />
|
|
<el-table-column v-if="$store.getters.departmentId !== 74" align="center" label="下次检验日期" prop="xiacijianyanriqi" width="120" sortable="custom" />
|
|
<el-table-column align="center" label="检验结论" prop="jianyanjielun" :show-overflow-tooltip="true" width="95" />
|
|
<el-table-column :formatter="formatterRiqi" align="center" label="最后修改日期" prop="updateTime" width="100" />
|
|
<el-table-column :formatter="formatterHuanjie" fixed="right" align="center" label="环节" prop="flowstatus" width="50" />
|
|
<el-table-column fixed="right" align="center" label="报告类型" prop="inspectionItems" width="80">
|
|
<template slot-scope="scope">
|
|
<el-tag v-if="scope.row.bglx===1">
|
|
主报告
|
|
</el-tag>
|
|
<el-tag v-if="scope.row.bglx===2" type="success">
|
|
{{ scope.row.inspectionItems }}
|
|
</el-tag>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column fixed="right" align="center" label="操作" prop="" width="200">
|
|
<template slot-scope="scope">
|
|
<el-button v-show="scope.row.flowstatus === 1 && !(scope.row.jilubianhao)" size="mini" type="success" icon="el-icon-edit" title="编辑" circle @click="editYsjl(scope.$index)" />
|
|
<el-button
|
|
v-show="(scope.row.shebeizhongleidaima === '2000' && scope.row.jianyanleibie !== 'ZJ') || scope.row.shebeizhongleidaima === '7000'"
|
|
type="info"
|
|
size="mini"
|
|
circle
|
|
icon="el-icon-view"
|
|
:title="'预览' + (scope.row.shebeizhongleidaima === '2000' ? '原始资料' : '附件')"
|
|
@click="common.viewRawRecords(scope.row.renwuId)"
|
|
/>
|
|
<el-button v-if="scope.row.shebeizhongleidaima === '2000' && scope.row.jianyanleibie === 'ZJ'" v-show="scope.row.jilubianhao" type="success" size="mini" icon="el-icon-view" title="预览记录" circle @click="showZJPreviewJudge(scope.row)" />
|
|
<el-button v-else v-show="scope.row.jilubianhao" type="success" size="mini" icon="el-icon-view" title="预览 原始记录" circle @click="common.viewYsjl(scope.row.id, 'YSJL')" />
|
|
<el-button type="primary" size="mini" icon="el-icon-view" title="预览 报告" circle @click="common.viewYsjl(scope.row.id, 'JYBG')" />
|
|
<el-button size="mini" type="info" icon="el-icon-message" title="查看驳回意见" circle @click="viewAllRejection(scope.row.renwuId)" />
|
|
<el-button v-show="scope.row.shebeizhongleidaima === '2000' && scope.row.jianyanleibie === 'ZJ'" type="info" size="mini" circle icon="el-icon-info" title="查看相关鉴证" @click="showVerification(scope.row.renwuId,false)" />
|
|
<!-- 锅炉制造 并且 当前报告的检验人员中包含当前用户 才显示该按钮 -->
|
|
<el-button v-if="scope.row.shebeizhongleidaima === '1000' && scope.row.jianyanleibie === 'ZJ' && scope.row.jianyanrenyuan.split(',').indexOf(String($store.getters.userId)) !== -1" type="info" size="mini" circle title="收费信息" @click="showSfInfo(scope.row)">
|
|
<svg-icon icon-class="finance" />
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div>
|
|
<pagination v-show="total>0" :total="total" :page-num.sync="listQuery.pageNum" :page-row.sync="listQuery.pageRow" style="float: left;" @pagination="getList" />
|
|
<div style="float: right;margin-top:8px;">
|
|
<div style="width: 80px;float:left;margin-left: 50px;">
|
|
重启流程:
|
|
</div>
|
|
<div class="identification" style="background-color:red;" />
|
|
<div style="width: 50px;float:left;margin-left: 20px;">
|
|
驳回:
|
|
</div>
|
|
<div class="identification" style="background-color: orange;" />
|
|
<div style="width: 50px;float:left;margin-left: 20px;">
|
|
复制:
|
|
</div>
|
|
<div class="identification" style="background-color:#690cff;" />
|
|
</div>
|
|
</div>
|
|
<!-- 打开发送选择人员窗口 -->
|
|
<el-dialog :visible.sync="dialogFormVisible" title="下一环节处理人" @close="closeDialog">
|
|
<el-table ref="flowUserList" :data="flowUserList" border fit highlight-current-row @row-click="onRowClickLink" @selection-change="handleSelectionChangeLink">
|
|
<el-table-column type="selection" width="40" />
|
|
<el-table-column align="center" label="序号" width="60">
|
|
<template slot-scope="scope">
|
|
<span v-text="getIndex(scope.$index)" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column :formatter="formatter.getChineseName" align="center" label="处理人" prop="userId" min-width="40" />
|
|
</el-table>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogFormVisible = false">
|
|
取 消
|
|
</el-button>
|
|
<el-button type="success" @click="confirmSend">
|
|
确认
|
|
</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 高级查询窗口 -->
|
|
<el-dialog :visible.sync="dialogQueryVisible" title="高级查询" width="60%">
|
|
<el-container>
|
|
<el-form :inline="true">
|
|
<el-form-item label="检验类别:" style="width: 240px;">
|
|
<el-select v-model="listQuery.neibuleibie" placeholder="请选择检验类别" style="width: 165px" clearable>
|
|
<el-option v-for="item in jylbList" v-show="item.parentId" :key="item.code" :label="item.name" :value="item.code" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="设备种类:" style="width: 240px;">
|
|
<el-select v-model="listQuery.shebeizhongleidaima" placeholder="请选择设备种类" style="width: 165px" clearable>
|
|
<el-option v-for="item in sbzlList" :key="item.value" :label="item.label" :value="item.value" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="当前环节:" style="width: 240px;">
|
|
<el-select v-model="listQuery.flowstatus" placeholder="请选择当前环节" style="width: 165px" clearable>
|
|
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="检验人员:" style="width: 240px;">
|
|
<el-select v-model="listQuery.jianyanrenyuan" placeholder="请选择检验人员" style="width: 165px" filterable clearable>
|
|
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="审核人员:" style="width: 240px;">
|
|
<el-select v-model="listQuery.shenheren" placeholder="请选择审核人员" style="width: 165px" filterable clearable>
|
|
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="审批人员:" style="width: 240px;">
|
|
<el-select v-model="listQuery.shenpiren" placeholder="请选择审批人员" style="width: 165px" filterable clearable>
|
|
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="检验日期:" style="width: 240px;">
|
|
<el-date-picker v-model="listQuery.jianyanriqi" type="date" value-format="yyyy-MM-dd" placeholder="选择检验日期" style="width: 165px" />
|
|
</el-form-item>
|
|
<el-form-item label="审核日期:" style="width: 240px;">
|
|
<el-date-picker v-model="listQuery.shenheriqi" type="date" value-format="yyyy-MM-dd" placeholder="选择审核日期" style="width: 165px" />
|
|
</el-form-item>
|
|
<el-form-item label="审批日期:" style="width: 240px;">
|
|
<el-date-picker v-model="listQuery.shenpiriqi" type="date" value-format="yyyy-MM-dd" placeholder="选择审批日期" style="width: 165px" />
|
|
</el-form-item>
|
|
<el-form-item label="设备/产品名称:" style="width: 290px;">
|
|
<el-input v-model="listQuery.shebeimingcheng" placeholder="请输入设备/产品名称" clearable style="width: 185px" />
|
|
</el-form-item>
|
|
<el-form-item label="内部编号:" style="width: 240px;">
|
|
<el-input v-model="listQuery.danweineibubianhao" placeholder="请输入内部编号" clearable style="width: 165px" />
|
|
</el-form-item>
|
|
<el-form-item label="下次检验日期:" style="width: 280px;">
|
|
<el-date-picker v-model="listQuery.xiacijianyanriqi" type="date" value-format="yyyy-MM-dd" placeholder="请输入日期" style="width: 165px" />
|
|
</el-form-item>
|
|
<el-form-item label="制造单位:" style="width: 400px;">
|
|
<el-input v-model="listQuery.zhizaodanwei" placeholder="请输入制造单位" clearable style="width: 300px" />
|
|
</el-form-item>
|
|
<el-form-item label="产品/出厂编号:" style="width: 290px;">
|
|
<el-input v-model="listQuery.chanpinbianhao" placeholder="请输入产品编号" clearable style="width: 185px" />
|
|
</el-form-item>
|
|
<el-form-item label="使用登记证编号:" style="width: 320px;">
|
|
<el-input v-model="listQuery.shiyongdengjibianhao" placeholder="请输入使用登记证编号" clearable style="width: 200px" />
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-container>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogQueryVisible = false">
|
|
取 消
|
|
</el-button>
|
|
<el-button type="success" @click="handleFilter">
|
|
查 询
|
|
</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 签名窗口 -->
|
|
<el-dialog :visible.sync="dialogSignVisible" title="签名" width="500px">
|
|
<el-form ref="passForm" :model="passForm" class="small-space" label-position="left" label-width="120px" style="width: 340px; margin-left:50px;">
|
|
<el-form-item v-if="this.$store.getters.departmentId !== 74" label="签名密码" required>
|
|
<el-input v-model="passForm.password" type="password" />
|
|
</el-form-item>
|
|
<el-form-item label="签名日期" required>
|
|
<el-date-picker v-model="passForm.signDate" type="date" value-format="yyyy-MM-dd" placeholder="选择签名日期" />
|
|
</el-form-item>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogSignVisible = false">
|
|
取 消
|
|
</el-button>
|
|
<el-button type="primary" @click="qianming">
|
|
确 认
|
|
</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 驳回窗口 -->
|
|
<el-dialog :visible.sync="dialogBohuiVisible" title="驳回报告《必须填写意见才可驳回》" width="35%">
|
|
<el-form ref="bohuiForm" :model="bohuiForm" class="small-space" label-position="left" label-width="120px">
|
|
<el-form-item label="驳回意见:" required>
|
|
<el-input v-model="bohuiForm.infoNotes" :rows="5" type="textarea" />
|
|
</el-form-item>
|
|
<el-form-item label="驳回环节:" required>
|
|
<el-select v-model="bohuiForm.flowstatus" placeholder="请选择">
|
|
<el-option v-if="flowstatus === 2 || flowstatus === 3" label="起草环节" value="1" />
|
|
<el-option v-if="flowstatus === 3" label="审核环节" value="2" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<!-- <el-form-item label="上传驳回附件:">
|
|
<span style="color: #dd6161">多张图片可合成一份pdf文件进行上传</span>
|
|
<el-upload
|
|
action=""
|
|
class="upload-demo"
|
|
accept="application/pdf,image/png,image/jpeg"
|
|
:http-request="handleUploadReject"
|
|
:on-preview="handlePreview"
|
|
:on-remove="onRemove"
|
|
multiple
|
|
:limit="3"
|
|
:on-exceed="handleExceed"
|
|
:show-file-list="true"
|
|
:file-list="fileList"
|
|
>
|
|
<el-button size="small" icon="el-icon-upload2">
|
|
点击上传
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>-->
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogBohuiVisible = false">
|
|
取 消
|
|
</el-button>
|
|
<el-button type="primary" @click="bohui">
|
|
确 认
|
|
</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 驳回意见 -->
|
|
<el-dialog :visible.sync="dialogBohuiyijianVisible" :modal-append-to-body="false" title="驳回意见" width="50%">
|
|
<el-table :data="infoNotes">
|
|
<el-table-column :formatter="formatter.getChineseName" align="center" label="驳回人" prop="infoSend" />
|
|
<el-table-column align="center" label="驳回意见" prop="infoNotes" />
|
|
<el-table-column align="center" label="驳回时间" prop="createTime" />
|
|
<!-- <el-table-column align="center" label="驳回附件" width="120">
|
|
<template slot-scope="{row}">
|
|
<el-button type="primary" size="small" circle icon="el-icon-view" title="预览" @click="common.viewReject(row.id, row.fileName)" />
|
|
</template>
|
|
</el-table-column>-->
|
|
</el-table>
|
|
</el-dialog>
|
|
|
|
<!--选择预览记录文件(制造监检压力容器)-->
|
|
<el-dialog :visible.sync="dialogZJPreviewVisible" :modal-append-to-body="appendToBody" title="选择预览记录文件" width="20%">
|
|
<el-form>
|
|
<el-button type="primary" plain size="small" icon="el-icon-search" @click="common.viewYsjl(ysjlId, 'YSJL')">
|
|
原始记录
|
|
</el-button>
|
|
<el-button type="primary" plain size="small" icon="el-icon-search" @click="common.viewYsjl(ysjlId, 'OTHER')">
|
|
{{ ifDataSheet ? '数据表' : '批量证明' }}
|
|
</el-button>
|
|
</el-form>
|
|
</el-dialog>
|
|
|
|
<!--查看相关鉴证-->
|
|
<el-dialog title="查看相关鉴证" :modal-append-to-body="false" :visible.sync="dialogEnclosureVisible">
|
|
<enclosure :relation-id.sync="currentRenwuId" :if-liaison.sync="ifLiaison" :view-button.sync="viewButton" />
|
|
</el-dialog>
|
|
<!--查看收费信息-->
|
|
<el-dialog title="查看收费信息" :visible.sync="dialogFormVisibleSfInfo">
|
|
<el-form>
|
|
<el-row :gutter="20">
|
|
<el-col :span="6">
|
|
<el-form-item label="合同金额" prop="zaojia">
|
|
<el-input v-model="sfInfo.zaojia" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item label="比例" prop="bili">
|
|
<el-input v-model="sfInfo.bili" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item label="检验费用" prop="jianyanheding">
|
|
<el-input v-model="sfInfo.jianyanheding" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<br>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import Sticky from '@/components/Sticky'
|
|
import Pagination from '@/components/Pagination'
|
|
import Utils from '../../../utils/contact.js'
|
|
import qs from 'qs'
|
|
import Enclosure from '@/views/common/Enclosure'
|
|
import { rebutFn } from '@/api/common'
|
|
export default {
|
|
name: 'TODOReport',
|
|
components: { Sticky, Pagination, Enclosure },
|
|
data() {
|
|
return {
|
|
total: 0,
|
|
list: [],
|
|
listQuery: {
|
|
pageNum: 1, // 页码
|
|
pageRow: 20, // 每页条数
|
|
order: 'update_time', // 排序字段
|
|
sort: 'asc', // 排序方式
|
|
hasChild: true,
|
|
hasFinish: false
|
|
},
|
|
listWithDrawQuery: {
|
|
pageNum: 1, // 页码
|
|
pageSize: 10, // 每页条数
|
|
order: 'update_time', // 排序字段
|
|
sort: 'ascending', // 排序方式
|
|
createBy: this.$store.getters.userId
|
|
},
|
|
flowUserList: [],
|
|
isQm: true,
|
|
dialogFormVisible: false,
|
|
multipleSelection: [],
|
|
multipleSelectionLink: [],
|
|
dialogQueryVisible: false,
|
|
dialogBohuiVisible: false,
|
|
dialogEnclosureVisible: false,
|
|
viewButton: true,
|
|
ifLiaison: false,
|
|
sbzlList: [],
|
|
sblbList: [],
|
|
sbpzList: [],
|
|
modelList: [],
|
|
sbzldm: '',
|
|
sblbdm: '',
|
|
sbpzdm: '',
|
|
modelId: '',
|
|
currentRenwuId: 0,
|
|
jylbList: [],
|
|
flowstatus: '',
|
|
statusList: [
|
|
{
|
|
value: 1,
|
|
label: '起草报告'
|
|
}, {
|
|
value: 2,
|
|
label: '审核报告'
|
|
}, {
|
|
value: 3,
|
|
label: '审批报告'
|
|
}
|
|
],
|
|
bohuiForm: {
|
|
infoNotes: '',
|
|
flowstatus: ''
|
|
},
|
|
userList: [],
|
|
ysjlId: '',
|
|
dialogSignVisible: false,
|
|
passForm: {
|
|
password: '',
|
|
signDate: this.formatter.dateFormat('YYYY-MM-dd')
|
|
},
|
|
isBatchSign: false, // 标记是否为批量签名
|
|
listCopy: [],
|
|
dialogFormCopyNewReportVisible: false,
|
|
listQueryCopy: {
|
|
pageNum: 1, // 页码
|
|
pageRow: 20, // 每页条数
|
|
searchYsjl: {}
|
|
},
|
|
totalCopy: 0,
|
|
copyNum: 1, // 复制份数
|
|
manufacturParam: {},
|
|
bzrQianming: false,
|
|
// 驳回原因查询数据
|
|
infoNotes: [],
|
|
dialogBohuiyijianVisible: false,
|
|
dialogDrawCanvasVisible: false,
|
|
dialogZJPreviewVisible: false,
|
|
appendToBody: false,
|
|
ifDataSheet: true,
|
|
ifDataSheet5: false,
|
|
bglxOptions: [{
|
|
value: '1',
|
|
label: '主报告'
|
|
}, {
|
|
value: '2',
|
|
label: '无损报告'
|
|
}],
|
|
fileList: [],
|
|
dialogFormVisibleSfInfo: false,
|
|
sfInfo: {},
|
|
AllFlowUser: [{
|
|
label: '起草环节',
|
|
key: 1
|
|
}, {
|
|
label: '审核环节',
|
|
key: 2
|
|
}
|
|
]
|
|
}
|
|
},
|
|
created() {
|
|
this.getList()
|
|
this.getSbzlList()
|
|
this.jylbList = this.$store.getters.allCategory
|
|
this.userList = this.$store.getters.allUser
|
|
},
|
|
mounted() {
|
|
const that = this
|
|
this.common.$on('bggl-daiban-list', function() {
|
|
that.handleFilter()
|
|
})
|
|
},
|
|
methods: {
|
|
handlePreview(file) {
|
|
window.open(file.url)
|
|
},
|
|
|
|
onRemove(file) {
|
|
const array = file.url.split('/')
|
|
if (array.length > 0) {
|
|
const fd = new FormData()
|
|
fd.append('fileName', array[array.length - 1])
|
|
this.preview({
|
|
method: 'delete',
|
|
url: '/upload/deleteReject',
|
|
data: fd
|
|
}).then(() => {
|
|
this.fileList.splice(this.fileList.indexOf(file), 1)
|
|
this.$message.success('删除成功!')
|
|
})
|
|
}
|
|
},
|
|
handleExceed() {
|
|
this.$notify.warning('请删除已上传附件后重新上传!')
|
|
},
|
|
handleUploadReject(back) {
|
|
const fd = new FormData()
|
|
fd.append('file', back.file)
|
|
this.preview({
|
|
method: 'post',
|
|
url: '/upload/uploadReject',
|
|
data: fd
|
|
}).then(data => {
|
|
if (data) {
|
|
this.bohuiForm.fileName = data
|
|
this.fileList.push({ name: data, url: process.env.VUE_APP_BASE_API + 'reject/' + data })
|
|
this.$message.success('上传成功!')
|
|
}
|
|
})
|
|
},
|
|
getList() {
|
|
this.api({
|
|
url: '/ysjl/getListUnDoneJybg',
|
|
method: 'get',
|
|
params: this.listQuery
|
|
}).then(data => {
|
|
for (let i = 0; i < data.list.length; i++) {
|
|
if (data.list[i].bglx === 1) {
|
|
data.list[i].bglxLabel = '主报告'
|
|
} else if (data.list[i].bglx === 2) {
|
|
data.list[i].bglxLabel = '无损报告'
|
|
}
|
|
}
|
|
this.list = data.list
|
|
this.total = data.total
|
|
this.common.switchInspection(this.list)
|
|
})
|
|
},
|
|
sortChange(column) {
|
|
this.listQuery.order = column.prop
|
|
this.listQuery.sort = column.order.replace('ending', '')
|
|
this.getList()
|
|
},
|
|
getIndex($index) {
|
|
// 表格序号
|
|
return (this.listQuery.pageNum - 1) * this.listQuery.pageRow + $index + 1
|
|
},
|
|
handleFilter() {
|
|
// 查询事件
|
|
this.listQuery.pageNum = 1
|
|
this.dialogQueryVisible = false
|
|
this.getList()
|
|
},
|
|
onRowClick(row) {
|
|
this.$refs.list.toggleRowSelection(row)
|
|
},
|
|
handleSelectionChange: function(val) {
|
|
this.multipleSelection = val
|
|
},
|
|
onRowClickLink(row) {
|
|
this.$refs.flowUserList.toggleRowSelection(row)
|
|
},
|
|
handleSelectionChangeLink: function(val) {
|
|
this.multipleSelectionLink = val
|
|
},
|
|
getSbzlList() {
|
|
this.api({
|
|
url: '/sedirectory/getList',
|
|
method: 'get',
|
|
params: {
|
|
sbzl: undefined,
|
|
level: '1'
|
|
}
|
|
}).then(data => {
|
|
this.sbzlList = data
|
|
})
|
|
},
|
|
delReport() {
|
|
// 批量删除
|
|
if (this.multipleSelection.length === 0) {
|
|
this.$message('请在列表选择要删除的数据。')
|
|
return false
|
|
}
|
|
let linkname = ''
|
|
let revertRenwuByYsjlIds = ''
|
|
const ids = []
|
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
|
if (i === 0 && this.multipleSelection[i].flowstatus === 1) {
|
|
linkname = this.multipleSelection[i].flowstatus
|
|
}
|
|
if (linkname !== this.multipleSelection[i].flowstatus) {
|
|
this.$message('只允许起草环节删除报告。')
|
|
return false
|
|
}
|
|
if (this.multipleSelection[i].shebeileibiedaima === '2100' && this.multipleSelection[i].jianyanleibie === 'DJ') {
|
|
revertRenwuByYsjlIds = this.multipleSelection[i].id + ',' + revertRenwuByYsjlIds
|
|
}
|
|
ids.push(this.multipleSelection[i].id)
|
|
}
|
|
this.$confirm('确定删除当前选中报告?', '提示', {
|
|
confirmButtonText: '确定',
|
|
showCancelButton: false,
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.api({
|
|
url: '/ysjl/delReport',
|
|
method: 'delete',
|
|
params: {
|
|
ids: ids
|
|
},
|
|
paramsSerializer: function(params) {
|
|
return require('qs').stringify(params, { indices: false })
|
|
}
|
|
}).then(() => {
|
|
this.$message({
|
|
message: '删除成功',
|
|
type: 'success',
|
|
duration: 1000,
|
|
onClose: () => {
|
|
this.getList()
|
|
// 刷新原始记录待办,原始记录已办列表,任务列表
|
|
Utils.$emit('task-list')
|
|
Utils.$emit('ysjl-list')
|
|
Utils.$emit('ysjl-yb-list')
|
|
Utils.$emit('bggl-yiban-list')
|
|
Utils.$emit('manufacture-list')
|
|
Utils.$emit('manufacture-done-list')
|
|
}
|
|
})
|
|
})
|
|
})
|
|
},
|
|
batchBohui() {
|
|
// 批量驳回
|
|
if (this.multipleSelection.length === 0) {
|
|
this.$message('请在列表选择要驳回的数据。')
|
|
return false
|
|
}
|
|
this.ysjlId = []
|
|
const arr = []
|
|
|
|
this.flowstatus = this.multipleSelection[0].flowstatus
|
|
if (this.flowstatus === 1) {
|
|
this.$message('存在未流转报告。')
|
|
return false
|
|
}
|
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
|
if (this.multipleSelection[i].flowstatus !== this.flowstatus) {
|
|
this.$message('选择的驳回数据环节请保持一致')
|
|
}
|
|
arr.push(this.multipleSelection[0].id)
|
|
}
|
|
this.ysjlId = arr
|
|
if (this.ysjlId.length) {
|
|
this.dialogBohuiVisible = true
|
|
}
|
|
},
|
|
bohui() {
|
|
this.$confirm('确定要驳回吗?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
console.log(this.ysjlId)
|
|
this.$refs['bohuiForm'].validate(valid => {
|
|
if (valid) {
|
|
rebutFn({
|
|
ysjlIds: this.ysjlId,
|
|
infonotes: this.bohuiForm.infoNotes,
|
|
flowstatus: this.bohuiForm.flowstatus
|
|
}).then(data => {
|
|
// 根据结果反馈信息
|
|
this.$message({
|
|
message: '驳回成功',
|
|
type: 'success',
|
|
duration: 1000,
|
|
onClose: () => {
|
|
this.dialogBohuiVisible = false
|
|
this.bohuiForm.infoNotes = ''
|
|
this.bohuiForm.fileName = ''
|
|
this.getList()
|
|
}
|
|
})
|
|
})
|
|
}
|
|
})
|
|
})
|
|
},
|
|
batchSend() {
|
|
if (this.multipleSelection.length === 0) {
|
|
this.$message('请在列表选择要发送的数据。')
|
|
return false
|
|
}
|
|
const idStr = this.multipleSelection[0].id
|
|
let existRecordNum = true // 是否存在记录编号
|
|
let linkname = ''
|
|
let isQianming = false
|
|
let parentIds = '' // 主报告id
|
|
const nblb = this.multipleSelection[0].neibuleibie
|
|
const sbzldm = this.multipleSelection[0].shebeizhongleidaima
|
|
const bglx = this.multipleSelection[0].bglx
|
|
this.ysjlId = []
|
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
|
this.ysjlId.push(this.multipleSelection[i].id)
|
|
if (i === 0) {
|
|
linkname = this.multipleSelection[i].flowstatus
|
|
if (this.multipleSelection[i].bglx === 1) {
|
|
parentIds = this.multipleSelection[i].id
|
|
}
|
|
} else {
|
|
if (this.multipleSelection[i].bglx === 1) {
|
|
parentIds = parentIds + ',' + this.multipleSelection[i].id
|
|
}
|
|
}
|
|
if (linkname !== this.multipleSelection[i].flowstatus) {
|
|
this.$message('请选择同环节进行发送。')
|
|
return false
|
|
}
|
|
if (bglx !== this.multipleSelection[i].bglx) {
|
|
this.$message('请选择同类型报告进行发送。')
|
|
return false
|
|
}
|
|
if (this.multipleSelection[i].shebeizhongleidaima !== '1000') {
|
|
if (this.multipleSelection[i].neibuleibie.indexOf(nblb) < 0 && nblb.indexOf(this.multipleSelection[i].neibuleibie) < 0) {
|
|
this.$message('请选择同检验类别的报告进行发送。')
|
|
return false
|
|
}
|
|
}
|
|
if (sbzldm !== this.multipleSelection[i].shebeizhongleidaima) {
|
|
this.$message('请选择同设备种类的报告进行发送。')
|
|
return false
|
|
}
|
|
if (this.multipleSelection[i].jilubianhao) {
|
|
existRecordNum = false
|
|
}
|
|
if (this.isQm) {
|
|
switch (this.multipleSelection[i].flowstatus) {
|
|
case 1 :
|
|
if (!this.multipleSelection[i].jianyanrenyuan) {
|
|
this.$message('请检验人员先签名再发送审核!')
|
|
return false
|
|
}
|
|
if (!this.multipleSelection[i].bianzhiren && this.multipleSelection[i].bglx === 1) {
|
|
isQianming = true
|
|
}
|
|
break
|
|
case 2 :
|
|
if (!this.multipleSelection[i].shenheren) {
|
|
isQianming = true
|
|
}
|
|
break
|
|
case 3 :
|
|
if (!this.multipleSelection[i].shenpiren) {
|
|
isQianming = true
|
|
}
|
|
break
|
|
}
|
|
}
|
|
}
|
|
if (existRecordNum) {
|
|
// 发送之前判断子报告是否已经办结
|
|
this.api({
|
|
url: '/ysjl/judgeState',
|
|
method: 'get',
|
|
params: {
|
|
ysjlIds: parentIds,
|
|
bglx: '2,3'
|
|
}
|
|
}).then(data => {
|
|
if (data === 0) {
|
|
this.$message.error('请先办结子报告再发送!')
|
|
} else {
|
|
this.batchSendTo(isQianming, linkname, idStr)
|
|
}
|
|
})
|
|
} else {
|
|
this.batchSendTo(isQianming, linkname, idStr)
|
|
}
|
|
},
|
|
batchSendTo(isQianming, flowstatus, idStr) {
|
|
if (isQianming) {
|
|
this.dialogSignVisible = true
|
|
this.flowstatus = flowstatus
|
|
return false
|
|
}
|
|
const departmentId = this.multipleSelection[0].departmentId
|
|
const bglx = this.multipleSelection[0].bglx
|
|
// 获取下一环节人员之前先确认是否已经签名
|
|
if (this.multipleSelection[0].flowstatus === 2 && (this.multipleSelection[0].shebeizhongleidaima === 'F000' || this.multipleSelection[0].bglx === 2)) {
|
|
this.end(this.ysjlId, this.multipleSelection, false) // 验证是否属于办结操作,是直接办结。
|
|
return false
|
|
} else if (this.multipleSelection[0].flowstatus === 3) {
|
|
this.end(this.ysjlId, this.multipleSelection, true) // 验证是否属于办结操作,是直接办结。
|
|
return false
|
|
}
|
|
this.api({
|
|
url: '/flow/getNextLinkUsers',
|
|
method: 'get',
|
|
params: {
|
|
bglx: bglx,
|
|
flowstatus: flowstatus + 1,
|
|
departmentId: departmentId
|
|
}
|
|
}).then(data => {
|
|
this.flowUserList = data
|
|
this.dialogFormVisible = true
|
|
}).catch(() => {
|
|
this.dialogSignVisible = false
|
|
})
|
|
},
|
|
confirmSend() {
|
|
if (this.multipleSelectionLink.length !== 1) {
|
|
this.$message('只能选择单人处理下一环节。')
|
|
return false
|
|
}
|
|
const flowstatus = this.multipleSelection[0].flowstatus
|
|
for (let i = 1; i < this.multipleSelection.length; i++) {
|
|
if (flowstatus !== this.multipleSelection[i].flowstatus) {
|
|
this.$message('请选择同环节进行发送。')
|
|
return false
|
|
}
|
|
}
|
|
const _vue = this
|
|
const link = this.multipleSelectionLink[0]
|
|
this.api({
|
|
url: '/flow/send',
|
|
method: 'post',
|
|
data: {
|
|
ysjlIds: this.ysjlId,
|
|
userId: link.userId,
|
|
currentLink: flowstatus,
|
|
nextValue: flowstatus + 1
|
|
}
|
|
}).then(() => {
|
|
this.dialogFormVisible = false
|
|
this.$message({
|
|
message: '发送成功!',
|
|
type: 'success',
|
|
duration: 500,
|
|
onClose: () => {
|
|
_vue.getList()
|
|
Utils.$emit('bggl-yiban-list')
|
|
}
|
|
})
|
|
})
|
|
},
|
|
end(ysjlId, ysjls, generatePDF) {
|
|
this.$confirm('确定办结当前选中报告?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.api({
|
|
url: '/flow/end',
|
|
method: 'post',
|
|
params: {
|
|
ids: ysjlId
|
|
},
|
|
paramsSerializer: function(params) {
|
|
return qs.stringify(params, { indices: false })
|
|
}
|
|
}).then(() => {
|
|
this.$message({
|
|
message: '办结成功',
|
|
type: 'success',
|
|
duration: 1000,
|
|
onClose: () => {
|
|
this.delRawRecords(ysjls)
|
|
this.getList()
|
|
Utils.$emit('bggl-yiban-list')
|
|
// 发起生成PDF请求
|
|
if (generatePDF) {
|
|
this.preview({
|
|
url: '/print/batchGeneratePDF',
|
|
method: 'post',
|
|
data: {
|
|
ids: ysjlId,
|
|
generateType: 'END'
|
|
}
|
|
})
|
|
// 发起消红请求
|
|
this.cleanRed(ysjls)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}).catch(() => {
|
|
this.$message({
|
|
type: 'info',
|
|
message: '取消办结'
|
|
})
|
|
})
|
|
this.isQm = true
|
|
},
|
|
/**
|
|
* 批量办结压力管道报告
|
|
*/
|
|
batchEnd() {
|
|
if (this.$refs.list.selection.length < 1) {
|
|
this.$message.warning('请至少选择一份报告进行办结!')
|
|
return false
|
|
}
|
|
if (this.$refs.list.selection.filter(report => report.jianyanleibie !== 'DJ' || report.shebeizhongleidaima !== '8000').length) {
|
|
this.$message.warning('该批量办结只允许批量办结压力管道定检报告!')
|
|
return false
|
|
}
|
|
this.$confirm('确定办结当前选中报告?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
const ids = this.$refs.list.selection.map(report => report.id).join(',')
|
|
this.api({
|
|
url: '/flow/end',
|
|
method: 'post',
|
|
params: {
|
|
ids: ids
|
|
}
|
|
}).then(() => {
|
|
this.$message.success('批量办结报告成功!')
|
|
this.common.viewYsjlNoOpen(ids, 'JYBG')
|
|
this.getList()
|
|
Utils.$emit('bggl-yiban-list')
|
|
})
|
|
})
|
|
},
|
|
/**
|
|
* 办结时删除原始资料
|
|
* @param ysjls
|
|
*/
|
|
delRawRecords(ysjls) {
|
|
const renwuIds = []
|
|
ysjls.forEach((ysjl) => {
|
|
if (ysjl.bglx === 1 && ysjl.shebeizhongleidaima === '2000' && ysjl.jianyanleibie === 'DJ') {
|
|
renwuIds.push(ysjl.renwuId)
|
|
}
|
|
})
|
|
if (renwuIds.length) {
|
|
this.preview({
|
|
url: '/upload/delRawRecords',
|
|
method: 'get',
|
|
params: {
|
|
renwuIds: renwuIds.join(',')
|
|
}
|
|
})
|
|
}
|
|
},
|
|
cleanRed(ysjls) {
|
|
if (ysjls != null && ysjls.length > 0) {
|
|
this.api({
|
|
url: '/template/getById',
|
|
method: 'get',
|
|
params: {
|
|
id: ysjls[0].modelId
|
|
}
|
|
}).then(data => {
|
|
if (data.cleanState) {
|
|
const cleanData = []
|
|
ysjls.forEach(ysjl => {
|
|
// 排除使用单位标注了测试的报告
|
|
if (ysjl.shiyongdanwei.indexOf('测试') === -1) {
|
|
const data = {}
|
|
data.shiyongdanwei = ysjl.shiyongdanwei
|
|
data.shebeizhonglei = ysjl.shebeizhongleidaima
|
|
// 获取内部类别对应中文名称
|
|
data.jianyanleibie = this.formatter.formatterCategory(null, null, ysjl.neibuleibie)
|
|
data.zhucedaima = ysjl.zhucedaima
|
|
data.shiyongdengjibianhao = ysjl.shiyongdengjibianhao
|
|
data.jianyanriqi = ysjl.jianyanjieshuriqi
|
|
data.xiacijianyanriqi = ysjl.xiacijianyanriqi
|
|
data.jianyanjielun = ysjl.jianyanjielun
|
|
data.baogaobianhao = ysjl.baogaobianhao
|
|
data.quxian = ysjl.quhuamingcheng
|
|
data.jianyanjigou = '济南市特种设备检验研究院'
|
|
data.shi = '济南市'
|
|
cleanData.push(data)
|
|
}
|
|
})
|
|
if (cleanData.length > 0) {
|
|
this.apisjse({
|
|
url: '/baseInfo/chaoqijiekoupi',
|
|
method: 'post',
|
|
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
data: qs.stringify({
|
|
loginname: 'jntjysjgx',
|
|
password: '123',
|
|
jiekous: JSON.stringify(cleanData)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
},
|
|
qianming() {
|
|
this.api({
|
|
url: '/user/validationPwd',
|
|
method: 'post',
|
|
data: {
|
|
id: this.$store.getters.userId,
|
|
signPassword: this.passForm.password
|
|
}
|
|
}).then(() => {
|
|
this.sign()
|
|
})
|
|
},
|
|
sign() {
|
|
this.api({
|
|
url: '/flow/qianming',
|
|
method: 'get',
|
|
params: {
|
|
ids: this.ysjlId,
|
|
riqi: this.passForm.signDate,
|
|
flowstatus: this.flowstatus
|
|
},
|
|
paramsSerializer: function(params) {
|
|
return require('qs').stringify(params, { indices: false })
|
|
}
|
|
}).then(() => {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '签名成功!'
|
|
})
|
|
this.isQm = false
|
|
if (this.isBatchSign) {
|
|
this.handleFilter()
|
|
} else {
|
|
this.batchSend()
|
|
}
|
|
this.dialogSignVisible = false
|
|
this.isBatchSign = false
|
|
}).catch(() => {
|
|
this.$confirm('列表可能长时间未刷新,是否刷新列表?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.handleFilter()
|
|
}).catch(() => {
|
|
this.$message({
|
|
type: 'info',
|
|
message: '已取消刷新'
|
|
})
|
|
})
|
|
})
|
|
},
|
|
formatterHuanjie(row) {
|
|
switch (row.flowstatus) {
|
|
case 1:
|
|
return '起草'
|
|
case 2:
|
|
return '审核'
|
|
case 3:
|
|
return '审批'
|
|
default:
|
|
return '未知'
|
|
}
|
|
},
|
|
editYsjl($index) {
|
|
const ysjl = this.list[$index]
|
|
if (ysjl.shebeizhongleidaima === '8000') {
|
|
this.api({
|
|
url: '/template/getById',
|
|
method: 'get',
|
|
params: {
|
|
id: ysjl.modelId
|
|
}
|
|
}).then(data => {
|
|
const queryParam = {
|
|
id: ysjl.id,
|
|
jyxm: this.list[$index].jianyanxiangmu,
|
|
departmentId: this.$store.getters.departmentId,
|
|
jianyanrenyuan: ysjl.jianyanrenyuan,
|
|
state: 'update',
|
|
renwuId: ysjl.renwuId,
|
|
modelId: ysjl.modelId,
|
|
jylb: ysjl.jianyanleibie,
|
|
neibuleibie: ysjl.neibuleibie,
|
|
sbzldm: ysjl.shebeizhongleidaima,
|
|
sblbdm: ysjl.shebeileibiedaima,
|
|
sbpzdm: ysjl.shebeipinzhongdaima,
|
|
sfdId: ysjl.sfdId
|
|
}
|
|
if (ysjl.bglx === 1) {
|
|
this.$router.push({ path: data.tempPath + '/' + ysjl.id, query: queryParam })
|
|
} else {
|
|
this.$router.push({ path: data.tempPath, query: queryParam })
|
|
}
|
|
})
|
|
} else {
|
|
let nblb = ''
|
|
if (ysjl.neibuleibie === 'DQ' || ysjl.neibuleibie === 'SCDQ' || ysjl.neibuleibie === 'QM') {
|
|
nblb = 'dj/'
|
|
} else if (ysjl.neibuleibie === 'JD') {
|
|
nblb = 'jj/'
|
|
} else {
|
|
nblb = ysjl.neibuleibie.toLowerCase() + '/'
|
|
}
|
|
if (this.list[$index].bglx === 1) {
|
|
if (ysjl.shebeizhongleidaima === '2000') {
|
|
this.$router.push({ path: '/bggl/' + ysjl.shebeizhongleidaima + '/' + nblb + this.list[$index].jianyanxiangmu + '/' + ysjl.id, query: { id: ysjl.id, jyxm: this.list[$index].jianyanxiangmu, departmentId: this.$store.getters.departmentId, ysjl: ysjl, state: 'update' }})
|
|
} else {
|
|
this.$router.push({ path: '/bggl/' + ysjl.shebeizhongleidaima + '/' + nblb + 'edit/' + ysjl.id + '/update', query: { ysjl: ysjl }})
|
|
}
|
|
} else {
|
|
if (ysjl.shebeizhongleidaima === '2000') {
|
|
nblb = ''
|
|
}
|
|
this.$router.push({ path: '/bggl/' + ysjl.shebeizhongleidaima + '/' + nblb + this.list[$index].jianyanxiangmu, query: { id: ysjl.id, jyxm: this.list[$index].jianyanxiangmu, departmentId: this.$store.getters.departmentId }})
|
|
}
|
|
}
|
|
},
|
|
highQuery() {
|
|
this.dialogQueryVisible = true
|
|
},
|
|
clearQuery() {
|
|
this.listQuery = {
|
|
order: 'update_time', // 排序字段
|
|
sort: 'asc', // 排序方式
|
|
hasChild: true,
|
|
hasFinish: false
|
|
}
|
|
this.getList()
|
|
},
|
|
clearCopyQuery() {
|
|
this.$set(this.listQueryCopy, 'searchYsjl', {
|
|
bglx: 1
|
|
})
|
|
|
|
this.handleFilterCopy()
|
|
},
|
|
closeDialog() {
|
|
this.isQm = true
|
|
},
|
|
batchSign() {
|
|
if (this.multipleSelection.length === 0) {
|
|
this.$message('请在列表选择要签名的数据。')
|
|
return false
|
|
}
|
|
this.ysjlId = []
|
|
const flowstatus = this.multipleSelection[0].flowstatus
|
|
for (let i = 0; i < this.multipleSelection.length; i++) {
|
|
this.ysjlId.push(this.multipleSelection[i].id)
|
|
if (flowstatus !== this.multipleSelection[i].flowstatus) {
|
|
this.$message('请选择同环节签名!')
|
|
return false
|
|
}
|
|
}
|
|
this.isBatchSign = true
|
|
this.flowstatus = flowstatus
|
|
this.dialogSignVisible = true
|
|
},
|
|
clearSignName() {
|
|
if (this.multipleSelection.length === 0) {
|
|
this.$message('请在列表选择要清空签名的数据。')
|
|
return false
|
|
}
|
|
let idStr = this.multipleSelection[0].id
|
|
const linkname = this.multipleSelection[0].flowstatus
|
|
for (let i = 1; i < this.multipleSelection.length; i++) {
|
|
idStr = idStr + ',' + this.multipleSelection[i].id
|
|
if (linkname !== this.multipleSelection[i].flowstatus) {
|
|
this.$message('请选择同环节清除签名!')
|
|
return false
|
|
}
|
|
}
|
|
// 清除签名
|
|
this.api({
|
|
url: '/ysjl/clearSignName',
|
|
method: 'get',
|
|
params: {
|
|
ysjlIds: idStr,
|
|
flowStatus: linkname
|
|
}
|
|
}).then(() => {
|
|
this.$message({
|
|
type: 'success',
|
|
message: '清除签名成功!'
|
|
})
|
|
this.handleFilter()
|
|
this.isQm = true
|
|
})
|
|
},
|
|
getSblbList(val) {
|
|
this.sblbdm = ''
|
|
this.sbpzList = []
|
|
this.sbpzdm = ''
|
|
this.modelList = []
|
|
this.modelId = ''
|
|
this.getSbList(val, undefined, 2)
|
|
},
|
|
getSbpzList(val) {
|
|
this.modelList = []
|
|
this.modelId = ''
|
|
this.sbpzdm = ''
|
|
this.getSbList(this.sbzldm, val, 3)
|
|
},
|
|
getModelList(val) {
|
|
let tempJylb = '制造监检'
|
|
let category = 'JYBG'
|
|
if (val === '7310') {
|
|
tempJylb = '定期检验'
|
|
category = 'YSJL'
|
|
}
|
|
this.api({
|
|
url: '/template/getTemplateBySbpz',
|
|
method: 'post',
|
|
data: {
|
|
sbpz: val,
|
|
jianyanleibie: tempJylb,
|
|
category: category
|
|
}
|
|
}).then(data => {
|
|
this.modelList = data
|
|
this.modelId = data[0].value
|
|
})
|
|
},
|
|
getSbList(sbzl, sblb, level) {
|
|
this.api({
|
|
url: '/sedirectory/getList',
|
|
method: 'get',
|
|
params: {
|
|
sbzl: sbzl,
|
|
sblb: sblb,
|
|
level: level
|
|
}
|
|
}).then(data => {
|
|
switch (level) {
|
|
case 2:
|
|
this.sblbList = data
|
|
return ''
|
|
case 3:
|
|
this.sbpzList = data
|
|
return ''
|
|
default:
|
|
this.sbzlList = data
|
|
return ''
|
|
}
|
|
})
|
|
},
|
|
getListCopy() {
|
|
this.listQueryCopy.searchYsjl.bglx = '1'
|
|
this.api({
|
|
url: '/ysjl/gainNewReportList',
|
|
method: 'get',
|
|
params: this.listQueryCopy
|
|
}).then(data => {
|
|
this.listCopy = data.list
|
|
this.totalCopy = data.total
|
|
})
|
|
},
|
|
handleFilterCopy() {
|
|
// 查询事件
|
|
this.listQueryCopy.pageNum = 1
|
|
this.getListCopy()
|
|
},
|
|
tableRowClassName({ row, rowIndex }) {
|
|
if (row.retreatState === 1) {
|
|
return 'reject-row'
|
|
} else if (row.retreatState === 2) {
|
|
return 'restart-row'
|
|
} else if (row.copyState === true) {
|
|
return 'copy-row'
|
|
}
|
|
return ''
|
|
},
|
|
formatterRiqi(row) {
|
|
if (row.updateTime) {
|
|
return row.updateTime.substring(0, 10)
|
|
}
|
|
},
|
|
/**
|
|
* 根据报告ID查看驳回原因
|
|
* @param renwuId
|
|
*/
|
|
viewAllRejection(renwuId) {
|
|
this.api({
|
|
url: '/taskinfo/viewRejection',
|
|
method: 'get',
|
|
params: {
|
|
renwuId: renwuId
|
|
}
|
|
}).then(data => {
|
|
this.infoNotes = data
|
|
if (!this.infoNotes.length) {
|
|
this.$alert('暂无驳回意见!', '驳回意见', {
|
|
confirmButtonText: '关闭'
|
|
})
|
|
} else {
|
|
this.dialogBohuiyijianVisible = true
|
|
}
|
|
})
|
|
},
|
|
/**
|
|
* 预览驳回图片文件
|
|
* @param viewType
|
|
*/
|
|
rejectPicture(viewType) {
|
|
this.preview({
|
|
url: '/print/generateRejectPicture',
|
|
method: 'post',
|
|
data: {
|
|
ysjlId: this.ysjlId,
|
|
viewType: viewType
|
|
}
|
|
}).then(data => {
|
|
data = data.replace(/\\/g, '/')
|
|
window.open(data)
|
|
this.dialogBohuiyijianVisible = false
|
|
})
|
|
},
|
|
showDrawCanvas(ysjl) {
|
|
if (ysjl.flowstatus === 1) {
|
|
this.$message('存在未流转报告。')
|
|
} else {
|
|
this.ysjlId = ysjl.id
|
|
this.dialogDrawCanvasVisible = true
|
|
}
|
|
},
|
|
drawCanvas(viewType) {
|
|
this.preview({
|
|
url: '/upload/judgeDrawingFileExist',
|
|
method: 'post',
|
|
params: {
|
|
ysjlId: this.ysjlId,
|
|
viewType: viewType
|
|
}
|
|
}).then(data => {
|
|
if (data) {
|
|
this.$confirm('是否删除原绘制文件重新绘制?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.toCanvas(viewType)
|
|
})
|
|
} else {
|
|
this.toCanvas(viewType)
|
|
}
|
|
})
|
|
},
|
|
toCanvas(viewType) {
|
|
this.preview({
|
|
url: '/print/getDrawCanvasImgUrl',
|
|
method: 'post',
|
|
data: {
|
|
ysjlId: this.ysjlId,
|
|
viewType: viewType,
|
|
generateType: false
|
|
}
|
|
}).then(data => {
|
|
this.appendToBody = false
|
|
this.dialogDrawCanvasVisible = false
|
|
const path = data.path.replace(/\\/g, '/')
|
|
this.$router.push({ path: '/preview/canvas-list/' + encodeURIComponent(path) + '/' + data.width + '/' + data.height })
|
|
})
|
|
},
|
|
showZJPreviewJudge(ysjl) {
|
|
this.ifDataSheet = ysjl.shebeileibiedaima !== '2300'
|
|
this.ifDataSheet5 = ysjl.shengchanxingshi === '5'
|
|
this.ysjlId = ysjl.id
|
|
this.appendToBody = false
|
|
this.dialogZJPreviewVisible = true
|
|
},
|
|
showVerification(renwuId, viewButton) {
|
|
this.currentRenwuId = renwuId
|
|
this.viewButton = viewButton
|
|
this.dialogEnclosureVisible = true
|
|
},
|
|
showSfInfo(row) {
|
|
this.ysjlService.getParam(row.id, '1000').then(data => {
|
|
this.sfInfo = {
|
|
zaojia: data.zaojia,
|
|
bili: data.bili,
|
|
jianyanheding: row.jianyanheding
|
|
}
|
|
this.dialogFormVisibleSfInfo = true
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.el-table .reject-row {
|
|
color: orange;
|
|
}
|
|
.el-table .restart-row {
|
|
color: red;
|
|
}
|
|
.el-table .copy-row {
|
|
color: #690cff;
|
|
}
|
|
.identification{
|
|
width: 30px;
|
|
height:15px;
|
|
display: inline-block;
|
|
border:gray 1px solid;
|
|
border-radius:15px;
|
|
float: left;
|
|
}
|
|
button.el-button.el-button--mini.is-circle{
|
|
margin: 1px;
|
|
}
|
|
</style>
|
|
|