<template>
|
<div class="content-main">
|
<div v-if="!showAddPage && !showUp && !showLook" class="rawPage">
|
<div class="title">
|
<el-row>
|
<el-col :span="12">过程检验</el-col>
|
<el-col :span="12" style="text-align: right;">
|
<el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus"
|
style="background: #004EA2; ">新增</el-button>
|
<el-button icon="el-icon-download" size="mini">导出</el-button>
|
<el-button @click="report" icon="el-icon-download" size="mini">生成报告</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="nav">
|
<span>检验状态:</span>
|
<el-select size="small" v-model="search.result" placeholder="请选择检测状态" style="width: 224px;margin-right: 52px;">
|
<el-option :value="''" label="全部"></el-option>
|
<el-option :value="1" label="合格"></el-option>
|
<el-option :value="0" label="不合格"></el-option>
|
</el-select>
|
<span>产品名称:</span>
|
<el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name"
|
placeholder="请输入产品名称"></el-input>
|
<span>工序:</span>
|
<el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather"
|
placeholder="请输入工序"></el-input>
|
<el-button size="mini"><span>重 置</span></el-button>
|
<el-button size="mini" @click="searchPro" type="primary" style="background: #004EA2;"><span>查 询</span></el-button>
|
</div>
|
<div class="content-body">
|
<div class="inspectionTable">
|
<el-table ref="inspectionTable" height="calc(100vh - 320px)" :cell-style="{ textAlign: 'center' }"
|
:header-cell-style="{
|
border: '0px',
|
background: '#f5f7fa',
|
color: '#606266',
|
boxShadow: 'inset 0 1px 0 #ebeef5',
|
textAlign: 'center'
|
}" border :data="inspectionTable" style="width: 100%">
|
<el-table-column type="selection" width="50"> </el-table-column>
|
<el-table-column label="序号" type="index" width="60"></el-table-column>
|
<el-table-column prop="order_number" label="订单编号" min-width="90" />
|
<el-table-column prop="material" label="产品名称" min-width="80" />
|
<el-table-column prop="specifications_model" label="规格型号" min-width="60" />
|
<el-table-column prop="techfather" label="工序" min-width="70" />
|
<el-table-column prop="techname" label="工艺名称" min-width="70" />
|
<el-table-column prop="unit" label="单位" min-width="50" />
|
<el-table-column prop="quantity" label="数量" min-width="50" />
|
<el-table-column prop="createTime" label="报检日期" min-width="60" />
|
<el-table-column prop="name" label="报检人" min-width="50" />
|
<el-table-column prop="updateTime" label="检测日期" min-width="60" />
|
<el-table-column prop="result" label="合格状态" min-width="80">
|
<template slot-scope="scope">
|
<span style="color: #34BD66;" v-if="scope.row.result == 1">合格</span>
|
<span style="color: #E84738;" v-else-if="scope.row.result == 0">不合格</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" min-width="80">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="handleClick(scope.row)" style="margin-left: 0;">详情</el-button>
|
<el-button type="text" size="small">查看</el-button>
|
<el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;"
|
@click="updateInsInfo(scope.row)">编辑</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<!-- 分页器 -->
|
<div class="pagination">
|
<el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
|
layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange"
|
@current-change="handleCurrentChange" />
|
</div>
|
</div>
|
</div>
|
<div class="newPage" v-if="showAddPage">
|
<!-- 新增页面 -->
|
<div class="addInspection">
|
<el-row class="header">
|
<el-col :span="12">新增过程检验单</el-col>
|
<el-col :span="12" style="text-align: right;">
|
<!-- 点击返回,当前页面值为false -->
|
<!-- <el-button type="primary" size="mini" style="background: #004EA2; "
|
icon="el-icon-circle-plus-outline">新增</el-button> -->
|
<el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back"
|
style="background: #004EA2; ">返回</el-button>
|
</el-col>
|
</el-row>
|
<el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right"
|
label-width="120px" size="small">
|
<div class="formwrapper">
|
<el-row :gutter="230">
|
<el-col :span="7">
|
<el-form-item label="订单号:">
|
<el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small"
|
v-model="processInspectVo.orderNumber" placeholder="请输入订单号" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="7">
|
<el-form-item label="产品名称:">
|
<el-select style="width: 210px;" size="small" @change="selectSample" v-model="processInspectVo.material"
|
placeholder="请选择产品">
|
<el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="7">
|
<el-form-item label="产品编码:">
|
<el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
|
placeholder="请输入产品编码" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="230">
|
<el-col :span="7">
|
<el-form-item label="规格型号:">
|
<el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel"
|
placeholder="请输入规格型号" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="7">
|
<el-form-item label="工序名称:">
|
<el-select @change="changeOptionSoptionSprocesses" v-model="processInspectVo.techfather"
|
placeholder="请选择" style="width: 210px;" size="small">
|
<el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="7">
|
<el-form-item label="工艺名称:">
|
<el-select v-model="processInspectVo.techname" placeholder="请选择" style="width: 210px;" size="small">
|
<el-option v-for="item in optionTechnology" :key="item.id" :label="item.name"
|
:value="item.id + '-' + item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="230">
|
<el-col :span="7">
|
<el-form-item label="单位:">
|
<el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit"
|
placeholder="请输入单位" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="7">
|
<el-form-item label="数量:">
|
<el-input style="width: 210px;" size="small" v-model="processInspectVo.quantity" placeholder="请输入数量" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="10" style="display: flex;justify-content: end;">
|
<el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">生成检验项目</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
</el-form>
|
</div>
|
<div class="inspectionProject">
|
<el-row>
|
<el-col :span="12" class="inspectionProject_span">检验项目</el-col>
|
<el-col :span="12" class="inspectionProject_span">
|
<el-button size="mini" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
|
<el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">添加检验值列</el-button>
|
<!-- <el-button
|
size="mini"
|
style="margin-right: 30px;"
|
@click="clickAddLine()"
|
>添加检验行</el-button
|
> -->
|
</el-col>
|
</el-row>
|
<el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod"
|
height="calc(100vh - 550px)" style="width: 100%">
|
<el-table-column type="index" label="序号" width="60"></el-table-column>
|
<el-table-column label="项目" prop="father"></el-table-column>
|
<el-table-column prop="name" label="指标"></el-table-column>
|
<el-table-column prop="unit" label="单位"></el-table-column>
|
<el-table-column prop="required" label="标准值"></el-table-column>
|
<el-table-column prop="internal" label="内测值"></el-table-column>
|
<el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="检测值"
|
min-width="100" style="text-align: center;">
|
<template slot-scope="scope">
|
<el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="请先选择设备!"
|
placement="top-start">
|
<el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
|
@blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
|
</el-tooltip>
|
</template>
|
</el-table-column>
|
<el-table-column prop="dname" label="试验设备" min-width="100">
|
<template slot-scope="scope">
|
<el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
|
scope.row.dname == null ? "请选择" : scope.row.dname
|
}}</el-button>
|
<el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)"
|
v-model="filterText" placeholder="请选择">
|
<el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
|
</el-option>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column label="结论">
|
<template slot-scope="scope">
|
<span style="color: #34BD66;" v-if="scope.row.result === 1">合格</span>
|
<span style="color: #E84738;" v-else-if="scope.row.result === 0">不合格</span>
|
<span v-show="scope.row.result === null">暂未结论</span>
|
</template>
|
</el-table-column>
|
<!-- <el-table-column v-if="detailId == null" label="操作" width="100">
|
<template slot-scope="scope">
|
<el-button type="text" @click="clickDeleteline(scope)">删除</el-button>
|
</template>
|
</el-table-column> -->
|
</el-table>
|
</div>
|
<div class="inspectionResult">
|
<span>检测结果</span>
|
<el-table :data="inspectionResultForm">
|
<el-table-column prop="id" label="物料编号"></el-table-column>
|
<el-table-column prop="name" label="物料名称"></el-table-column>
|
<el-table-column prop="inspecter" label="检验员"></el-table-column>
|
<el-table-column prop="conclusion" label="检验结论"></el-table-column>
|
<el-table-column prop="operation" label="上报"></el-table-column>
|
</el-table>
|
</div>
|
<el-dialog title="请选择设备" :visible.sync="centerDialogVisible" width="20%">
|
<div class="div_device_dialog">
|
<el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="请选择">
|
<el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
</el-dialog>
|
</div>
|
<div class="newPage" v-if="showUp">
|
<processInspectionUpdate :rowInfo="rowInfp" />
|
</div>
|
<div class="newPage" v-if="showLook">
|
<processInspectionLook :rowInfo="rowInfp" />
|
</div>
|
<!-- <div class="newPage" v-if="reportlook">
|
<index />
|
</div> -->
|
<el-dialog
|
title="过程检验报告" :visible.sync="reportlook" width="40%">
|
<template>
|
<div ref="print">
|
|
<div style="margin:0 auto;">
|
<!-- <div style="text-align:center;margin-top:10px;">过程检验报告</div> -->
|
<table class="table table-striped table-bordered" align="center" border style="width: 100%;height: 700px;" valign="center">
|
<tr>
|
<td class="column" colspan="2" rowspan="2" > </td>
|
<td class="column" colspan="2" ><p>记录名称:检验记录表</p>Table: Inspection Record</td>
|
<td class="column" colspan="2"><p>保存期限:25年</p> Storage Life: 25 years</td>
|
</tr>
|
<tr>
|
<td class="column" colspan="2" > 记录编号</td>
|
<td class="column" colspan="2" > 归档部门</td>
|
</tr>
|
<tr>
|
<td class="column"><p>零件名称</p> Part Description</td>
|
<td class="value"></td>
|
<td class="column"><p>型号</p> Model</td>
|
<td class="value"></td>
|
<td class="column"><p>加工单号</p> Order No</td>
|
<td class="value"></td>
|
</tr>
|
<tr>
|
<td class="column"><p>检验仪器</p> Inspection instrument</td>
|
<td class="value"></td>
|
<td class="column"><p>检验数量</p> Quantity to check</td>
|
<td class="value"></td>
|
<td class="column"><p>供货单位</p> Supplier</td>
|
<td class="value"></td>
|
</tr>
|
<tr>
|
<td class="column"><p>检验项目</p> Inspection Item</td>
|
|
<td class="column" colspan="3"><p><p>检验结果(实测值)</p> Test result (Measured value)</p></td>
|
|
<td class="column" rowspan="2" colspan="2"><p>判定</p> Conclusion</td>
|
</tr>
|
<tr>
|
<td class="column"><p>技术要求</p> Technical Requirement</td>
|
<td class="column"><p>公差</p> TOL</td>
|
<!-- <td class="daughter" >01</td> -->
|
</tr>
|
<tr>
|
<td class="column" rowspan="9" colspan="0.5">尺寸</td>
|
<td class="value" ></td>
|
<td class="column"></td>
|
<td class="value" ></td>
|
|
</tr>
|
<tr>
|
<td class="column"></td>
|
<td class="value" colspan="3"></td>
|
<td class="column"></td>
|
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
|
<tr>
|
<td class="column" colspan="6"></td>
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
<tr>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
<td class="value" colspan="2"></td>
|
</tr>
|
|
<tr>
|
<td class="column">材质</td>
|
<td class="value" colspan="5"></td>
|
</tr>
|
<tr >
|
<td class="column" >外观性能</td>
|
<td class="value" colspan="5" style="text-align:left;">
|
<br>
|
<br>
|
<br>
|
<br>
|
</td>
|
</tr>
|
<tr>
|
<td class="column">备注</td>
|
<td class="value" colspan="5">
|
<br>
|
<br>
|
<br>
|
<br>
|
</td>
|
</tr>
|
|
|
</table>
|
</div>
|
</div>
|
</template>
|
</el-dialog>`
|
</div>
|
</template>
|
|
<script>
|
import processInspectionUpdate from '../view/processInspectionUpdate.vue'
|
import processInspectionLook from '../view/processInspectionLook.vue'
|
// import index from '../view/report/index.vue'
|
export default {
|
components: {
|
processInspectionUpdate,
|
processInspectionLook,
|
// index
|
},
|
data() {
|
return {
|
showUp: false,
|
isAddProject: false,
|
showLook: false,
|
reportlook: false,
|
detailId: 28,
|
rowInfp: {},
|
search: {
|
countSize: 10,
|
pageSize: 1,
|
result: "", // 检测状态
|
name: "", // 产品名称
|
techfather: "" // 工序
|
},
|
optionsSamplename: [],
|
inspectionTable: [],
|
tableColumn: [],
|
optionSoptionSprocesses: [],
|
optionTechnology: [],
|
inspectionTableTotal: 0,
|
pageSize: 10,
|
currentPage: 1,
|
treeProject: [],
|
// 添加列
|
empiricalValueAdd: 1,
|
// 编辑时存储最长的列数字,做删除判断
|
empiricalValueAddMaxNumber: 0,
|
showAddPage: false,
|
processInspectVo: {
|
material: null,
|
materialCode: null,
|
orderNumber: "",
|
quantity: null,
|
specificationsModel: null,
|
techfather: null,
|
techname: null,
|
technologyId: null,
|
unit: null
|
},
|
InspectioniD: null,
|
addInspectionform: [
|
{
|
number: "",
|
username: "",
|
projectname: "",
|
tracenumber: "",
|
code: "",
|
class: "",
|
specificationmodel: "",
|
unit: "",
|
quantity: "",
|
group: "",
|
worker: "",
|
machine: ""
|
}]
|
,
|
inspectionItems: [], // 新增检验项目表格
|
inspectionResultForm: [
|
{
|
id: "",
|
name: "",
|
inspecter: "",
|
conclusion: "",
|
operation: ""
|
}
|
],
|
options: [],
|
value: "",
|
rowList: [],
|
spanArr: [],
|
position: 0,
|
// 设备选择树显示
|
centerDialogVisible: false,
|
filterText: "",
|
materialOptions: [],
|
defaultProps: {
|
// 设备树数据设置
|
children: "children",
|
label: "name"
|
},
|
nodeData: {
|
id: 0,
|
name: null
|
}, // node点击保存当前点击数据
|
clickSelectDevice: {
|
index: null, // 点击选择存储当前行索引
|
rpId: null // 点击选择存储当前行项目Id
|
}
|
};
|
},
|
watch: {
|
// filterText(val) {
|
// this.$refs.tree.filter(val);
|
// }
|
},
|
mounted() {
|
// this.getTableData()
|
// this.getOptions();
|
},
|
methods: {
|
report() {
|
this.reportlook = true
|
// this.$nextTick(() => {
|
// this.$print(this.$refs.print);
|
// })
|
},
|
handleClick(row) {
|
this.rowInfp = row
|
this.showLook = true
|
},
|
combackIndex() {
|
this.showAddPage = false
|
this.defaultInitializationTable()
|
},
|
updateInsInfo(row) {
|
this.rowInfp = row
|
this.showUp = true
|
},
|
combackMain(val) {
|
this.showUp = false
|
this.showLook = false
|
this.defaultInitializationTable(); // 初始化表格数据
|
if (val) {
|
this.$parent.removeAllTab()
|
}
|
},
|
searchPro() {
|
this.search.countSize = this.pageSize
|
this.search.pageSize = this.currentPage
|
this.defaultInitializationTable()
|
},
|
// 点击设备树保存点击记录
|
nodeClick(data) {
|
if (data.id != undefined) this.nodeData = data;
|
},
|
// 设备树过滤搜索
|
filterNode(value, data) {
|
if (!value) return true;
|
return data.name.indexOf(value) !== -1;
|
},
|
// 获取设备树内容
|
getOptions(row) {
|
this.$axios.get(this.$api.url.inspectionItemChooseDev, {
|
params: {
|
father: row.father,
|
name: row.name,
|
technologyId: this.processInspectVo.technologyId
|
}
|
}).then(res => {
|
this.materialOptions = res.data;
|
if (this.materialOptions.length === 1) {
|
this.$message({
|
message: '该项目下只有一个试验设备,无需选择!',
|
type: 'warning'
|
});
|
return
|
}
|
row.isSelectDevice = true
|
this.filterText = row.did
|
});
|
},
|
// 点击表格选择触发
|
clickTableSelect(scope) {
|
// this.centerDialogVisible = true;
|
if (this.clickSelectDevice.index != null) {
|
this.$set(this.inspectionItems[this.clickSelectDevice.index], 'isSelectDevice', false)
|
}
|
this.clickSelectDevice.index = scope.$index;
|
this.clickSelectDevice.rpId = scope.row.id;
|
this.getOptions(scope.row)
|
},
|
// 点击树里面的确定
|
clickNodeSure() {
|
let select = this.materialOptions.filter(item => {
|
return item.id === this.filterText
|
})[0]
|
this.nodeData.id = select.id
|
this.nodeData.name = select.device
|
if (this.detailId == null) {
|
this.inspectionItems[
|
this.clickSelectDevice.index
|
].did = this.nodeData.id;
|
this.inspectionItems[
|
this.clickSelectDevice.index
|
].dname = this.nodeData.name;
|
this.centerDialogVisible = false;
|
} else {
|
this.$axios
|
.post(this.$api.url.inspectionItemUpdateDevByInsId, {
|
id: this.clickSelectDevice.rpId,
|
type: 1,
|
devId: this.nodeData.id
|
})
|
.then(res => {
|
this.getTableData()
|
this.centerDialogVisible = false;
|
});
|
}
|
},
|
changeState(row, index) {
|
if (row.did != null && row.did != '') {
|
// let val = row.empiricalValueAddss.filter(item => {
|
// return item != '' && item != null
|
// })
|
// let eq = val.filter(item => {
|
// return /^[^><=]/.test(item)
|
// })
|
// if (eq.length > 0) {
|
// this.$message({
|
// message: "检测值[" + eq + "]格式首位应包含>,<或者=",
|
// type: 'warning'
|
// });
|
// return
|
// }
|
let str = ""
|
row.empiricalValueAddss.forEach(e => {
|
str += e + ","
|
})
|
if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
|
return
|
}
|
this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
|
deviceId: row.did,
|
inspectionItemId: row.id,
|
inspectionValue: str.slice(0, -1)
|
}, {
|
headers: { "Content-Type": "application/json" }
|
}).then(res => {
|
if (res.message === '内控值输入格式有问题!') {
|
this.$message({
|
message: res.message,
|
type: 'warning'
|
});
|
return
|
}
|
row.result = res.data.result
|
row.username = res.data.username
|
})
|
} else {
|
this.$message({
|
message: '请选择择设备!',
|
type: 'warning'
|
});
|
}
|
},
|
// 每页条数改变时触发 选择一页显示多少行
|
handleSizeChange(val) {
|
this.search.countSize = val;
|
this.defaultInitializationTable();
|
},
|
handleSpanMethod({ row, column, rowIndex, columnIndex }) {
|
if (columnIndex === 0) {
|
const _row = this.spanArr[rowIndex];
|
const _col = _row > 0 ? 1 : 0;
|
return {
|
rowspan: _row,
|
colspan: _col
|
}
|
}
|
if (columnIndex === 1) {
|
const _row = this.spanArr[rowIndex];
|
const _col = _row > 0 ? 1 : 0;
|
return {
|
rowspan: _row,
|
colspan: _col
|
}
|
}
|
},
|
// 合并表格
|
mergeTable() {
|
this.rowList = []
|
this.spanArr = []
|
this.position = 0
|
this.inspectionItems.forEach((item, index) => {
|
if (index === 0) {
|
this.spanArr.push(1);
|
this.position = 0;
|
} else {
|
if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
|
this.spanArr[this.position] += 1;
|
this.spanArr.push(0);
|
} else {
|
this.spanArr.push(1);
|
this.position = index;
|
}
|
}
|
})
|
},
|
changeOptionSoptionSprocesses() {
|
this.optionTechnology = []
|
let working = this.optionSoptionSprocesses.filter(item => {
|
return item.name === this.processInspectVo.techfather
|
})[0]
|
this.optionTechnology = working.children
|
},
|
addTestProjevt() {
|
let val = JSON.parse(JSON.stringify(this.processInspectVo))
|
val.techname = this.processInspectVo.techname.split("-")[1]
|
val.technologyId = this.processInspectVo.techname.split("-")[0]
|
this.processInspectVo.technologyId = val.technologyId
|
this.$axios.post(this.$api.url.processInspectAddProcess, {
|
material: val.material,
|
materialCode: val.materialCode,
|
orderNumber: val.orderNumber,
|
quantity: val.quantity,
|
specificationsModel: val.specificationsModel,
|
techfather: val.techfather,
|
techname: val.techname,
|
techId: Number(val.technologyId),
|
mtId: Number(val.technologyId),
|
unit: val.unit
|
}, {
|
headers: { "Content-Type": "application/json" }
|
}).then(res => {
|
if (res.code === 201) {
|
this.$message({
|
message: res.message,
|
type: 'warning'
|
});
|
return
|
}
|
this.isAddProject = true
|
this.detailId = res.data
|
this.inspectionResultForm[0].id = val.materialCode
|
this.inspectionResultForm[0].name = val.material
|
this.getTableData()
|
})
|
},
|
getTableData() {
|
this.$axios.get(this.$api.url.inspectionItemListUser, {
|
params: {
|
id: this.detailId,
|
type: 1
|
}
|
}).then(res => {
|
this.inspectionItems = res.data
|
let arr = []
|
let val = JSON.parse(JSON.stringify(this.inspectionItems))
|
const uName = []
|
//转成一维数组
|
val.forEach(l => {
|
let father = l.father
|
l.children.forEach(c => {
|
c.father = father
|
c.empiricalValueAddss = []
|
if (c.inspectionValue != '' && c.inspectionValue != null) {
|
c.empiricalValueAddss = c.inspectionValue.split(",");
|
} else {
|
c.empiricalValueAddss.push("")
|
}
|
uName.push(c['username'])
|
c.isSelectDevice = false
|
arr.push(c)
|
})
|
})
|
this.inspectionItems = arr
|
let arrSort = JSON.parse(JSON.stringify(arr))
|
//根据集合对象数组长度排序
|
arrSort.sort((a, b) => {
|
if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
|
return -1; // a排在b前面
|
} else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
|
return 1; // a排在b后面
|
} else {
|
return 0; // 保持相对顺序不变
|
}
|
});
|
// console.log(arrSort);
|
console.log(uName);
|
let name = [...new Set(uName)].filter(item => item !== null);
|
let rname = ''
|
name.forEach(m => {
|
rname += m + ","
|
})
|
this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
|
this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
|
this.mergeTable(arr)
|
})
|
},
|
selectSample() {
|
let sample = this.optionsSamplename.filter(item => {
|
return item.name === this.processInspectVo.material
|
})[0]
|
this.processInspectVo.techfather = null
|
this.processInspectVo.techname = null
|
this.processInspectVo.materialCode = sample.code
|
this.processInspectVo.specificationsModel = sample.specifications
|
this.processInspectVo.unit = sample.unit
|
this.optionSoptionSprocesses = []
|
this.optionSoptionSprocesses = sample.children
|
},
|
selectInfoByOrderId() {
|
this.$axios.get(this.$api.url.chooseMaterProcessInspect, {
|
params: {
|
orderNumber: this.processInspectVo.orderNumber
|
}
|
}).then(res => {
|
if (res.data.length > 0) {
|
console.log(res.data);
|
this.optionsSamplename = res.data
|
} else {
|
this.$message({
|
message: '没有该订单号!',
|
type: 'warning'
|
});
|
}
|
})
|
},
|
// 当前页改变时触发 跳转其他页
|
handleCurrentChange(val) {
|
this.search.pageSize = val;
|
this.defaultInitializationTable();
|
},
|
// 显示新增页面
|
handleAddNew() {
|
this.showAddPage = true;
|
// this.getTableData()
|
},
|
// 表格初始化接口
|
defaultInitializationTable() {
|
this.$axios
|
.post(this.$api.url.selectProcessInspectsList, this.search)
|
.then(res => {
|
this.inspectionTableTotal = res.data.total;
|
this.inspectionTable = res.data.row;
|
});
|
},
|
// 添加行
|
clickAddLine() {
|
let obj = {
|
material: "",
|
materialCode: "",
|
orderNumber: "",
|
quantity: 0,
|
specificationsModel: "",
|
techfather: "",
|
techname: "",
|
technologyId: 0,
|
unit: ""
|
};
|
this.inspectionItems.push(obj);
|
},
|
// 删除行
|
clickDeleteline(scope) {
|
this.inspectionItems.splice(scope.$index, 1);
|
},
|
// 删除检验值列
|
clickDeleteInspectionColumn() {
|
if (this.empiricalValueAdd - 1 === 0) {
|
} else {
|
if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
|
this.empiricalValueAdd = this.empiricalValueAdd - 1;
|
this.inspectionItems.forEach(i => {
|
i.testValueList.splice(this.empiricalValueAdd, 1);
|
});
|
}
|
}
|
},
|
// 添加检验值列
|
clickAddInspectionColumn() {
|
this.empiricalValueAdd = this.empiricalValueAdd + 1;
|
}
|
},
|
created() {
|
this.defaultInitializationTable(); // 初始化表格数据
|
}
|
};
|
</script>
|
|
<style>
|
.node_i {
|
color: orange;
|
}
|
|
.div_device_dialog {
|
min-height: 400px;
|
overflow: auto;
|
}
|
|
.nav {
|
display: flex;
|
padding: 20px 20px;
|
align-items: center;
|
background-color: #fff;
|
}
|
|
.table_header {
|
height: calc(100vh - 550px);
|
}
|
|
.nav * {
|
font-size: 14px;
|
}
|
|
.content-body .rawPage {
|
background-color: #fff;
|
overflow: hidden;
|
}
|
|
.inspectionTable {
|
padding: 20px 20px;
|
}
|
|
.pagination {
|
float: right;
|
margin-right: 20px;
|
}
|
|
.newPage {
|
overflow: hidden;
|
}
|
|
.header {
|
padding: 12px;
|
}
|
|
.addInspectionform {
|
background-color: #fff;
|
}
|
|
.addInspectionform .formwrapper {
|
padding: 20px 0px;
|
margin-left: 100px;
|
}
|
|
.inspectionProject .el-table {
|
background-color: #fff;
|
padding: 10px 12px;
|
}
|
|
.inspectionResult span {
|
display: block;
|
padding: 5px 0px;
|
}
|
|
.inspectionResult .el-table {
|
background-color: #fff;
|
padding: 10px 12px;
|
}
|
|
.inspectionProject_span {
|
line-height: 32px;
|
padding: 10px 20px;
|
}
|
|
.inspectionProject_span .el-button {
|
float: right;
|
font-size: 13px !important;
|
}
|
|
/* .table{
|
border-collapse: collapse;
|
border-spacing: 0;
|
background-color: transparent;
|
display: table;
|
width: 100%;
|
max-width: 100%;
|
width: 800px;
|
margin:0 auto;
|
} */
|
/* .table td{
|
text-align:center;
|
vertical-align:middle;
|
font-size: 14px;
|
font-family: 'Arial Normal', 'Arial';
|
color: #333333;
|
padding: 8px 12px;
|
} */
|
/* .table-bordered {
|
border: 1px solid #ddd;
|
} */
|
.column{
|
width:auto;
|
height:30px;
|
font-size: 12px;
|
text-align:center
|
/* border:1px solid #333;
|
background: #f1f1f1; */
|
}
|
.value{
|
width:70px;
|
height:30px;
|
border:1px solid #333;
|
}
|
|
</style>
|