From 4652431ce329b4dec6c4dcc0758d5c4ff97e0666 Mon Sep 17 00:00:00 2001 From: 86134 <aa> Date: 星期六, 11 十一月 2023 09:57:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/quality/rawMaterial/rawMaterial-form.vue | 389 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 214 insertions(+), 175 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index ec6ec28..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" @@ -98,36 +98,38 @@ </div> - + <div class="rawMaterial-detail"> <el-row style="width:100%;z-index: 10;height:50px;"> <el-col :span="18">妫�楠岄」鐩�</el-col> - <el-col :span="6"> - <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="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'}" + <el-table + :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" :cell-style="{textAlign:'center'}" ref="table" - :data="list" - border + :data="list" + border style="width: 100%;" height="400" - row-key="iid" - default-expand-all + 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:120px" :disabled="dataForm.id!=null" v-model="scope.row.father" 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"> @@ -144,7 +146,7 @@ <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"> @@ -157,23 +159,14 @@ <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" 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-col v-if="scope.row.itype === '1'"> - <el-input :disabled="scope.row.deviceId == '' || (dataForm.id!=null&&resultVal!=null)" - v-model="scope.row.testValueList[index]" - placeholder="璇疯緭鍏ユ娴嬪��"></el-input> - </el-col> - <el-col v-else> - <el-select style="width: 100%;" - :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" - v-model="scope.row.testValueList[index]" @change="aaa(scope.row)" - placeholder="璇烽�夋嫨"> - <el-option v-for="item in dataVal" :key="item.value" :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-col> + <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)" + v-model="scope.row.testValueList[index]" + placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" @change="updateTestValue(scope.row,scope.$index)"> + <el-option label="鏄�" value="鏄�"/> + <el-option label="鍚�" value="鍚�"/> + </el-select> </el-tooltip> </div> </template> @@ -181,9 +174,9 @@ <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> <template slot-scope="scope"> <div v-if="!scope.row.children"> - <el-select :disabled="dataForm!=null && resultVal!=null" style="width:100%" + <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> @@ -192,30 +185,33 @@ <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" > <template slot-scope="scope"> <div v-if="!scope.row.children"> - <el-input :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> - </div> + <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"> - <div v-if="!scope.row.children"> - <el-button type="text" @click="addwaydata(scope)">鏂板</el-button> - <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> @@ -224,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> @@ -265,7 +261,7 @@ </template> <script> -import { +import { selectDevice, addRawInspects, getObj, @@ -274,21 +270,12 @@ updateDeviceById, } from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' export default { - // props:['currentRow'], computed:{}, components:{ rawMaterialPartDialog }, data(){ return{ - dataVal: [{ - label: '鏄�', - value: '鏄�' - }, { - label: '鍚�', - value: '鍚�' - }], - // componentData:{}, userdata:[], currentRow:[], userlist:[], @@ -336,8 +323,6 @@ }], dataRule: {}, deviceList: [], - restaurants:[], - whetherNot:'', } }, beforeUpdate(){ @@ -354,10 +339,6 @@ } this.init() this.getDeviceList() - this.restaurants = this.loadAll(); - - console.log(this.dataForm); - }, watch:{ dialogVisible(newVal){ @@ -365,27 +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){ @@ -396,7 +358,6 @@ }, // 纭鍥炶皟 selectPart(param, nodePart, index) { - console.log(param) if (typeof param !== 'undefined') { this.dataForm.code = param.code this.dataForm.name = param.name @@ -408,11 +369,6 @@ this.dataForm.message = param.message this.dataForm.projectName = param.projectName this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts - console.log(param.rawInsProducts); - param.rawInsProducts.forEach(item =>{ - item.iid = Math.random() - console.log(item); - }) param.rawInsProducts.forEach(o=>{ this.clickAddLine(o) }) @@ -425,19 +381,40 @@ } this.showPart = true }, - updateDevice(row,index){ - console.log(row); - return - 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=>{ @@ -451,14 +428,17 @@ this.conclusionTable[0].testState = resultVal sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal) }, - aaa(row){ - console.log(row); - }, 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() @@ -469,48 +449,53 @@ 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 ele = { + fId: Math.random(), + father: null, + iid: Math.random(), + children:[] + } if(row){ - let userNameList = [] + ele.father = row.father?row.father:null row.children.forEach(item => { - console.log("item--",item); - item.iid = Math.random() + 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.testValue = '' - item.testValueList= [] - if (item.userName) { - userNameList.push(item.userName) - } - if (item.inspectionValue) { - arr = item.inspectionValue.split(",") - } item.empiricalValueAddss = arr if (arr.length > this.empiricalValueAdd) { this.empiricalValueAdd = arr.length } - console.log("aaaa----",row); - this.list.push(row) + this.list.push(ele) }) }else{ - let ele = { - father: '', - iid: Math.random(), - children:[{ + ele.children.push({ deviceId: null, deviceName: null, iid: Math.random(), @@ -519,12 +504,11 @@ name: null, unit: null, userName: null, - testValue: null, + testValue: '', testValueList: [], - note: null, - testState: null - }] - } + note: '', + testState: '' + }) this.list.push(ele) } @@ -539,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){ @@ -559,10 +549,11 @@ this.$message.error(error) }) }, + + init(){ if(this.dataForm.id){ getObj(this.dataForm.id).then(res=>{ - console.log(res); let data = res.data.data this.dataForm.name = data.name this.dataForm.formTime = data.formTime @@ -586,11 +577,15 @@ ele.iid = Math.random() ele.father = item.rpFather item.children.forEach(obj => { - console.log(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, @@ -609,7 +604,7 @@ }) this.list.push(ele) } - }) + }) this.conclusionTable = [{ code: data.code, name: data.name, @@ -623,59 +618,103 @@ this.conclusionTable = [] } }, - // 鍒犻櫎琛� - clickDeleteline(scope) { - console.log(scope); - let index = this.list.findIndex(el =>{ - return el.children.find(ele => ele.iid == scope.row.iid) - }) + changeState(row, index) { + console.log(row) + if (row.rpId != null && row.rpId != '') { + let val = "" + row.testValueList.forEach(e => { + val += e + "," + }) - let childrenIndex = this.list[index].children.findIndex(el => { - return el.iid == scope.row.iid - }) - // console.log(this.list); - console.log(index); - console.log(childrenIndex); - - this.list[index].children.splice(childrenIndex , 1); - if(childrenIndex == 0){ - this.list.splice(scope.row,1) + // 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) } }, - addwaydata(row){ - console.log(row.row); - let index = this.list.findIndex(el =>{ - return el.children.find(ele => ele.iid == row.row.iid) - }) - console.log(index); + //娣诲姞瀛愰」鐩� + addChildren(row){ + console.log(row); let obj = { - iid:Math.random(), - name:'', - required:'', - unit:'' + deviceId: null, + deviceName: null, + iid: Math.random(), + required: null, + rpId: null, + name: null, + unit: null, + userName: null, + testValue: null, + testValueList: [], + note: null, + testState: null } - this.list[index].children.push(obj) + row.children.push(obj) }, save(){ - console.log(this.dataForm); + let data = this.dataForm - console.log(data); - console.log(this.list); + 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 - // console.log(data.rawInsProducts); - // data.rawInsProducts.forEach(item=>{ - // console.log(item); - // let val = item.testValueList.join(",") - // item.testValue = val - // console.log(item.testValue); - // }) - // console.log(data); - console.log('=====>'); addRawInspects(data).then(res=>{ - // this.$message.success("淇濆瓨鎴愬姛") + this.$message.success("淇濆瓨鎴愬姛") this.$router.go(-1) }).catch(error=>{ - // this.$message.error(error||'error') + this.$message.error(error) }) }, getDeviceList(){ -- Gitblit v1.9.3