From b8b16d90fd13bcad5881a4562b5bbe96e576bd6b Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 03 八月 2022 16:27:56 +0800
Subject: [PATCH] 1.解决工单手动打印大二维码问题

---
 src/views/zzmx/chda.vue |  332 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 200 insertions(+), 132 deletions(-)

diff --git a/src/views/zzmx/chda.vue b/src/views/zzmx/chda.vue
index 3c36587..17aedb5 100644
--- a/src/views/zzmx/chda.vue
+++ b/src/views/zzmx/chda.vue
@@ -60,8 +60,8 @@
                 :popper-append-to-body="false"
                 style="width: 200px"
                 placeholder="璇烽�夋嫨"
-                @focus="getWareHouseSelect"
               >
+                <!--                @focus="getWareHouseSelect"-->
                 <el-option
                   v-for="item in storehouseArr"
                   :key="item.code"
@@ -80,8 +80,26 @@
       <el-divider />
       <div style="margin-left: 10px;display: flex">
         <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
-        <el-button type="primary" icon="el-icon-office-building" @click="office">鍗曚綅</el-button>
-        <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>
+        <!--        <el-button type="primary" icon="el-icon-office-building" @click="office">鍗曚綅</el-button>-->
+        <el-button
+          type="primary"
+          icon="el-icon-refresh-right"
+          @click="syncSeaveSearchUnit"
+        >鍚屾璁¢噺鍗曚綅
+        </el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-refresh-right"
+          @click="syncInventoryFileSelect"
+        >鍚屾瀛樿揣妗f
+        </el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-refresh-right"
+          @click="syncStockTypeSelect"
+        >鍚屾瀛樿揣绫诲瀷
+        </el-button>
+        <!--        <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>-->
       </div>
       <el-divider />
       <div class="elTableDiv">
@@ -104,14 +122,17 @@
             prop="RowNum"
             width="50"
             label="搴忓彿"
+            fixed
           />
           <el-table-column
             prop="partcode"
             label="鐗╂枡缂栫爜"
+            min-width="160"
             sortable="custom"
           />
           <el-table-column
             prop="partname"
+            min-width="160"
             label="鐗╂枡鍚嶇О"
             sortable="custom"
           />
@@ -131,6 +152,7 @@
             prop="stocktypename"
             label="瀛樿揣绫诲瀷"
             sortable="custom"
+            min-width="110"
           />
           <!--          <el-table-column-->
           <!--            prop="materialtypename"-->
@@ -141,6 +163,7 @@
             prop="stck_name"
             label="浠撳簱鍚嶇О"
             sortable="custom"
+            min-width="110"
           />
           <el-table-column
             prop="maxqty"
@@ -169,15 +192,18 @@
           <el-table-column
             label="宸ヨ壓璺嚎"
             width="80"
+            prop="proute_id"
           >
             <template slot-scope="{row}">
               <div class="operationClass">
-                <i class="el-icon-share" @click="routeClick(row)" />
+                <i v-if="row.proute_id==='Y'" class="el-icon-share" @click="routeClick(row)" />
+                <i v-if="row.proute_id==='N'" style="color:rgb(180 ,181, 185)" class="el-icon-share" @click="routeClick(row)" />
               </div>
             </template>
           </el-table-column>
           <el-table-column
             label="鎿嶄綔"
+            fixed="right"
           >
             <template slot-scope="{row}">
               <div class="operationClass">
@@ -237,23 +263,6 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="鎵�灞炰粨搴�" prop="warehousecode">
-          <el-select
-            v-model="dialogForm.warehousecode"
-            filterable
-            :popper-append-to-body="false"
-            style="width: 200px"
-            placeholder="璇烽�夋嫨"
-            @focus="getWareHouseSelect2"
-          >
-            <el-option
-              v-for="item in storehouseArr2"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
         <el-form-item label="瀛樿揣绫诲瀷" prop="stocktypecode">
           <el-select
             v-model="dialogForm.stocktypecode"
@@ -266,6 +275,23 @@
 
             <el-option
               v-for="item in stocktypeArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎵�灞炰粨搴�" prop="warehousecode">
+          <el-select
+            v-model="dialogForm.warehousecode"
+            filterable
+            :popper-append-to-body="false"
+            style="width: 200px"
+            placeholder="璇烽�夋嫨"
+          >
+            <!--            @focus="getWareHouseSelect2"-->
+            <el-option
+              v-for="item in storehouseArr"
               :key="item.code"
               :label="item.name"
               :value="item.code"
