From 7a415908713af60d445412c17683886722ae8f44 Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期二, 31 十月 2023 11:59:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/quality/rawMaterial/rawMaterial-form.vue | 255 +++++++++++++++++++++++++++++---------------------- 1 files changed, 145 insertions(+), 110 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 46ad3e2..d877ccd 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -6,7 +6,7 @@ <h2>缂栬緫-鍘熸潗鏂欐楠�</h2> </div> <div class="btn-group header-right"> - <el-button @click="save()">淇濆瓨</el-button> + <el-button @click="save()" v-if="this.dataForm.id==null">淇濆瓨</el-button> </div> </div> <div class="page-main"> @@ -100,33 +100,59 @@ </div> </el-col> </el-row> - <el-row style="width:100%;margin-top:-30px"> + <el-row style="width:100%;"> <el-col :span="24"> - <avue-crud - ref="crud" - :option="tableOption" - @current-row-change="changeEquipment" - :data="list" - v-model="form"> - <template slot="testValue" slot-scope="scope"> - <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" - placement="top-start"> - <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValue" - @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> - </el-tooltip> - </template> - <template slot="deviceName" slot-scope="scope"> - <el-select v-model="scope.row.equipmentId" filterable> - <el-option v-for="(item,index) in deviceList" - :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> - </el-select> - </template> - <template slot="testState" 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> - </template> - </avue-crud> + <el-table :data="list" border style="width: 100%;" height="320"> + <el-table-column type="index" label="搴忓彿" width="60"> + </el-table-column> + <el-table-column prop="name" label="椤圭洰" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" + placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </template> + </el-table-column> + <el-table-column prop="unit" label="鍗曚綅" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input> + </template> + </el-table-column> + <el-table-column prop="required" label="鏍囧噯鍊�" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.required" + placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> + </template> + </el-table-column> + <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.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + placement="top-start"> + <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValueList[index]" + @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> + </el-tooltip> + </template> + </el-table-column> + <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> + <template slot-scope="scope"> + <el-select style="width:100%" v-model="scope.row.equipmentId" 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> + </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> + </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> + </template> + </el-table-column> + </el-table> </el-col> </el-row> </div> @@ -141,36 +167,57 @@ :option="option" :data="conclusionTable" v-model="conclusion"> + <template slot="judgeState" slot-scope="scope"> + <el-tag type="success" v-if="scope.row.judgeState == 1">鍚堟牸</el-tag> + <el-tag type="danger" v-else-if="scope.row.judgeState == 0">涓嶅悎鏍�</el-tag> + </template> <template #menu> - <el-button type="text" size="small">涓婃姤</el-button> + <el-button type="text" @click="submitSave()" size="small">涓婃姤</el-button> </template> </avue-crud> </el-col> </el-row> </div> - </div> </div> </template> <script> import { object,conclusion } from '@/const/crud/quality/rawMaterial' -import { selectDevice,addRawInspects,getObj,updateRawInsProduct } from '@/api/quality/rawMaterial' +import { + selectDevice, + addRawInspects, + getObj, + updateRawInsProduct, + updateRawInspectsById, + updateDeviceById, } from '@/api/quality/rawMaterial' export default { data(){ return{ - columnIndex: 2, + // 娣诲姞鍒� + empiricalValueAdd: 1, + // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� + empiricalValueAddMaxNumber: 0, columnList: [], dataForm:{ id: null, + judgeState: null, formTime: '2023-10-28 00:00:00', + message: '-2050314,1,1,*,1002', name: 'name', code: 'code4', specs: 'specs', unit: 'mm', number: '111', supplier: 'supplier', - rawInsProducts: null, + rawInsProducts: [{ + equipmentId: 0, + name: '', + required: '', + testValue: '', + unit: '', + testValueList: [] + }] }, form: null, list:[], @@ -197,83 +244,59 @@ this.getDeviceList() }, watch:{ - 'columnList.length':function(newVal){ - const column = [{ - label: '椤圭洰', - width: 260, - prop: 'name', - span: 24, - type: 'text', - cell: true, - }, { - width: 260, - label: '鍗曚綅', - prop: 'unit', - span: 24, - type: 'text', - cell: true, - }, { - width: 260, - label: '鏍囧噯鍊�', - prop: 'required', - type: 'text', - span: 24, - cell: true, - }, { - label: '妫�娴嬪��', - prop: 'testValue', - type: 'text', - width: 260, - slot: true, - formSlot: true, - cell: true, - }, { - label: '璇曢獙璁惧', - prop: 'deviceName', - type: 'select', - cell: true, - slot: true, - formSlot: true, - width: 260 - },{ - label: '缁撹', - prop: 'testState', - type: 'text', - slot: true, - formSlot: true, - hide: true, - fixed: 'right' - }] - if(newVal > 0){ - if(this.columnList.length > 0){ - this.tableOption.column = column - this.columnList.forEach(item=>{ - this.tableOption.column.splice(4,0,item) - }) - } - }else{ - this.tableOption.column = column - } - }, + }, methods:{ - changeEquipment(current,old){ - console.log(current,old) + updateDevice(row){ + if(this.dataForm.id != null){ + updateDeviceById({equiomentId:row.equipmentId,rpId:row.rpId}).then(res=>{ + }).catch(error=>{ + console.log(error) + }) + } + }, + submitSave(){ + let pro = this.list.filter(item => { + return item.testState == 0; + }) + if (pro.length > 0) { + this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + inputPattern: /^\d+$/, + inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' + }).then(({ value }) => { + let data = { + id: this.dataForm.id, + number: value + } + updateRawInspectsById(data).then(res => { + this.$message.success("涓婃姤鎴愬姛"); + }); + }).catch(() => {}); + }else{ + updateRawInspectsById({id:this.dataForm.id,number:0}).then(res => { + this.$message.success("涓婃姤鎴愬姛"); + }); + } + this.init() }, addTeatValueColumn(){ - let propName = 'testValue' + this.columnIndex - this.columnList.push({ - label: '妫�娴嬪��', - prop: propName, - type: 'text', - width: 260, - $cellEdit: true, - disabled: this.list[0].equiomentId == null - }) - this.columnIndex+=1 + this.empiricalValueAdd = this.empiricalValueAdd + 1; + }, + // 鍒犻櫎琛� + clickDeleteline(scope) { + this.list.splice(scope.$index, 1); }, delTeatValueColumn(){ - this.columnList.pop() + if (this.empiricalValueAdd - 1 === 0) { } else { + if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { + this.empiricalValueAdd = this.empiricalValueAdd - 1; + this.list.forEach(i => { + i.testValueList.splice(this.empiricalValueAdd, 1); + }); + } + } }, updateTestValue(row){ if(row.rpId == null){ @@ -282,7 +305,7 @@ let obj = { equiomentId: row.equipmentId, rpId: row.rpId, - testValue: row.testValue + testValue: row.testValueList.join(",") } updateRawInsProduct(obj).then(res=>{ if(res.data.code === 0){ @@ -308,10 +331,18 @@ this.dataForm.number = data.number this.dataForm.createTime = data.creatTime this.dataForm.createUser = data.createUser + // this.dataForm.judgeState = data.judgeState let userNameList = [] this.list = [] data.children.forEach(item=>{ userNameList.push(item.userName) + let arr = [] + if(item.testValue != undefined ){ + arr = item.testValue.split(",") + this.empiricalValueAdd = arr.length + }else{ + this.empiricalValueAdd = 1 + } this.list.push({ equipmentId: item.equiomentId, name: item.rpName, @@ -319,14 +350,15 @@ testValue: item.testValue, unit: item.rpUnit, testState: item.testState, - rpId: item.rpId + rpId: item.rpId, + testValueList: arr }) }) this.conclusionTable = [{ code: data.code, name: data.name, userName: Array.from(new Set(userNameList)).join(','), - testState: '' + judgeState: data.judgeState }] }).catch(error=>{ this.$message.error("鑾峰彇澶辫触",error) @@ -339,8 +371,10 @@ save(){ let data = this.dataForm data.rawInsProducts = this.list - console.log(this.list) - return + data.rawInsProducts.forEach(item=>{ + let val = item.testValueList.join(",") + item.testValue = val + }) addRawInspects(data).then(res=>{ this.$message.success("淇濆瓨鎴愬姛") }).catch(error=>{ @@ -350,12 +384,13 @@ // 娣诲姞琛� clickAddLine() { let obj = { - $cellEdit: true, equipmentId: null, name: "", required: "", testValue: "", - unit: "" + unit: "", + testState: null, + testValueList: [], }; this.list.push(obj); }, -- Gitblit v1.9.3