From b195295f2007d52f4a22e679f8ca591b042de27a Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期五, 31 十月 2025 13:40:19 +0800
Subject: [PATCH] 1.生产入库、入库记录开发

---
 src/api/WorkOrder.js                     |    9 
 src/views/produce/productWarehouse.vue   |  464 +++++++++++--------
 vue.config.js                            |    3 
 src/main.js                              |    4 
 src/views/workOrder/produceOrderList.vue |   10 
 src/views/produce/warehouseRecord.vue    |  843 ++++++++++++++++++++++++++++++++++++
 src/api/ReportManager.js                 |   36 +
 7 files changed, 1,162 insertions(+), 207 deletions(-)

diff --git a/src/api/ReportManager.js b/src/api/ReportManager.js
index 337aa52..27c0066 100644
--- a/src/api/ReportManager.js
+++ b/src/api/ReportManager.js
@@ -18,6 +18,42 @@
   })
 }
 
+// 鍏ュ簱璁板綍瀵煎嚭
+export function StorageRecordExcelSearch(data) {
+  return request({
+    url: 'ReportManager/StorageRecordExcelSearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 鍏ュ簱璁板綍琛ㄥご
+export function InStorageRecordMainSearch(data) {
+  return request({
+    url: 'ReportManager/InStorageRecordMainSearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 鍏ュ簱璁板綍琛ㄤ綋
+export function InStorageRecordSubSearch(data) {
+  return request({
+    url: 'ReportManager/InStorageRecordSubSearch',
+    method: 'get',
+    params: data
+  })
+}
+
+// 鍏ュ簱璁板綍鍒犻櫎
+export function DeleteMesInStorageRecord(data) {
+  return request({
+    url: 'ReportManager/DeleteMesInStorageRecord',
+    method: 'post',
+    data
+  })
+}
+
 // 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ
 export function GroupSalaryReportSearch(data) {
   return request({
diff --git a/src/api/WorkOrder.js b/src/api/WorkOrder.js
index 0cef4f0..ec3e55d 100644
--- a/src/api/WorkOrder.js
+++ b/src/api/WorkOrder.js
@@ -341,6 +341,15 @@
   })
 }
 
+// MES鐢熶骇鍏ュ簱鎻愪氦-瀛樺偍杩囩▼鐗�
+export function InHouseOrderSpSeave(data) {
+  return request({
+    url: 'WorkOrder/InHouseOrderSpSeave',
+    method: 'post',
+    data
+  })
+}
+
 // 鐢熶骇鍏ュ簱鑾峰彇閮ㄩ棬淇℃伅
 export function DeptSelectData() {
   return request({
diff --git a/src/main.js b/src/main.js
index fc7b24f..f10edfe 100644
--- a/src/main.js
+++ b/src/main.js
@@ -44,8 +44,8 @@
 Vue.prototype.$cellStyle = cellStyle() // 璁剧疆鍏ㄥ眬琛ㄤ綋鏍峰紡
 
 Vue.prototype.$chanjetBaseUrl = 'https://openapi.chanjet.com'
-Vue.prototype.$AppKey = 'Umm1gS5q'
-Vue.prototype.$AppSecret = 'FFAD54C4FBF9AAF1AFA33BBF3DF52752'
+Vue.prototype.$AppKey = 'MDth6eg6'
+Vue.prototype.$AppSecret = '53C1F41C9D8D8E21C72944D884ADF78F'
 
 // import 'lib-flexible' // 闃块噷鍙几缂╁竷灞�鏂规
 // import 'lib-flexible-computer'
diff --git a/src/views/produce/productWarehouse.vue b/src/views/produce/productWarehouse.vue
index 5311a21..0f12a78 100644
--- a/src/views/produce/productWarehouse.vue
+++ b/src/views/produce/productWarehouse.vue
@@ -32,6 +32,21 @@
         >
           <div class="elForm" style="display: flex;flex-direction: column;justify-content: flex-start">
             <div style="display: flex">
+              <el-form-item label="鍗曟嵁绫诲瀷" required style=" display: flex;">
+                <el-select
+                  v-model="form.issouceorder"
+                  :popper-append-to-body="false"
+                  :style="{minWidth:'100px',width:formItemWidth+'px'}"
+                  placeholder="璇烽�夋嫨"
+                >
+                  <el-option
+                    v-for="item in issouceorderTypeArr"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+              </el-form-item>
               <el-form-item label="鐢熶骇杞﹂棿" required style=" display: flex;">
                 <el-select
                   v-model="form.wkshopcode"
@@ -69,6 +84,10 @@
                   :style="{minWidth:'100px',width:formItemWidth+'px'}"
                 />
               </el-form-item>
+
+            </div>
+
+            <div style="display: flex">
               <el-form-item
                 label="閿�鍞鍗�"
                 style="display: flex;"
@@ -79,17 +98,26 @@
                   :style="{minWidth:'100px',width:formItemWidth+'px'}"
                 />
               </el-form-item>
-            </div>
-
-            <div style="display: flex">
               <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
-                <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" :style="{minWidth:'100px',width:formItemWidth+'px'}" />
+                <el-input
+                  v-model="form.partcode"
+                  placeholder="璇疯緭鍏�"
+                  :style="{minWidth:'100px',width:formItemWidth+'px'}"
+                />
               </el-form-item>
               <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
-                <el-input v-model="form.partname" :style="{minWidth:'100px',width:formItemWidth+'px'}" placeholder="璇疯緭鍏�" />
+                <el-input
+                  v-model="form.partname"
+                  :style="{minWidth:'100px',width:formItemWidth+'px'}"
+                  placeholder="璇疯緭鍏�"
+                />
               </el-form-item>
               <el-form-item label="浜у搧瑙勬牸" style=" display: flex;">
-                <el-input v-model="form.partspec" :style="{minWidth:'100px',width:formItemWidth+'px'}" placeholder="璇疯緭鍏�" />
+                <el-input
+                  v-model="form.partspec"
+                  :style="{minWidth:'100px',width:formItemWidth+'px'}"
+                  placeholder="璇疯緭鍏�"
+                />
               </el-form-item>
             </div>
 
@@ -221,30 +249,15 @@
                   highlight-current-row
                   :header-cell-style="this.$headerCellStyle"
                   :cell-style="this.$cellStyle"
-                  @row-click="rowClick"
+                  @selection-change="handleSelectionChange"
                 >
-                  <!--                  @selection-change="handleSelectionChange"-->
                   <!--                  @cell-dblclick="cellDblclick"-->
                   <!--                  @cell-click="cellClick"-->
-                  <!--                  <el-table-column-->
-                  <!--                    type="selection"-->
-                  <!--                    width="50"-->
-                  <!--                    fixed-->
-                  <!--                  />-->
-
                   <el-table-column
+                    type="selection"
                     width="50"
                     fixed
-                  >
-                    <template slot-scope="{row}">
-                      <el-radio
-                        v-model="radioSelected"
-                        :label="row.sbid"
-                        style="color: transparent;padding-left: 10px;"
-                      />
-                    </template>
-                  </el-table-column>
-
+                  />
                   <el-table-column
                     type="index"
                     width="50"
@@ -585,8 +598,10 @@
 
 import { PrentOrganizationNoCompany, WareHouse } from '@/api/GeneralBasicData'
 import {
+  DeptSelectData,
   ProductInHouseOrderCodeSearch,
-  ProductInHouseOrderSearch, TProductInHouseOrderSpSeave
+  ProductInHouseOrderSearch,
+  InHouseOrderSpSeave
 } from '@/api/WorkOrder'
 import { TSecLocaTree } from '@/api/basicSettings'
 import { getTPlusToken, handleDatetime, handleDatetime2 } from '@/utils/global'
@@ -613,6 +628,8 @@
         partname: '', // 浜у搧鍚嶇О
         partspec: '', // 瑙勬牸鍨嬪彿
 
+        issouceorder: 'Y', // 鏄惁鏈夋簮鍗�
+
         deptno: '', // 鍏ュ簱閮ㄩ棬
         saleOrderCode: '', // 閿�鍞鍗�
         stockcode: '' // 鍏ュ簱浠撳簱
@@ -633,26 +650,33 @@
       buttonSize: '',
       formItemWidth: 0,
 
-      radioSelected: ''
+      issouceorderTypeArr: [
+        { value: 'Y', label: '鏈夋簮鍗�' },
+        { value: 'N', label: '鏃犳簮鍗�' }
+      ]
 
     }
   },
   watch: {},
   created() {
   },
-  mounted() {
+  async mounted() {
     window.addEventListener('resize', this.getHeight)
     this.getHeight()
 
-    this.getPrentOrganizationNoCompany()
-    this.getTSecLocaTree()
-    this.getProductInHouseOrderCodeSearch()
+    await this.getPrentOrganizationNoCompany()
+    await this.getTSecLocaTree()
+    await this.getProductInHouseOrderCodeSearch()
+    // this.getDeptSelectData()
 
     // this.getProductInHouseOrderSearch()
   },
   methods: {
     // 鑾峰彇鍏ュ簱閮ㄩ棬
-
+    async getDeptSelectData() {
+      const { data: res } = await DeptSelectData()
+      this.departmentArr = res
+    },
     // 鑾峰彇鍗曟嵁缂栧彿(鍏ュ簱鍗曞彿)銆佹祦姘村彿
     async getProductInHouseOrderCodeSearch() {
       const { data: res } = await ProductInHouseOrderCodeSearch({ rightcode: '0604' })
@@ -677,6 +701,7 @@
         return this.$message.info('鐢熶骇杞﹂棿涓嶈兘涓虹┖锛�')
       }
       const data = {
+        issouceorder: this.form.issouceorder,
         saleordercode: this.form.saleordercode, // 閿�鍞崟鍙�
         wkshopcode: this.form.wkshopcode, // 鐢熶骇杞﹂棿
         erpordercode: this.form.erpordercode, // 璁㈠崟缂栧彿
@@ -710,98 +735,8 @@
     handleSelectionChange(val) {
       this.multipleSelection = val
     },
-    //  琛岀偣鍑讳簨浠�
-    async rowClick(row, event, column) {
-      this.radioSelected = row.sbid
-      // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
-      // this.tableDataDetail = res
-    },
     // 閫掍氦
-    async  submit() {
-      if (this.form.stockcode === '') {
-        return this.$message.info('鍏ュ簱浠撳簱涓嶈兘涓虹┖锛�')
-      }
-
-      const openToken = await getTPlusToken() // 鑾峰彇TPlus   token
-
-      const obj = this.tableDataDetail.find(i => i.sbid === this.radioSelected)
-
-      // 鏃犳簮鍗�
-      if (!obj.saleOrderCode) {
-        // const RDRecordDetails = []
-        // this.tableDataSummary.forEach((i, index) => {
-        //   RDRecordDetails.push({
-        //     Code: index + 1, // 琛屽彿锛屼粠1寮�濮嬭嚜澧為暱
-        //     Inventory: {
-        //       Code: i.materiel_code // 瀛樿揣缂栫爜
-        //     },
-        //     BaseQuantity: i.stinhouseqty, // 涓昏閲忓崟浣嶆暟閲�
-        //     SNObject: {
-        //       SnAccountDetails: [
-        //         {
-        //           SNCode: index.toString().padStart(4, '0')
-        //         }
-        //       ]
-        //     }
-        //   })
-        // })
-        const data = {
-          'dto': {
-            'IsModifiedCode': true,
-            'ExternalCode': this.form.hbillno,
-            'Code': this.form.hbillno,
-            'VoucherType': {
-              'Code': 'ST1002'
-            },
-            'VoucherDate': handleDatetime(new Date().getTime()),
-            'BusiType': {
-              'Code': '03'
-            },
-            'Warehouse': {
-              'Code': this.form.stockcode
-            },
-            // 'Department': {
-            //   'Code': this.form.wkshopcode,
-            //   'Name': this.WorkShopArr.find(i => i.code === this.form.wkshopcode).name
-            // },
-            'RDRecordDetails': [
-              {
-                Code: 1, // 琛屽彿锛屼粠1寮�濮嬭嚜澧為暱
-                Inventory: {
-                  Code: obj.partcode // 瀛樿揣缂栫爜
-                },
-                BaseQuantity: obj.stinhouseqty, // 涓昏閲忓崟浣嶆暟閲�
-                SNObject: {
-                  SnAccountDetails: [
-                    {
-                      // SNCode: index.toString().padStart(4, '0')
-                      SNCode: '0001'
-                    }
-                  ]
-                }
-              }
-            ]
-          }
-        }
-
-        console.log(JSON.parse(JSON.stringify(data)))
-
-        const res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/productReceive/Create',
-          data, {
-            headers: {
-              'openToken': openToken,
-              'appKey': Vue.prototype.$AppKey,
-              'appSecret': Vue.prototype.$AppSecret,
-              'Content-Type': 'application/json'
-            }
-          }
-        )
-        console.log(res)
-        console.log(res.status)
-      }
-    },
-    // 閫掍氦
-    async  submitBack() {
+    async submit() {
       // usercode
       // console.log(localStorage.getItem('username'))
 
@@ -814,81 +749,218 @@
       if (this.multipleSelection.find(i => i.stockid === '' || i.stockid === null)) {
         return this.$message.info('琛ㄦ牸鍐呭叆搴撲粨搴撲笉鑳戒负绌猴紒')
       }
-
-      const TableDetailData = []
-      this.multipleSelection.forEach((i, index) => {
-        TableDetailData.push({
-          'hbillno': this.form.hbillno, // 鍏ュ簱鍗曞彿
-          'wocode': i.wo_code, // 宸ュ崟鍙�
-          'rownumber': (index + 1).toString(), // 琛屽彿
-          'sourceVoucherId': i.mpoid.toString(), // 鏉ユ簮鍗曟嵁id
-          'sourceVoucherCode': i.m_po, // 鏉ユ簮鍗曟嵁缂栧彿
-          'SourceVoucherDetailId': i.sbid.toString(), // 鏉ユ簮鍗曟嵁鏄庣粏id
-          'inbarcode': i.inbarcode, // 鍏ュ簱鏉$爜
-          'idinventory': i.materiel_id.toString(), // 瀛樿揣id
-          'inventorycode': i.partcode, // 瀛樿揣缂栫爜
-          'idunit': i.unitid.toString(), // 璁¢噺鍗曚綅id
-          'unitcode': i.unitcode, // 璁¢噺鍗曚綅缂栫爜
-          idwarehouse: i.stockid.toString(), // 浠撳簱id
-          warehousecode: i.stockcode, // 浠撳簱缂栫爜
-          'saleOrderId': i.saleOrderid.toString(), // 閿�鍞崟id
-          'saleOrderCode': i.saleOrderCode, // 閿�鍞崟鍙�
-          'saleOrderDetailId': i.saleOrderDetailId.toString(), // 閿�鍞崟鏄庣粏id
-          'qty': i.good_qty.toString(), // 鍏ュ簱鏁伴噺
-          'stepcode': i.step_code, // 宸ュ簭缂栫爜
-          'style': i.style, // 鎶ュ伐绫诲瀷锛欱(鑷埗) S(澶栧崗)
-          'status': '0' // 鍏ュ簱鍗曠姸鎬侊細0(鏈鏍�) 1(宸插鏍�)
-        })
-      })
-
-      const data = {
-        'rightcode': '0604', // 鍔熻兘缂栧彿
-        'incbit': this.form.incbit, // 娴佹按鍙�
-        'TableData': [
-          [
-            {
-              'hbillno': this.form.hbillno, // 鍏ュ簱鍗曞彿
-              'madedate': handleDatetime(this.form.hbdate) + ' 00:00:00', // 鍒跺崟鏃ユ湡锛堝勾鏈堟棩 00:00:00锛�
-              'hbdate': this.multipleSelection[this.multipleSelection.length - 1].voucherdate,
-
-              sourceVoucherId: [...new Set(this.multipleSelection.map(i => i.mpoid))].length > 1 ? '' : this.multipleSelection[0].mpoid,
-              sourceVoucherCode: [...new Set(this.multipleSelection.map(i => i.m_po))].length > 1 ? '' : this.multipleSelection[0].m_po,
-              saleOrderCode: [...new Set(this.multipleSelection.map(i => i.saleOrderCode))].length > 1 ? '' : this.multipleSelection[0].saleOrderCode,
-
-              'iddepartment': this.multipleSelection[0].dept_id, // 閮ㄩ棬id
-              'departmentcode': this.multipleSelection[0].dept_code, // 閮ㄩ棬缂栫爜
-
-              'idwarehouse': this.stockcodeArr.find(i => i.code === this.form.stockcode).noid, // 浠撳簱id
-              'warehousecode': this.form.stockcode, // 浠撳簱缂栫爜
-              'status': '0', // 鍏ュ簱鍗曠姸鎬侊細0(鏈鏍�) 1(宸插鏍�)
-              PurchaseOrderCode: '', // 閲囪喘璁㈠崟鍙�
-              'remark': '', // 澶囨敞
-              'create_user': localStorage.getItem('username'), // 鍒涘缓浜哄憳
-              'create_date': handleDatetime2(new Date()),
-              'check_user': '', // 瀹℃牳浜哄憳
-              'check_date': ''// 瀹℃牳鏃堕棿
-            }
-          ],
-          TableDetailData// 琛ㄤ綋
-        ]
-      }
-
-      // console.log(JSON.stringify(data))
       this.$store.state.app.buttonIsDisabled = true
-      const res = await TProductInHouseOrderSpSeave(data)
-      this.$store.state.app.buttonIsDisabled = false
-      if (res.code === '200') {
-        this.$message.success('鍏ュ簱鎴愬姛锛�')
-        this.multipleSelection = []
-        // this.form.deptno = ''
-        // this.form.stockcode = ''
-        this.reset()
-        // await this.getProductInHouseOrderSearch()
-        await this.getProductInHouseOrderCodeSearch()
+      const openToken = await getTPlusToken() // 鑾峰彇TPlus   token
+
+      // console.log(openToken)
+
+      let res
+      const a = 1
+      if (openToken) {
+        if (a === 2) {
+          const RDRecordDetails = []
+          this.multipleSelection.forEach((i, index) => {
+            RDRecordDetails.push({
+              Code: index + 1, // 琛屽彿锛屼粠1寮�濮嬭嚜澧為暱
+              Warehouse: {
+                Code: i.stockcode
+              },
+              Inventory: {
+                Code: i.partcode // 瀛樿揣缂栫爜
+              },
+              BaseQuantity: i.stinhouseqty // 涓昏閲忓崟浣嶆暟閲�
+              // SNObject: {
+              //   SnAccountDetails: [
+              //     {
+              //       SNCode: '00001'
+              //     },
+              //     {
+              //       SNCode: '00002'
+              //     }
+              //   ]
+              // }
+            })
+          })
+          const D1 = {
+            'dto': {
+              'IsModifiedCode': true,
+              'ExternalCode': this.form.hbillno,
+              'Code': this.form.hbillno,
+              'VoucherType': {
+                'Code': 'ST1002'
+              },
+              'VoucherDate': handleDatetime(new Date().getTime()),
+              'BusiType': {
+                'Code': '03'
+              },
+              'Warehouse': {
+                'Code': this.form.stockcode
+              },
+              'Department': {
+                'Code': this.form.wkshopcode,
+                'Name': this.WorkShopArr.find(i => i.torg_code === this.form.wkshopcode).torg_name
+              },
+              'RDRecordDetails': RDRecordDetails
+            }
+          }
+          res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/productReceive/Create',
+            D1, {
+              headers: {
+                'openToken': openToken,
+                'appKey': Vue.prototype.$AppKey,
+                'appSecret': Vue.prototype.$AppSecret,
+                'Content-Type': 'application/json'
+              }
+            }
+          )
+        }
+
+        // 鐩墠閮芥墽琛岀殑杩欎釜
+        if (a === 1) {
+          const RDRecordDetails = []
+          this.multipleSelection.forEach((i, index) => {
+            RDRecordDetails.push({
+              Code: index + 1, // 琛屽彿锛屼粠1寮�濮嬭嚜澧為暱
+              SourceVoucherId: i.mpoid ? i.mpoid : '', // 鏉ユ簮鍗曟嵁鐨勫崟鎹甀D
+              BaseQuantity: i.stinhouseqty, // 涓昏閲忓崟浣嶆暟閲�
+              // SourceVoucherDetailId: i.sourceVoucherDetailId, // 鏉ユ簮鍗曟嵁鐨勫搴旀槑缁咺D
+              SourceVoucherDetailId: i.sbid ? i.sbid : '', // 鏉ユ簮鍗曟嵁鐨勫搴旀槑缁咺D
+              Inventory: {
+                Code: i.partcode // 瀛樿揣缂栫爜
+              },
+              IdSourceVoucherType: i.sbid ? 69 : ''
+            })
+          })
+          const D2 = {
+            'dto': {
+              'Warehouse': {
+                'Code': this.form.stockcode// 浠撳簱缂栫爜
+              },
+              'Code': this.form.hbillno, // 鍗曟嵁缂栫爜
+              'IsModifiedCode': true,
+              'BusiType': {
+                'Code': '03'// 涓氬姟绫诲瀷缂栫爜
+              },
+              'Department': {
+                'Code': this.form.wkshopcode// 閮ㄩ棬缂栫爜
+              },
+              'VoucherDate': handleDatetime(new Date().getTime()), // 鍗曟嵁鏃ユ湡
+              'RdStyle': {
+                'Code': '21'// 鍑哄簱绫诲埆缂栫爜
+              },
+              'RDRecordDetails': RDRecordDetails,
+              // 'Clerk': {
+              //   'Code': this.userArr.find(i => i.name === getCookie('username')).code // 涓氬姟鍛榗ode
+              //   // 'Code': '001' // 涓氬姟鍛榗ode
+              //   // 'Name': getCookie('username')
+              // },
+              'ExternalCode': this.form.hbillno,
+              'VoucherType': {
+                'Code': 'ST1002'
+              }
+            }
+          }
+          res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/ProductReceiveOpenApi/Create',
+            D2, {
+              headers: {
+                'openToken': openToken,
+                'appKey': Vue.prototype.$AppKey,
+                'appSecret': Vue.prototype.$AppSecret,
+                'Content-Type': 'application/json'
+              }
+            }
+          )
+        }
+
+        // console.log(res)
+        // console.log(res.data.code)
+        // || res.data === null
+        if (res.data.code === 0) {
+          const TableDetailData = []
+          this.multipleSelection.forEach((i, index) => {
+            TableDetailData.push({
+              'hbillno': this.form.hbillno, // 鍏ュ簱鍗曞彿
+              'wocode': i.wo_code, // 宸ュ崟鍙�
+              'rownumber': (index + 1).toString(), // 琛屽彿
+              'sourceVoucherId': i.mpoid ? i.mpoid.toString() : '', // 鏉ユ簮鍗曟嵁id
+              'sourceVoucherCode': i.m_po, // 鏉ユ簮鍗曟嵁缂栧彿
+              'SourceVoucherDetailId': i.sbid ? i.sbid.toString() : '', // 鏉ユ簮鍗曟嵁鏄庣粏id
+              'inbarcode': i.inbarcode, // 鍏ュ簱鏉$爜
+              'idinventory': i.materiel_id ? i.materiel_id.toString() : '', // 瀛樿揣id
+              'inventorycode': i.partcode, // 瀛樿揣缂栫爜
+              'idunit': i.unitid ? i.unitid.toString() : '', // 璁¢噺鍗曚綅id
+              'unitcode': i.unitcode, // 璁¢噺鍗曚綅缂栫爜
+              idwarehouse: i.stockid, // 浠撳簱id
+              warehousecode: i.stockcode, // 浠撳簱缂栫爜
+              'saleOrderId': i.saleOrderid ? i.saleOrderid.toString() : '', // 閿�鍞崟id
+              'saleOrderCode': i.saleOrderCode, // 閿�鍞崟鍙�
+              'saleOrderDetailId': i.saleOrderDetailId ? i.saleOrderDetailId.toString() : '', // 閿�鍞崟鏄庣粏id
+              'qty': i.good_qty.toString(), // 鍏ュ簱鏁伴噺
+              'stepcode': i.step_code, // 宸ュ簭缂栫爜
+              'style': i.style, // 鎶ュ伐绫诲瀷锛欱(鑷埗) S(澶栧崗)
+              'status': '0' // 鍏ュ簱鍗曠姸鎬侊細0(鏈鏍�) 1(宸插鏍�)
+            })
+          })
+
+          const data = {
+            'rightcode': '0604', // 鍔熻兘缂栧彿
+            'incbit': this.form.incbit, // 娴佹按鍙�
+            'TableData': [
+              [
+                {
+                  'hbillno': this.form.hbillno, // 鍏ュ簱鍗曞彿
+                  'madedate': handleDatetime(this.form.hbdate) + ' 00:00:00', // 鍒跺崟鏃ユ湡锛堝勾鏈堟棩 00:00:00锛�
+                  'hbdate': this.multipleSelection[this.multipleSelection.length - 1].voucherdate,
+
+                  sourceVoucherId: [...new Set(this.multipleSelection.map(i => i.mpoid))].length > 1 ? '' : this.multipleSelection[0].mpoid,
+                  sourceVoucherCode: [...new Set(this.multipleSelection.map(i => i.m_po))].length > 1 ? '' : this.multipleSelection[0].m_po,
+                  saleOrderCode: [...new Set(this.multipleSelection.map(i => i.saleOrderCode))].length > 1 ? '' : this.multipleSelection[0].saleOrderCode,
+
+                  'iddepartment': this.multipleSelection[0].dept_id, // 閮ㄩ棬id
+                  'departmentcode': this.multipleSelection[0].dept_code, // 閮ㄩ棬缂栫爜
+
+                  'idwarehouse': this.stockcodeArr.find(i => i.code === this.form.stockcode).noid, // 浠撳簱id
+                  'warehousecode': this.form.stockcode, // 浠撳簱缂栫爜
+                  'status': '0', // 鍏ュ簱鍗曠姸鎬侊細0(鏈鏍�) 1(宸插鏍�)
+                  PurchaseOrderCode: '', // 閲囪喘璁㈠崟鍙�
+                  'remark': '', // 澶囨敞
+                  'create_user': localStorage.getItem('username'), // 鍒涘缓浜哄憳
+                  'create_date': handleDatetime2(new Date()),
+                  'check_user': '', // 瀹℃牳浜哄憳
+                  'check_date': ''// 瀹℃牳鏃堕棿
+                }
+              ],
+              TableDetailData// 琛ㄤ綋
+            ]
+          }
+
+          // console.log(JSON.stringify(data))
+
+          // this.$store.state.app.buttonIsDisabled = true
+          const res = await InHouseOrderSpSeave(data)
+          this.$store.state.app.buttonIsDisabled = false
+          if (res.code === '200') {
+            this.$message.success('鍏ュ簱鎴愬姛锛�')
+            this.multipleSelection = []
+            // this.form.deptno = ''
+            // this.form.stockcode = ''
+            this.reset()
+            // await this.getProductInHouseOrderSearch()
+            await this.getProductInHouseOrderCodeSearch()
+          }
+        } else {
+          // console.log(res.data)
+
+          this.$store.state.app.buttonIsDisabled = false
+          this.$message.error(res.data.message)
+        }
+      } else {
+        this.$store.state.app.buttonIsDisabled = false
       }
     },
     // 閲嶇疆
     reset() {
+      // this.form.issouceorder = 'Y'
       this.form.saleordercode = '' // 閿�鍞崟鍙�
       this.form.wkshopcode = '' // 鐢熶骇杞﹂棿
       this.form.erpordercode = ''// 璁㈠崟缂栧彿
@@ -1058,14 +1130,6 @@
 
 ::v-deep .el-tabs__item {
   padding-right: 0;
-}
-
-::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
-  margin: 10px 30px 0 0;
-}
-
-::v-deep .el-radio__label{
-  display: none;
 }
 </style>
 <style>
diff --git a/src/views/produce/warehouseRecord.vue b/src/views/produce/warehouseRecord.vue
index 15ceba7..76646c3 100644
--- a/src/views/produce/warehouseRecord.vue
+++ b/src/views/produce/warehouseRecord.vue
@@ -1,11 +1,848 @@
-<template />
+<template>
+  <div>
+    <div class="body" :style="{height:mainHeight+'px'}">
+
+      <!--      <div class="bodyTopButtonGroup">-->
+      <!--          <el-button v-waves :size="buttonSize" type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
+      <!--          <el-button v-waves :size="buttonSize" type="success" icon="el-icon-connection" @click="">娲惧彂</el-button>-->
+      <!--      </div>-->
+
+      <div class="bodyTopFormGroup" style="margin-top: 10px">
+        <el-form
+          ref="form"
+          :model="form"
+          :label-width="buttonSize==='medium'?'100px':'80px'"
+          inline
+          style="display: flex;"
+        >
+          <div class="elForm">
+
+            <el-form-item label="鍏ュ簱鍗曞彿" style="display: flex;">
+              <el-input v-model="form.hbillno" placeholder="璇疯緭鍏�" :style="{minWidth:'100px',width:formItemWidth+'px'}" />
+            </el-form-item>
+
+            <el-form-item label="鍗曟嵁鏃ユ湡" style="display: flex;align-items: center">
+              <el-date-picker
+                v-model="form.hbdate"
+                type="daterange"
+                range-separator="~"
+                class="timeMini"
+                size="mini"
+                style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+                :clearable="false"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+              />
+            </el-form-item>
+
+            <el-form-item label="鎿嶄綔浜哄憳" style="display: flex;">
+              <el-input v-model="form.username" :style="{minWidth:'100px',width:formItemWidth+'px'}" placeholder="璇疯緭鍏�" />
+            </el-form-item>
+
+            <el-form-item label="鎿嶄綔鏃堕棿" style="display: flex;align-items: center">
+              <el-date-picker
+                v-model="form.userdate"
+                type="daterange"
+                range-separator="~"
+                class="timeMini"
+                size="mini"
+                style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+                :clearable="false"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+              />
+            </el-form-item>
+
+          </div>
+
+          <div
+            class="bodySearchReset"
+            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+          >
+            <el-button
+              v-waves
+              :size="buttonSize"
+              type="primary"
+              icon="el-icon-search"
+              @click="getInStorageRecordMainSearch()"
+            >鏌ヨ
+            </el-button>
+            <el-button v-waves :size="buttonSize" type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+          </div>
+
+        </el-form>
+        <div
+          class="bodyTopFormExpand"
+        >
+          <!--          <svg-icon-->
+          <!--            v-show="mouseHoverType==='mouseout'"-->
+          <!--            style="cursor: pointer"-->
+          <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+          <!--            @mouseenter="mouseHoverType=$event.type"-->
+          <!--          />-->
+          <!--          <svg-icon-->
+          <!--            v-show="mouseHoverType==='mouseenter'"-->
+          <!--            style="cursor: pointer"-->
+          <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+          <!--            @click="isExpandForm=!isExpandForm"-->
+          <!--            @mouseout="mouseHoverType=$event.type"-->
+          <!--          />-->
+        </div>
+      </div>
+
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataRef"
+          class="tableFixed"
+          :data="tableData"
+          :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+          border
+          :row-class-name="tableRowClassName"
+          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+          @sort-change="sortChange"
+          @row-click="rowClick"
+        >
+          <el-table-column
+            prop="rowNum"
+            width="50"
+            label="搴忓彿"
+            fixed
+          />
+
+          <el-table-column
+            prop="hbillno"
+            label="鍏ュ簱鍗曞彿"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            prop="hbilltype"
+            label="鍗曟嵁绫诲瀷"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            prop="hbdate"
+            label="鍗曟嵁鏃ユ湡"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+
+          <el-table-column
+            prop="create_user"
+            show-tooltip-when-overflow
+            label="鍒涘缓浜哄憳"
+            sortable="custom"
+          />
+          <el-table-column
+            prop="create_date"
+            label="鍒涘缓鏃堕棿"
+            show-tooltip-when-overflow
+            sortable="custom"
+          />
+          <el-table-column
+            label="鎿嶄綔"
+            width="160"
+            fixed="right"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+                  <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!--鍒嗛〉-->
+      <pagination
+        :total="total"
+        :page.sync="form.page"
+        :limit.sync="form.rows"
+        align="right"
+        layout="total,prev, pager, next,sizes,jumper"
+        popper-class="select_bottom"
+        @pagination="getInStorageRecordMainSearch"
+      />
+
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataRef2"
+          :data="tableDataDetail"
+          border
+          height="210px"
+          :row-class-name="tableRowClassName"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+        >
+          <el-table-column
+            width="50"
+            prop="rownumber"
+            label="搴忓彿"
+            fixed
+          />
+          <el-table-column
+            prop="stockname"
+            label="鍏ュ簱浠撳簱"
+            width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.stockname">{{ row.stockname }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="salecode"
+            label="閿�鍞崟鍙�"
+            min-width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.salecode">{{ row.salecode }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="mo_no"
+            label="璁㈠崟缂栧彿"
+            min-width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.mo_no">{{ row.mo_no }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="wocode"
+            label="宸ュ崟缂栧彿"
+            min-width="160"
+            show-tooltip-when-overflow
+          />
+
+          <el-table-column
+            prop="partcode"
+            label="浜у搧缂栫爜"
+            width="160"
+            show-tooltip-when-overflow
+          />
+          <el-table-column
+            prop="partname"
+            label="浜у搧鍚嶇О"
+            width="160"
+            show-tooltip-when-overflow
+          />
+          <el-table-column
+            prop="partspec"
+            label="浜у搧瑙勬牸"
+            width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.partspec">{{ row.partspec }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="unitname"
+            label="鍗曚綅鍚嶇О"
+            width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.unitname">{{ row.unitname }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <!--          <el-table-column-->
+          <!--            prop="wkshp_name"-->
+          <!--            label="閮ㄩ棬鍚嶇О"-->
+          <!--            width="160"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>-->
+          <!--              <div v-else>/</div>-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
+
+          <el-table-column
+            prop="stepname"
+            label="宸ュ簭鍚嶇О"
+            min-width="160"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.stepname">{{ row.stepname }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="qty"
+            label="鍏ュ簱鏁伴噺"
+            min-width="95"
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.qty">{{ row.qty }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <!--          <el-table-column-->
+          <!--            prop="plan_qty"-->
+          <!--            label="宸ュ崟鏁伴噺"-->
+          <!--            min-width="95"-->
+          <!--            fixed="right"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--          />-->
+          <!--          <el-table-column-->
+          <!--            prop="good_qty"-->
+          <!--            label="瀹屽伐鏁伴噺"-->
+          <!--            min-width="95"-->
+          <!--            fixed="right"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--          />-->
+          <!--          <el-table-column-->
+          <!--            prop="inhouseqty"-->
+          <!--            label="宸插叆搴撴暟閲�"-->
+          <!--            min-width="95"-->
+          <!--            fixed="right"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--          />-->
+          <!--          <el-table-column-->
+          <!--            prop="stinhouseqty"-->
+          <!--            label="寰呭叆搴撴暟閲�"-->
+          <!--            min-width="130"-->
+          <!--            fixed="right"-->
+          <!--          >-->
+          <!--            &lt;!&ndash;                    <template slot-scope="{row}">&ndash;&gt;-->
+          <!--            &lt;!&ndash;                      <el-input-number v-model="row.stinhouseqty" :min="0" :max="row.good_qty" size="small" />&ndash;&gt;-->
+          <!--            &lt;!&ndash;                    </template>&ndash;&gt;-->
+          <!--          </el-table-column>-->
+          <!--          <el-table-column-->
+          <!--            label="鎿嶄綔"-->
+          <!--            width="120"-->
+          <!--            fixed="right"-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <div class="operationClass">-->
+          <!--                <el-tooltip v-del-tab-index class="item" effect="dark" content="SOP棰勮" placement="top">-->
+          <!--                  <i-->
+          <!--                    class="el-icon-files"-->
+          <!--                    style="cursor: pointer;color:#42b983;margin-right: 15px"-->
+          <!--                  />-->
+          <!--                </el-tooltip>-->
+          <!--              </div>-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
+        </el-table>
+      </div>
+    </div>
+
+  </div>
+</template>
 
 <script>
+import Pagination from '@/components/Pagination'
+import waves from '@/directive/waves'
+import {
+  DeleteMesInStorageRecord,
+  InStorageRecordMainSearch,
+  InStorageRecordSubSearch
+} from '@/api/ReportManager'
+import { getTPlusToken, handleDatetime, handleDatetime2 } from '@/utils/global'
+import axios from 'axios'
+import Vue from 'vue'
+
 export default {
-  name: 'WarehouseRecord'
+  name: 'WorkOrderList',
+  components: {
+    Pagination
+  },
+  directives: { waves },
+  data() {
+    return {
+      mouseHoverType: 'mouseout',
+      mouseHoverTypeDialog: 'mouseout',
+      isExpandForm: false,
+      isIpad: false,
+      mainHeight: 0,
+      tableHeight: 0,
+      username: '',
+      form: {
+        hbillno: '', // 鍏ュ簱鍗曞彿
+        hbdate: '', // 鍗曟嵁鏃ユ湡
+        username: '', // 鎿嶄綔浜哄憳
+        userdate: '', // 鎿嶄綔鏃堕棿
+        prop: 'hbillno', // 鎺掑簭瀛楁
+        order: 'desc', // 鎺掑簭瀛楁
+        page: 1, // 绗嚑椤�
+        rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      tableData: [],
+      total: 10,
+      tableDataDetail: [],
+      buttonSize: '',
+      formItemWidth: 0
+    }
+  },
+
+  activated() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+  },
+  created() {
+    this.getInStorageRecordMainSearch()
+  },
+  mounted() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+  },
+  methods: {
+    async getInStorageRecordMainSearch() {
+      let tempDate = this.form.hbdate
+      if (tempDate.length > 0) {
+        tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+      }
+      let tempDate2 = this.form.userdate
+      if (tempDate2.length > 0) {
+        tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
+      }
+
+      const data = {
+        hbillno: this.form.hbillno, // 鍏ュ簱鍗曞彿
+        hbdate: tempDate, // 鍗曟嵁鏃ユ湡
+        username: this.form.username, // 鎿嶄綔浜哄憳
+        userdate: tempDate2, // 鎿嶄綔鏃堕棿
+        prop: this.form.prop, // 鎺掑簭瀛楁
+        order: this.form.order, // 鎺掑簭瀛楁
+        page: this.form.page, // 绗嚑椤�
+        rows: this.form.rows // 姣忛〉澶氬皯鏉�
+      }
+      const res = await InStorageRecordMainSearch(data)
+      if (res.code === '200') {
+        this.tableData = res.data
+        this.total = res.count
+
+        if (res.data.length > 0) {
+          await this.getInStorageRecordSubSearch(res.data[0].hbillno)
+        } else {
+          this.tableDataDetail = []
+        }
+      }
+    },
+    async getInStorageRecordSubSearch(hbillno) {
+      const { data: res } = await InStorageRecordSubSearch({ hbillno })
+      this.tableDataDetail = res
+    },
+    rowClick(row, event, column) {
+      this.getInStorageRecordSubSearch(row.hbillno)
+    },
+    reset() {
+      this.form.hbillno = ''
+      this.form.hbdate = ''
+      this.form.username = ''
+      this.form.userdate = ''
+      this.getInStorageRecordMainSearch()
+    },
+    del(row) {
+      this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        getTPlusToken().then(openToken => {
+          axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/ProductReceiveOpenApi/Delete',
+            { param: { 'voucherCode': row.hbillno }}, {
+              headers: {
+                'openToken': openToken,
+                'appKey': Vue.prototype.$AppKey,
+                'appSecret': Vue.prototype.$AppSecret,
+                'Content-Type': 'application/json'
+              }
+            }
+          ).then(r => {
+            if (r.data.code === 0) {
+              const data = []
+              this.tableDataDetail.forEach(i => {
+                data.push({
+                  'hbillno': i.hbillno, // 鍏ュ簱鍗曞彿
+                  'inbarcode': i.inbarcode, // 鍏ュ簱鏉$爜
+                  'sourceVoucherId': i.mo_id ? i.mo_id.toString() : '', // 鏉ユ簮鍗曟嵁ID
+                  'sourceVoucherCode': i.mo_no ? i.mo_no : '', // 鏉ユ簮鍗曟嵁鍙�
+                  'sourceVoucherDetailId': i.sbid ? i.sbid.toString() : '', // 鏉ユ簮鍗曟嵁鏄庣粏ID
+                  'wocode': i.wocode, // 宸ュ崟鍙�
+                  'stepcode': i.step_code, // 宸ュ簭缂栫爜
+                  'style': i.style, // 鎶ュ伐绫诲瀷(B/S)
+                  'qty': i.qty.toString(), // 鍏ュ簱鏁伴噺
+                  'idinventory': i.materiel_id ? i.materiel_id.toString() : '', // 瀛樿揣ID
+                  'idunit': i.unitid ? i.unitid.toString() : '', // 璁¢噺鍗曚綅ID
+                  'idwarehouse': i.stockid ? i.stockid.toString() : '', // 浠撳簱ID
+                  'create_user': localStorage.getItem('username'), // 鎿嶄綔浜哄憳
+                  'create_date': handleDatetime2(new Date())// --鎿嶄綔鏃堕棿
+                })
+              })
+              // console.log(JSON.stringify(data))
+              DeleteMesInStorageRecord(data).then(res => {
+                if (res.code === '200') {
+                  this.$message.success('鍒犻櫎鎴愬姛!')
+                  if (this.form.page > 1 && this.tableData.length === 1) {
+                    this.form.page--
+                  }
+                  this.getInStorageRecordMainSearch()
+                }
+              })
+            }
+          })
+        })
+      }).catch(() => {
+        this.$message.info('宸插彇娑堝垹闄�')
+      })
+    },
+
+    // 鎺掑簭鏀瑰彉鏃�
+    sortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.getStorageRecordSearch()
+    },
+    getHeight() {
+      this.$nextTick(() => {
+        this.mainHeight = window.innerHeight - 85
+        this.tableHeight = this.mainHeight - 450
+
+        this.formItemWidth = window.innerWidth / 10
+        if (window.innerWidth <= 1500 || window.innerHeight <= 900) {
+          this.buttonSize = 'small'
+        } else {
+          this.buttonSize = 'medium'
+        }
+
+        this.$refs.tableDataRef.doLayout()
+        this.$refs.tableDataRef2.doLayout()
+      })
+    },
+    tableRowClassName({ row, rowIndex }) {
+      return 'custom-row'
+    }
+  }
 }
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
+$main_color: #42b983;
 
+.stepSelectedValueClass {
+  ::v-deep input {
+    //min-height: 34px !important;
+    height: 68px !important;
+  }
+}
+
+.dialogVisibleRoute {
+  .myCheckboxGroup {
+    display: flex;
+    flex-wrap: wrap;
+
+    .myCheckbox {
+      //border: 1px solid $main_color;
+      border: 1px solid #eee;
+      display: flex;
+      min-width: 100px;
+      padding: 10px;
+      margin: 10px 30px 0 0;
+      border-radius: 5px;
+      cursor: default;
+
+      .myCheckboxInput {
+        margin: 1px 5px 0 0;
+        cursor: pointer;
+      }
+
+    }
+
+    //.myCheckbox{
+    //  border: 1px solid $main_color;
+    //}
+
+    input[type=checkbox] {
+      cursor: pointer;
+      position: relative;
+      width: 14px;
+      height: 14px;
+      font-size: 14px;
+    }
+
+    input[type=checkbox]::after {
+      position: absolute;
+      top: 0;
+      //color: rgb(130, 35, 35);
+      color: $main_color;
+      width: 14px;
+      height: 14px;
+      display: inline-block;
+      visibility: visible;
+      padding-left: 0px;
+      text-align: center;
+      content: ' ';
+      border-radius: 3px
+    }
+
+    input[type=checkbox]:checked::after {
+      //content: "鉁�";
+      content: "鈭�";
+      color: #fff;
+      font-size: 12px;
+      font-weight: bold;
+      background-color: $main_color;
+    }
+  }
+}
+
+.dialogVisibleRoute {
+  ::v-deep .el-dialog__body {
+    padding: 20px 20px !important;
+  }
+}
+
+.el-date-editor {
+  font-size: 14px;
+}
+
+::v-deep .el-dialog__body {
+  padding: 20px 100px !important;
+}
+
+.sop {
+  ::v-deep .el-dialog__body {
+    padding: 50px 80px !important;
+  }
+}
+
+.dialogVisibleSearch ::v-deep .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+.dialogVisibleConfirmClass ::v-deep .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .el-table .caret-wrapper {
+  transform: scale(0.8);
+}
+
+::v-deep .el-button--text {
+  color: $main_color;
+  font-size: 14px;
+  cursor: pointer;
+}
+
+::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
+  margin: 10px 30px 0px 0;
+}
+
+.body ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+.elForm ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+.elTableDiv {
+  ::v-deep .el-radio__label {
+    display: none;
+  }
+
+}
+
+.el-table::before {
+  height: 0;
+}
+
+//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit {
+//  border-bottom: 2px solid #000 ;
+//  //outline: #000 solid 2px !important;
+//}
+
+.tableDataPrint ::v-deep div.cell {
+  display: flex !important;
+  align-items: center !important;
+  justify-content: center !important;
+}
+
+.formContent {
+  width: 240px;
+}
+
+</style>
+
+<style>
+.formContent .el-form-item__label {
+  color: #000 !important;
+}
+</style>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+::v-deep .el-range-input {
+  font-size: 14px !important;
+}
+
+::v-deep .el-range__icon {
+  line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+  line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+  font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+//::v-deep .el-button--primary, .el-button--default, .el-button--info {
+//  height: 34px;
+//  display: flex;
+//  align-items: center;
+//  padding: 0 15px;
+//}
+
+::v-deep .el-button--primary {
+  //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+  background-color: #f8f8fa;
+  border: none;
+}
+
+::v-deep .el-input__inner {
+  height: 34px;
+  line-height: 34px;
+  //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+  padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+  display: flex;
+  justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+  transform: scale(0.8);
+}
+
+::v-deep .cell {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+  height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+  background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+  background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+  color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+  border: 1px solid #eee;
+  width: 99%;
+  margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+.dateMini {
+  ::v-deep .el-input__inner {
+    line-height: 34px;
+    height: 34px;
+    width: 200px;
+    display: flex;
+    font-size: 14px !important;
+    align-items: center !important;
+  }
+
+  ::v-deep .el-input__prefix {
+    margin-top: -3px;
+  }
+
+  //::v-deep .el-range__icon{
+  //  line-height: 28px;
+  //}
+}
+
+::v-deep .el-select__caret {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.tableFixed {
+  ::v-deep .el-table__fixed-right {
+    height: 100% !important;
+  }
+
+  ::v-deep .el-table__fixed {
+    height: 100% !important;
+  }
+}
+</style>
+<style>
+.el-table .custom-row {
+  background: #f8f8fa;
+}
 </style>
diff --git a/src/views/workOrder/produceOrderList.vue b/src/views/workOrder/produceOrderList.vue
index 82a6d56..ffc3e49 100644
--- a/src/views/workOrder/produceOrderList.vue
+++ b/src/views/workOrder/produceOrderList.vue
@@ -609,6 +609,7 @@
             v-model="dialogForm.ordernum"
             oninput="value=value.replace(/[^0-9.]/g,'')"
             style="width: 200px"
+            disabled
           />
         </el-form-item>
 
@@ -785,6 +786,8 @@
         clerkuser: '', // 閿�鍞笟鍔″憳
 
         saleOrderDeliveryDate: '', // 棰勮浜や粯鏃ユ湡
+
+        deptcode: '',
 
         paystartdate: '', //   棰勮寮�宸ユ棩鏈�
         payenddate: ''//  棰勮瀹屽伐鏃ユ湡
@@ -1070,7 +1073,7 @@
             'saleordercode': i.saleOrderCode,
             // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate
             'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00',
-
+            deptcode: i.dept_code,
             'paystartdate': i.planstartdate,
             'payenddate': i.planenddate
           })
@@ -1140,6 +1143,8 @@
 
         this.dialogForm.paystartdate = row.planstartdate
         this.dialogForm.payenddate = row.planenddate
+
+        this.dialogForm.deptcode = row.dept_code
       })
     },
     // 瀵硅瘽妗嗗叧闂簨浠�
@@ -1171,6 +1176,8 @@
 
         payenddate: '', // 棰勮瀹屽伐鏃ユ湡
         paystartdate: '', // 棰勮寮�宸ユ棩鏈�
+
+        deptcode: '',
 
         saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡
       }
@@ -1217,6 +1224,7 @@
             'payenddate': this.dialogForm.payenddate,
             'paystartdate': this.dialogForm.paystartdate,
             'relse_qty': this.dialogForm.relse_qty,
+            deptcode: this.dialogForm.deptcode,
             'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00'
           }
 
diff --git a/vue.config.js b/vue.config.js
index bb357bb..5b2ee06 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,7 +53,8 @@
     proxy: {
       [process.env.VUE_APP_BASE_API]: {
         target: 'http://121.196.36.24:8048', // 鏈湴
-        // target: 'http://192.168.1.21:9000', // 闃块瞾鍏嬶紙鏂帮級
+        // target: 'http://192.168.21.19:8002', // 闃块瞾鍏嬶紙鏂帮級
+        // target: 'http://192.168.21.19:8003', // 闃块瞾鍏嬶紙鏂帮級
         changeOrigin: true, // 璇锋眰璺ㄥ煙鏃讹紝闇� 閰嶇疆姝ら」
         pathRewrite: { // 璺緞閲嶅啓,鏇挎崲target涓殑璇锋眰鍦板潃
           ['^' + process.env.VUE_APP_BASE_API]: '/api/'

--
Gitblit v1.9.3