From c14f9d834217ee0ec378b7a1f198951a6975f536 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期五, 12 四月 2024 10:58:00 +0800 Subject: [PATCH] 前端优化 --- src/views/quality/rawMaterial/rawMaterial-form.vue | 273 +++++++++++++++++++++++++----------------------------- 1 files changed, 126 insertions(+), 147 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 1cbd198..d7354ef 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -92,27 +92,34 @@ </el-row> <el-row> <el-col :span="6"> - <el-form-item label="鎶ユ鏃ユ湡" prop="createTime"> + <el-form-item label="鎶ユ鏃ユ湡" prop="startTime"> <el-date-picker - :disabled="dataForm.id!=null" - v-model="dataForm.createTime" + disabled + v-model="dataForm.startTime" type="datetime" + format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd HH:mm:ss" placeholder="鎶ユ鏃ユ湡"> </el-date-picker> </el-form-item> </el-col> - <el-col :span="6"> - <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> + <el-col :span="6" v-if="dataForm.id!=null"> + <el-form-item label="鎶ユ浜�" prop="createUser" > <el-input v-model="dataForm.createUser" disabled /> </el-form-item> </el-col> - <el-col :span="6"> - <el-form-item prop="projectName" label="椤圭洰鍚嶇О" v-if="dataForm.id!=null"> + <el-col :span="6" v-if="dataForm.id!=null"> + <el-form-item prop="projectName" label="椤圭洰鍚嶇О" > <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName"> <el-input v-model="dataForm.projectName" disabled ></el-input> </el-tooltip> </el-form-item> </el-col> + <el-col :span="6"> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="dataForm.remark" /> + </el-form-item> + </el-col> </el-row> </el-form> </div> @@ -122,6 +129,9 @@ <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&&resultVal==null" size="small" + type="primary" + @click="saveTable()">淇濆瓨</el-button> <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button> <el-button class="pad-addcol-btn" 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> @@ -147,13 +157,13 @@ </el-table-column> <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> + <el-input v-if="scope.row.children" style="width:80%" :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" 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" + <el-input class="inline-input" :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> </div> </template> @@ -161,7 +171,7 @@ <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> + <el-input :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input> </div> </template> @@ -169,7 +179,7 @@ <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" + <el-input :disabled="dataForm.id!=null&&(resultVal!=null && resultVal!='')" v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> </div> </template> @@ -177,58 +187,24 @@ <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-select - v-model="scope.row.testValueList[index]" - ref="testValueSelect" - id="testValueSelect" - clearable - filterable - @change="changeState(scope.row)" - @blur="onTypeBlur($event,scope.row,scope.$index,index)"> - <el-option label="鏄�" value="鏄�"></el-option> - <el-option label="鍚�" value="鍚�"></el-option> - </el-select> - <!-- <testValueSelect - @input1="changeState(scope.row)" - :options="[{ - label:'鏄�', - value: '鏄�' - },{ - label:'鍚�', - value: '鍚�' - }]" - v-model="scope.row.testValueList[index]" - ></testValueSelect> --> - <!-- <div style="display:flex"> - <el-input - ref="testValueInput" - clearable - @blur.stop="changeState(scope.row)" - v-model="scope.row.testValueList[index]" - placeholder="璇疯緭鍏ユ娴嬪��"/> - <el-dropdown @command="handleCommand" class="dropdown" trigger="click"> - <i class="el-icon-arrow-down el-icon--right"></i> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item :command="{'index':index,'use':'鏄�',...scope.row}">鏄�</el-dropdown-item> - <el-dropdown-item :command="{'index':index,'use':'鍚�',...scope.row}">鍚�</el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> - </div> --> <!-- :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" --> - <!-- @blur.stop="changeState(scope.row)" --> - <!-- <el-autocomplete clearable - ref="testValueInput" - @input="testChange(scope.row)" - @blur="changeState(scope.row)" - v-model="scope.row.testValueList[index]" - :fetch-suggestions="querySearch" - placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" > - <template slot-scope="{ item }"> - <div>{{ item.value }}</div> - </template> - </el-autocomplete> --> - <!-- <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> - </el-tooltip> --> + <!-- @input="$nextTick(()=>{checkTestValues(scope.row)})" --> + <!-- @blur.capture.native="changeState(scope.row)" --> + <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-autocomplete clearable + cache="false" + ref="testValueInput" + @blur="checkTestValues(scope.row,'blur',$event)" + @select="checkTestValues(scope.row,'select',$event)" + :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" + v-model="scope.row.testValueList[index]" + :fetch-suggestions="querySearch" + placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" > + <template slot-scope="{ item }"> + <div>{{ item.value }}</div> + </template> + </el-autocomplete> + </el-tooltip> </div> </template> </el-table-column> @@ -252,7 +228,7 @@ <el-table-column prop="note" label="妫�楠屾弿杩�" width="160" > <template slot-scope="scope"> <div v-if="!scope.row.children"> - <el-input @blur="changeState(scope.row)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + <el-input @blur="checkTestValues(scope.row,'blur',$event)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> </div> </template> </el-table-column> @@ -290,7 +266,7 @@ :disabled="dataForm.rawInsNo==null || (resultVal!=null && resultVal!='')" drag ref="upload" - action="/mes/rawInsProduct/upload" + action="/mes/attachment/upload" :auto-upload="true" :headers="headers" :before-upload="submitUpload" @@ -305,7 +281,6 @@ </div> </el-upload> </div> - <el-table :data="processConfigFileTableData" height="260px"> <el-table-column prop="rawInsNo" @@ -435,19 +410,20 @@ getObj, updateRawInsProduct, updateRawInspectsById, - getProcessConfigFiles, - downloadProcessConfigFile, - deleteProcessConfigFile, + updateRawInsProduct2, updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial' + import { + getProcessConfigFiles, + deleteProcessConfigFile, + downloadProcessConfigFile + } from '@/api/quality/attachment' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' import { getStore } from '@/util/store' import qrCodeApp from '@/views/common/qrCodeApp' - import testValueSelect from './testValue-select' export default { components:{ rawMaterialPartDialog, qrCodeApp, - testValueSelect }, computed:{}, data(){ @@ -459,8 +435,9 @@ Authorization: 'Bearer ' + getStore({ name: 'access_token' }) }, paramData: { - rawInsNo: '', - lineNumber: '' + no: '', + lineNumber: '', + type: 0 }, row: null, proIndex: 0, @@ -492,6 +469,7 @@ unit: '', number: '', supplier: '', + remark:'', rawInsProducts: [{ deviceId: 0, father:'', @@ -513,7 +491,7 @@ }], dataRule: { code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }], - createTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'change' }] + // startTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'blur' }] }, deviceList: [], } @@ -556,8 +534,9 @@ }, getConfigFiles() { const param = { - rawInsNo: this.dataForm.rawInsNo, - lineNumber: this.dataForm.id + no: this.dataForm.rawInsNo, + lineNumber: this.dataForm.id, + type: 0 } getProcessConfigFiles(param).then((res) => { this.processConfigFileTableData = res.data.data @@ -583,7 +562,7 @@ }) }, submitUpload() { - this.paramData.rawInsNo = this.dataForm.rawInsNo + this.paramData.no = this.dataForm.rawInsNo this.paramData.lineNumber = this.dataForm.id this.progrecessFileLoading = true }, @@ -651,6 +630,7 @@ this.dataForm.code = param.code this.dataForm.name = param.name this.dataForm.formTime = param.formTime + this.dataForm.startTime = param.formTime this.dataForm.unit = param.unit this.dataForm.specs = param.specs this.dataForm.supplier = param.supplier @@ -730,7 +710,9 @@ }); }, addTeatValueColumn(){ - this.empiricalValueAdd = this.empiricalValueAdd + 1; + this.$nextTick(()=>{ + this.empiricalValueAdd = this.empiricalValueAdd + 1; + }) }, // 娣诲姞琛� clickAddLine(row,index) { @@ -795,21 +777,22 @@ if(i.testValueList.length>1){ let arr = i.testValue.split(",") arr.splice((arr.length-1),1) - let obj = { - deviceId: i.deviceId, - rpId: i.rpId, - testValue: arr.join(","), - note: i.note - } - updateRawInsProduct(obj).then(res=>{ - if(res.data.code === 0){ - this.init(this.dataForm.id) - } - }) + // let obj = { + // deviceId: i.deviceId, + // rpId: i.rpId, + // testValue: arr.join(","), + // note: i.note + // } + // updateRawInsProduct(obj).then(res=>{ + // if(res.data.code === 0){ + // this.init(this.dataForm.id) + // } + // }) } }) } }) + this.saveTable() } }, delTeatValueColumn(){ @@ -834,6 +817,8 @@ this.dataForm.rawInsNo = data.rawInsNo this.dataForm.name = data.name this.dataForm.formTime = data.formTime + this.dataForm.startTime = data.startTime + this.dataForm.remark = data.remark this.dataForm.code = data.code this.dataForm.specs = data.specs this.dataForm.unit = data.runit @@ -919,67 +904,60 @@ console.log(e,e.target.tabIndex); console.log(e.target.value); }, - handleCommand(command){ - if(command.use && command.use==='鏄�'){ - command.testValueList[command.index] = '鏄�' - } - if(command.use && command.use==='鍚�'){ - command.testValueList[command.index] = '鍚�' - } - this.changeState(command) - }, - onTypeBlur(event,row,rowIndex,index){ - console.log("澶辩劍",event,row,rowIndex,index); - console.log(event.target.value); - console.log(this.list[rowIndex-1]); - }, - changeState(row) { - if(row.use){ - this.$refs.testValueSelect.$event.target.value = row.use - } - this.$nextTick(()=>{ - console.log("blur---",row.testValueList); - return - if(row){ - let isTrue = true - for(var i=0;i<row.testValueList.length;i++){ - let val = row.testValueList[i] - if(val != '' && val != null){ - if(!['鏄�','鍚�'].includes(val)){ - let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ - if(!reg.test(val)){ - val = null - this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁") - isTrue = false + checkTestValues(row,currentOption,event){ + if(row){ + let isTrue = true + if(currentOption==='blur'){ + let targetVal = event.target.value + if( (targetVal && ['鏄�','鍚�'].includes(targetVal)) || !targetVal){ + isTrue = false + }else{ + for(var i=0;i<row.testValueList.length;i++){ + let val = row.testValueList[i] + if(val != '' && val != null){ + if(!['鏄�','鍚�'].includes(val)){ + let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ + if(!reg.test(val)){ + row.testValueList[i] = '' + event.target.value = '' + this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁") + isTrue = false + } + } } } - } - } - if(!isTrue){ - return - } - } - console.log(row.testValueList); - return - if (row.rpId != null && row.rpId != '') { - let val = row.testValueList.join(",") - if (val === undefined || val === '' || val === null) { - return - } - let obj = { - deviceId: row.deviceId, - rpId: row.rpId, - testValue: val, - note: row.note - } - updateRawInsProduct(obj).then(res => { - if (res.data.code == 0) { - this.$message.success("鏇存柊鎴愬姛") - } else { - this.$message.error("鏇存柊澶辫触") } - this.init(this.dataForm.id) - }) + } + if(!isTrue){ + return + } + // this.changeState(row) + } + }, + saveTable() { + let rawInsProducts = []; + this.$nextTick(()=>{ + this.list.forEach(item=>{ + if(item.children){ + item.children.forEach(ele=>{ + console.log(ele); + let obj = JSON.parse(JSON.stringify(ele)) + obj.testValue = obj.testValueList.join(",") + obj.id = obj.rpId + delete obj.testValueList; + rawInsProducts.push(obj) + }) + } + }) + if(this.rawInsProducts.length>0){ + updateRawInsProduct2(rawInsProducts).then(res => { + if (res.data.code == 0) { + this.$message.success("鏇存柊鎴愬姛") + } else { + this.$message.error("鏇存柊澶辫触") + } + this.init(this.dataForm.id) + }) } }) }, @@ -1030,12 +1008,13 @@ this.list.forEach(item=>{ item.children.forEach(c=>{ c.testValue=c.testValueList.join(",") + c.required = c.required.replace(',','锛�').replace('(','锛�').replace(')','锛�') }) }) data.rawInsProducts = this.list addRawInspects(data).then(res=>{ this.$message.success("淇濆瓨鎴愬姛") - // this.$router.go(-1) + this.$router.go(-1) }).catch(error=>{ this.$message.error(error) }) -- Gitblit v1.9.3