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.
 
 
 
 

1378 lines
56 KiB

<!--010移动式压力容器定期检验报告新修订730-->
<template>
<div class="app-container">
<sticky style="margin-bottom: 10px;">
<div class="sub-navbar">
<el-button v-show="state === 'update' && ysjl.jilubianhao" size="medium" style="margin-left: 10px;" type="text">
编号:{{ ysjl.jilubianhao }}
</el-button>
<el-button v-if="state === 'create'" type="success" icon="el-icon-edit" size="medium" @click="saveYsjl('add')">
保存
</el-button>
<el-button v-if="state === 'update'" type="primary" icon="el-icon-edit" size="medium" @click="saveYsjl('upd')">
更新
</el-button>
<el-button v-if="state === 'update'" type="primary" icon="el-icon-circle-check-outline" size="medium" @click="toAddJyfa">
添加检验方案
</el-button>
<el-button v-if="state !== 'create'" type="info" icon="el-icon-info" size="medium" @click="getJyfaInfo">
查看同类报告
</el-button>
<el-button v-show="state === 'update'" type="success" icon="el-icon-upload2" size="medium" @click="saveYsjl('build')">
生成报告
</el-button>
<el-button v-if="state !== 'create'" type="warning" icon="el-icon-view" size="medium" @click="common.viewYsjl(ysjl.id, 'YSJL')">
预览记录
</el-button>
<el-button v-show="state !== 'create'" type="info" icon="el-icon-message" size="medium" @click="common.viewRejection(ysjl.id)">
查看驳回意见
</el-button>
</div>
</sticky>
<el-tabs v-model="checkedTab" type="card">
<el-tab-pane :label="neibuleibiejielun" 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'" :span="13">
<el-form-item label="记录编号">
<el-input v-model="jlbh1" style="width:70px" disabled />
<el-input v-model="jlbh2" style="width:80px" disabled />-
<el-input v-model="jlbh3" style="width:70px" @blur="judgeRepeat(jlbh1 + jlbh2 + '-' + jlbh3 + jlbh4, ysjl.id)" />
<el-input v-model="jlbh4" style="width:70px" disabled />
</el-form-item>
</el-col>
<el-col v-if="state !== 'create'" :span="9">
<el-form-item label="记录编号" prop="jilubianhao">
<el-input v-if="state !== 'create'" v-model="ysjl.jilubianhao" :disabled="edit" />
</el-form-item>
</el-col>
<el-col v-if="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="shebeimingcheng">
<el-input v-model="ysjl.shebeimingcheng" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="检验类别" prop="neibuleibie">
<el-select v-model="ysjl.neibuleibie" :disabled="true" style="width: 232px;">
<el-option label="定期检验" value="DQ" />
<el-option label="全面检验" value="QM" />
<el-option label="首次检验" value="SC" />
<el-option label="首次定期检验" value="SCDQ" />
<el-option label="年度检验" value="NJ" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="设备代码" prop="shebeidaima">
<el-input v-model="ysjl.shebeidaima" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="单位内编号" prop="danweineibubianhao">
<el-input v-model="ysjl.danweineibubianhao" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="注册代码" prop="zhucedaima">
<el-input v-model="ysjl.zhucedaima" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="设备品种" prop="shebeipinzhong">
<el-select v-model="ysjl.shebeipinzhong" style="width: 232px;">
<el-option label="汽车罐车" value="汽车罐车" />
<el-option label="罐式集装箱" value="罐式集装箱" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="使用登记证编号" prop="shiyongdengjibianhao">
<el-input v-model="ysjl.shiyongdengjibianhao" type="text" />
</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" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="使用单位" prop="shiyongdanwei">
<el-input v-model="ysjl.shiyongdanwei" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="使用单位地址" prop="shiyongdanweiDizhi">
<el-input v-model="ysjl.shiyongdanweiDizhi" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="使用单位组织机构代码" label-width="180px" prop="shiyongdanweiCode">
<el-input v-model="ysjl.shiyongdanweiCode" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="安全管理人员" prop="anquanguanlirenyuan">
<el-input v-model="ysjl.anquanguanlirenyuan" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="联系电话" prop="anquanguanlidianhua">
<el-input v-model="ysjl.anquanguanlidianhua" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="设计使用年限" prop="shejishiyongnianxian">
<el-input v-model="ysjl.shejishiyongnianxian" type="text">
<template slot="append">
(年)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="投入使用日期" prop="touyongriqi">
<el-input v-model="ysjl.touyongriqi" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="上次检验日期" prop="shangcijianyanriqi">
<el-input v-model="param.shangcijianyanriqi" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="主体结构型式" prop="zhutijiegouxingshi">
<el-select v-model="param.zhutijiegouxingshi" filterable allow-create default-first-option placeholder="请选择">
<el-option label="单层" value="单层" />
<el-option label="夹套" value="夹套" />
<el-option label="热交换器" value="热交换器" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="运行状态" prop="yunxingzhuangtai">
<el-input v-model="param.yunxingzhuangtai" type="input" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="登记机关" prop="dengjijiguan">
<el-select v-model="ysjl.dengjijiguan" filterable style="width: 100%;">
<el-option v-for="(item, index) in djjgs" :key="index" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="检验金额(元)" prop="jianyanheding">
<el-input-number v-model="ysjl.jianyanheding" :disabled="ysjl.retreatState === 2 && ysjl.jfState !== null && ysjl.jfState" :controls="false" style="width: 100%;" />
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>性能参数</legend>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="容积(换热面积)" prop="rongjileixing">
<el-select v-model="param.rongjileixing" style="width: 100px;" filterable default-first-option placeholder="请选择">
<el-option label="容积" value="容积" />
<el-option label="换热面积" value="换热面积" />
</el-select>
<el-input v-model="param.rongji" type="text" style="width: 160px;">
<template v-if="param.rongjileixing === '容积'" slot="append">
(m³)
</template>
<template v-else slot="append">
(m²)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="内径" prop="neijing">
<el-input v-model="param.neijing" type="text">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="设计压力" prop="shejiyali">
<el-input v-model="param.shejiyali" type="text" :disabled="edit">
<template slot="append">
(MPa)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="工作介质" prop="gongzuojiezhi">
<el-input v-model="param.gongzuojiezhi" type="text" :disabled="edit" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="设计温度" prop="shejiwendu">
<el-input v-model="param.shejiwendu" type="text" :disabled="edit">
<template slot="append">
(℃)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="最大充装量" prop="zuidachongzhuangliang">
<el-input v-model="param.zuidachongzhuangliang" type="text" :disabled="edit">
<template slot="append">
(kg)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>允许监控使用参数</legend>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="压力" prop="yali">
<el-input v-model="param.yali" type="text">
<template slot="append">
(MPa)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="温度" prop="wendu">
<el-input v-model="param.wendu" type="text">
<template slot="append">
(℃)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="介质" prop="jiezhi">
<el-input v-model="param.jiezhi" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="其他" prop="qita">
<el-input v-model="param.qita" type="text" />
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>检验信息</legend>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="检验依据" prop="jianyanyiju">
<el-input v-model="ysjl.jianyanyiju" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18" style="height: 90px">
<el-form-item label="问题及处理" prop="wentijizai">
<el-input v-model="param.wentijizai" :rows="3" type="textarea" placeholder="[检验发现的缺陷位置、性质、程度及处理意见(必要时附图或者附页,也可以直接注明见某项记录)]" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="检验结论" prop="jianyanjielun">
<el-select v-model="ysjl.jianyanjielun" :disabled="edit" type="text" placeholder="请选择" style="width:232px">
<el-option label="符合要求" value="符合要求" />
<el-option label="不符合要求" value="不符合要求" />
<el-option label="基本符合要求" value="基本符合要求" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="安全状况等级" prop="anquanzhuangkuangdengji">
<el-select v-model="ysjl.anquanzhuangkuangdengji" type="text" placeholder="请选择" style="width:232px">
<el-option label="1级" value="1级" />
<el-option label="2级" value="2级" />
<el-option label="3级" value="3级" />
<el-option label="4级" value="4级" />
<el-option label="5级" value="5级" />
<el-option label="—" value="—" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="检验开始日期" prop="jianyankaishiriqi">
<el-date-picker v-model="ysjl.jianyankaishiriqi" type="date" placeholder="选择日期" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="检验结束日期" prop="jianyanjieshuriqi">
<el-date-picker v-model="ysjl.jianyanjieshuriqi" type="date" placeholder="选择日期" style="width: 100%;" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="下次年度检验日期" prop="xiaciniandujianchariqi">
<el-date-picker v-model="param.xiaciniandujianchariqi" type="date" placeholder="选择日期" editable style="width: 100%;" value-format="yyyy-MM-dd" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="下次全面检验日期" prop="xiacijianyanriqi">
<el-date-picker v-model="ysjl.xiacijianyanriqi" type="date" placeholder="选择日期" editable style="width: 100%;" value-format="yyyy-MM-dd" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="选择科室" prop="departmentId">
<el-cascader
v-model="ysjl.departmentId"
:options="departmemtArr"
:props="{ value: 'id', label: 'name', checkStrictly: true }"
:show-all-levels="false"
@change="handleChange"
/>
</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 v-if="state !== 'bgView'" :span="9">
<sign-name :ysjl="ysjl" :jianyanrenyuan="jianyanrenyuan" @setSignValue="singNameValue" />
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18" style="height: 90px">
<el-form-item label="说明" prop="beizhu">
<el-input v-model="ysjl.beizhu" :rows="3" type="textarea" value="/" />
</el-form-item>
</el-col>
</el-row>
</fieldset>
</el-form>
</el-tab-pane>
<el-tab-pane :label="neibuleibieshencha" name="second">
<el-form ref="ysjl" :model="ysjl" class="el-form" label-position="right" label-width="130px">
<fieldset>
<legend>基本信息</legend>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="设计单位" prop="shejidanwei">
<el-input v-model="ysjl.shejidanwei" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="设计日期" prop="shejiriqi">
<el-date-picker v-model="ysjl.shejiriqi" type="date" value-format="yyyy年MM月dd日" placeholder="选择日期" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="产品标准" prop="chanpinbiaozhun">
<el-input v-model="param.chanpinbiaozhun" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="罐车图号" prop="rongqituhao">
<el-input v-model="param.rongqituhao" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="设计使用年限" prop="shejishiyongnianxian">
<el-input v-model="ysjl.shejishiyongnianxian" :disabled="true" type="text">
<template slot="append">
(年)
</template>
</el-input>
</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" :disabled="true" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="制造日期" prop="zhizaoriqi">
<el-date-picker v-model="ysjl.zhizaoriqi" type="date" value-format="yyyy年MM月dd日" placeholder="选择日期" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="产品编号" prop="chanpinbianhao">
<el-input v-model="ysjl.chanpinbianhao" type="text" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="监检证书编号" prop="shejixukezhengbianhao">
<el-input v-model="ysjl.shejixukezhengbianhao" type="text" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="(型式)试验证书编号" label-width="150px" prop="zhizaoxukezhengbianhao">
<el-input v-model="ysjl.zhizaoxukezhengbianhao" type="text" />
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>结构形式</legend>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="主体结构型式" prop="zhutijiegouxingshi">
<el-select v-model="param.zhutijiegouxingshi" filterable allow-create default-first-option placeholder="请选择">
<el-option label="单层" value="单层" />
<el-option label="夹套" value="夹套" />
<el-option label="热交换器" value="热交换器" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="安装型式" prop="anzhuangxingshi">
<el-select v-model="param.anzhuangxingshi" filterable allow-create default-first-option placeholder="请选择">
<el-option label="立式" value="立式" />
<el-option label="卧式" value="卧式" />
<el-option label="悬挂" value="悬挂" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="支座型式" prop="zhizuoxingshi">
<el-select v-model="param.zhizuoxingshi" filterable allow-create default-first-option placeholder="请选择">
<el-option label="鞍座" value="鞍座" />
<el-option label="鞍式" value="鞍式" />
<el-option label="腿式" value="腿式" />
<el-option label="耳式" value="耳式" />
<el-option label="支承" value="支承" />
<el-option label="裙座" value="裙座" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="保温绝热方式" prop="baowenjuerefangshi">
<el-select v-model="param.baowenjuerefangshi" filterable allow-create default-first-option placeholder="请选择">
<el-option label="真空绝热" value="真空绝热" />
<el-option label="真空粉末" value="真空粉末" />
<el-option label="保温层" value="保温层" />
<el-option label="无" value="无" />
</el-select>
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>性能参数</legend>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="容积(换热面积)" prop="rongjileixing">
<el-select v-model="param.rongjileixing" :disabled="true" style="width: 100px;" filterable default-first-option placeholder="请选择">
<el-option label="容积" value="容积" />
<el-option label="换热面积" value="换热面积" />
</el-select>
<el-input v-model="param.rongji" type="text" :disabled="true" style="width: 160px;">
<template v-if="param.rongjileixing === '容积'" slot="append">
(m³)
</template>
<template v-else slot="append">
(m²)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="内径" prop="neijing">
<el-input v-model="param.neijing" :disabled="true" type="text">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="长度" prop="chang">
<el-input v-model="param.chang" type="input">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="最大充装量" prop="zuidachongzhuangliang">
<el-input v-model="param.zuidachongzhuangliang" :disabled="true" type="text">
<template slot="append">
(kg)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="设计压力" prop="shejiyali">
<el-input v-model="param.shejiyali" type="text" :disabled="true">
<template slot="append">
(MPa)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="设计温度" prop="shejiwendu">
<el-input v-model="param.shejiwendu" type="text" :disabled="true">
<template slot="append">
(℃)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="工作压力" prop="shiyongyali">
<el-input v-model="param.yali" type="text" :disabled="true">
<template slot="append">
(MPa)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="工作温度" prop="shiyongwendu">
<el-input v-model="param.wendu" type="text" :disabled="true">
<template slot="append">
(℃)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="材料筒体" prop="caizhitongti">
<el-input v-model="param.caizhitongti" type="text" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="厚度筒体" prop="houdutongti">
<el-input v-model="param.houdutongti" type="text" :disabled="edit">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="材料封头" prop="caizhifengtou">
<el-input v-model="param.caizhifengtou" type="text" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="厚度封头" prop="houdufengtou">
<el-input v-model="param.houdufengtou" type="text" :disabled="edit">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="材料外壳筒体" prop="caizhijiatao">
<el-input v-model="param.caizhijiatao" type="text" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="厚度外壳筒体" prop="houdujiatao">
<el-input v-model="param.houdujiatao" type="text" :disabled="edit">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="材料外壳封头" prop="caizhichenli">
<el-input v-model="param.caizhichenli" type="text" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="厚度外壳封头" prop="houduchenli">
<el-input v-model="param.houduchenli" type="text" :disabled="edit">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="腐蚀裕量" prop="fushiyudu">
<el-input v-model="param.fushiyudu" type="text" :disabled="edit">
<template slot="append">
(mm)
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="介质" prop="jiezhi">
<el-input v-model="param.jiezhi" type="text" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>检验信息</legend>
<el-row :gutter="20">
<el-col :span="18" style="height: 90px">
<el-form-item label="资料审查情况" label-width="180px" style="margin-top: 15px" prop="ziliaoshenchaqingkuang">
<el-input v-model="param.ziliaoshenchaqingkuang" :rows="3" type="textarea" placeholder="记载发现的问题和变更情况" />
</el-form-item>
</el-col>
</el-row><br>
<el-row :gutter="20">
<el-col :span="18" style="height: 90px">
<el-form-item label="上次定期检验问题记载" label-width="180px" prop="shangciwentijizai">
<el-input v-model="param.shangciwentijizai" :rows="4" type="textarea" placeholder="" />
</el-form-item>
</el-col>
</el-row><br><br>
</fieldset>
</el-form>
</el-tab-pane>
<el-tab-pane :label="neibuleibieparam" name="fourth">
<el-table :data="qmjyData" :span-method="mergeCols" stripe style="width:80%">
<el-table-column type="index" align="center" width="50" label="序号" />
<el-table-column align="center" label="检验项目" width="200">
<el-table-column align="center" prop="jianyanxiang" label="检验项" width="100" />
<el-table-column align="center" prop="jianyanneirong" label="检验内容" />
</el-table-column>
<el-table-column align="center" prop="jianyanjieguo" label="检查结果" width="450">
<template slot-scope="scope">
<el-input v-model="scope.row.jianyanjieguo" :disabled="edit" placeholder="请输入内容" style="width:120px" />
<el-radio v-model="scope.row.jianyanjieguo" label="√">
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="×">
×
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="—">
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="无此项">
无此项
</el-radio>
</template>
</el-table-column>
<el-table-column align="center" prop="beizhu" label="备注">
<template slot-scope="scope">
<el-input v-model="scope.row.beizhu" :disabled="edit" name="hgjlBeizhu" placeholder="请输入内容" />
</template>
</el-table-column>
</el-table>
<el-table v-show="datashow" :data="qmjy2Data" :span-method="mergeCols" :show-header="false" stripe style="width:80%">
<el-table-column type="index" :index="indexMethod" align="center" width="50" style="height: 2px;" />
<el-table-column align="center" prop="jianyanxiang" width="100" />
<el-table-column align="center" prop="jianyanneirong" />
<el-table-column align="center" prop="jianyanjieguo" width="450">
<template slot-scope="scope">
<el-input v-model="scope.row.jianyanjieguo" :disabled="edit" placeholder="请输入内容" style="width:120px" />
<el-radio v-model="scope.row.jianyanjieguo" label="√">
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="×">
×
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="—">
</el-radio>
<el-radio v-model="scope.row.jianyanjieguo" label="无此项">
无此项
</el-radio>
</template>
</el-table-column>
<el-table-column align="center" prop="beizhu">
<template slot-scope="scope">
<el-input v-model="scope.row.beizhu" :disabled="edit" name="hgjlBeizhu" placeholder="请输入内容" />
</template>
</el-table-column>
</el-table>
<br><br>
<el-form ref="" class="el-form" label-position="right" label-width="130px">
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="说明" label-width="50px" prop="hgjybeizhu">
<el-input v-model="param.hgjybeizhu" :rows="4" type="textarea" placeholder="" />
</el-form-item>
</el-col>
</el-row><br><br>
</el-form>
</el-tab-pane>
</el-tabs>
<el-dialog :visible.sync="jyfaDialogVisible" title="添加检验方案" width="600px" @close="closeJyfaDialog">
<jyfa ref="jyfa" :info="info" @childMethod="getJyxm" />
</el-dialog>
<el-dialog :visible.sync="similarVisible" title="同类报告查看" :model="false" width="800px" @close="closeJyfaDialog">
<el-table ref="similarTable" :data="similarTableData" border style="width: 100%;" height="350">
<el-table-column align="center" label="报告类型" prop="bglx" min-width="50" />
<el-table-column align="left" label="检验项目" prop="jyxmLabel" width="200">
<template slot-scope="scope">
<div style="text-decoration:underline;cursor:pointer;" @click="editChild(scope.row.id, scope.row.jianyanxiangmu, departmentId)">
{{ scope.row.jyxmLabel }}
</div>
</template>
</el-table-column>
<el-table-column align="center" label="处理人" prop="renlingren" min-width="40" />
<el-table-column align="center" label="检验人员" prop="jianyanrenyuan" min-width="40" />
<el-table-column align="center" label="办结状态" prop="flowstatus" min-width="30">
<template slot-scope="scope">
<el-tag v-if="scope.row.flowstatus==='未办结'" type="danger">
未办结
</el-tag>
<el-tag v-if="scope.row.flowstatus==='已办结'" type="success">
已办结
</el-tag>
</template>
</el-table-column>
<el-table-column property="" label="操作" align="center" width="95">
<template slot-scope="scope">
<el-button type="primary" size="mini" title="删除检验方案" circle icon="el-icon-delete" @click="delYsjl(scope.row.jyxmLabel, scope.row.bglx, scope.row.id)" />
<el-button v-if="scope.row.bglx ==='分项检测' && scope.row.flowstatus === '未办结'" type="primary" size="mini" title="办结" circle icon="el-icon-check" @click="bjYsjl(scope.row.id, '1')" />
<el-button v-if="scope.row.bglx ==='分项检测' && scope.row.flowstatus === '已办结'" type="primary" size="mini" title="取消办结" circle icon="el-icon-close" @click="bjYsjl(scope.row.id, '0')" />
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import Sticky from '@/components/Sticky'
import SignName from '@/views/common/SignName'
import Utils from '../../../../../../utils/contact.js'
import jyfa from '@/views/ysjl/addJyfa'
import { getDepartmentTreeList } from '@/api/common'
export default {
name: 'RqDjGcYsjl',
components: { SignName, Sticky, jyfa },
props: {
},
data() {
return {
jlbh1: 'QC',
jlbh2: '(' + new Date().getFullYear() + ')',
jlbh3: '0001',
jlbh4: 'Q',
ysjl: {},
param: {},
state: this.$route.query.state,
jianyanrenyuan: '',
bianzhiren: '',
users: [],
departmentId: this.$route.query.departmentId,
isRepeat: false,
edit: false,
qmjyData: [],
qmjy2Data: [],
// 检验方案
jyfaDialogVisible: false,
info: {
modelId: this.$route.query.templateId,
sbzldm: this.$route.query.sbzldm,
sblbdm: this.$route.query.sblbdm,
ysjlId: this.$route.query.id,
departmentId: this.$route.query.departmentId,
jylb: this.$route.query.jylb,
nblb: this.$route.query.neibuleibie,
type: 'YSJL'
},
checkedTab: 'first',
// 表格合并相关
// 参与列合并的字段,在这里增加即可
cols: [
{
name: 'jianyanxiang', // 参与计算的列名,必须和el-table-column prop=''值一致
getValue(row) { // 该列用于比较的值的获取方法
return row.jianyanxiang
}
}
],
// 参与行内合并的字段
rows: [
{
name: 'jianyanxiang',
getValue(row) {
return row.jianyanxiang
}
}
],
value: '',
similarVisible: false,
similarTableData: [],
djjgs: ['无'],
departmemtArr: [],
neibuleibiejielun: '汽车罐车(罐式集装箱)定期检验结论记录',
neibuleibieshencha: '汽车罐车(罐式集装箱)资料审查记录',
neibuleibieparam: '汽车罐车(罐式集装箱)资料审查记录附页',
datashow: true,
jyxm: ''
}
},
computed: {
jilubianhao: function() {
if (this.state !== 'create') {
return this.ysjl.jilubianhao
}
return this.jlbh1 + this.jlbh2 + this.jlbh3 + '-' + this.jlbh4
}
},
watch: {
jilubianhao: function(newValue) {
this.judgeRepeat(newValue, this.ysjl.id)
}
},
created() {
// 1:年度检验报告附页;2:全面检验报告附页
if (this.state === 'create') {
this.initYsjl()
this.getJyxm(1)
} else {
this.getYsjl()
this.getParam()
const jyxmtable = [1, 2]
for (let i = 0; i < jyxmtable.length; i++) {
this.getJyxm(jyxmtable[i])
}
}
if (this.$route.query.departmentId !== null && this.$route.query.departmentId !== '') {
this.getUserList(this.$route.query.departmentId)
}
this.getArea()
this.getDepartmentArr()
},
methods: {
getDepartmentArr() {
getDepartmentTreeList().then(res => {
this.departmemtArr = res
})
},
handleChange(v) {
this.ysjl.departmentId = v[1]
},
initYsjl() {
this.api({
url: '/ysjl/initYsjl',
method: 'post',
data: {
templateId: this.$route.query.templateId,
renwuId: this.$route.query.renwuId,
neibuleibie: this.$route.query.neibuleibie,
sblbdm: this.$route.query.sblbdm,
sblbmc: this.$route.query.sblbmc,
sbpzdm: this.$route.query.sbpzdm,
sbpzmc: this.$route.query.sbpzmc
}
}).then(data => {
this.ysjl = data.ysjl
this.templateId = this.ysjl.departmentId
this.param = data.param ? data.param : {}
// const tempTime = new Date()
this.$set(this.ysjl, 'jianyankaishiriqi', this.dateFormat(new Date()))
this.$set(this.ysjl, 'jianyanjieshuriqi', this.dateFormat(new Date()))
// let xcjyrq = (tempTime.getFullYear() + 1) + '-' + (tempTime.getMonth() + 1) + '-' + tempTime.getDate()
// xcjyrq = new Date(xcjyrq)
// this.ysjl.xiacijianyanriqi = xcjyrq.setDate(xcjyrq.getDate() - 1)
this.$set(this.ysjl, 'bianzhiriqi', this.dateFormat(new Date()))
this.$set(this.ysjl, 'jianyanyiju', '《移动式压力容器安全技术监察规程》(TSG R0005)\n' + '《压力容器定期检验规则》(TSG R7001)')
this.$set(this.ysjl, 'shebeipinzhong', '汽车罐车')
this.$set(this.param, 'zhutijiegouxingshi', '单层')
this.ysjl.touyongriqi = '年 月'
this.param.shangcijianyanriqi = '年 月'
this.ysjl.bianzhiren = this.$store.getters.userId + ''
if (this.info.nblb === 'NJ') {
this.neibuleibiejielun = '汽车罐车(罐式集装箱)年度检验结论记录'
this.jlbh4 = 'N'
}
this.getMaxBh()
})
},
getYsjl() {
this.api({
url: '/ysjl',
method: 'get',
params: {
ysjlId: this.$route.query.id
}
}).then(data => {
this.ysjl = data
this.templateId = this.ysjl.departmentId
if (this.ysjl.jianyanrenyuan) {
this.jianyanrenyuan = this.common.convertCnName(this.ysjl.jianyanrenyuan)
}
if (this.ysjl.bianzhiren) {
this.bianzhiren = this.common.convertCnName(this.ysjl.bianzhiren)
}
// 查询最大记录编号
if (this.ysjl.jilubianhao) {
this.judgeRepeat(this.ysjl.jilubianhao, this.ysjl.id)
} else {
this.getMaxBh()
}
})
},
getParam() {
// 根据原始记录id查询参数
this.api({
url: '/ysjl/getParamByYsjlId',
method: 'get',
params: { ysjlId: this.$route.params.id, sbzldm: this.$route.query.sbzldm }
}).then(data => {
this.param = data
})
},
// 签名方法
singNameValue(data) {
this.jianyanrenyuan = data.name
this.ysjl.jianyanrenyuan = data.id
if (this.state !== 'create') {
this.common.signName(this.ysjl.id, this.ysjl.jianyanrenyuan)
}
},
getUserList(val) {
this.api({
url: '/user/getUserListByDepartmentId',
method: 'get',
params: {
departmentId: val
}
}).then(data => {
this.users = data
})
},
bzrChange(val) {
this.ysjl.bianzhiren = val
},
indexMethod(index) {
return index + 27
},
dateFormat() {
const year = new Date().getFullYear()
const month = new Date().getMonth() + 1 > 9 ? (new Date().getMonth() + 1).toString() : '0' + (new Date().getMonth() + 1)
const day = new Date().getDate() > 9 ? new Date().getDate().toString() : '0' + new Date().getDate()
return year + '-' + month + '-' + day
},
// 查询最大记录编号
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.judgeRepeat(data, this.ysjl.id)
})
},
// 查询检验项目
getJyxm(sort) {
let url = ''
let data = {}
if (this.state === 'create') {
url = '/jyxm/getCyJyxm'
data = {
templateId: this.$route.query.templateId,
order: sort
}
} else {
url = '/jyxm/getCyJyxmByYsjl'
data = {
ysjlId: this.$route.params.id,
isReport: false,
order: sort
}
}
this.api({
url: url,
method: 'get',
params: data
}).then(data => {
switch (sort) {
case 1:
if (this.$route.query.neibuleibie === 'NJ') {
if (this.state === 'create') {
for (let i = 0; i < data.length; i++) {
if (data[i].jianyanjieguo === '' || data[i].jianyanjieguo === null || data[i].jianyanjieguo === undefined) {
data[i].jianyanjieguo = '√'
}
}
}
this.qmjyData = data
this.tableJs.getData(this.cols, this.rows, data)
} else if (this.$route.query.neibuleibie === 'DQ' || this.$route.query.neibuleibie === 'SCDQ' || this.$route.query.neibuleibie === 'SC' || this.$route.query.neibuleibie === 'QM') {
if (this.state === 'create') {
for (let i = 0; i < data.length; i++) {
if (data[i].jianyanjieguo === '' || data[i].jianyanjieguo === null || data[i].jianyanjieguo === undefined) {
switch (i) {
case 6 : case 7 : case 8 :
data[i].jianyanjieguo = ' / mm'
break
case 9 :
data[i].jianyanjieguo = ' mm'
break
default :
data[i].jianyanjieguo = '√'
}
}
}
this.qmjyData = data.slice(0, 26)
this.tableJs.getData(this.cols, this.rows, this.qmjyData)
this.qmjy2Data = data.slice(26)
this.tableJs.getData(this.cols, this.rows, this.qmjy2Data)
} else {
this.qmjyData = data
this.tableJs.getData(this.cols, this.rows, data)
}
}
break
case 2:
this.qmjy2Data = data
this.tableJs.getData(this.cols, this.rows, this.qmjy2Data)
break
}
})
},
saveYsjl: function(operation) {
if (operation === 'add') {
if (this.jlbh3.trim() === '') {
this.$message({ message: '请先确认记录编号是否完整!', type: 'warning' })
return false
}
}
let type = ''
this.ysjl.bglx = 1
this.ysjl.cjState = 'ysjl'
this.ysjl.zfState = 0
this.ysjl.jianyanxiangmu = this.jyxm
this.ysjl.jlprintState = 0
this.ysjl.jigouhezhunzhenghao = process.env.VUE_APP_HZZBH
this.tableData = []
this.tableData.push(this.getProp(this.qmjyData))
this.tableData.push(this.getProp(this.qmjy2Data))
type = 'put'
if (operation === 'add') {
type = 'post'
this.ysjl.jilubianhao = this.jlbh1 + this.jlbh2 + '-' + this.jlbh3 + this.jlbh4
} else if (operation === 'build') {
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
}
// 判断分项原始记录是否办结
this.api({
url: '/ysjl/judgeState',
method: 'get',
params: {
ysjlIds: this.ysjl.id,
bglx: '2,3'
}
}).then(data => {
if (data === 0) {
this.$message.error('请先办结无损分项原始记录再生成报告!')
return false
}
})
}
if (this.isRepeat) {
this.$message({ message: '报告编号重复,请先修改报告编号再保存', type: 'error' })
return false
} else {
// 将报告编号一起填写
this.ysjl.baogaobianhao = this.ysjl.jilubianhao
this.$refs['ysjl'].validate(valid => {
if (valid) {
const jyxm = JSON.stringify(this.tableData)
this.api({
url: '/ysjl',
method: type,
data: {
ysjl: this.ysjl,
param: this.param,
cyJyxm: {
jyxm: jyxm,
bgjyxm: jyxm
}
}
}).then(data => {
Utils.$emit('bggl-daiban-list')
if (operation === 'add' && data !== '') {
Utils.$emit('task-list')
Utils.$emit('ysjl-db-list')
this.$message({ message: '保存成功', type: 'success' })
this.ysjl.id = data
this.param.ysjlId = data
// 刷新路由网址
this.$store.dispatch('delCurrentViews', {
view: this.$route,
$router: this.$router
})
this.$router.push({
path: '/ysjl/2000/2200/dj/edit/' + this.ysjl.id,
query: {
id: this.ysjl.id,
jyxm: this.ysjl.jianyanxiangmu,
departmentId: this.ysjl.departmentId,
jianyanrenyuan: this.ysjl.jianyanrenyuan,
state: 'update',
renwuId: this.ysjl.renwuId,
modelId: this.ysjl.modelId,
jylb: this.ysjl.jianyanleibie,
neibuleibie: this.ysjl.neibuleibie,
sbzldm: this.ysjl.shebeizhongleidaima,
sblbdm: this.ysjl.shebeileibiedaima,
sbpzdm: this.ysjl.shebeipinzhongdaima
}
})
} else if (operation === 'upd') {
this.$message({ message: '更新成功', type: 'success' })
} else {
Utils.$emit('ysjl-list')
Utils.$emit('ysjl-yb-list')
Utils.$emit('bggl-daiban-list')
// 修改16版任务状态
this.common.updRenwuState(this.ysjl.id, 2, true)
// 生成pdf
this.common.viewYsjlNoOpen(this.ysjl.id, 'YSJL')
this.$message({ message: '生成报告成功', type: 'success' })
this.$store.dispatch('delCurrentViews', {
view: this.$route,
$router: this.$router
})
}
this.info.ysjlId = this.ysjl.id
this.state = 'update'
})
}
})
}
},
judgeRepeat(bianhao, id) {
this.api({
url: '/ysjl/judgeRepeat',
method: 'get',
params: {
ysjlId: id,
bianhao: bianhao
}
}).then(data => {
this.isRepeat = data > 0
})
},
toAddJyfa() {
this.jyfaDialogVisible = true
},
// 查询同类报告
getJyfaInfo() {
this.api({
url: '/ysjl/getJyfaInfo',
method: 'get',
params: {
ysjlId: this.ysjl.id
}
}).then(data => {
this.similarTableData = data
this.similarVisible = true
})
},
closeJyfaDialog() {
this.jyfaDialogVisible = false
},
// 删除检验方案
delYsjl(jianyanxiangmu, bglx, ysjlId) {
this.$confirm('原始记录删除后将无法恢复,是否确认删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.api({
url: '/ysjl/delJyfa',
method: 'get',
params: {
ysjlId: ysjlId,
bglx: bglx,
jianyanxiangmu: jianyanxiangmu
}
}).then(() => {
this.$message({ message: '删除成功', type: 'success' })
this.getJyfaInfo()
this.$refs.jyfa.getJyfaInfo()
})
}).catch(e => {
this.$message({ message: '删除失败:' + e, type: 'error' })
})
},
// 办结分项原始记录 status:0:取消办结,1:办结
bjYsjl(ysjlId, status) {
this.api({
url: '/fx/endFx',
method: 'get',
params: {
ysjlId: ysjlId,
status: status
}
}).then(() => {
this.getJyfaInfo()
if (status === '0') {
this.$message({ message: '取消办结成功', type: 'success' })
} else if (status === '1') {
this.$message({ message: '办结成功', type: 'success' })
}
})
},
editChild(id, jianyanxiangmu, departmentId) {
this.$router.push({ path: '/ysjl/2000/2200/' + jianyanxiangmu, query: { id: id, jyxm: jianyanxiangmu, departmentId: departmentId }})
this.similarVisible = false
},
// 获取表格中的id, 不为空的检验结果和备注
getProp: function(data) {
const retData = []
for (let i = 0; i < data.length; i++) {
const retRow = {}
retRow.id = data[i].id
retRow.jianyanjieguo = data[i].jianyanjieguo
retRow.beizhu = data[i].beizhu
retData.push(retRow)
}
return retData
},
mergeCols({ row, column, rowIndex }) {
for (const j in row.cellRowSpans) {
const _c = row.cellRowSpans[j]
// 列属性匹配
if (_c.colProperty === column.property) {
// 若合并表指向本单元格则构建合并参数并返回
if (_c.rowIndex === rowIndex) {
return {
rowspan: _c.rowSpan,
colspan: _c.colSpan
}
} else {
return {
rowspan: 1,
colspan: 1
}
}
}
}
// 行间合并
for (var i in row.cellSpans) {
var _r = row.cellSpans[i]
// 列属性匹配
if (_r.colProperty === column.property) {
// 若合并表指向本单元格则构建合并参数并返回
if (_r.rowIndex === rowIndex) {
return {
rowspan: _r.rowSpan,
colspan: _r.colSpan
}
} else { // 否则隐藏该单元格。这里必须有,否则单元格会被右移一列
return {
rowspan: 0,
colspan: 0
}
}
}
}
},
/**
* 查询区划
*/
getArea() {
this.api({
url: '/area/getShiArea',
method: 'get',
params: {
shidaima: '370100'
}
}).then(data => {
data.forEach(area => {
this.djjgs.push(area.label + '市场监督管理局')
})
})
}
}
}
</script>