| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="零件号" prop="code"> |
| | | <el-input v-model="dataForm.code" disabled> |
| | | <el-input v-model="dataForm.code"> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | :disabled="resultVal!=null" |
| | | @click="queryCode"></el-button> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | :disabled="resultVal!=null" |
| | | @click="Turnonthecamera"></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | <div> |
| | | <el-tabs class="rawMaterial-detail" @tab-click="tabsClick"> |
| | | <el-tab-pane label="检验项目"> |
| | | <el-row style="width:100%;z-index: 10;height:50px;"> |
| | | <el-col :xs="12" :lg="18"></el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-row style="width:100%;z-index: 10;height:50px;" v-if="resultVal==null"> |
| | | <el-col :span="12"></el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">添加检验项目</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | row-key="iid" |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="index" label="序号" width="60"> |
| | | </el-table-column> |
| | | <el-table-column prop="father" label="检验项目" width="260"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input> |
| | | <el-table-column type="index" prop="parentIndex" label="序号" width="60"> |
| | | <template scope="scope"> |
| | | <span v-if="scope.row.isIndex">{{scope.row.parentIndex}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项目" width="260"> |
| | | <el-table-column prop="father" label="检验项目" width="160"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if="scope.row.children" style="width:80%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项目" width="160"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="单位" width="260"> |
| | | <el-table-column prop="unit" label="单位" width="160"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="请输入单位"></el-input> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="260"> |
| | | <el-table-column prop="required" label="标准值" width="160"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.required" |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="testValue" label="检测值" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> |
| | | <el-table-column prop="testValue" label="检测值" min-width="160" v-for="(item,index) in empiricalValueAdd" :key="index"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width:100%" allow-create filterable default-first-option |
| | | <!-- <el-autocomplete clearable |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | @blur="changeState(scope.row,scope.$index)" |
| | | v-model="scope.row.testValueList[index]" |
| | | :fetch-suggestions="querySearch" |
| | | placeholder="请输入或选择检测值" > |
| | | <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down" slot="suffix"></i> |
| | | <template slot-scope="{ item }"> |
| | | <div>{{ item.value }}</div> |
| | | </template> |
| | | </el-autocomplete> --> |
| | | |
| | | <el-select style="width:100%" filterable |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入或选择检测值" |
| | | @change="changeState(scope.row,scope.$index)"> |
| | | placeholder="请输入或选择检测值" |
| | | allow-create |
| | | default-first-option |
| | | @change="changeState(scope.row,scope.$index)" |
| | | @blur="selectBlur" |
| | | > |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="260"> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="200"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%" |
| | | <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:60%" |
| | | v-model="scope.row.deviceId" 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 prop="note" label="检验描述" width="260" > |
| | | <el-table-column prop="note" label="检验描述" width="160" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input> |
| | |
| | | element-loading-text="请稍等,文件上传中" |
| | | > |
| | | <el-upload |
| | | :disabled="dataForm.rawInsNo==null || resultVal!=null" |
| | | drag |
| | | ref="upload" |
| | | action="/mes/rawInsProduct/upload" |
| | |
| | | <el-table-column |
| | | prop="rawInsNo" |
| | | align="center" |
| | | width="120" |
| | | label="原材料检验编号" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | |
| | | <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion" |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}"> |
| | | <el-table-column prop="code" label="物料编号"></el-table-column> |
| | | <el-table-column prop="name" label="物料名称"></el-table-column> |
| | | <el-table-column prop="code" width="150" show-overflow-tooltip label="物料编号"></el-table-column> |
| | | <el-table-column prop="name" width="150" show-overflow-tooltip label="物料名称"></el-table-column> |
| | | <el-table-column prop="userName" label="检验员"></el-table-column> |
| | | <el-table-column prop="judgeState" label="检验结论"> |
| | | <template slot-scope="scope"> |
| | |
| | | updateRawInsProduct, |
| | | updateRawInspectsById, |
| | | getProcessConfigFiles, |
| | | downloadProcessConfigFile, |
| | | deleteProcessConfigFile, |
| | | updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | import { getStore } from '@/util/store' |
| | | import qrCodeApp from '@/views/common/qrCodeApp' |
| | | import transformImage from '@/util/fileTransform' |
| | | export default { |
| | | components:{ |
| | | rawMaterialPartDialog, |
| | |
| | | }, |
| | | }, |
| | | methods:{ |
| | | querySearch(queryString, cb){ |
| | | // 调用 callback 返回建议列表的数据 |
| | | cb([{value:'是'},{value:'否'}]); |
| | | }, |
| | | tabsClick(tab,even){ |
| | | if(tab.index == 1){ |
| | | if(this.dataForm.rawInsNo==null){ |
| | | this.$message.error("请先保存原材料检验信息") |
| | | return |
| | | } |
| | | this.getConfigFiles(); |
| | | } |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | downloadProcessConfigFile(row) { |
| | | // downloadProcessConfigFile( |
| | | // row.fileName, |
| | | // row.bucketName, |
| | | // row.originalFileName |
| | | // ) |
| | | downloadProcessConfigFile({ |
| | | bucket: row.bucketName, |
| | | fileName: row.fileName, |
| | | originalFileName: row.originalFileName |
| | | }) |
| | | }, |
| | | delProcessConfigFile(row) { |
| | | this.$confirm('是否删除该附件', '提示', { |
| | |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | }).then(function() { |
| | | return deleteProcessConfigFile(row.id) |
| | | }).then((data) => { |
| | | this.getConfigFiles() |
| | | }) |
| | | .then(function() { |
| | | return deleteProcessConfigFile(row.id) |
| | | }) |
| | | .then((data) => { |
| | | this.getConfigFiles() |
| | | }) |
| | | }, |
| | | submitUpload() { |
| | | this.paramData.rawInsNo = this.dataForm.rawInsNo |
| | |
| | | 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=>{ |
| | |
| | | this.updateDevice(this.row,this.proIndex) |
| | | }else{ |
| | | this.$message({ |
| | | message: '未识别出二位码计量器具信息!', |
| | | message: '二维码未识别出计量器具信息!', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | }, |
| | | codeDevice(row,index){ |
| | | this.row=row |
| | | this.row=row |
| | | console.log("row",row); |
| | | this.deviceCode =true |
| | | this.$refs.codeDeviceCompont.openCamera() |
| | |
| | | getResultInfo(data){ |
| | | if(!data.includes("part_no")){ |
| | | this.$message({ |
| | | message: '未识别出二位码零件信息!', |
| | | message: '二维码未识别出零件信息!', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | let obj=JSON.parse(data) |
| | | let info={"code":obj["part_no"]} |
| | | console.log("值",info); |
| | | if(info.code!=undefined&&info.code!=''){ |
| | | this.paramObj = info |
| | | this.showPart = true |
| | | }else{ |
| | | this.$message({ |
| | | message: '未识别出二位码零件信息!', |
| | | message: '二维码未识别出零件信息!', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | |
| | | }, |
| | | // 打开相机 |
| | | Turnonthecamera() { |
| | | this.qrcode = true |
| | | this.$refs.codeCompont.openCamera() |
| | | }, |
| | | this.qrcode = true |
| | | this.$refs.codeCompont.openCamera() |
| | | }, |
| | | // 确认回调 |
| | | selectPart(param, nodePart, index) { |
| | | if (typeof param !== 'undefined') { |
| | |
| | | this.dataForm.message = param.message |
| | | this.dataForm.projectName = param.projectName |
| | | this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts |
| | | param.rawInsProducts.forEach(o=>{ |
| | | this.clickAddLine(o) |
| | | param.rawInsProducts.forEach((o,index)=>{ |
| | | this.clickAddLine(o,index) |
| | | }) |
| | | } |
| | | |
| | |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | | }, |
| | | // 添加行 |
| | | clickAddLine(row) { |
| | | clickAddLine(row,index) { |
| | | let ele = { |
| | | fId: Math.random(), |
| | | father: null, |
| | |
| | | children:[] |
| | | } |
| | | if(row){ |
| | | ele.isIndex = true; |
| | | ele.parentIndex = index + 1; |
| | | ele.father = row.father?row.father:null |
| | | row.children.forEach(item => { |
| | | ele.children.push({ |
| | |
| | | }) |
| | | this.list.push(ele) |
| | | }else{ |
| | | ele.isIndex = true; |
| | | ele.parentIndex = this.list.length + 1; |
| | | ele.children.push({ |
| | | deviceId: null, |
| | | deviceName: null, |
| | |
| | | this.dataForm.createUser = data.createUser |
| | | let userNameList = [] |
| | | this.list = [] |
| | | data.children.forEach(item => { |
| | | data.children.forEach((item,index) => { |
| | | if (item.children) { |
| | | let ele = { |
| | | iid: null, |
| | | father: null, |
| | | children: [] |
| | | } |
| | | ele.isIndex = true; |
| | | ele.parentIndex = index + 1; |
| | | ele.iid = Math.random() |
| | | ele.father = item.rpFather |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | | item.children.forEach((obj) => { |
| | | let arr= [] |
| | | if(obj.userName){ |
| | | userNameList.push(obj.userName) |
| | |
| | | this.list.push(ele) |
| | | }} |
| | | }) |
| | | let rVal = '1' |
| | | let rVal = '' |
| | | let passNum = 0 |
| | | let unPassNum = 0 |
| | | this.list.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(ele=>{ |
| | | if(ele.testState == 0){ |
| | | rVal = '0' |
| | | unPassNum += 1 |
| | | } |
| | | if(ele.testState == 1){ |
| | | passNum+=1 |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | rVal = (passNum+unPassNum)>0 ? unPassNum>0 ? '0' :'1' : '' |
| | | this.conclusionTable = [{ |
| | | code: data.code, |
| | | name: data.name, |
| | |
| | | this.conclusionTable = [] |
| | | } |
| | | }, |
| | | selectBlur(e){ |
| | | console.log(e,"-----"); |
| | | console.log(e.target.value); |
| | | }, |
| | | changeState(row, index) { |
| | | if(row){ |
| | | let isTrue = true |
| | | for(var i=0;i<row.testValueList.length;i++){ |
| | | let val = row.testValueList[i] |
| | | let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ |
| | | if(!reg.test(val) && !['是','否'].includes(val)){ |
| | | this.$message.error("请输入数字或选择是否") |
| | | row.testValueList[i] = null |
| | | isTrue = false |
| | | } |
| | | } |
| | | if(!isTrue){ |
| | | return |
| | | } |
| | | console.log(row.testValueList); |
| | | return |
| | | this.$nextTick(()=>{ |
| | | if(row){ |
| | | let isTrue = true |
| | | for(var i=0;i<row.testValueList.length;i++){ |
| | | let val = row.testValueList[i] |
| | | let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ |
| | | if(!reg.test(val) && !['是','否'].includes(val)){ |
| | | row.testValueList[i] = null |
| | | this.$message.error("请输入数字或选择是否") |
| | | isTrue = false |
| | | } |
| | | } |
| | | if(!isTrue){ |
| | | return |
| | | } |
| | | } |
| | | if (row.rpId != null && row.rpId != '') { |
| | | let val = row.testValueList.join(",") |
| | | if (val === undefined || val === '' || val === null) { |
| | | return |
| | | } |
| | | console.log(val); |
| | | console.log(...row.testValueList); |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: val, |
| | | note: row.note |
| | | } |
| | | console.log(obj); |
| | | return |
| | | updateRawInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("更新成功") |
| | |
| | | this.init() |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // 删除子项目 |
| | | delChildren(row,index,isParent) { |
| | |
| | | |
| | | .rawMaterial-basic { |
| | | background-color: #fff; |
| | | height: 155px; |
| | | height: 170px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 10px 20px; |