From 92688c42d8ac271f96821e54da6a2d440a23547a Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期五, 10 十一月 2023 17:07:58 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/quality/rawMaterial/rawMaterial-form.vue | 432 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 302 insertions(+), 130 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 47d3ba2..7b80424 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -39,7 +39,7 @@ </el-col> <el-col :span="6"> <el-form-item prop="formTime" label="鏉ユ枡鏃ユ湡"> - <el-date-picker + <el-date-picker style="width:100%" v-model="dataForm.formTime" type="datetime" @@ -96,97 +96,123 @@ </el-row> </el-form> </div> + + + <div class="rawMaterial-detail"> <el-row style="width:100%;z-index: 10;height:50px;"> - <el-col :span="19">妫�楠岄」鐩�</el-col> - <el-col :span="5"> - <div style="width:100%;text-align: right;"> - <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine">娣诲姞妫�楠岃</el-button> - <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button> - <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> - </div> + <el-col :span="18">妫�楠岄」鐩�</el-col> + <el-col :span="2"> + <el-button style="width:90%" v-if="dataForm.id==null" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button> + </el-col> + <el-col :span="2"> + <el-button style="width:90%" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button> + </el-col> + <el-col :span="2"> + <el-button style="width:90%" v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> </el-col> </el-row> <el-row style="width:100%;"> <el-col :span="24"> - <el-table :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}" ref="table" - :data="list" border style="width: 100%;" height="400"> + <el-table + :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" + :cell-style="{textAlign:'center'}" + ref="table" + :data="list" + border + style="width: 100%;" + height="400" + 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="name" label="椤圭洰" width="260"> + <el-table-column prop="father" label="妫�楠岄」鐩�" width="260"> <template slot-scope="scope"> - <el-select v-if="projectList.length > 0" :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" - filterable allow-create placeholder="璇疯緭鍏ユ垨閫夋嫨椤圭洰鍚嶇О" style="width:100%" @change="changeName(scope.$index,scope.row)"> - <el-option v-for="(item,index) in projectList" :key="index" :label="item.name" :value="item.name"/> - </el-select> - <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" - placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input> </template> </el-table-column> - + <el-table-column prop="name" label="椤圭洰" width="260"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" + placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </div> + </template> + </el-table-column> <el-table-column prop="unit" label="鍗曚綅" width="260"> <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"> <template slot-scope="scope"> + <div v-if="!scope.row.children"> <el-input :disabled="dataForm.id != null" v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> + </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="260" v-for="(item,index) in empiricalValueAdd" :key="index"> <template slot-scope="scope"> - <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" - placement="top-start"> - - <!-- <el-input :disabled="scope.row.equipmentId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.testValueList[index]" - @blur="updateTestValue(scope.row,index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> --> - - <el-autocomplete - style="width:100%" + <div v-if="!scope.row.children"> + <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-select @blur="changeState(scope.row, index)" style="width:100%" allow-create filterable default-first-option :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" - class="inline-input" v-model="scope.row.testValueList[index]" - :fetch-suggestions="querySearch" - placeholder="璇疯緭鍏ユ娴嬪��" - @select="handleSelect" - ></el-autocomplete> - + placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" @change="updateTestValue(scope.row,scope.$index)"> + <el-option label="鏄�" value="鏄�"/> + <el-option label="鍚�" value="鍚�"/> + </el-select> </el-tooltip> + </div> </template> </el-table-column> - <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> <template slot-scope="scope"> - <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" + <div v-if="!scope.row.children"> + <el-select :disabled="dataForm!=null && resultVal!=null" style="width:100%" v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> - <el-option v-for="(item,index) in deviceList" + <el-option v-for="(item,index) in deviceList" :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> </el-select> + </div> </template> </el-table-column> - + <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" > + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input @blur="changeState(scope.row, note)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + </div> + </template> + </el-table-column> <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="缁撹" min-width="150"> <template slot-scope="scope"> - <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> - <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span> - <span v-else>鏆傛棤缁撹</span> + <div v-if="!scope.row.children"> + <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> + <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span> + <span v-else>鏆傛棤缁撹</span> + </div> </template> </el-table-column> <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="鎿嶄綔" width="150"> <template slot-scope="scope"> - <el-button type="text" @click="clickDeleteline(scope)">鍙栨秷</el-button> + <div v-if="scope.row.fId!=null"> + <el-button type="text" @click="addChildren(scope.row)">娣诲姞椤圭洰</el-button> + <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">鍒犻櫎琛�</el-button> + </div> + <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">鍙栨秷</el-button> </template> </el-table-column> </el-table> </el-col> </el-row> </div> + + <div class="rawMaterial-result"> <el-row> <el-col :span="24">妫�楠岀粨璁�</el-col> @@ -194,7 +220,7 @@ <el-row style="width:100%"> <el-col :span="24"> <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion" - :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" + :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> @@ -235,7 +261,7 @@ </template> <script> -import { +import { selectDevice, addRawInspects, getObj, @@ -244,13 +270,13 @@ updateDeviceById, } from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' export default { - // props:['currentRow'], computed:{}, components:{ rawMaterialPartDialog }, data(){ return{ + userdata:[], currentRow:[], userlist:[], unqualifiedNum: null, @@ -278,6 +304,7 @@ supplier: '', rawInsProducts: [{ deviceId: 0, + father:'', name: '', required: '', testValue: '', @@ -296,8 +323,6 @@ }], dataRule: {}, deviceList: [], - restaurants:[], - whetherNot:'', } }, beforeUpdate(){ @@ -314,7 +339,6 @@ } this.init() this.getDeviceList() - this.restaurants = this.loadAll(); }, watch:{ dialogVisible(newVal){ @@ -322,28 +346,8 @@ this.unqualifiedNum = null } }, - }, methods:{ - querySearch(queryString, cb) { - var restaurants = this.restaurants; - var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; - - cb(results); - }, - createFilter(queryString) { - return (restaurant) => { - return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0); - }; - }, - loadAll(){ - return [ - {"value":"鏄�"}, - {"value":"鍚�"} - ];}, - handleSelect(item) { - console.log(item); - }, changeName(index,row){ this.projectList.forEach(item=>{ if(row.name == item.name){ @@ -369,6 +373,7 @@ this.clickAddLine(o) }) } + }, queryCode(){ this.paramObj = { @@ -376,17 +381,40 @@ } this.showPart = true }, - updateDevice(row,index){ - if(this.dataForm.id != null){ - updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ - this.list[index].testValue = '' - this.list[index].testState = null - this.list[index].testValueList = [] - }).catch(error=>{ - console.log(error) - }) - } - }, + + updateDevice(row, index) { + let rowId=JSON.stringify(row.rpId) + updateDeviceById({ deviceId: row.deviceId, rpId: row.rpId }).then(res => { + this.list.forEach(obj => { + obj.children.forEach(c=>{ + if(c.rpId==rowId){ + c.testValue = '' + c.testState = null + c.testValueList = [] + c.note='' + } + }) + }) + }).catch(error => { + console.log(error) + }) + }, + + // updateDevice(row,index){ + // if(this.dataForm.id != null){ + // updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ + // this.inspectionItems.forEach(obj => { + // this.list[index-1].testValue = '' + // this.list[index-1].testState = null + // this.list[index-1].testValueList = [] + // this.list[index-1].note = '' + + // }) + // }).catch(error=>{ + // console.log(error) + // }) + // } + // }, checkTestState(){ let resultVal = '1' this.list.forEach(item=>{ @@ -401,10 +429,16 @@ sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal) }, showDialog(){ - let pro = this.list.filter(item => { - return item.testState == 0; + let size = 0 //涓嶅悎鏍奸」鐩暟閲� + this.list.forEach(item=>{ + if(item.children){ + let num = item.children.filter(e=>{ + return e.testState == 0 + }).length + size+=num + } }) - if (pro.length > 0) { + if (size > 0) { this.dialogVisible = true }else{ this.submitSave() @@ -415,41 +449,69 @@ let data = { id: this.dataForm.id, number: this.unqualifiedNum, - // toLocationNo: this.fiedNum } updateRawInspectsById(data).then(res => { if(res.data.code == 0){ sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) this.$message.success("涓婃姤鎴愬姛"); this.dialogVisible = false - this.checkTestState() } }); + this.checkTestState() }, addTeatValueColumn(){ this.empiricalValueAdd = this.empiricalValueAdd + 1; }, // 娣诲姞琛� clickAddLine(row) { - let obj = { - deviceId: null, - name: "", - required: "", - testValue: "", - unit: "", - testState: null, - testValueList: [], - }; - if(row!=undefined){ - obj.name = row.name - obj.unit = row.unit - obj.required = row.required + let ele = { + fId: Math.random(), + father: null, + iid: Math.random(), + children:[] } - this.list.push(obj); - }, - // 鍒犻櫎琛� - clickDeleteline(scope) { - this.list.splice(scope.$index, 1); + if(row){ + ele.father = row.father?row.father:null + row.children.forEach(item => { + ele.children.push({ + deviceId: null, + deviceName: null, + iid: Math.random(), + required: item.required?item.required:null, + rpId: null, + name: item.name?item.name:null, + unit: item.unit?item.unit:null, + userName: null, + testValue: null, + testValueList: [], + note: null, + testState: null + }) + let arr = [] + item.empiricalValueAddss = arr + if (arr.length > this.empiricalValueAdd) { + this.empiricalValueAdd = arr.length + } + this.list.push(ele) + }) + }else{ + ele.children.push({ + deviceId: null, + deviceName: null, + iid: Math.random(), + required: null, + rpId: null, + name: null, + unit: null, + userName: null, + testValue: '', + testValueList: [], + note: '', + testState: '' + }) + this.list.push(ele) + } + }, delTeatValueColumn(){ if (this.empiricalValueAdd - 1 === 0) { } else { @@ -461,14 +523,20 @@ } } }, + updateTestValue(row,index){ - if(row.rpId == null || row.testValueList[index]==null){ + console.log(row); + if(row.rpId == null){ + + return } + let val = row.testValueList.join(","); let obj = { deviceId: row.deviceId, rpId: row.rpId, - testValue: row.testValueList.join(",") + testValue: val, + note: row.note } updateRawInsProduct(obj).then(res=>{ if(res.data.code === 0){ @@ -481,6 +549,8 @@ this.$message.error(error) }) }, + + init(){ if(this.dataForm.id){ getObj(this.dataForm.id).then(res=>{ @@ -497,26 +567,43 @@ this.dataForm.createUser = data.createUser let userNameList = [] this.list = [] - data.children.forEach(item=>{ - userNameList.push(item.userName) - let arr = [] - if(item.testValue != undefined ){ - arr = item.testValue.split(",") - if(arr.length > this.empiricalValueAdd){ - this.empiricalValueAdd = arr.length + data.children.forEach(item => { + if (item.children) { + let ele = { + iid: null, + father: null, + children: [] + } + ele.iid = Math.random() + ele.father = item.rpFather + item.children.forEach(obj => { + if(obj.userName){ + userNameList.push(obj.userName) + } + let arr= [] + + if(obj.testValue){ + arr = obj.testValue.split(",") + } + + let o = { + deviceId: obj.deviceId, + deviceName: obj.deviceName, + iid: Math.random(), + required: obj.required, + rpId: obj.rpId, + name: obj.rpName, + unit: obj.rpUnit, + userName: obj.userName, + testValue: obj.testValue?obj.testValue:'', + testValueList: arr, + note: obj.note?obj.note:'', + testState: obj.testState + } + ele.children.push(o) + }) + this.list.push(ele) } - } - this.list.push({ - deviceId: item.deviceId, - deviceName: item.deviceName, - name: item.rpName, - required: item.required, - testValue: item.testValue, - unit: item.rpUnit, - testState: item.testState, - rpId: item.rpId, - testValueList: arr - }) }) this.conclusionTable = [{ code: data.code, @@ -531,13 +618,98 @@ this.conclusionTable = [] } }, + changeState(row, index) { + console.log(row) + if (row.rpId != null && row.rpId != '') { + let val = "" + row.testValueList.forEach(e => { + val += e + "," + }) + + // if (note === undefined || note === '' || note === null) { + // return + // } + console.log(val) + val = val.slice(0, -1); + if (val === undefined || val === '' || val === null) { + return + } + + + let obj = { + deviceId: row.deviceId, + rpId: row.rpId, + testValue: val, + note: row.note + + } + console.log(obj) + updateRawInsProduct(obj).then(res => { + if (res.data.code == 0) { + this.$message.success("鏇存柊鎴愬姛") + } else { + this.$message.error("鏇存柊澶辫触") + } + this.init() + }) + } + }, + + + + // 鍒犻櫎瀛愰」鐩� + delChildren(row,index,isParent) { + if(isParent){ + let parentIndex = this.list.findIndex(el =>{ + return el.iid == row.iid + }) + this.list.splice(parentIndex,1) + }else{ + let i = this.list.findIndex(el =>{ + return el.children.find(ele => ele.iid == row.iid) + }) + let childrenIndex = this.list[i].children.findIndex(el =>{ + return el.iid == row.iid + }) + this.list[i].children.splice(childrenIndex,1) + } + }, + //娣诲姞瀛愰」鐩� + addChildren(row){ + console.log(row); + let obj = { + deviceId: null, + deviceName: null, + iid: Math.random(), + required: null, + rpId: null, + name: null, + unit: null, + userName: null, + testValue: null, + testValueList: [], + note: null, + testState: null + } + row.children.push(obj) + }, save(){ + let data = this.dataForm - data.rawInsProducts = this.list - data.rawInsProducts.forEach(item=>{ - let val = item.testValueList.join(",") - item.testValue = val + console.log('--------',data); + console.log("-----",this.list); + this.list.forEach(item=>{ + item.children.forEach(c=>{ + let arr=c.testValueList + let val='' + arr.forEach(a=>{ + val+=a+"," + }) + let end=val.substring(0,val.length-1) + c.testValue=end + }) }) + data.rawInsProducts = this.list addRawInspects(data).then(res=>{ this.$message.success("淇濆瓨鎴愬姛") this.$router.go(-1) -- Gitblit v1.9.3