From e7751b3399787843964f9bcfa5461194df0f7c22 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 08 三月 2024 15:21:43 +0800
Subject: [PATCH] 工艺-BOM:bom导出

---
 src/views/quality/rawMaterial/rawMaterial-form.vue      |  126 ++++++++++++-----------------------------
 src/views/plan/customerorder/index.vue                  |    2 
 src/api/technology/completeproductstructure.js          |    9 +++
 src/views/technology/completeproductstructure/index.vue |   25 ++++++++
 4 files changed, 71 insertions(+), 91 deletions(-)

diff --git a/src/api/technology/completeproductstructure.js b/src/api/technology/completeproductstructure.js
index 2f31570..383537a 100644
--- a/src/api/technology/completeproductstructure.js
+++ b/src/api/technology/completeproductstructure.js
@@ -90,3 +90,12 @@
     data: obj
   })
 }
+
+export function exportBom(obj) {
+  return request({
+    url: '/mes/bom/exportBom',
+    method: 'post',
+    data: obj,
+    responseType: 'blob'
+  })
+}
diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index 946abab..d87d035 100644
--- a/src/views/plan/customerorder/index.vue
+++ b/src/views/plan/customerorder/index.vue
@@ -586,7 +586,7 @@
             sort: true,
             isTrue: true,
             isSearch: true,
-            searchInfoType: 'text',
+            searchInfoType: 'date',
             formatter: this.formatDutyDate,
           },
           {
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index 1cbd198..768325d 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -177,58 +177,22 @@
                       <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> -->
+                            <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start">
+                                <el-autocomplete clearable
+                                cache="false"
+                                ref="testValueInput"
+                                @input="$nextTick(()=>{checkTestValues(scope.row)})"
+                                @blur="$nextTick(()=>{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>
                           </div>
                         </template>
                       </el-table-column>
@@ -919,48 +883,32 @@
         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]);
+      checkTestValues(row){
+        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)){
+                            row.testValueList[i] = null
+                            this.$message.error("璇疯緭鍏�6浣嶆暟瀛楁垨閫夋嫨鏄惁")
+                            isTrue = false
+                        }
+                    }
+                  }
+              }
+              if(!isTrue){
+                  return
+              }
+
+          }
       },
       changeState(row) {
-        if(row.use){
-            this.$refs.testValueSelect.$event.target.value = row.use
-        }
+          console.log("鏇存柊--銆�",row.testValueList[0]);
+          return
           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
-                          }
-                      }
-                    }
-                }
-                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) {
diff --git a/src/views/technology/completeproductstructure/index.vue b/src/views/technology/completeproductstructure/index.vue
index 8af0091..3a79e2b 100644
--- a/src/views/technology/completeproductstructure/index.vue
+++ b/src/views/technology/completeproductstructure/index.vue
@@ -21,11 +21,13 @@
   fetchList,
   delObj,
   addByStructure,
+  exportBom
 } from '@/api/technology/completeproductstructure'
 import ttable from '@/views/common/ztt-table.vue'
 import { mapGetters } from 'vuex'
 import { changeState } from '../../../api/technology/completeproductstructure'
 import { remote } from '@/api/admin/dict'
+import { transform } from '@/util/fileTransform'
 
 export default {
   data() {
@@ -292,7 +294,14 @@
         permitArr: [],
         fun: ()=>{this.deleteAll()},
       })
-    }      
+    }
+    this.table.toolbar.push({
+        text: 'BOM瀵煎嚭',
+        type:'primary',
+        disabled: false,
+        permitArr: [],
+        fun: ()=>{this.exportBomFun()},
+      })
     if(this.permissions.technology_completeproductstructure_del){
         this.table.operator = [
           {
@@ -317,6 +326,20 @@
     }
   },
   methods: {
+    exportBomFun(){
+        let ids = this.multipleSelection.map(ele=>ele.id)
+        if(ids.length<1){
+            this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�")
+            return
+        }
+        exportBom(ids).then(res=>{
+            if(res.status===200){
+                transform(res)
+            }
+        }).catch(error=>{
+            console.error(error)
+        })
+    },
     getBomTypeDbOptions() {
       remote('bom_type_db').then((response) => {
         if (response.data.code === 0) {

--
Gitblit v1.9.3