| | |
| | | <div class="formwrapper"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="过程检验编号:"> |
| | | <el-input @blur="selectInfoByOrderId" disabled |
| | | v-model="processInspectVo.proInsNo" autocomplete="off" /> |
| | | <el-form-item label="过程检验编号"> |
| | | <el-input disabled |
| | | v-model="processInspectVo.proInsNo" placeholder="过程检验编号" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订单号:" prop="orderNumber"> |
| | | <el-form-item label="车间订单号" prop="moNo"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" /> |
| | | v-model="processInspectVo.moNo" placeholder="请输入车间订单号" autocomplete="off" > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | :disabled="resultVal!=null" |
| | | @click="Turnonthecamera"></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产品名称:"> |
| | | <el-select style="width: 100%" @change="changeOptionsSamplename" |
| | | :disabled="processInspectVo.id != null" v-model="processInspectVo.material" |
| | | size="small" placeholder="请选择产品名称"> |
| | | <el-option v-for="(item, index) in optionsSamplename" :key="index" |
| | | :label="item.material" :value="item.materialCode"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="销售订单号" prop="orderNumber"> |
| | | <el-input disabled |
| | | v-model="processInspectVo.orderNumber" placeholder="销售订单号" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产品编号:"> |
| | | <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编号" |
| | | autocomplete="off" /> |
| | | <el-form-item label="产品名称"> |
| | | <el-tooltip class="item" effect="dark" :content="processInspectVo.material"> |
| | | <el-input v-model="processInspectVo.material" disabled placeholder="产品名称"></el-input> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="规格型号:"> |
| | | <el-input disabled v-model="processInspectVo.specs" |
| | | autocomplete="off" /> |
| | | <el-form-item label="产品编号"> |
| | | <el-input disabled v-model="processInspectVo.materialCode" placeholder="产品编号" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="工序名称"> |
| | | <el-form-item label="规格型号"> |
| | | <el-tooltip class="item" effect="dark" :content="processInspectVo.specs"> |
| | | <el-input disabled v-model="processInspectVo.specs" placeholder="规格型号" autocomplete="off" /> |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="工单" prop="operationTaskId"> |
| | | <el-select style="width: 100%" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.technologyOperationId" size="small" placeholder="请选择工序"> |
| | | <el-option v-for="(item, index) in technologyList" :key="index" :label="item.name" |
| | | :value="item.technologyOperationId"> |
| | | v-model="processInspectVo.operationTaskId" size="small" placeholder="请选择工单"> |
| | | <el-option v-for="(item, index) in technologyList" :key="index" :label="item.name+'-'+item.optaskNo" |
| | | :value="item.operationTaskId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="单位:"> |
| | | <el-input disabled v-model="processInspectVo.unit" placeholder="请输入单位" |
| | | autocomplete="off" /> |
| | | <el-form-item label="单位"> |
| | | <el-input disabled v-model="processInspectVo.unit" placeholder="单位" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客户名称" prop="customerName"> |
| | | <el-input v-model="processInspectVo.customerName" placeholder="客户名称" autocomplete="off" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="数量:"> |
| | | <el-form-item label="工程名称" prop="projectName"> |
| | | <el-input v-model="processInspectVo.projectName" placeholder="工程名称" autocomplete="off" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="数量" prop="quantity"> |
| | | <el-input v-model="processInspectVo.quantity" placeholder="请输入数量" autocomplete="off" |
| | | :disabled="processInspectVo.id != null" /> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | height="400" |
| | | :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | default-expand-all style="width: 100%" |
| | | ref="table" |
| | | ref="table" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="index" label="序号" width="60"></el-table-column> |
| | | <el-table-column label="项目" prop="father" width="240"></el-table-column> |
| | | <el-table-column prop="iname" label="指标" width="240"></el-table-column> |
| | | <el-table-column prop="iunit" label="单位" width="240"></el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="240"></el-table-column> |
| | | <el-table-column type="index" label="序号" show-overflow-tooltip width="60"></el-table-column> |
| | | <el-table-column label="项目" prop="father" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iname" label="指标" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iunit" label="单位" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="140"></el-table-column> |
| | | <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" |
| | | label="检测值" width="240" style="text-align: center;"> |
| | | label="检测值" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | |
| | | </el-col> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="250"> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="200"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="resultVal != null && scope.row.iname != null" |
| | | v-text="scope.row.ename"></span> |
| | | <div v-else> |
| | | <el-select style="width:80%" v-model="scope.row.eId" v-if="scope.row.iname != null" |
| | | <el-select style="width:60%" v-model="scope.row.eId" v-if="scope.row.iname != null" |
| | | filterable @change="updateDevice(scope.row, scope.$index)"> |
| | | <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id" |
| | | :label="item.code + '-' + item.name"></el-option> |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检验描述" width="240" style="text-align: center;"> |
| | | <el-table-column show-overflow-tooltip |
| | | label="检验描述" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | |
| | | <el-table border height="90" :data="inspectionResultForm" |
| | | :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" |
| | | :cell-style="{ textAlign: 'center' }"> |
| | | <el-table-column prop="materialCode" label="物料编号"></el-table-column> |
| | | <el-table-column prop="material" label="物料名称"></el-table-column> |
| | | <el-table-column prop="materialCode" width="200" show-overflow-tooltip label="物料编号"></el-table-column> |
| | | <el-table-column prop="material" width="200" show-overflow-tooltip label="物料名称"></el-table-column> |
| | | <el-table-column prop="userName" label="检验员"></el-table-column> |
| | | <el-table-column prop="result" label="检验结论"> |
| | | <template slot-scope="scope"> |
| | |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | title="设备扫描" |
| | | :visible.sync="deviceCode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deviceCode = false">取 消</el-button> |
| | | <el-button type="primary" @click="deviceCode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | title="扫描" |
| | | :visible.sync="qrcode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeCompont" @ok="getResultInfo" @cancelCodeDialog="cancelCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="qrcode = false">取 消</el-button> |
| | | <el-button type="primary" @click="qrcode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="设备扫描" |
| | | :visible.sync="deviceCode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deviceCode = false">取 消</el-button> |
| | | <el-button type="primary" @click="deviceCode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { |
| | | chooseMater, |
| | |
| | | } from '@/api/quality/processInspect' |
| | | import { selectDevice } from '@/api/quality/processInspect' |
| | | import qrCodeApp from '@/views/common/qrCodeApp' |
| | | import { validatePositiveInteger } from '@/util/validate' |
| | | export default { |
| | | components:{ |
| | | qrCodeApp |
| | | }, |
| | | data() { |
| | | return { |
| | | qrcode: false, |
| | | row: null, |
| | | proIndex: 0, |
| | | deviceCode: false, |
| | | rules: { |
| | | orderNumber: [{required:true,message:'订单号不能为空',trigger:'blur'}] |
| | | moNo: [{required:true,message:'车间订单号不能为空',trigger:'blur'}], |
| | | quantity: [{required:true,validator: validatePositiveInteger,trigger:'blur'}], |
| | | operationTaskId: [{required:true,message: '请选择工单',trigger:'change'}], |
| | | }, |
| | | dataVal: [{ |
| | | label: '是', |
| | |
| | | empiricalValueAddMaxNumber: 0, |
| | | processInspectVo: { |
| | | id: null, |
| | | moNo: null, |
| | | proInsNo: null, |
| | | material: null, |
| | | materialCode: null, |
| | |
| | | quantity: null, |
| | | specs: null, |
| | | unit: null, |
| | | technologyOperationId: null |
| | | operationTaskId: null, |
| | | customerName: null, |
| | | projectName: null |
| | | }, |
| | | inspectionItems: [], // 新增检验项目表格 |
| | | inspectionResultForm: [], |
| | |
| | | let val = sessionStorage.getItem("process-resultVal-" + this.processInspectVo.id); |
| | | val == undefined ? this.resultVal = null : this.resultVal = val |
| | | } |
| | | console.log(this.resultVal); |
| | | this.init() |
| | | }, |
| | | methods: { |
| | | cancelDeviceCodeDialog(){ |
| | | cancelCodeDialog(){ |
| | | this.qrcode = false |
| | | }, |
| | | getResultInfo(data){ |
| | | if(!data.includes("moNo")){ |
| | | this.$message.warning('未识别出车间订单号信息!'); |
| | | } |
| | | let obj=JSON.parse(data) |
| | | let info={"code":obj["moNo"]} |
| | | if(info.code){ |
| | | this.processInspectVo.moNo = obj["moNo"] |
| | | this.selectInfoByOrderId() |
| | | }else{ |
| | | this.$message.warning('未识别出车间订单号信息!'); |
| | | } |
| | | }, |
| | | // 打开相机 |
| | | Turnonthecamera() { |
| | | this.qrcode = true |
| | | this.$refs.codeCompont.openCamera() |
| | | }, |
| | | cancelDeviceCodeDialog(){ |
| | | this.deviceCode = false |
| | | }, |
| | | getDeviceResultInfo(val){ |
| | | console.log("扫描后数据",val); |
| | | let id=val.split("id@")[1] |
| | | if(id!=undefined&&id!=''&&id!=null){ |
| | | let filterData=this.deviceList.filter(item=>{ |
| | | return item.id==id |
| | | })[0] |
| | | console.log(filterData); |
| | | this.row.eId=Number(id) |
| | | this.updateDevice(this.row) |
| | | }else{ |
| | | this.$message({ |
| | | message: '未识别出二位码计量器具信息!', |
| | | message: '未识别出计量器具信息!', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | }, |
| | | codeDevice(row,index){ |
| | | this.row=row |
| | | console.log("row",row); |
| | | this.row=row |
| | | this.deviceCode =true |
| | | this.$refs.codeDeviceCompont.openCamera() |
| | | this.proIndex=index |
| | |
| | | if (id != null) { |
| | | queryById(id).then(res => { |
| | | let result = res.data.data |
| | | this.processInspectVo.moNo = result.moNo |
| | | this.processInspectVo.operationTaskId = result.technologyOperationName |
| | | this.processInspectVo.proInsNo = result.proInsNo |
| | | this.processInspectVo.projectName = result.projectName |
| | | this.processInspectVo.customerName = result.customerName |
| | | this.processInspectVo.orderNumber = result.orderNumber |
| | | this.processInspectVo.materialCode = result.materialCode |
| | | this.processInspectVo.material = result.material |
| | | this.processInspectVo.technologyOperationId = result.technologyOperationName |
| | | this.processInspectVo.specs = result.specs |
| | | this.processInspectVo.unit = result.punit |
| | | this.processInspectVo.quantity = result.quantity |
| | |
| | | } |
| | | }) |
| | | this.inspectionItems = result.children |
| | | let rVal = '1' |
| | | let rVal = '' |
| | | let passNum = 0 |
| | | let unPassNum = 0 |
| | | this.inspectionItems.forEach(item => { |
| | | if (item.children) { |
| | | item.children.forEach(obj => { |
| | | if (obj.iresult == 0) { |
| | | rVal = '0' |
| | | if(obj.iresult == 0){ |
| | | unPassNum += 1 |
| | | } |
| | | if(obj.iresult == 1){ |
| | | passNum+=1 |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | rVal = (passNum+unPassNum)>0 ? unPassNum>0 ? '0' :'1' : '' |
| | | this.inspectionResultForm = [{ |
| | | materialCode: result.materialCode, |
| | | material: result.material, |
| | |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | //产品名称,选择 |
| | | changeOptionsSamplename(val) { |
| | | let sample = this.optionsSamplename.filter(o => { |
| | | return o.materialCode == val |
| | | })[0] |
| | | this.processInspectVo.materialCode = sample.materialCode |
| | | this.processInspectVo.specs = sample.specs |
| | | this.processInspectVo.unit = sample.unit |
| | | this.processInspectVo.material = sample.material |
| | | this.technologyList = sample.children |
| | | }, |
| | | changeState(row,isChecked) { |
| | | const _than = this |
| | | if(isChecked){ |
| | | let isNumber = true |
| | | for(var i=0;i<row.empiricalValueAddss.length;i++){ |
| | | let val = row.empiricalValueAddss[i] |
| | | if(!/^[0-9]*[1-9][0-9]*$/.test(val)){ |
| | | if(!/(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/.test(val)){ |
| | | row.empiricalValueAddss[i] = null |
| | | _than.$message.error("请输入数字") |
| | | isNumber = false |
| | |
| | | addTestProject() { |
| | | let val = this.processInspectVo |
| | | const _than = this |
| | | addProcess(val).then(res => { |
| | | let id = res.data.data |
| | | if (id != null) { |
| | | _than.processInspectVo.id = id |
| | | queryById(id).then(response => { |
| | | let proList = response.data.data.children |
| | | proList.forEach(item => { |
| | | item.iid = Math.random(); |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | | obj.inote = null |
| | | obj.empiricalValueAddss = [] |
| | | this.$refs.addInspectionform.validate(valid=>{ |
| | | if(valid){ |
| | | addProcess(val).then(res => { |
| | | let id = res.data.data |
| | | if (id != null) { |
| | | _than.processInspectVo.id = id |
| | | queryById(id).then(response => { |
| | | let proList = response.data.data.children |
| | | proList.forEach(item => { |
| | | item.iid = Math.random(); |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | | obj.inote = null |
| | | obj.empiricalValueAddss = [] |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | _than.inspectionItems = proList |
| | | _than.inspectionItems = proList |
| | | }).catch(error => { |
| | | console.log(error); |
| | | }) |
| | | } |
| | | }).catch(error => { |
| | | console.log(error); |
| | | console.log(error) |
| | | }) |
| | | } |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | selectInfoByOrderId() { |
| | | this.$refs.addInspectionform.validate(valid=>{ |
| | | if(valid){ |
| | | chooseMater({ |
| | | orderNumber: this.processInspectVo.orderNumber |
| | | if(this.processInspectVo.moNo){ |
| | | chooseMater({ |
| | | moNo: this.processInspectVo.moNo |
| | | }).then(res => { |
| | | if (res.data.data != null) { |
| | | this.optionsSamplename = res.data.data.children |
| | | let data = res.data.data |
| | | if (data) { |
| | | this.technologyList = data.children |
| | | this.processInspectVo.materialCode = data.materialCode |
| | | this.processInspectVo.orderNumber = data.orderNumber |
| | | this.processInspectVo.projectName = data.projectName |
| | | this.processInspectVo.customerName = data.customerName |
| | | this.processInspectVo.material = data.material |
| | | this.processInspectVo.specs = data.specs |
| | | this.processInspectVo.unit = data.unit |
| | | } else { |
| | | this.$message({ |
| | | message: '没有该订单号!', |
| | | type: 'warning' |
| | | }); |
| | | this.optionsSamplename = [] |
| | | this.$message.warning('没有该车间订单号!'); |
| | | this.technologyList = [] |
| | | this.processInspectVo.materialCode = null |
| | | this.processInspectVo.orderNumber = null |
| | | this.processInspectVo.material = null |
| | | this.processInspectVo.specs = null |
| | | this.processInspectVo.unit = null |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | changeRowResult(){ |
| | | if(this.inspectionItems){ |
| | |
| | | updateProcessInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.init() |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style scoped> |
| | | .finishedProduct-detail { |
| | | width: 100%; |
| | |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | </style> |
| | | </style> |