@@ -289,11 +315,12 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="鏈�灏忓簱瀛�" prop="minstockqty">
-          <el-input v-model="dialogForm.minstockqty" style="width: 200px" />
-        </el-form-item>
+
         <el-form-item label="鏈�澶у簱瀛�" prop="maxstockqty">
-          <el-input v-model="dialogForm.maxstockqty" style="width: 200px" />
+          <el-input v-model="dialogForm.maxstockqty" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
+          <el-form-item label="鏈�灏忓簱瀛�" prop="minstockqty" style="margin-left: 10px">
+            <el-input v-model="dialogForm.minstockqty" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
+          </el-form-item>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -362,7 +389,12 @@
           sortable="custom"
         >
           <template slot-scope="{row}">
-            <el-input v-if="row.isVisible===1" v-model="row.digdect" placeholder="璇疯緭鍏�" />
+            <el-input
+              v-if="row.isVisible===1"
+              v-model="row.digdect"
+              oninput="value=value.replace(/[^0-9]/g,'')"
+              placeholder="璇疯緭鍏�"
+            />
             <div v-else> {{ row.digdect }}</div>
           </template>
         </el-table-column>
@@ -464,6 +496,26 @@
           <!--            onClick="event.cancelBubble = true"-->
         </div>
       </div>
+
+      <el-divider />
+      <div>
+        <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎
+      </div>
+      <div style="margin-top: 20px">
+        <el-select
+          v-model="defaultroute_code"
+          filterable
+          style="width: 200px"
+          placeholder="璇烽�夋嫨"
+        >
+          <el-option
+            v-for="item in defaultroute_codeArr"
+            :key="item.code"
+            :label="item.name"
+            :value="item.code"
+          />
+        </el-select>
+      </div>
       <el-divider />
       <div style="margin-bottom: 10px">
         <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃
@@ -472,7 +524,7 @@
         <el-table
           :data="projectTableData"
           border
-          height="400"
+          height="300"
           highlight-current-row
           :header-cell-style="this.$headerCellStyle"
           :cell-style="this.$cellStyle"
@@ -508,16 +560,12 @@
         </div>
       </span>
     </el-dialog>
+
   </div>
 </template>
 
 <script>
 import Pagination from '@/components/Pagination'
-import {
-  AddUpdateOrganization,
-  DeleteOrganization
-} from '@/api/jcsz'
-import { getCookie } from '@/utils/auth'
 import { WareHouseSelect } from '@/api/wlgl'
 import {
   AddUpdateInventoryFile, DeleteInventoryFile, InventoryFileAssociationRoute,
@@ -529,6 +577,7 @@
   UomSearch, UomSelect
 } from '@/api/zzmx'
 import $ from 'jquery'
+import { SeaveSearchInventory, SeaveSearchInventoryClass, SeaveSearchUnit } from '@/api/ErpSyncMes'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
 export default {
@@ -600,21 +649,21 @@
         uomcode: [
           { required: true, message: '璇烽�夋嫨浣跨敤鍗曚綅', trigger: ['blur', 'change'] }
         ],
-        warehousecode: [
-          { required: true, message: '璇烽�夋嫨鎵�灞炰粨搴�', trigger: ['blur', 'change'] }
-        ],
+        // warehousecode: [
+        //   { required: true, message: '璇烽�夋嫨鎵�灞炰粨搴�', trigger: ['blur', 'change'] }
+        // ],
         stocktypecode: [
           { required: true, message: '璇烽�夋嫨瀛樿揣绫诲瀷', trigger: ['blur', 'change'] }
         ],
         materialtypecode: [
           { required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨�', trigger: ['blur', 'change'] }
-        ],
-        minstockqty: [
-          { required: true, message: '璇疯緭鍏ユ渶灏忓簱瀛�', trigger: ['blur', 'change'] }
-        ],
-        maxstockqty: [
-          { required: true, message: '璇疯緭鍏ユ渶澶у簱瀛�', trigger: ['blur', 'change'] }
         ]
+        // minstockqty: [
+        //   { required: true, message: '璇疯緭鍏ユ渶灏忓簱瀛�', trigger: ['blur', 'change'] }
+        // ],
+        // maxstockqty: [
+        //   { required: true, message: '璇疯緭鍏ユ渶澶у簱瀛�', trigger: ['blur', 'change'] }
+        // ]
 
       },
       officeDialogVisible: false,
@@ -638,19 +687,92 @@
         routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎
         // routeOperationSelectedArr: [] // 宸ヨ壓璺嚎閫変腑闆嗗悎鏁扮粍
       },
