From b059305e27b87b446679e523c8df9ad1448d8d99 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 07 三月 2024 11:16:49 +0800 Subject: [PATCH] 销售订单-下载排产单2 --- src/views/quality/rawMaterial/rawMaterial-form.vue | 263 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 171 insertions(+), 92 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 8594c4b..83fdeb7 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -3,7 +3,7 @@ <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 && dataForm.id!=null">鏌ョ湅-鍘熸潗鏂欐楠�</h2> + <h2 v-if="(resultVal!=null && resultVal!='') && dataForm.id!=null">鏌ョ湅-鍘熸潗鏂欐楠�</h2> <h2 v-else>缂栬緫-鍘熸潗鏂欐楠�</h2> </div> <div class="btn-group header-right"> @@ -32,12 +32,12 @@ <el-button slot="append" icon="el-icon-search" - :disabled="resultVal!=null" + :disabled="(resultVal!=null && resultVal!='')" @click="queryCode"></el-button> <el-button slot="append" icon="el-icon-full-screen" - :disabled="resultVal!=null" + :disabled="(resultVal!=null && resultVal!='')" @click="Turnonthecamera"></el-button> </el-input> </el-form-item> @@ -86,27 +86,32 @@ </el-col> <el-col :span="6"> <el-form-item label="鏁伴噺" prop="number"> - <el-input v-model="dataForm.number" :disabled="resultVal!=null" /> + <el-input v-model="dataForm.number" :disabled="(resultVal!=null && resultVal!='')" /> </el-form-item> </el-col> </el-row> <el-row> + <el-col :span="6"> + <el-form-item label="鎶ユ鏃ユ湡" prop="createTime"> + <el-date-picker + :disabled="dataForm.id!=null" + v-model="dataForm.createTime" + type="datetime" + 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-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-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="createTime" v-if="dataForm.id!=null"> - <el-input v-model="dataForm.createTime" disabled /> - </el-form-item> - </el-col> - <el-col :span="6"> - <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> - <el-input v-model="dataForm.createUser" disabled /> - </el-form-item> </el-col> </el-row> </el-form> @@ -172,39 +177,65 @@ <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-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-select v-model="scope.row.testValueList[index]" + ref="testValueSelect" + clearable + filterable + allow-create + default-first-option + @change="changeState(scope.row)" + @blur="onTypeBlur($event)"> + <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 - :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" - @blur="changeState(scope.row,scope.$index)" + ref="testValueInput" + @input="testChange(scope.row)" + @blur="changeState(scope.row)" v-model="scope.row.testValueList[index]" :fetch-suggestions="querySearch" placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" > - <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down" slot="suffix"></i> <template slot-scope="{ item }"> <div>{{ item.value }}</div> </template> </el-autocomplete> --> - - <el-select style="width:100%" filterable - :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" - v-model="scope.row.testValueList[index]" - placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" - allow-create - default-first-option - @change="changeState(scope.row,scope.$index)" - @blur="selectBlur" - > - <el-option label="鏄�" value="鏄�"/> - <el-option label="鍚�" value="鍚�"/> - </el-select> - </el-tooltip> + <!-- <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + </el-tooltip> --> </div> </template> </el-table-column> <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="200"> <template slot-scope="scope"> <div v-if="!scope.row.children"> - <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:60%" + <el-select ref="" :disabled="dataForm!=null && (resultVal!=null && resultVal!='')" style="width:60%" v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> <el-option v-for="(item,index) in deviceList" :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> @@ -213,7 +244,7 @@ size="small" slot="append" icon="el-icon-full-screen" - :disabled="dataForm!=null && resultVal!=null" + :disabled="dataForm!=null && (resultVal!=null && resultVal!='')" @click="codeDevice(scope.row,scope.$index)"></el-button> </div> </template> @@ -221,7 +252,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, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + <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> </div> </template> </el-table-column> @@ -256,7 +287,7 @@ element-loading-text="璇风◢绛夛紝鏂囦欢涓婁紶涓�" > <el-upload - :disabled="dataForm.rawInsNo==null || resultVal!=null" + :disabled="dataForm.rawInsNo==null || (resultVal!=null && resultVal!='')" drag ref="upload" action="/mes/rawInsProduct/upload" @@ -311,7 +342,7 @@ @click="delProcessConfigFile(scope.row)" type="text" size="small" - :disabled="resultVal!=null" + :disabled="(resultVal!=null && resultVal!='')" >鍒犻櫎</el-button > <el-button @@ -340,13 +371,13 @@ <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column> <el-table-column prop="judgeState" label="妫�楠岀粨璁�"> <template slot-scope="scope"> - <el-tag type="success" v-if="scope.row.testState == '1'">鍚堟牸</el-tag> - <el-tag type="danger" v-else-if="scope.row.testState == '0'">涓嶅悎鏍�</el-tag> + <el-tag type="success" v-if="scope.row.testState == 1">鍚堟牸</el-tag> + <el-tag type="danger" v-else-if="scope.row.testState == 0">涓嶅悎鏍�</el-tag> </template> </el-table-column> <el-table-column label="鎿嶄綔"> <template> - <el-button type="text" :disabled="resultVal!=null && dataForm.id!=null" @click="showDialog()" size="small">涓婃姤</el-button> + <el-button type="text" :disabled="(resultVal!=null && resultVal!='') && dataForm.id!=null" @click="showDialog()" size="small">涓婃姤</el-button> </template> </el-table-column> </el-table> @@ -411,11 +442,12 @@ import rawMaterialPartDialog from '@/views/common/rawMaterial-part' import { getStore } from '@/util/store' import qrCodeApp from '@/views/common/qrCodeApp' - import transformImage from '@/util/fileTransform' + import testValueSelect from './testValue-select' export default { components:{ rawMaterialPartDialog, - qrCodeApp + qrCodeApp, + testValueSelect }, computed:{}, data(){ @@ -480,7 +512,8 @@ testState: '' }], dataRule: { - code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }] + code:[{ required: true, message: '璇锋壂鎻忛�夋嫨闆朵欢', trigger: 'blur' }], + createTime: [{ required: true, message: '璇烽�夋嫨鎶ユ鏃ユ湡', trigger: 'change' }] }, deviceList: [], } @@ -492,12 +525,12 @@ }, created(){ this.dataForm.id = this.$route.query.id - this.resultVal = this.$route.query.resultVal + this.resultVal = this.$route.params.resultVal if(this.resultVal == null){ let val = sessionStorage.getItem("raw-resultVal-"+this.dataForm.id) val == undefined ? null : this.resultVal=val } - this.init() + this.init(this.dataForm.id) this.getDeviceList() }, watch:{ @@ -743,7 +776,7 @@ required: null, rpId: null, name: null, - unit: 'mm', + unit: '', userName: null, testValue: '', testValueList: [], @@ -770,7 +803,7 @@ } updateRawInsProduct(obj).then(res=>{ if(res.data.code === 0){ - this.init() + this.init(this.dataForm.id) } }) } @@ -794,9 +827,9 @@ } } }, - init(){ - if(this.dataForm.id){ - getObj(this.dataForm.id).then(res=>{ + init(id){ + if(id){ + getObj(id).then(res=>{ let data = res.data.data this.dataForm.rawInsNo = data.rawInsNo this.dataForm.name = data.name @@ -886,43 +919,74 @@ console.log(e,e.target.tabIndex); console.log(e.target.value); }, - changeState(row, index) { - this.$nextTick(()=>{ + 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){ + const enterKeyEvent = new KeyboardEvent('keyup', { + key: 'Enter', + keyCode: 13, + which: 13, + bubbles: true + }); + + // 妯℃嫙鍦ㄨ緭鍏ユ涓婅Е鍙戞寜閿簨浠� + this.$refs.testValueSelect.dispatchEvent(enterKeyEvent); + }, + 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] - let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ - if(!reg.test(val) && !['鏄�','鍚�'].includes(val)){ - row.testValueList[i] = null - this.$message.error("璇疯緭鍏ユ暟瀛楁垨閫夋嫨鏄惁") - isTrue = false - } + 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 + } + } + } } if(!isTrue){ - return + 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("鏇存柊澶辫触") + console.log(row.testValueList); + return + if (row.rpId != null && row.rpId != '') { + let val = row.testValueList.join(",") + if (val === undefined || val === '' || val === null) { + return } - this.init() - }) - } + 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) + }) + } }) }, // 鍒犻櫎瀛愰」鐩� @@ -955,7 +1019,7 @@ required: null, rpId: null, name: null, - unit: 'mm', + unit: '', userName: null, testValue: null, testValueList: [], @@ -965,18 +1029,26 @@ row.children.push(obj) }, save(){ - let data = this.dataForm - this.list.forEach(item=>{ - item.children.forEach(c=>{ - c.testValue=c.testValueList.join(",") - }) - }) - data.rawInsProducts = this.list - addRawInspects(data).then(res=>{ - this.$message.success("淇濆瓨鎴愬姛") - this.$router.go(-1) - }).catch(error=>{ - this.$message.error(error) + this.$refs.dataForm.validate(valid=>{ + if(valid){ + const _than = this + let data = this.dataForm + this.list.forEach(item=>{ + item.children.forEach(c=>{ + c.testValue=c.testValueList.join(",") + }) + }) + data.rawInsProducts = this.list + addRawInspects(data).then(res=>{ + this.$message.success("淇濆瓨鎴愬姛") + // this.$router.go(-1) + }).catch(error=>{ + this.$message.error(error) + }) + _than.$nextTick(()=>{ + _than.init(Number(res.data.msg)) + }) + } }) }, getDeviceList(){ @@ -1188,6 +1260,13 @@ border: 1px solid #e4e7ed; border-bottom: none; } +.dropdown{ + position: relative; + right: 30px; + top: 5px; + color: #C0C4CC; + font-size: 14px; +} @media (max-width: 767px) { .pad-addcol-btn{ font-size:12px; -- Gitblit v1.9.3