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.
 
 
 
 

601 lines
17 KiB

<!--壁厚测定-->
<template>
<div class="app-container">
<sticky style="margin-bottom: 10px">
<btn ref="btn" />
</sticky>
<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="9">
<el-form-item label="记录编号" prop="jilubianhao">
<el-input v-model="ysjl.jilubianhao" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="测量仪器型号" prop="celiangyiqixinghao">
<el-input v-model="param.celiangyiqixinghao" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="测量仪器编号" prop="celiangyiqibianhao">
<el-input v-model="param.celiangyiqibianhao" :disabled="edit" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item
label="测量仪器精度"
label-width="135px"
prop="celiangyiqijingdu"
>
<el-input v-model="param.celiangyiqijingdu" :disabled="edit" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="耦合剂" prop="ouheji">
<el-select
v-model="param.ouheji"
:disabled="edit"
style="width: 100%"
filterable
allow-create
default-first-option
>
<el-option label="机油" value="机油" />
<el-option
label="TM-100 型医用超声耦合剂"
value="TM-100 型医用超声耦合剂"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="厚度-筒体" prop="tongtimingyihoudu">
<el-input v-model="param.tongtimingyihoudu" :disabled="edit">
<template slot="append">
mm
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="实测最小值-筒体" prop="tongtizuixiaobihou">
<el-input v-model="param.tongtizuixiaobihou" :disabled="edit">
<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="fengtoumingyihoudu">
<el-input v-model="param.fengtoumingyihoudu" :disabled="edit">
<template slot="append">
mm
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="实测最小值-封头" prop="fengtouzuixiaobihou">
<el-input v-model="param.fengtouzuixiaobihou" :disabled="edit">
<template slot="append">
mm
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-input
v-model="param.myhdqtone"
:disabled="edit"
style="width: 130px"
/>
<el-input
v-model="param.myhdqtzone"
:disabled="edit"
style="width: 225px"
/>
</el-col>
<el-col :span="9">
<el-input
v-model="param.zxbhqtone"
:disabled="edit"
style="width: 130px"
/>
<el-input
v-model="param.zxbhqtzone"
:disabled="edit"
style="width: 225px"
/>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-input
v-model="param.myhdqttwo"
:disabled="edit"
style="width: 130px"
/>
<el-input
v-model="param.myhdqtztwo"
:disabled="edit"
style="width: 225px"
/>
</el-col>
<el-col :span="9">
<el-input
v-model="param.zxbhqttwo"
:disabled="edit"
style="width: 130px"
/>
<el-input
v-model="param.zxbhqtztwo"
:disabled="edit"
style="width: 225px"
/>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item label="表面状况" prop="biaomianzhuangkuang">
<el-select
v-model="param.biaomianzhuangkuang"
:disabled="edit"
filterable
allow-create
default-first-option
style="width: 100%"
>
<el-option label="金属光泽" value="金属光泽" />
<el-option label="原始表面" value="原始表面" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="实测点数" prop="shicedianshu">
<el-input v-model="param.shicedianshu" :disabled="true">
<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="shicebuwei">
<el-input v-model="param.shicebuwei" :disabled="true">
<template slot="append">
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</fieldset>
<fieldset>
<legend>测厚记录</legend>
<el-button
type="success"
icon="el-icon-download"
size="mini"
style="margin-right: 10px"
@click="
common.downloadTemplate('压力容器定期检验壁厚测定记录表.xlsx')
"
>
下载导入模板
</el-button>
<el-upload
:show-file-list="false"
:before-upload="uploadTableData"
style="float: left; margin-right: 10px"
action="123"
>
<el-button
type="primary"
size="mini"
icon="el-icon-upload"
:disabled="edit"
>
导入数据
</el-button>
</el-upload>
<el-button
v-if="state !== 'bgView'"
type="success"
size="mini"
icon="el-icon-circle-plus-outline"
:disabled="edit"
@click="addChRow()"
>
添加
</el-button>
<el-button
v-if="state !== 'bgView'"
type="danger"
size="mini"
icon="el-icon-remove-outline"
:disabled="edit"
@click="delChRow()"
>
删除
</el-button>
<el-table
id="myTable"
ref="tableData"
:data="tableData"
:row-class-name="tableRowClassName"
border
stripe
style="width: 100%; margin-top: 5px"
@row-click="onRowClick"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40" />
<el-table-column
type="index"
width="50"
label="序号"
align="center"
/>
<el-table-column
align="center"
prop="C1"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C1" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C2"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C2" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C3"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C3" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C4"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C4" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C5"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C5" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C6"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C6" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C7"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C7" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C8"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C8" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C9"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C9" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C10"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C10" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C11"
width="80px"
label="测点编号"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C11" :disabled="edit" size="mini" />
</template>
</el-table-column>
<el-table-column
align="center"
prop="C12"
width="80px"
label="测点厚度"
>
<template slot-scope="scope">
<el-input v-model="scope.row.C12" :disabled="edit" size="mini" />
</template>
</el-table-column>
</el-table>
</fieldset>
<fieldset>
<legend>检验信息</legend>
<el-row :gutter="20">
<el-col :span="9">
<el-form-item
label="检验日期"
label-width="135px"
prop="jianyanjieshuriqi"
>
<el-date-picker
v-model="ysjl.jianyanjieshuriqi"
:disabled="edit"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="测定结果" prop="jiancejieguo">
<el-input
v-model="param.jiancejieguo"
:disabled="edit"
type="textarea"
rows="4"
style="width: 800px"
/>
</el-form-item>
<el-form-item label="" prop="jianyanrenyuan" style="display: none">
<el-input v-model="ysjl.jianyanrenyuan" type="text" />
</el-form-item>
</fieldset>
</el-form>
</div>
</template>
<script>
import Sticky from '@/components/Sticky'
import btn from '@/views/common/FxButton'
export default {
name: 'RqZbgBhcd2100',
components: { Sticky, btn },
data() {
return {
ysjl: {},
param: {},
tableData: [],
delRowIndex: [],
state: '',
edit: false,
info: {
ysjlId: this.$route.query.id,
jyxm: this.$route.query.jyxm,
limit: 1
}
}
},
watch: {
tableData: {
handler(n, o) {
const arr = []
if (n.length > 0) {
for (let i = 0; i < n.length; i++) {
for (const k in n[i]) {
if (n[i][k] !== ' ') {
arr.push(n[i][k])
}
}
}
}
const arr2 = []
arr.map((item) => {
if (item !== '') {
arr2.push(item)
}
})
this.param.shicedianshu = arr2.length - n.length
},
deep: true,
immediate: true
}
},
created() {
this.getInfo()
},
methods: {
getInfo() {
this.api({
url: '/fx',
method: 'get',
params: {
ysjlId: this.$route.query.id,
jyxm: this.$route.query.jyxm
}
}).then((data) => {
this.ysjl = data.ysjl
this.state = 'create'
if (data.param !== null && data.param !== undefined) {
// 有无损原始记录参数
this.state = 'update'
this.param = data.param
this.param.celiangyiqibianhao = this.param.celiangyiqibianhao
? this.param.celiangyiqibianhao
: '02-06-'
this.param.celiangyiqijingdu = this.param.celiangyiqijingdu
? this.param.celiangyiqijingdu
: '±0.1mm'
this.tableData =
JSON.parse(data.param.fubiao) === null
? JSON.parse('[]')
: JSON.parse(data.param.fubiao)
} else {
this.param = {
celiangyiqibianhao: '02-06-',
celiangyiqijingdu: '0.1mm',
ouheji: 'TM-100 型医用超声耦合剂',
biaomianzhuangkuang: '金属光泽',
jiancejieguo: '符合设计要求。',
myhdqtone: '无此项',
myhdqtzone: '无此项',
zxbhqtone: '无此项',
zxbhqtzone: '无此项',
myhdqttwo: '无此项',
myhdqtztwo: '无此项',
zxbhqttwo: '无此项',
zxbhqtztwo: '无此项'
}
}
if (this.ysjl.flowstatus === 4) {
this.state = 'finish'
this.edit = true
}
this.$refs.btn.getParentInfo(
this.ysjl,
this.param,
null,
this.tableData,
this.state,
this.$route.query.jyxm,
true,
false
)
})
},
addChRow: function() {
const d = {
C1: '',
C2: '',
C3: '',
C4: '',
C5: '',
C6: '',
C7: '',
C8: '',
C9: '',
C10: '',
C11: '',
C12: ''
}
this.tableData.push(d)
setTimeout(() => {
this.$refs.tableData.setCurrentRow(d)
}, 10) // 用于延时渲染后选中这行
},
delChRow: function() {
if (this.delRowIndex.length === 0) {
this.$message({
type: 'error',
message: '请选中需要删除的数据!'
})
return false
} else {
// 对delRowIndex进行排序,因为删除一个元素后index值会变
this.delRowIndex.sort(function(x, y) {
if (x < y) {
return 1
}
if (x > y) {
return -1
}
return 0
})
for (let i = 0; i < this.delRowIndex.length; i++) {
this.tableData.splice(this.delRowIndex[i], 1)
}
this.$refs.tableData.clearSelection()
this.delRowIndex = []
}
},
// 表格单击选中行
onRowClick(row) {
this.$refs.tableData.toggleRowSelection(row)
},
tableRowClassName({ row, rowIndex }) {
row.index = rowIndex
},
handleSelectionChange(val) {
this.delRowIndex = []
for (let i = 0; i < val.length; i++) {
this.delRowIndex.push(val[i].index)
}
},
// 上传数据
uploadTableData(file) {
this.common.uploadTableData(file, this.tableData)
},
/**
* 数据构建
*/
beforeSaveBuildData() {
// TODO
}
}
}
</script>
<style>
#myTable .el-input__inner {
padding: 0px 5px;
text-align: center;
}
</style>