+      defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊�
+      defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍
       projectTableData: []// 璁惧鍒楄〃
     }
   },
   created() {
     this.getInventoryFileSelect()
     this.getStockTypeSelect()
-    // this.getWareHouseSelect()
+    this.getWareHouseSelect()
   },
   mounted() {
     window.addEventListener('resize', this.getHeight)
     this.getHeight()
   },
   methods: {
+    // 鍚屾璁¢噺鍗曚綅
+    async syncSeaveSearchUnit() {
+      const loading = this.$loading({
+        lock: true,
+        text: '姝e湪鍚屾璁¢噺鍗曚綅锛岃绋嶇瓑...',
+        spinner: 'el-icon-loading',
+        customClass: 'osloading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      })
+      const res = await SeaveSearchUnit()
+      if (res.code === '200') {
+        setTimeout(() => {
+          // this.getInventoryFileSelect()
+          this.officeTableData = res.data
+          console.log(this.officeTableData, 9)
+          loading.close()
+          this.$message.success('鍚屾鎴愬姛锛�')
+        }, 2000)
+      } else {
+        setTimeout(() => {
+          loading.close()
+          this.$message.error('鍚屾澶辫触锛�')
+        }, 10000)
+      }
+    },
+    // 鍚屾瀛樿揣妗f
+    async  syncInventoryFileSelect() {
+      const loading = this.$loading({
+        lock: true,
+        text: '姝e湪鍚屾瀛樿揣妗f锛岃绋嶇瓑...',
+        spinner: 'el-icon-loading',
+        customClass: 'osloading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      })
+      const res = await SeaveSearchInventory()
+      if (res.code === '200') {
+        setTimeout(() => {
+          this.getInventoryFileSelect()
+          loading.close()
+          this.$message.success('鍚屾鎴愬姛锛�')
+        }, 2000)
+      } else {
+        setTimeout(() => {
+          loading.close()
+          this.$message.error('鍚屾澶辫触锛�')
+        }, 10000)
+      }
+    },
+    // 鍚屾瀛樿揣绫诲瀷
+    async syncStockTypeSelect() {
+      const loading = this.$loading({
+        lock: true,
+        text: '姝e湪鍚屾瀛樿揣绫诲瀷锛岃绋嶇瓑...',
+        spinner: 'el-icon-loading',
+        customClass: 'osloading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      })
+      const res = await SeaveSearchInventoryClass()
+      if (res.code === '200') {
+        setTimeout(() => {
+          this.getStockTypeSelect()
+          loading.close()
+          this.$message.success('鍚屾鎴愬姛锛�')
+        }, 2000)
+      } else {
+        setTimeout(() => {
+          loading.close()
+          this.$message.error('鍚屾澶辫触锛�')
+        }, 10000)
+      }
+    },
     async getInventoryFileSelect() {
       const res = await InventoryFileSelect(this.form)
       this.tableData = res.data
@@ -664,10 +786,10 @@
       const { data: res } = await WareHouseSelect()
       this.storehouseArr = res
     },
-    async getWareHouseSelect2() {
-      const { data: res } = await WareHouseSelect()
-      this.storehouseArr2 = res
-    },
+    // async getWareHouseSelect2() {
+    //   const { data: res } = await WareHouseSelect()
+    //   this.storehouseArr2 = res
+    // },
     async getuomSelect() {
       const { data: res } = await UomSelect()
       this.uomArr = res
@@ -722,7 +844,7 @@
     async   edit(operation, row) {
       this.operation = operation
       this.dialogVisible = true
-      await this.stocktypecodeChange(row.stocktypecode, 'dialogForm')
+      // await this.stocktypecodeChange(row.stocktypecode, 'dialogForm')
       this.$nextTick(() => {
         this.dialogForm.id = row.id
         this.dialogForm.materialcode = row.partcode
@@ -772,6 +894,10 @@
     },
     // 瀵硅瘽妗嗙‘璁�
     dialogVisibleConfirm() {
+      if (this.defaultroute_codeArr.length > 0 && this.defaultroute_code === '') {
+        return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�')
+      }
+
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
           const data = {
@@ -783,8 +909,8 @@
             warehousecode: this.dialogForm.warehousecode,
             stocktypecode: this.dialogForm.stocktypecode,
             materialtypecode: this.dialogForm.materialtypecode,
-            minstockqty: this.dialogForm.minstockqty,
-            maxstockqty: this.dialogForm.maxstockqty,
+            minstockqty: this.dialogForm.minstockqty === '' ? 0 : this.dialogForm.minstockqty,
+            maxstockqty: this.dialogForm.maxstockqty === '' ? 0 : this.dialogForm.maxstockqty,
             OperType: this.operation === 'add' ? 'Add' : 'Update'
           }
           AddUpdateInventoryFile(data).then(res => {
@@ -814,94 +940,13 @@
     // 宸ヨ壓璺嚎鐐瑰嚮
     async routeClick(row) {
       console.log(row)
+      this.defaultroute_code = row.default_route
       this.dialogFormRoute.projectCode = row.partcode
       this.dialogFormRoute.projectName = row.partname
       this.dialogVisibleRoute = true
       const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
       this.dialogFormRoute.routeOperationArr = res
       // let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
-      this.dialogFormRoute.routeOperationArrTest = [
-        {
-          'flag': 'Y', code: '001', name: '娴嬭瘯1 ',
-          'Data': [
-            {
-              'seq': 1,
-              'stepcode': 'Step01',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'Y'
-            }, {
-              'seq': 2,
-              'stepcode': 'Step02',
-              'stepname': '娴嬭瘯宸ュ簭浜�',
-              'enable': 'Y'
-            }, {
-              'seq': 3,
-              'stepcode': 'Step03',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'N'
-            }
-          ]
-        },
-        {
-          'flag': 'Y', code: '002', name: '娴嬭瘯2 ',
-          'Data': [
-            {
-              'seq': 1,
-              'stepcode': 'Step01',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'Y'
-            }, {
-              'seq': 2,
-              'stepcode': 'Step02',
-              'stepname': '娴嬭瘯宸ュ簭浜�',
-              'enable': 'Y'
-            }, {
-              'seq': 3,
-              'stepcode': 'Step03',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'N'
-            }, {
-              'seq': 4,
-              'stepcode': 'Step02',
-              'stepname': '娴嬭瘯宸ュ簭浜�',
-              'enable': 'Y'
-            }, {
-              'seq': 5,
-              'stepcode': 'Step03',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'N'
-            }
-          ]
-        },
-        {
-          'flag': 'N', code: '003', name: '娴嬭瘯3 ',
-          'Data': [
-            {
-              'seq': 1,
-              'stepcode': 'Step01',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'Y'
-            }
-          ]
-
-        },
-        {
-          'flag': 'Y', code: '004', name: '娴嬭瘯4 ',
-          'Data': [
-            {
-              'seq': 1,
-              'stepcode': 'Step01',
-              'stepname': '娴嬭瘯宸ュ簭涓�',
-              'enable': 'Y'
-            }, {
-              'seq': 2,
-              'stepcode': 'Step02',
-              'stepname': '娴嬭瘯宸ュ簭浜�',
-              'enable': 'Y'
-            }
-          ]
-        }
-      ]
 
       this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
         item.isSelected1 = false
@@ -929,10 +974,15 @@
           // }, 100)
         }
       })
+
+      this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y')
+
+      console.log(this.defaultroute_codeArr, 123)
     },
     // 瀵硅瘽妗嗗叧闂�
     handleCloseRoute() {
       this.dialogFormRoute.routeOperationArr = []
+      this.defaultroute_codeArr = []
     },
     // 鍙栨秷
     routeDialogVisibleCancel() {
@@ -940,15 +990,23 @@
     },
     // 纭畾
     async routeDialogVisibleConfirm() {
+      const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+      if (this.defaultroute_code === '' && temp.length > 0) {
+        return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�')
+      }
+
+      // 鎻愪氦鏍煎紡
       const data = []
       this.dialogFormRoute.routeOperationArr.forEach(item => {
         if (item.isSelected2) {
           data.push({ code: item.code, name: item.name })
         }
       })
-      const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, data)
+
+      const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data)
       if (res.code === '200') {
         this.$message.success('淇濆瓨鎴愬姛锛�')
+        await this.getInventoryFileSelect()
         this.dialogVisibleRoute = false
       }
     },
@@ -965,6 +1023,16 @@
     myCheckboxInputClick(val) {
       console.log(val, 2)
       val.isSelected2 = !val.isSelected2
+
+      this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+        if (val.code === item.code) {
+          item.flag = !item.flag
+        }
+      })
+      if (val.code === this.defaultroute_code) {
+        this.defaultroute_code = ''
+      }
+      this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
     },
     /* 鍗曚綅妯″潡*/
     // 鍗曚綅鎸夐挳鐐瑰嚮浜嬩欢

--
Gitblit v1.9.3