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