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 | 124 +++++++++++++++++++++++------- src/views/plan/customerorder/index.vue | 2 src/views/quality/rawMaterial/testValue-select.vue | 64 +++++++++++++++ src/api/plan/customerorder.js | 6 4 files changed, 158 insertions(+), 38 deletions(-) diff --git a/src/api/plan/customerorder.js b/src/api/plan/customerorder.js index b6db926..f9b987e 100644 --- a/src/api/plan/customerorder.js +++ b/src/api/plan/customerorder.js @@ -266,10 +266,10 @@ export function downloadProduct(data){ return request({ - url: '/mes/plan/customerOrder/downloadProduct', - method: 'post', + url: '/mes/plan/customerOrder/getProduct', + method: 'get', responseType: 'blob', - data: data + params: data }) } diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index 3b0251a..946abab 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -1130,7 +1130,7 @@ this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�") return } - downloadProduct({ids: ids}).then(res=>{ + downloadProduct(ids).then(res=>{ if(res.status===200){ transform(res) } diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index c4c60ab..83fdeb7 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -177,31 +177,58 @@ <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-dropdown> - <el-input placeholder="妫�娴嬪��"/> - <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down el-icon--right"></i> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item>榛勯噾绯�</el-dropdown-item> - <el-dropdown-item>鐙瓙澶�</el-dropdown-item> - <el-dropdown-item>铻鸿洺绮�</el-dropdown-item> - <el-dropdown-item>鍙岀毊濂�</el-dropdown-item> - <el-dropdown-item>铓典粩鐓�</el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> + <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 && resultVal!=''))" - @blur.stop="changeState(scope.row,scope.$index)" - @select="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-tooltip> + <!-- <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + </el-tooltip> --> </div> </template> </el-table-column> @@ -225,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 && resultVal!=''))" 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> @@ -415,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(){ @@ -748,7 +776,7 @@ required: null, rpId: null, name: null, - unit: 'mm', + unit: '', userName: null, testValue: '', testValueList: [], @@ -891,26 +919,53 @@ 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] - if(!['鏄�','鍚�'].includes(val)){ - let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/ - if(!reg.test(val)){ - row.testValueList = '' - this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁") - isTrue = false + 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 } } - console.log(row.testValueList.join(",")); + console.log(row.testValueList); return if (row.rpId != null && row.rpId != '') { let val = row.testValueList.join(",") @@ -1205,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; diff --git a/src/views/quality/rawMaterial/testValue-select.vue b/src/views/quality/rawMaterial/testValue-select.vue index 0e814c9..3435f79 100644 --- a/src/views/quality/rawMaterial/testValue-select.vue +++ b/src/views/quality/rawMaterial/testValue-select.vue @@ -1,13 +1,71 @@ <!-- 鍘熸潗鏂欐楠�-妫�娴嬪�艰緭鍏ユ缁勪欢 --> <template> + <el-select v-model="selectedValue" @change="handleChange" clearable> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + <el-input + v-model="inputValue" + slot="prefix" + placeholder="鑷畾涔夎緭鍏�" + @input="handleInput" + ></el-input> + </el-select> </template> <script> export default { - + props:{ + value: { + type: [String, Number], + default: '' + }, + options: { + type: Array, + default: () => [] + } + }, + data(){ + return { + selectedValue: '', + inputValue: '', + // options: [{ + // label:'鏄�', + // value: '鏄�' + // },{ + // label:'鍚�', + // value: '鍚�' + // }] + } + }, + created() { + this.selectedValue = this.value; + }, + watch: { + value(newValue) { + this.selectedValue = newValue; + } + }, + methods: { + handleChange(value) { + this.$emit('input1', value); + }, + handleInput(value) { + this.$emit('input1', value); + } + } } </script> -<style> - +<style scope> + .dropdown{ + position: relative; + right: 30px; + top: 5px; + color: #C0C4CC; + font-size: 14px; + } </style> -- Gitblit v1.9.3