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.
589 lines
17 KiB
589 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,
|
|
},
|
|
};
|
|
},
|
|
created() {
|
|
this.getInfo();
|
|
},
|
|
watch: {
|
|
tableData: {
|
|
handler(n, o) {
|
|
let arr = [];
|
|
if (n.length > 0) {
|
|
for (let i = 0; i < n.length; i++) {
|
|
for (let k in n[i]) {
|
|
if (n[i][k] !== " ") {
|
|
arr.push(n[i][k]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let arr2 = [];
|
|
arr.map((item) => {
|
|
if (item !== "") {
|
|
arr2.push(item);
|
|
}
|
|
});
|
|
this.param.shicedianshu = arr2.length - n.length;
|
|
},
|
|
deep: true,
|
|
immediate: true,
|
|
},
|
|
},
|
|
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>
|
|
|