From 125b765551a31599e7e6f289ab722c28e98a8bfa Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 01 十一月 2023 20:25:47 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/views/quality/processInspect/processInspect-form.vue | 510 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 510 insertions(+), 0 deletions(-) diff --git a/src/views/quality/processInspect/processInspect-form.vue b/src/views/quality/processInspect/processInspect-form.vue new file mode 100644 index 0000000..8cffa25 --- /dev/null +++ b/src/views/quality/processInspect/processInspect-form.vue @@ -0,0 +1,510 @@ +<template> + <!-- 鏂板椤甸潰 --> + <div class="addInspection"> + <div class="page-header"> + <div class="header-left"> + <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> + <h2 v-if="resultVal != null && processInspectVo.id!=null">鏌ョ湅-杩囩▼妫�楠屽崟</h2> + <h2 v-else>缂栬緫-杩囩▼妫�楠屽崟</h2> + </div> + <div class="btn-group header-right"> + <el-button @click="addTestProject" v-if="processInspectVo.id==null">鐢熸垚妫�楠岄」鐩�</el-button> + </div> + </div> + <div class="page-main"> + <div class="finishedProduct-basic"> + <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" + label-position="right" label-width="120px" style="width: 100%" size="small"> + <div class="formwrapper"> + <el-row> + <el-col :span="6"> + <el-form-item label="璁㈠崟鍙凤細"> + <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" + v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" /> + </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> + </el-col> + <el-col :span="6"> + <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-input disabled v-model="processInspectVo.specs" + placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="宸ュ簭鍚嶇О"> + <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"> + </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> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="鏁伴噺锛�"> + <el-input v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" + autocomplete="off" :disabled="processInspectVo.id != null" /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> + <div class="finishedProduct-detail"> + <el-row style="width:100%;z-index: 10;height:30px;"> + <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col> + <el-col v-if="resultVal == null" :span="12" class="inspectionProject_span" style="text-align: right;"> + <el-button size="mini" @click="clickAddInspectionColumn()">娣诲姞妫�娴嬪�煎垪</el-button> + <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> + </el-col> + </el-row> + <el-row style="width:100%;"> + <el-col :span="24"> + <el-table border :data="inspectionItems" height="400" + :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" + :cell-style="{textAlign:'center'}" row-key="iid" default-expand-all + style="width: 100%" 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 prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" + width="240" style="text-align: center;"> + <template slot-scope="scope"> + <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null" + class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + placement="top-start"> + <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" + @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> + <span v-if="resultVal != null && processInspectVo.id!=null" v-text="scope.row.empiricalValueAddss[index]"></span> + </el-tooltip> + </template> + </el-table-column> + <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="250"> + <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:100%" v-model="scope.row.eId" + v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)"> + <el-option v-for="(item,index) in deviceList" + :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> + </el-select> + </div> + </template> + </el-table-column> + <el-table-column label="缁撹" fixed="right" min-width="100"> + <template slot-scope="scope"> + <div v-if="scope.row.iname!=null"> + <span style="color: #34BD66;" v-if="scope.row.iresult == 1">鍚堟牸</span> + <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">涓嶅悎鏍�</span> + <span v-else>鏆傛棤缁撹</span> + </div> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + </div> + <div class="finishedProduct-result"> + <el-row style="width:100%"> + <el-col :span="24">妫�娴嬬粨鏋�</el-col> + </el-row> + <el-row style="width:100%;"> + <el-col :span="24"> + <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="userName" label="妫�楠屽憳"></el-table-column> + <el-table-column prop="result" label="妫�楠岀粨璁�"> + <template slot-scope="scope"> + <el-tag type="success" v-if="scope.row.result == '1'">鍚堟牸</el-tag> + <el-tag type="danger" v-if="scope.row.result == '0'">涓嶅悎鏍�</el-tag> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔"> + <template> + <el-button type="text" :disabled="resultVal != null && processInspectVo.id!=null" @click="submitSave()" size="small">涓婃姤</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + </div> + </div> + </div> + </template> + + <script> + import { + chooseMater, + addProcess, + queryById, + updateDeviceBypppId, + updateProcessInsProduct, + updateProcessInspectsById, + } from '@/api/quality/processInspect' + import { selectDevice } from '@/api/quality/rawMaterial' + export default { + data() { + return { + resultVal: null, + technologyList: [], + deviceList: [], + hasChildren: true, + optionsSamplename: [], + // 娣诲姞鍒� + empiricalValueAdd: 1, + // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� + empiricalValueAddMaxNumber: 0, + processInspectVo: { + id: null, + material: null, + materialCode: null, + orderNumber: "ZTTIC20230001", + quantity: null, + specs: null, + unit: null, + technologyOperationId: null + }, + inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍� + inspectionResultForm: [], + } + }, + watch: { + }, + beforeUpdate(){ + this.$nextTick(()=>{ + this.$refs.table.doLayout(); + }) + }, + created() { + }, + mounted() { + this.getDeviceList() + this.processInspectVo.id = this.$route.query.id + this.resultVal = this.$route.query.resultVal + if(this.resultVal == null){ + let val = sessionStorage.getItem("process-resultVal"); + val == undefined ? this.resultVal=null : this.resultVal = val + } + this.init() + }, + methods: { + submitSave(){ + let pro = 0 + console.log(this.inspectionItems); + this.inspectionItems.forEach(item => { + if(item.children){ + let arr = item.children.filter(obj=>{ + return obj.iresult == 0; + }) + pro+=arr.length + } + }) + if (pro > 0) { + this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + inputPattern: /^\d+$/, + inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' + }).then(({ value }) => { + let data = { + id: this.processInspectVo.id, + number: value + } + updateProcessInspectsById(data).then(res => { + let data = res.data.data + if(data){ + if(data.indexOf("鎴愬姛")>0){ + this.$message.success(data); + this.checkTestState() + }else{ + this.$message.warning(data); + } + return + } + }); + }).catch(() => {}); + }else{ + updateProcessInspectsById({id:this.processInspectVo.id,number:0}).then(res => { + let data = res.data.data + if(data){ + if(data.indexOf("鎴愬姛") > 0){ + this.$message.success(data); + this.checkTestState() + }else{ + this.$message.warning(data); + } + return + } + }); + } + this.init() + }, + checkTestState(){ + let resultVal = '1' + this.inspectionItems.forEach(item=>{ + if(item.children){ + item.children.forEach(obj=>{ + if(obj.iresult == 0){ + resultVal = '0' + } + }) + } + }) + this.resultVal = resultVal + this.inspectionResultForm[0].result = resultVal + sessionStorage.setItem("process-resultVal",resultVal) + }, + init(){ + let id = this.processInspectVo.id + if(id != null){ + queryById(id).then(res=>{ + let result = res.data.data + 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 + let userList = [] + result.children.forEach(item=>{ + item.iid = Math.random() + if(item.children != undefined){ + item.children.forEach(obj=>{ + let arr = [] + if(obj.userName){ + userList.push(obj.userName) + } + if(obj.inspectionValue){ + arr = obj.inspectionValue.split(",") + } + obj.empiricalValueAddss = arr + if(arr.length > this.empiricalValueAdd){ + this.empiricalValueAdd = arr.length + } + }) + } + }) + this.inspectionItems = result.children + this.inspectionResultForm = [{ + materialCode: result.materialCode, + material: result.material, + userName: Array.from(new Set(userList)).join(","), + result: this.resultVal == null ? '' : this.resultVal, + }] + }).catch(error=>{ + console.log(error) + }) + } + }, + getDeviceList(){ + selectDevice(null).then(res=>{ + this.deviceList = res.data.data + }) + }, + updateDevice(row){ + updateDeviceBypppId({equiomentId:row.eId,ppid:row.iId}).then(res=>{ + }).catch(error=>{ + 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, index) { + if (row.iid != null && row.iid != '') { + let str = "" + row.empiricalValueAddss.forEach(e => { + str += e + "," + }) + str = str.slice(0,-1); + if (str === undefined || str === '' || str === null ) { + return + } + let obj = { + equiomentId: row.eId, + ppid: row.iid, + inspectionValue: str + } + updateProcessInsProduct(obj).then(res=>{ + if(res.data.code == 0){ + this.$message.success("鏇存柊鎴愬姛") + }else{ + this.$message.error("鏇存柊澶辫触") + } + this.init() + }) + } + }, + addTestProject() { + let val = this.processInspectVo + addProcess(val).then(res=>{ + let id = res.data.data + if(id != null){ + queryById(id).then(response=>{ + console.log(response.data.data.children) + let proList = response.data.data.children + proList.forEach(item=>{ + item.iid = Math.random(); + if(item.children != undefined){ + item.children.forEach(obj=>{ + obj.empiricalValueAddss = [] + }) + } + }) + this.inspectionItems = proList + }).catch(error=>{ + console.log(error); + }) + } + }).catch(error=>{ + console.log(error) + }) + }, + selectInfoByOrderId() { + chooseMater({ + orderNumber: this.processInspectVo.orderNumber + }).then(res => { + if (res.data.data != null) { + this.optionsSamplename = res.data.data.children + } else { + this.$message({ + message: '娌℃湁璇ヨ鍗曞彿锛�', + type: 'warning' + }); + this.optionsSamplename = [] + this.processInspectVo.materialCode = null + this.processInspectVo.material = null + this.processInspectVo.specs = null + this.processInspectVo.unit = null + } + }) + }, + // 鍒犻櫎妫�楠屽�煎垪 + clickDeleteInspectionColumn() { + if (this.empiricalValueAdd - 1 === 0) { + } else { + if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { + this.empiricalValueAdd = this.empiricalValueAdd - 1; + this.inspectionItems.forEach(i => { + i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); + }); + } + } + }, + // 娣诲姞妫�楠屽�煎垪 + clickAddInspectionColumn() { + this.empiricalValueAdd = this.empiricalValueAdd + 1; + } + }, + } + </script> + + <style scoped> + .finishedProduct-detail { + width: 100%; + height: 470px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; + } + + .finishedProduct-result { + width: 100%; + height: 150px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; + } + + .finishedProduct-basic { + background-color: #fff; + height: 155px; + display: flex; + flex-wrap: wrap; + padding: 10px 20px; + border: 1px solid #ddd; + box-sizing: border-box; + } + /*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/ + .completeproductstructure-checkout + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner { + background-color: #006eff; + border-color: #006eff; + } + + .completeproductstructure-checkout + .el-checkbox__input.is-disabled.is-checked + + span.el-checkbox__label { + color: #006eff; + border-color: #006eff; + } + + .completeproductstructure-checkout + .el-checkbox__input.is-disabled + .el-checkbox__inner { + background-color: #ffffff; + cursor: pointer; + } + + .completeproductstructure-checkout + .el-checkbox__input.is-disabled + + span.el-checkbox__label { + color: #606266; + cursor: pointer; + } + + .completeproductstructure-checkout .el-checkbox__inner::after { + border: 1px solid #fff !important; + border-left: 0 !important; + border-top: 0 !important; + cursor: pointer !important; + } + </style> \ No newline at end of file -- Gitblit v1.9.3