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.
698 lines
27 KiB
698 lines
27 KiB
<!--螺旋翅片管-->
|
|
<template>
|
|
<div class="app-container">
|
|
<sticky style="margin-bottom: 10px;">
|
|
<div class="sub-navbar">
|
|
<el-button v-if="state === 'create'" type="success" icon="el-icon-edit" size="medium" @click="saveYsjl('add')">
|
|
保存
|
|
</el-button>
|
|
<template v-else>
|
|
<el-button type="primary" icon="el-icon-edit" size="medium" @click="saveYsjl('upd')">
|
|
更新
|
|
</el-button>
|
|
<el-button v-if="isSysUser" type="success" icon="el-icon-upload2" size="medium" @click="saveYsjl('build')">
|
|
生成报告
|
|
</el-button>
|
|
<el-button type="warning" icon="el-icon-view" size="medium" @click="common.viewYsjl(ysjl.id, 'YSJL')">
|
|
预览
|
|
</el-button>
|
|
</template>
|
|
<template v-if="isSysUser">
|
|
<el-button type="primary" size="medium" @click="Signjyxm">
|
|
<svg-icon icon-class="sign" />
|
|
检验项目批量签名
|
|
</el-button>
|
|
<el-button type="danger" icon="el-icon-delete" size="medium" @click="signClear">
|
|
批量清除签名
|
|
</el-button>
|
|
<el-button type="success" size="medium" icon="el-icon-edit" @click="batchUpdDate">
|
|
批量修改日期
|
|
</el-button>
|
|
<el-button v-if="notHasRole('GLQYD')" type="info" size="medium" icon="el-icon-info" @click="dialogEnclosureVisible = true">
|
|
相关鉴证
|
|
</el-button>
|
|
<el-button type="primary" size="medium" icon="el-icon-info" @click="showDialogRoleVisible">
|
|
编辑权限
|
|
</el-button>
|
|
</template>
|
|
</div>
|
|
</sticky>
|
|
<el-tabs v-model="checkedTab" type="card">
|
|
<el-tab-pane label="基本情况" name="first">
|
|
<el-form ref="ysjl" :model="ysjl" class="el-form" label-position="right" label-width="130px">
|
|
<fieldset>
|
|
<legend>基本信息</legend>
|
|
<el-row :gutter="20">
|
|
<el-col v-if="state === 'create' || !ysjl.jilubianhao" :span="13">
|
|
<el-form-item label="监检编号">
|
|
<el-input v-model="jlbh1" style="width:80px" disabled />
|
|
<el-input v-model="jlbh2" style="width:80px" disabled />-
|
|
<el-input v-model="jlbh3" style="width:80px" @blur="ysjlController.judgeRepeat(jlbh1 + jlbh2 + '-' + jlbh3, ysjl.id).then(data => { isRepeat = data })" />
|
|
<el-input v-model="jlbh4" style="width:80px" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col v-else :span="9">
|
|
<el-form-item label="监检编号" prop="jilubianhao">
|
|
<el-input v-model="ysjl.jilubianhao" :disabled="edit" @blur="ysjlController.judgeRepeat(ysjl.jilubianhao, ysjl.id).then(data => { isRepeat = data })" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col v-show="isRepeat" :span="2">
|
|
<span style="color:red">编号重复</span>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="9">
|
|
<el-form-item label="产品编号" prop="chanpinbianhao">
|
|
<el-input v-model="ysjl.chanpinbianhao" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="9">
|
|
<el-form-item label="产品名称" prop="shebeimingcheng">
|
|
<el-input v-model="ysjl.shebeimingcheng" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="9">
|
|
<el-form-item label="产品规格" prop="guigexinghao">
|
|
<el-input v-model="ysjl.guigexinghao" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="9">
|
|
<el-form-item label="制造日期" prop="zhizaoriqi">
|
|
<el-date-picker v-model="ysjl.zhizaoriqi" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%;" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="18">
|
|
<el-form-item label="制造单位" prop="zhizaodanwei">
|
|
<el-input v-model="ysjl.zhizaodanwei" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>收费信息</legend>
|
|
<!-- 收费相关信息禁止在原始记录编辑 合同编号除外 -->
|
|
<el-row :gutter="20">
|
|
<el-col :span="9">
|
|
<el-form-item label="合同编号" prop="hetongbianhao">
|
|
<el-input v-model="param.hetongbianhao" type="text" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="9">
|
|
<el-form-item label="合同金额" prop="zaojia">
|
|
<el-input v-model="param.zaojia" type="text" disabled @input="beforeHejia" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="9">
|
|
<el-form-item label="比例" prop="bili">
|
|
<el-select v-model="param.bili" allow-create clearable filterable default-first-option style="width: 100%;" disabled @change="beforeHejia">
|
|
<el-option v-for="item in biliOptions" :key="item" :label="item" :value="item" />
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="9">
|
|
<el-form-item label="检验费用" prop="jianyanheding">
|
|
<el-input v-model="ysjl.jianyanheding" type="text" disabled />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>校验信息</legend>
|
|
<el-row :gutter="20">
|
|
<el-col :span="20" style="margin-left: 100px;height: 90px;font-size: 16px;">
|
|
根据制造单位委托,该批产品经我单位检验,质量符合<el-input v-model="ysjl.jianyanyiju" style="width: 500px;" />的规定。
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="18" style="height: 120px;">
|
|
<el-form-item label="所抽查的产品编号" prop="beizhu">
|
|
<el-input v-model="ysjl.beizhu" type="textarea" :rows="4" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<template v-if="isSysUser">
|
|
<el-row :gutter="20" style="margin-top: 20px;">
|
|
<el-col :span="9">
|
|
<el-form-item label="检验日期" prop="jianyanjieshuriqi">
|
|
<el-date-picker v-model="ysjl.jianyanjieshuriqi" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%;" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="10">
|
|
<el-col :span="9">
|
|
<el-form-item label="检验人员" prop="jianyanrenyuan">
|
|
<el-input v-model="jianyanrenyuan" disabled />
|
|
<el-input v-show="false" v-model="ysjl.jianyanrenyuan" />
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="9">
|
|
<sign-name :jianyanrenyuan="jianyanrenyuan" :ysjl="ysjl" :custom-clear-sign="customClearSign" @setSignValue="signNameValue" />
|
|
</el-col>
|
|
</el-row>
|
|
</template>
|
|
</fieldset>
|
|
</el-form>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="检验项目" name="second">
|
|
<el-form class="el-form" label-position="right" label-width="130px" style="margin-top: 10px;">
|
|
<el-row :gutter="20">
|
|
<el-col :span="18" :offset="6">
|
|
<el-button size="small" type="primary" @click="changeJsl(' 由 外协生产,监检证号: 产品编号: 。锅炉范围内管道提供部分锅炉主蒸汽管道、锅炉主给水管道和管件,符合《市场监管总局办公厅关于电站锅炉范围内管道有关问题意见》(市监特设函(2019) -849号) 等文件的相关要求。')">
|
|
外协
|
|
</el-button>
|
|
<el-button size="small" type="warning" @click="changeJsl('无此项.')">
|
|
无此项
|
|
</el-button>
|
|
<el-button size="small" type="primary" @click="changeJsl('部件调台,详见该厂的调台计划.')">
|
|
调台
|
|
</el-button>
|
|
<el-button size="small" type="primary" @click="changeJsl('该锅炉为设计文件鉴定后制造的前三台锅炉。')">
|
|
前三台
|
|
</el-button>
|
|
<el-button size="small" type="danger" @click="changeJsl(undefined)">
|
|
清空
|
|
</el-button>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20" style="height: 100px;">
|
|
<el-col :span="18">
|
|
<el-form-item label="记事栏" prop="qita">
|
|
<el-input v-model="param.qita" type="textarea" :rows="4" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row :gutter="20">
|
|
<el-col :span="9">
|
|
<el-form-item label="检验结论" prop="qita">
|
|
<el-input v-model="ysjl.jianyanjielun" />
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table ref="bgfyData" :data="bgfyData" :span-method="tableJs.mergeColRows" border stripe style="margin-top: 10px;width:90%" @row-click="onRowClick">
|
|
<el-table-column type="selection" width="55" prop="checkbox" />
|
|
<el-table-column type="index" align="center" width="50" label="序号" />
|
|
<el-table-column align="center" label="监检项目">
|
|
<el-table-column align="center" prop="jianyanxiang" label="检验项" />
|
|
<el-table-column align="center" prop="jianyanmu" label="检验目" />
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="jianyanjieguo" label="检查结果">
|
|
<template slot-scope="scope">
|
|
<el-select v-model="scope.row.jianyanjieguo">
|
|
<el-option v-for="item in jyjgList" :key="item" :label="item" :value="item" @change="changeJyjg(scope.$index)" />
|
|
</el-select>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="gongzuojianzheng" label="工作见证">
|
|
<template slot-scope="scope">
|
|
<el-input v-model="scope.row.gongzuojianzheng" />
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" prop="jianjianyuan" width="150" label="监检员" />
|
|
<el-table-column align="center" prop="querenriqi" width="160" label="日期">
|
|
<template slot-scope="scope">
|
|
<el-date-picker v-model="scope.row.querenriqi" type="date" format="yyyy.MM.dd" value-format="yyyy-MM-dd" :picker-options="pickerOptions" placeholder="选择日期" style="width: 100%;" />
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
<el-dialog :visible.sync="jyxmrqShow" title="批量修改日期" width="500px" @close="jyxmrqShow = false">
|
|
<template>
|
|
<el-date-picker v-model="querenriqi" type="date" format="yyyy.MM.dd" value-format="yyyy-MM-dd" :picker-options="pickerOptions" placeholder="选择日期" style="width: 100%;" />
|
|
</template>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="jyxmrqShow = false">取 消</el-button>
|
|
<el-button type="primary" @click="batchUpd">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<el-dialog title="查看相关鉴证" :modal-append-to-body="false" :visible.sync="dialogEnclosureVisible">
|
|
<enclosure :relation-id="ysjl.renwuId" :if-liaison="false" :view-button="true" :is-show-hetong="isSysUser" />
|
|
</el-dialog>
|
|
<el-dialog title="编辑权限" :visible.sync="dialogRoleVisible">
|
|
<template>
|
|
<div class="tag-group">
|
|
<span class="tag-group__title">已有权限人员:</span>
|
|
<el-tag v-for="item in defaultRlr" :key="item" effect="dark">
|
|
{{ common.convertCnName(item) }}
|
|
</el-tag>
|
|
</div>
|
|
<el-select v-model="renlingren" multiple collapse-tags>
|
|
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" />
|
|
</el-select>
|
|
</template>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="dialogRoleVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="updateRenlingren">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<sign-name v-show="signShow" ref="qmButton" :ysjl="ysjl" :jianyanrenyuan="xmjianyanrenyuan" field-name="xmqianming" :custom-clear-sign="customClearSign" @setSignValue="signNameValue" />
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import Sticky from '@/components/Sticky'
|
|
import SignName from '@/views/common/SignName'
|
|
import Utils from '@/utils/contact'
|
|
import merge from 'webpack-merge'
|
|
import Enclosure from '@/views/common/Enclosure'
|
|
|
|
export default {
|
|
name: 'GlZjYsjl',
|
|
components: { SignName, Sticky, Enclosure },
|
|
data() {
|
|
return {
|
|
ysjl: {},
|
|
param: {},
|
|
jlbh1: 'GJ',
|
|
jlbh2: '(' + new Date().getFullYear() + ')',
|
|
jlbh3: '',
|
|
jlbh4: '(X)',
|
|
isRepeat: false,
|
|
jianyanrenyuan: '',
|
|
departmentId: this.$route.query.departmentId,
|
|
edit: false,
|
|
state: this.$route.query.state,
|
|
bgfyData: [],
|
|
ysjlId: this.$route.query.id,
|
|
checkedTab: 'first',
|
|
xmlbListAB: ['A', 'B'],
|
|
xmlbListAC: ['A', 'C'],
|
|
xmlbListBC: ['B', 'C'],
|
|
cols: [
|
|
{
|
|
name: 'jianyanxiang', // 参与计算的列名,必须和el-table-column prop=''值一致
|
|
getValue(row) { // 该列用于比较的值的获取方法
|
|
return row.jianyanxiang
|
|
}
|
|
}
|
|
],
|
|
rows: [
|
|
{
|
|
name: 'jianyanxiang',
|
|
getValue(row) {
|
|
return row.jianyanxiang
|
|
}
|
|
},
|
|
{
|
|
name: 'jianyanmu',
|
|
getValue(row) {
|
|
return row.jianyanmu
|
|
}
|
|
},
|
|
{
|
|
name: 'jianyanneirong',
|
|
getValue(row) {
|
|
return row.jianyanneirong
|
|
}
|
|
}
|
|
],
|
|
jyxmrqShow: false,
|
|
querenriqi: null,
|
|
signShow: false,
|
|
xmjianyanrenyuan: '',
|
|
xggcList: [],
|
|
biliOptions: ['0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1'],
|
|
dialogEnclosureVisible: false,
|
|
dialogRoleVisible: false,
|
|
userList: [],
|
|
defaultRlr: [],
|
|
renlingren: [],
|
|
jyjgList: ['符合', '无此项', '外协'],
|
|
isSysUser: this.$store.getters.clientType === 'System',
|
|
jyxmRelations: [],
|
|
pickerOptions: {
|
|
disabledDate(time) {
|
|
return time.getTime() > Date.now()
|
|
}
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
if (this.state === 'create') {
|
|
this.initYsjl()
|
|
} else {
|
|
this.getYsjl()
|
|
this.getParam()
|
|
}
|
|
this.getJyxm(1)
|
|
this.getDicData()
|
|
this.userList = this.$store.getters.allUser.filter(user => user.departmentId === 74 && user.clientType === 'System')
|
|
},
|
|
methods: {
|
|
initYsjl() {
|
|
this.ysjlController.init(this.$route.query).then(data => {
|
|
this.ysjl = data.ysjl
|
|
this.param = data.param ? data.param : {}
|
|
this.ysjl.jianyanjieshuriqi = this.formatter.dateFormat('YYYY-MM-dd')
|
|
this.ysjl.jianyanjielun = '合格'
|
|
this.ysjl.baogaojielun = '符合'
|
|
this.ysjl.bglx = 1
|
|
this.ysjl.cjState = 'ysjl'
|
|
this.ysjl.jlprintState = 0
|
|
this.ysjl.jigouhezhunzhenghao = process.env.VUE_APP_HZZBH
|
|
this.ysjl.jianyanyiju = '设计图样和NB/T47030-2013 《锅炉用高频电阻焊螺旋翅片管技术条件》'
|
|
this.beforeHejia()
|
|
this.getZzdw()
|
|
})
|
|
},
|
|
getYsjl() {
|
|
this.ysjlController.getYsjl(this.ysjlId).then(data => {
|
|
this.ysjl = data.ysjl
|
|
this.ysjl.jianyanjielun = '符合'
|
|
if (this.ysjl.jianyanrenyuan !== null && this.ysjl.jianyanrenyuan.length > 0) {
|
|
this.jianyanrenyuan = this.common.convertCnName(this.ysjl.jianyanrenyuan)
|
|
}
|
|
this.ysjlController.judgeRepeat(this.ysjl.jilubianhao, this.ysjl.id).then(data => {
|
|
this.isRepeat = data
|
|
})
|
|
})
|
|
},
|
|
getParam() {
|
|
this.ysjlController.getParam(this.ysjlId, '1000').then(data => {
|
|
this.param = data
|
|
})
|
|
},
|
|
getJyxm(sort) {
|
|
this.jyxmController.getJyxm(this.$route.query.modelId, this.ysjlId, sort, this.state).then(data => {
|
|
this.bgfyData = data
|
|
this.tableJs.getData(this.cols, this.rows, data)
|
|
})
|
|
},
|
|
getZzdw() {
|
|
this.api({
|
|
url: '/dwxx/getById',
|
|
method: 'get',
|
|
params: {
|
|
id: this.ysjl.zzdwId
|
|
}
|
|
}).then(data => {
|
|
this.jlbh1 += data.zhizaodanweiCode
|
|
this.ysjl.zhizaoxukezhengjibie = data.zhizaoxukezhengjibie
|
|
this.ysjl.zhizaoxukezhengbianhao = data.zhizaoxukezhengbianhao
|
|
this.getMaxBh()
|
|
})
|
|
},
|
|
getDicData() {
|
|
this.api({
|
|
url: '/dicData/getDicDataByTypeCode',
|
|
method: 'get',
|
|
params: {
|
|
typeCode: 'GL_ZZ_XGGC'
|
|
}
|
|
}).then(data => {
|
|
this.xggcList = data
|
|
})
|
|
},
|
|
// 查询最大记录编号
|
|
getMaxBh() {
|
|
const aheadPart = this.jlbh1 + this.jlbh2 + '-'
|
|
this.api({
|
|
url: '/ysjl/gainCurrentBh',
|
|
method: 'get',
|
|
params: {
|
|
aheadPart: aheadPart,
|
|
hinderPart: this.jlbh4
|
|
}
|
|
}).then(data => {
|
|
this.jlbh3 = data
|
|
this.ysjlController.judgeRepeat(this.ysjl.jilubianhao, this.ysjl.id).then(data => {
|
|
this.isRepeat = data
|
|
})
|
|
})
|
|
},
|
|
/**
|
|
* 签名方法
|
|
* @param data
|
|
*/
|
|
signNameValue(data) {
|
|
if (data.fieldName === 'xmqianming') {
|
|
for (let i = 0; i < this.$refs.bgfyData.selection.length; i++) {
|
|
const jianyanrenyuan = this.$refs.bgfyData.selection[i].jianjianyuan ? this.$refs.bgfyData.selection[i].jianjianyuan.split(',') : []
|
|
if (!jianyanrenyuan.includes(data.name)) {
|
|
jianyanrenyuan.push(data.name)
|
|
this.$refs.bgfyData.selection[i].jianjianyuan = jianyanrenyuan.join(',')
|
|
}
|
|
}
|
|
} else {
|
|
const isNotHasJyry = !this.ysjl.jianyanrenyuan
|
|
this.ysjl.jianyanrenyuan = data.id
|
|
this.jianyanrenyuan = data.name
|
|
this.common.signName(this.ysjl.id, this.ysjl.jianyanrenyuan)
|
|
Utils.$emit('manufacture-list')
|
|
// 如果是第一检验员签名的话,需要给所有检验项目的检验人员追加当前检验人员
|
|
if (isNotHasJyry && this.jianyanrenyuan && this.jianyanrenyuan.split(',').length === 1) {
|
|
this.bgfyData.forEach(jyxm => {
|
|
// 如果第一检验人员已在该检验项目签名的话,无需重复签名
|
|
if (!jyxm.jianjianyuan.split(',').filter(jjr => jjr === this.jianyanrenyuan).length) {
|
|
if (jyxm.jianjianyuan) {
|
|
const jianjianyuan = jyxm.jianjianyuan.split(',')
|
|
jianjianyuan.push(this.jianyanrenyuan)
|
|
jyxm.jianjianyuan = jianjianyuan.join(',')
|
|
} else {
|
|
jyxm.jianjianyuan = this.jianyanrenyuan
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
},
|
|
customClearSign(fieldName) {
|
|
if (fieldName === 'xmqianming') {
|
|
for (let i = 0; i < this.$refs.bgfyData.selection.length; i++) {
|
|
let jyry = this.$refs.bgfyData.selection[i].jianjianyuan || ''
|
|
jyry = this.common.deleteElement(jyry.split(','), String(this.$store.getters.nickname)).join(',')
|
|
}
|
|
} else {
|
|
const data = {
|
|
id: this.ysjl.jianyanrenyuan && this.common.deleteElement(this.ysjl.jianyanrenyuan.split(','), String(this.$store.getters.userId)).join(','),
|
|
name: this.jianyanrenyuan && this.common.deleteElement(this.jianyanrenyuan.split(','), this.$store.getters.nickname).join(','),
|
|
fieldName: fieldName
|
|
}
|
|
this.signNameValue(data)
|
|
}
|
|
},
|
|
saveYsjl(operation) {
|
|
const tableData = [[]]
|
|
this.bgfyData.forEach(row => {
|
|
tableData[0].push({
|
|
id: row.id,
|
|
xiangmuleibie: row.xiangmuleibie ? row.xiangmuleibie : '',
|
|
jianyanjieguo: row.jianyanjieguo ? row.jianyanjieguo : '',
|
|
gongzuojianzheng: row.gongzuojianzheng ? row.gongzuojianzheng : '',
|
|
jianjianyuan: row.jianjianyuan ? row.jianjianyuan : '',
|
|
querenriqi: row.querenriqi ? row.querenriqi : ''
|
|
})
|
|
})
|
|
if (operation === 'add') {
|
|
this.ysjl.jilubianhao = this.jlbh1 + this.jlbh2 + '-' + this.jlbh3 + this.jlbh4
|
|
this.save(operation, '/ysjl/saveYsjl', tableData)
|
|
} else if (operation === 'build') {
|
|
this.ysjl.baogaobianhao = this.ysjl.jilubianhao
|
|
if (this.ysjl.jilubianhao && this.ysjl.jilubianhao.indexOf('COPY') > -1) {
|
|
this.$message({
|
|
type: 'error',
|
|
message: '请先修改报告编号,不允许携带COPY标志生成报告!'
|
|
})
|
|
return false
|
|
}
|
|
if (this.ysjl.jianyanrenyuan === null || this.ysjl.jianyanrenyuan === '') {
|
|
this.$message({
|
|
type: 'error',
|
|
message: '请先签名再生成报告!'
|
|
})
|
|
return false
|
|
}
|
|
for (let i = 0; i < this.bgfyData.length; i++) {
|
|
if (!this.bgfyData[i].jianjianyuan || !this.bgfyData[i].querenriqi) {
|
|
this.$message.error('请将检验项目中的监检人员及监检日期填写完毕,再生成报告!')
|
|
return false
|
|
}
|
|
}
|
|
this.save(operation, '/ysjl/updateYsjl', tableData)
|
|
} else if (operation === 'upd') {
|
|
this.save(operation, '/ysjl/updateYsjl', tableData)
|
|
}
|
|
},
|
|
save(operation, url, jyxm) {
|
|
// 判断报告编号是否重复
|
|
if (this.isRepeat) {
|
|
this.$message({ message: '记录编号重复,请先修改记录编号再保存', type: 'error' })
|
|
return false
|
|
} else {
|
|
this.$refs['ysjl'].validate(valid => {
|
|
if (valid) {
|
|
this.api({
|
|
url: url,
|
|
method: 'post',
|
|
data: {
|
|
ysjl: this.ysjl,
|
|
param: this.param,
|
|
jyxm: JSON.stringify(jyxm),
|
|
flag: operation
|
|
}
|
|
}).then(data => {
|
|
Utils.$emit('ysjl-db-list')
|
|
// 刷新任务列表,原始记录待办,原始记录已办,检验报告
|
|
if (operation === 'add') {
|
|
Utils.$emit('task-list')
|
|
this.ysjl.id = data
|
|
this.param.ysjlId = data
|
|
this.$message({ message: '保存成功', type: 'success' })
|
|
// 刷新路由网址
|
|
this.common.reloadViewToUpdateYsjl(this.ysjl)
|
|
} else if (operation === 'upd') {
|
|
this.$message({ message: '更新成功', type: 'success' })
|
|
// 替换路由中的参数
|
|
this.$router.push({
|
|
query: merge(this.$route.query, { 'jianyanrenyuan': this.ysjl.jianyanrenyuan })
|
|
})
|
|
} else {
|
|
// 生成pdf
|
|
this.common.viewYsjlNoOpen(this.ysjl.id, 'YSJL')
|
|
Utils.$emit('ysjl-list')
|
|
Utils.$emit('ysjl-yb-list')
|
|
Utils.$emit('bggl-daiban-list')
|
|
this.$message({ message: '生成报告成功', type: 'success' })
|
|
this.common.delCurrentViews()
|
|
}
|
|
this.state = 'update'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
onRowClick(row) {
|
|
this.$refs.bgfyData.toggleRowSelection(row)
|
|
},
|
|
/**
|
|
* 格式化监检员
|
|
*/
|
|
formatterJianjianyuan(row) {
|
|
if (row.jianjianyuan) {
|
|
if (typeof (row.jianjianyuan) === 'number') {
|
|
row.jianjianyuan = row.jianjianyuan.toString()
|
|
}
|
|
return this.common.convertCnName(row.jianjianyuan)
|
|
}
|
|
},
|
|
/**
|
|
* 检验项目批量签名
|
|
*/
|
|
Signjyxm() {
|
|
if (this.$refs.bgfyData.selection.length === 0) {
|
|
this.$message('请在列表选择要签名的数据。')
|
|
return
|
|
}
|
|
this.signShow = true
|
|
this.$refs.qmButton.dialogFormVisible = true
|
|
},
|
|
/**
|
|
* 检验项目清除签名
|
|
*/
|
|
signClear: function() {
|
|
if (this.$refs.bgfyData.selection.length === 0) {
|
|
this.$message('请在列表选择要清除签名的数据。')
|
|
return
|
|
}
|
|
this.$refs.qmButton.clearSign()
|
|
},
|
|
batchUpdDate() {
|
|
if (this.$refs.bgfyData.selection.length === 0) {
|
|
this.$message('请在列表选择要修改日期的数据。')
|
|
return false
|
|
}
|
|
this.jyxmrqShow = true
|
|
},
|
|
batchUpd() {
|
|
for (let i = 0; i < this.$refs.bgfyData.selection.length; i++) {
|
|
this.$refs.bgfyData.selection[i].querenriqi = this.querenriqi
|
|
}
|
|
this.jyxmrqShow = false
|
|
},
|
|
changeJsl(val) {
|
|
if (val === '无此项.') {
|
|
this.$set(this.param, 'qita', val)
|
|
} else {
|
|
this.$set(this.param, 'qita', val ? (this.param.qita ? this.param.qita + '\n' : '') + val : '')
|
|
}
|
|
},
|
|
/**
|
|
* 核价
|
|
*/
|
|
beforeHejia: function() {
|
|
// 锅炉制造费用四舍五入到个位
|
|
this.ysjl.jianyanheding = Math.round((!this.param.zaojia || !this.param.bili) ? 0 : this.common.accMul(this.param.zaojia, this.param.bili / 100))
|
|
},
|
|
showDialogRoleVisible: function() {
|
|
// 重置表单所需数据
|
|
this.renlingren.length = 0
|
|
this.defaultRlr = this.ysjl.renlingren.split(',')
|
|
// 在可追加的人员列表中移除认领人中已有的人员
|
|
this.defaultRlr.forEach(userId => {
|
|
for (let i = 0; i < this.userList.length; i++) {
|
|
if (String(this.userList[i].id) === userId) {
|
|
this.userList.splice(i, 1)
|
|
break
|
|
}
|
|
}
|
|
})
|
|
this.dialogRoleVisible = true
|
|
},
|
|
/**
|
|
* 追加认领人
|
|
* 最终认领人数据为:将默认(原)认领人拼接新加的认领人
|
|
*/
|
|
updateRenlingren: function() {
|
|
const rlr = this.defaultRlr.concat(this.renlingren)
|
|
this.ysjl.renlingren = rlr.join(',')
|
|
this.saveYsjl('upd')
|
|
},
|
|
/**
|
|
* 修改检验结果为无此项时,确认日期默认为监检日期
|
|
* @param $index 检验项目索引
|
|
*/
|
|
changeJyjg($index) {
|
|
if (this.bgfyData[$index].jianyanjieguo === '无此项') {
|
|
this.bgfyData[$index].querenriqi = this.ysjl.jianyanjieshuriqi
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style scoped>
|
|
.el-tag {
|
|
margin: auto 5px;
|
|
}
|
|
|
|
/* 表格边框样式 */
|
|
>>> .el-table td, >>> .el-table th.is-leaf, .el-table--border, .el-table--group {
|
|
border-color: black;
|
|
}
|
|
|
|
/* 多级表头样式 */
|
|
>>> .el-table--border th,>>> .el-table--border th.gutter:last-of-type {
|
|
border-bottom: 1px solid black;
|
|
border-right: 1px solid black;
|
|
}
|
|
|
|
/* 表格字体增亮色 */
|
|
>>>.el-table--border::after, >>>.el-table--group::after, >>>.el-table::before {
|
|
background-color: black;
|
|
}
|
|
>>> .el-table thead,.el-table {
|
|
color: black;
|
|
}
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
.el-table {
|
|
/deep/tbody tr:hover>td {
|
|
background-color: oldlace;
|
|
}
|
|
}
|
|
</style>
|
|
|