From dc0244f19e64d43972d9b654330c093e39544b8b Mon Sep 17 00:00:00 2001
From: 陈婷婷 <506607603@qq.com>
Date: 星期二, 23 十二月 2025 10:44:23 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI

---
 .env.staging                                               |    2 
 src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue   |  796 ++++++++++++++++++++++++++++++++++++++++++++
 src/views/sell/sellOut/sellOutBill.vue                     |   22 +
 src/views/ProductInBill/Kf_ProductInBillList.vue           |   22 +
 src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue |   22 +
 src/views/basic/gyStockPlace/gyStockPlace.vue              |   11 
 public/static/grf/物料条码.grf                                 |   16 
 public/static/grf/库位码.grf                                  |    4 
 .env.production                                            |    2 
 src/store/modules/permission.js                            |   15 
 src/views/component/printList/barcode.vue                  |  123 ++++--
 src/router/index.js                                        |   25 +
 12 files changed, 998 insertions(+), 62 deletions(-)

diff --git a/.env.production b/.env.production
index 605ec3c..fb2694d 100644
--- a/.env.production
+++ b/.env.production
@@ -5,7 +5,7 @@
 ENV = 'production'
 
 VUE_APP_BASE_API = http://192.168.0.236:9010/API/
-# VUE_APP_BASE_API = http://220.189.218.155:9010/API/ # 鍥涚淮灏� 澶栫綉
+# VUE_APP_BASE_API = http://220.189.218.155:9010/API/
 # VUE_APP_BASE_API = http://47.96.97.237/API/ # 鏅轰簯杩堟�滾-MOM绠$悊绯荤粺/鐢熶骇鐜
 # 璺敱鎳掑姞杞� 
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
\ No newline at end of file
diff --git a/.env.staging b/.env.staging
index 1a84e05..ceed279 100644
--- a/.env.staging
+++ b/.env.staging
@@ -9,7 +9,7 @@
 ENV = 'staging'
 
 # 鏅轰簯杩堟�滾-MOM绠$悊绯荤粺/娴嬭瘯鐜
-VUE_APP_BASE_API = 'http://192.168.0.51:81/API/'
+VUE_APP_BASE_API = 'http://localhost:81/API/'
 
 # 璺敱鎳掑姞杞�
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git "a/public/static/grf/\345\272\223\344\275\215\347\240\201.grf" "b/public/static/grf/\345\272\223\344\275\215\347\240\201.grf"
index 4881d2d..a9ba663 100644
--- "a/public/static/grf/\345\272\223\344\275\215\347\240\201.grf"
+++ "b/public/static/grf/\345\272\223\344\275\215\347\240\201.grf"
@@ -4,7 +4,7 @@
 	"Author":"閿愭氮鎶ヨ〃杞欢",
 	"Description":"婕旂ず涓�涓渶鍩烘湰鐨勫垪琛ㄦ姤琛ㄣ��",
 	"Font":{
-		"Name":"瀹嬩綋",
+		"Name":"寰蒋闆呴粦",
 		"Size":90000,
 		"Weight":400,
 		"Charset":134
@@ -108,7 +108,7 @@
 			"BackColor":"C0C0C0",
 			"Height":0,
 			"Font":{
-				"Name":"瀹嬩綋",
+				"Name":"寰蒋闆呴粦",
 				"Size":90000,
 				"Bold":true,
 				"Charset":134
diff --git "a/public/static/grf/\347\211\251\346\226\231\346\235\241\347\240\201.grf" "b/public/static/grf/\347\211\251\346\226\231\346\235\241\347\240\201.grf"
index d4213fd..c056d4b 100644
--- "a/public/static/grf/\347\211\251\346\226\231\346\235\241\347\240\201.grf"
+++ "b/public/static/grf/\347\211\251\346\226\231\346\235\241\347\240\201.grf"
@@ -1,10 +1,10 @@
 锘縶
-	"Version":"6.8.2.2",
+	"Version":"6.8.9.5",
 	"Title":"1a.绠�鍗曡〃鏍�",
 	"Author":"閿愭氮鎶ヨ〃杞欢",
 	"Description":"婕旂ず涓�涓渶鍩烘湰鐨勫垪琛ㄦ姤琛ㄣ��",
 	"Font":{
-		"Name":"瀹嬩綋",
+		"Name":"寰蒋闆呴粦",
 		"Size":90000,
 		"Weight":400,
 		"Charset":134
@@ -64,6 +64,12 @@
 			"ColumnContentCell":[
 				{
 					"Column":"鍗曟嵁鍙�",
+					"Font":{
+						"Name":"寰蒋闆呴粦",
+						"Size":90000,
+						"Weight":400,
+						"Charset":134
+					},
 					"FreeCell":true,
 					"Control":[
 						{
@@ -155,8 +161,8 @@
 											"BarcodeType":"QRCode",
 											"Text":"[#鏉$爜缂栧彿#]",
 											"Font":{
-												"Name":"瀹嬩綋",
-												"Size":67500,
+												"Name":"寰蒋闆呴粦",
+												"Size":75000,
 												"Weight":400,
 												"Charset":134
 											}
@@ -244,7 +250,7 @@
 			"BackColor":"C0C0C0",
 			"Height":0,
 			"Font":{
-				"Name":"瀹嬩綋",
+				"Name":"寰蒋闆呴粦",
 				"Size":90000,
 				"Bold":true,
 				"Charset":134
diff --git a/src/router/index.js b/src/router/index.js
index 81d3b80..345c7b7 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -138,6 +138,31 @@
     ],
   },
   //#endregion
+  
+  //#region 鏉$爜涓绘尅
+  {
+    path: "/warehouse/barcodeMaster/Gy_BarCodeBillList",
+    component: Layout,
+    hidden: true,
+    redirect: "noredirect",
+    meta: {
+      breadcrumb: false, // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+      activeMenu: "/warehouse/barcodeMaster/Gy_BarCodeBillList", // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+    },
+    children: [
+      {
+        path: "/warehouse/barcodeMaster/Gy_BarCodeBillList",
+        component: () =>
+          import("@/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue"),
+        name: "Gy_BarCodeBillList",
+        meta: {
+          title: "鏉$爜涓绘。",
+          activeMenu: "warehouse/barcodeMaster",
+        },
+      },
+    ],
+  },
+  //#endregion
   //#endregion
 
   //#region 浠撳瓨绠$悊
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 52ab7b5..47c18d8 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -423,6 +423,21 @@
                     name: "Gy_BarCodeBill",
                     path: "Gy_BarCodeBill",
                   },
+                  {
+                    meta: {
+                      icon: "build",
+                      link: null,
+                      noCache: false,
+                      title: "鏉$爜涓绘。",
+                    },
+                    component: () =>
+                      import(
+                        "@/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue"
+                      ),
+                    hidden: false,
+                    name: "Gy_BarCodeBillList",
+                    path: "Gy_BarCodeBillList",
+                  },
                 ],
               },
             ],
diff --git a/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue b/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
index 1b1a2e0..3192691 100644
--- a/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
+++ b/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
@@ -150,6 +150,9 @@
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">鏉$爜鏄庣粏</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�</el-button>
+      </el-col>
     </el-row>
     <div class="tableBox" v-loading="loading">
       <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
@@ -195,6 +198,8 @@
       </el-dialog>
       <!-- 鏉$爜鏄庣粏 -->
       <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/>
+      <!-- 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁� -->
+      <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/>
     </div>
   </div>
 </template>
@@ -205,11 +210,12 @@
 import RowSettings from '@/views/component/rowSettings'                   //鍒楄缃粍浠�
 import PrintList from '@/views/component/printList'                       //鎵撳嵃缁勪欢
 import BarCodeDetail from '@/views/component/BarCodeDetail'               //鏉$爜鏄庣粏缁勪欢
+import PackStockDetail from '@/views/component/PackStockDetail'               //鏉$爜鏄庣粏缁勪欢
 import Edit from '@/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillEdit'   //缂栬緫椤甸潰缁勪欢
 
 export default {
   name: 'Kf_POStockInBillList',
-  components: { RowSettings, Edit, PrintList,BarCodeDetail },
+  components: { RowSettings, Edit, PrintList,BarCodeDetail,PackStockDetail },
   data() {
     return {
       baseURL: process.env.VUE_APP_BASE_API,                //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣╥p鍦板潃)
@@ -265,6 +271,7 @@
       openRowHide: false,                                   //鍒楄缃粍浠舵樉绀烘爣璁�
       rowHideShow: false,                                   //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
       barCodeDetailShow: false,                             //鏉$爜鏄庣粏缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      packStockDetailShow:false,                            //鍖呰瀹瑰櫒鍑哄叆搴撴槑缁嗗鍣ㄦ樉绀烘爣璁�
       
       
       
@@ -863,6 +870,19 @@
 		},
     //#endregion
 
+    //#region 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�
+    get_PackStockDetail() {
+      // if (this.selectedRow.length !== 1) {
+      //   this.$message.warning('璇烽�夋嫨涓�琛屾暟鎹煡鐪嬫潯鐮佹槑缁嗭紒')
+      //   return
+      // }
+      this.packStockDetailShow = true
+      this.$nextTick(() => {
+        this.$refs.packStockDetail.open(this.rowForm)
+      })
+		},
+    //#endregion
+
     //#region 閫�鍑�
     close() {
       // this.reset()
diff --git a/src/views/ProductInBill/Kf_ProductInBillList.vue b/src/views/ProductInBill/Kf_ProductInBillList.vue
index cfafb17..66eb35d 100644
--- a/src/views/ProductInBill/Kf_ProductInBillList.vue
+++ b/src/views/ProductInBill/Kf_ProductInBillList.vue
@@ -141,6 +141,9 @@
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">鏉$爜鏄庣粏</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�</el-button>
+      </el-col>
     </el-row>
     <div class="tableBox" v-loading="loading">
       <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
@@ -186,6 +189,8 @@
       </el-dialog>
       <!-- 鏉$爜鏄庣粏 -->
       <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/>
+      <!-- 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁� -->
+      <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/>
     </div>
   </div>
 </template>
@@ -196,11 +201,12 @@
 import RowSettings from '@/views/component/rowSettings'                   //鍒楄缃粍浠�
 import PrintList from '@/views/component/printList'                       //鎵撳嵃缁勪欢
 import BarCodeDetail from '@/views/component/BarCodeDetail'               //鏉$爜鏄庣粏缁勪欢
+import PackStockDetail from '@/views/component/PackStockDetail'               //鏉$爜鏄庣粏缁勪欢
 import Edit from '@/views/ProductInBill/Kf_ProductInBillEdit'             //缂栬緫椤甸潰缁勪欢
 
 export default {
   name: 'Kf_ProductInBillList',
-  components: { RowSettings, Edit, PrintList,BarCodeDetail },
+  components: { RowSettings, Edit, PrintList,BarCodeDetail,PackStockDetail },
   data() {
     return {
       baseURL: process.env.VUE_APP_BASE_API,                //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣╥p鍦板潃)
@@ -253,6 +259,7 @@
       openRowHide: false,                                   //鍒楄缃粍浠舵樉绀烘爣璁�
       rowHideShow: false,                                   //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
       barCodeDetailShow: false,                             //鏉$爜鏄庣粏缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      packStockDetailShow:false,                            //鍖呰瀹瑰櫒鍑哄叆搴撴槑缁嗗鍣ㄦ樉绀烘爣璁�
       
       
       
@@ -837,6 +844,19 @@
       })
 		},
     //#endregion
+    
+    //#region 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�
+    get_PackStockDetail() {
+      // if (this.selectedRow.length !== 1) {
+      //   this.$message.warning('璇烽�夋嫨涓�琛屾暟鎹煡鐪嬫潯鐮佹槑缁嗭紒')
+      //   return
+      // }
+      this.packStockDetailShow = true
+      this.$nextTick(() => {
+        this.$refs.packStockDetail.open(this.rowForm)
+      })
+		},
+    //#endregion
 
     //#region 閫�鍑�
     close() {
diff --git a/src/views/basic/gyStockPlace/gyStockPlace.vue b/src/views/basic/gyStockPlace/gyStockPlace.vue
index a743d1c..50972e5 100644
--- a/src/views/basic/gyStockPlace/gyStockPlace.vue
+++ b/src/views/basic/gyStockPlace/gyStockPlace.vue
@@ -23,6 +23,13 @@
             @keyup.enter.native="handleQuery"
             class="ForFilteringSchemes"
           />
+        </el-form-item><el-form-item label="浠撳簱鍚嶇О" prop="HWHName">
+          <el-input
+            v-model="queryParams.HWHName"
+            placeholder="璇疯緭鍏ヤ粨搴撳悕绉�"
+            @keyup.enter.native="handleQuery"
+            class="ForFilteringSchemes"
+          />
         </el-form-item>
         <el-form-item label="缁勭粐">
           <el-select
@@ -1156,6 +1163,9 @@
       if (this.queryParams.HName) {
         this.sWhere += " and 浠撲綅鍚嶇О like '%" + this.queryParams.HName + "%'";
       }
+      if (this.queryParams.HWHName) {
+        this.sWhere += " and 浠撳簱鍚嶇О like '%" + this.queryParams.HWHName + "%'";
+      }
       if (this.queryParams.HOrgID) {
         let OrgName = this.organizationList.find((e) => e.ID == this.queryParams.HOrgID)
           ?.Name;
@@ -1211,6 +1221,7 @@
       this.queryParams = {
         HNumber: "",
         HName: "",
+        HWHName: "",
         HBillNo: "",
         HInitTimeCycle: 29,
         HProjectNumber: "",
diff --git a/src/views/component/printList/barcode.vue b/src/views/component/printList/barcode.vue
index a640440..ae0f5fc 100644
--- a/src/views/component/printList/barcode.vue
+++ b/src/views/component/printList/barcode.vue
@@ -1,13 +1,15 @@
 <template>
-  <div>
-    <button @click="getTemp">鎵撳嵃</button>
-    <div id="report_holder"> </div>
+  <div style="padding: 10px">
+    <el-button type="primary" @click="getTemp">鎵撳嵃</el-button>
+    <!-- <el-button type="primary" @click="getTempMeta">鑾峰彇鍏冩暟鎹�</el-button> -->
+    <div id="report_holder"></div>
   </div>
 </template>
 
 <script>
-import PrintJS from 'print-js'
+import PrintJS from "print-js";
 import axios from "axios";
+import { watch } from "vue";
 export default {
   name: "HBarPlanPrintWeb",
   data() {
@@ -16,7 +18,7 @@
       handleMessage: this.$route.query,
       pageSize: {
         width: 0,
-        height: 0
+        height: 0,
       },
       reportViewer: null,
       baseUrl: process.env.VUE_APP_BASE_API,
@@ -24,17 +26,28 @@
         recordset: [],
       },
       grfPath: "",
-
-    }
+      oriention: null,
+    };
   },
   async mounted() {
     // 鑾峰彇 鎵撳嵃鐨勬暟鎹�
-    await this.getPrintData()
-
+    await this.getPrintData();
+    // 鑾峰彇鎵撳嵃绾稿紶澶у皬
     rubylong.grhtml5.barcodeURL = this.baseUrl + "/Utility/Barcode.ashx";
-    this.reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", this.grfPath,  this.json_data.recordset,
+    this.reportViewer = rubylong.grhtml5.insertReportViewer(
+      "report_holder",
+      this.grfPath,
+      this.json_data
     );
     this.reportViewer.start();
+  },
+  watch: {
+    // 鐩戝惉reportViewer鏄惁宸茬粡鏋勫缓瀹屾垚锛屾瀯寤哄畬鎴愬悗 鑾峰彇grf鏂囦欢鐨勬墦鍗伴〉闈㈠ぇ灏�
+    'reportViewer.generated'(newVal, oldVal) {
+      if(newVal == true) {
+        this.getTempMeta()
+      }
+    },
   },
   methods: {
     getUrlVars_JSON() {
@@ -45,6 +58,7 @@
       return datajson;
     },
     async getPrintData() {
+      // 鍦ㄥぇ鎵归噺鎵撳嵃鐨勬椂鍊� url闀垮害鍙兘瓒単et鍏佽鐨勯暱搴� 鍚庣闇�鎸夐渶姹� 鏀规垚POST璇锋眰
       let OpenTmp = decodeURIComponent(this.$route.query.OpenTmp);
       let sql = "";
       if (this.$route.query.Type == "Kf_SellOutBillList") {
@@ -56,6 +70,11 @@
           "select * from h_v_IF_BarCodeBillList where hmainid in(" +
           this.handleMessage.linterid.toString() +
           ") order by hmainid desc";
+      } else if (this.$route.query.Type == "HGy_BarCodeBillList") {
+        sql =
+          "select * from h_v_IF_BarCodeBillList where hmainid in(" +
+          this.handleMessage.linterid.toString() +
+          ") order by hmainid desc";
       } else if (this.$route.query.Type == "HPOInStockBill") {
         sql =
           "select * from h_v_Sc_PrintMouldProdOutBillList where hmainid=" +
@@ -63,81 +82,85 @@
           " order by hmainid";
       } else if (this.$route.query.Type == "HGyStockPlaceBarCode") {
         let condition = decodeURI(this.handleMessage.linterid.toString());
-        sql = `SELECT
-                CEILING(CAST(t.row_num AS FLOAT) / 2) AS orderid,
-                MAX(CASE WHEN t.row_num % 2 = 1 THEN t.鏉$爜缂栧彿 END) AS 鏉$爜缂栧彿1,
-                MAX(CASE WHEN t.row_num % 2 = 1 THEN t.浠撲綅鍚嶇О END) AS 浠撲綅鍚嶇О1,
-                MAX(CASE WHEN t.row_num % 2 = 0 THEN t.鏉$爜缂栧彿 END) AS 鏉$爜缂栧彿2,
-                MAX(CASE WHEN t.row_num % 2 = 0 THEN t.浠撲綅鍚嶇О END) AS 浠撲綅鍚嶇О2
-              FROM (
-                SELECT
-                  鏉$爜缂栧彿, 浠撲綅鍚嶇О,
-                  ROW_NUMBER() OVER (ORDER BY t1.HItemID) AS row_num
-                FROM h_v_IF_StockPlaceList t1 where 鏉$爜缂栧彿 in (${condition})
-              ) AS t
-              GROUP BY CEILING(CAST(t.row_num AS FLOAT) / 2)
-              ORDER BY orderid;`;
+        condition = condition.split(',').map(e => `'${e}'`).join(',')
+        sql = `exec h_p_GetSPBarCode_Swell N'${condition}'`;
       }
       try{
-        let res =  await axios.get(this.baseURL + "/CommonModel/searchMethod", {
+        let res =  await axios.get(this.baseUrl + "/CommonModel/searchMethod", {
           params: {
             sql: sql,
             user: sessionStorage["HUserName"],
             ModRightNameCheck: "",
             // , "HSubID": data[i].hsubid
           },
-        })
+        });
         // 灏� 娓叉煋鏁版嵁 鍜� 妯℃澘鍔犺浇鍒版湰鍦�
         let result = res.data;
-          this.json_data.recordset = result.data;
-          this.grfPath = "./static/grf/" + OpenTmp + ".grf"
-          console.log(this.json_data);
-      }catch(err) {
+        this.json_data.recordset = result.data;
+        this.grfPath = "./static/grf/" + OpenTmp + ".grf";
+        console.log(this.json_data);
+      } catch (err) {
         this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!" + err);
       }
-
+    },
+    getTempMeta() {
+      let grfMeta = JSON.parse(this.reportViewer.reportText);
+      console.log("grfMeta", grfMeta)
+      this.pageSize.width = grfMeta.Printer.Width * 10 + "mm";
+      this.pageSize.height = grfMeta.Printer.Height * 10 + "mm";
+      console.log("pageSize: ",this.pageSize)
+      this.oriention = grfMeta.Printer.Oriention.toLowerCase()
     },
     getTemp() {
       // 瀵规瘡涓鎵撳嵃鐨勫璞℃坊鍔犲垎椤�
-      let docs = document.querySelectorAll('[_grrecno]')
-      this.pageSize.width = docs[0].offsetWidth
-      this.pageSize.height = docs[0].offsetHeight
+      let docs = document.querySelectorAll("[_grrecno]");
+      // this.pageSize.width = docs[0].offsetWidth;
+      // this.pageSize.height = docs[0].offsetHeight;
       docs.forEach((elem, index) => {
-        elem.classList.add('printable')
-      })
-      let styles = document.querySelectorAll('[id^="_gridcss"]')
-      this.styleList.push(...styles)
+        elem.classList.add("printable");
+      });
+      let styles = document.querySelectorAll('[id^="_gridcss"]');
+      this.styleList.push(...styles);
 
-      this.execPrint()
+      this.execPrint();
     },
     execPrint() {
       PrintJS({
-        printable: 'report_holder',
+        printable: "report_holder",
         scanStyles: false,
-        type: 'html',
-        style: this.styleList[0].innerText + ` @media print {
+        type: "html",
+        style:
+          this.styleList[0].innerText +
+          `
             .printable {
               page-break-inside: avoid;
               page-break-after: always;
+              box-sizing: border-box !important; /* 鍐呰竟璺濅笉褰卞搷瀹介珮 */
             }
 
             @page {
-              size: ${this.pageSize.width + 1}px ${this.pageSize.height + 1}px;
+              size: ${this.pageSize.width} ${this.pageSize.height};
               margin: 0;
               padding: 0;
             }
+
+            table { border-collapse: collapse !important; }
 
             * {
               margin: 0;
               padding: 0;
+              color: #000 !important;
+              opacity: 1 !important;
+              filter: none !important;
+              text-shadow: none !important;
+              -webkit-print-color-adjust: exact; /* 寮哄埗杩樺師棰滆壊锛堥伩鍏嶆贰鑹诧級 */
             }
         `,
-      })
-
-
-    }
-  }
-}
+      });
+    },
+  },
+};
 </script>
 
-<style></style>
\ No newline at end of file
+<style>
+</style>
diff --git a/src/views/sell/sellOut/sellOutBill.vue b/src/views/sell/sellOut/sellOutBill.vue
index c245bcf..cf5ab8f 100644
--- a/src/views/sell/sellOut/sellOutBill.vue
+++ b/src/views/sell/sellOut/sellOutBill.vue
@@ -314,6 +314,9 @@
           >鏉$爜鏄庣粏</el-button
         >
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�</el-button>
+      </el-col>
     </el-row>
     <div class="tableBox" v-loading="loading">
       <el-table
@@ -424,6 +427,8 @@
       </el-dialog>
       <!-- 鏉$爜鏄庣粏 -->
       <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail" />
+      <!-- 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁� -->
+      <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/>
     </div>
   </div>
 </template>
@@ -434,11 +439,12 @@
 import Edit from "@/views/sell/sellOut/sellOutBillEdit";
 import PrintList from "@/views/component/printList";
 import BarCodeDetail from "@/views/component/BarCodeDetail"; //鏉$爜鏄庣粏缁勪欢
+import PackStockDetail from '@/views/component/PackStockDetail'               //鏉$爜鏄庣粏缁勪欢
 import moment from "moment";
 
 export default {
   name: "SellOutBill",
-  components: { RowSettings, Edit, PrintList, BarCodeDetail },
+  components: { RowSettings, Edit, PrintList, BarCodeDetail,PackStockDetail },
   data() {
     return {
       activeSeach: "",
@@ -449,6 +455,7 @@
       openPrintList: false,
       printListShow: false,
       barCodeDetailShow: false, //鏉$爜鏄庣粏缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      packStockDetailShow:false,                            //鍖呰瀹瑰櫒鍑哄叆搴撴槑缁嗗鍣ㄦ樉绀烘爣璁�
       openBtnHide: false,
       btnHideShow: false,
       rowHideShow: false,
@@ -1162,6 +1169,19 @@
       });
     },
     //#endregion
+    
+    //#region 鍖呰瀹瑰櫒鍑哄叆搴撴槑缁�
+    get_PackStockDetail() {
+      // if (this.selectedRow.length !== 1) {
+      //   this.$message.warning('璇烽�夋嫨涓�琛屾暟鎹煡鐪嬫潯鐮佹槑缁嗭紒')
+      //   return
+      // }
+      this.packStockDetailShow = true
+      this.$nextTick(() => {
+        this.$refs.packStockDetail.open(this.rowForm)
+      })
+		},
+    //#endregion
 
     //#region 鑾峰彇鍏徃鍚嶏紝鏍规嵁鍏徃杩涜瀹氬埗鍖栧紑鍙�
     defaintOperationByCompanyName() {
diff --git a/src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue b/src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue
new file mode 100644
index 0000000..c1960b0
--- /dev/null
+++ b/src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue
@@ -0,0 +1,796 @@
+<template>
+  <div style="padding: 10px;">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
+      <el-form-item label="寮�濮嬫棩鏈�" style="margin-left: 100px;">
+        <el-date-picker v-model="queryParams.sTime" type="date" placeholder="寮�濮嬫棩鏈�" style="width: 150px;">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="缁撴潫鏃ユ湡">
+        <el-date-picker v-model="queryParams.eTime" type="date" placeholder="缁撴潫鏃ユ湡" style="width: 150px;">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏃ユ湡闂撮殧">
+        <el-select v-model="queryParams.HInitTimeCycle" placeholder="璇烽�夋嫨" @change="riqiChange" style="width: 150px;">
+          <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鏉$爜缂栧彿" prop="HBarCode">
+        <el-input v-model="queryParams.HBarCode" placeholder="璇疯緭鍏ユ潯鐮佺紪鍙�" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="缁勭粐" prop="HOrgID">
+        <el-select v-model="queryParams.HOrgID" placeholder="璇烽�夋嫨缁勭粐">
+          <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="婧愬崟鍗曞彿" prop="HSourceBillNo">
+        <el-input v-model="queryParams.HSourceBillNo" placeholder="璇疯緭鍏ユ簮鍗曞崟鍙�" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="鐗╂枡浠g爜" prop="HMaterNumber">
+        <el-input v-model="queryParams.HMaterNumber" placeholder="璇疯緭鍏ョ墿鏂欎唬鐮�" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="鐗╂枡鍚嶇О" prop="HMaterName">
+        <el-input v-model="queryParams.HMaterName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label-width="78px">
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 鎼� 绱�</el-button>
+        <el-button icon="el-icon-circle-close" @click="resetQuery">閲� 缃�</el-button>
+      </el-form-item>
+      <el-collapse v-model="activeSeach">
+        <el-collapse-item title="鏇村" name="1">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix"><span>杩囨护</span></div>
+            <div>
+              <el-row>
+                <el-form-item label-width="0">
+                  <el-row>
+                    <el-col :span="7">
+                      <el-select v-model="queryParams.ColName1" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <span v-for="(item, index) in btList" :key="index">
+                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
+                        </span>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="6" style="padding: 0 10px;">
+                      <el-select v-model="queryParams.Comparator1" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                          :value="item.value"></el-option>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="11">
+                      <el-input v-model="queryParams.ColContent1" placeholder="璇疯緭鍏�" clearable
+                        @keyup.enter.native="handleQuery" />
+                    </el-col>
+                  </el-row>
+                </el-form-item>
+              </el-row>
+              <el-row>
+                <el-form-item label-width="0">
+                  <el-row>
+                    <el-col :span="7">
+                      <el-select v-model="queryParams.ColName2" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <span v-for="(item, index) in btList" :key="index">
+                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
+                        </span>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="6" style="padding: 0 10px;">
+                      <el-select v-model="queryParams.Comparator2" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                          :value="item.value"></el-option>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="11">
+                      <el-input v-model="queryParams.ColContent2" placeholder="璇疯緭鍏�" clearable
+                        @keyup.enter.native="handleQuery" />
+                    </el-col>
+                  </el-row>
+                </el-form-item>
+              </el-row>
+              <el-form-item label-width="0">
+                <el-row>
+                  <el-col :span="7">
+                    <el-select v-model="queryParams.ColName" placeholder="璇烽�夋嫨" @change="riqiChange">
+                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
+                        :value="item.field"></el-option>
+                    </el-select>
+                  </el-col>
+                  <el-col :span="6" style="padding: 0 10px;">
+                    <el-select v-model="queryParams.Comparator" placeholder="璇烽�夋嫨" @change="riqiChange">
+                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                        :value="item.value"></el-option>
+                    </el-select>
+                  </el-col>
+                  <el-col :span="11">
+                    <el-input v-model="queryParams.ColContent" placeholder="璇疯緭鍏�" clearable
+                      @keyup.enter.native="handleQuery" />
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </div>
+          </el-card>
+        </el-collapse-item>
+      </el-collapse>
+    </el-form>
+    <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
+      <!-- <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDrop">鍒犻櫎
+        </el-button>
+      </el-col> -->
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete(0)">浣滃簾
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete(1)">鍙嶄綔搴�
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">瀵煎嚭</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">闅愯棌鍒楄缃�</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">鎵撳嵃</el-button>
+      </el-col>
+    </el-row>
+    <div class="tableBox" v-loading="loading">
+      <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
+        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
+        @cell-dblclick="handleDblclick" v-if="tableShow">
+        <template v-for="(item, index) in btList">
+          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
+            :key="index" />
+          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id"
+            v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip
+            :fixed="item.fixed">
+            <template slot-scope="{row,  column }">
+              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
+              <div :style="item.style">
+                <span v-if="column.property.includes('鏃ユ湡')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span>
+                <el-button type="text" @click="handleEdit(row, OperationType = 3)"
+                  v-else-if="column.property == '鍗曟嵁鍙�'">{{
+                    row.鍗曟嵁鍙�
+                  }}</el-button>
+                <span v-else>{{ row[column.label] }}</span>
+              </div>
+            </template>
+          </el-table-column>
+        </template>
+      </el-table>
+      <!-- 璁板綍鏁般�侀〉鏁般�佸綋鍓嶉〉 -->
+      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" @pagination="handleQuery" />
+      <!-- 鍒楄缃� -->
+      <el-dialog title="闅愯棌鍒楄缃�" :visible.sync="openRowHide" width="816px" append-to-body>
+        <RowSettings :colName="btResList" HModName="Kf_POStockInBillList" @rowEditClose="rowSetClose"
+          v-if="rowHideShow" />
+      </el-dialog>
+      <!-- 鎵撳嵃 -->
+      <el-dialog title="鎵撳嵃妯℃澘閫夋嫨" :visible.sync="openPrintList" width="800px" append-to-body>
+        <PrintList :linterid="rowSel.toString()" :MyMsg="rowSel.toString()" Type="HGy_BarCodeBill"
+          HModName="HGy_BarCodeBill" @rowEditClose="rowSetClose" v-if="printListShow" />
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import moment from 'moment';                                              //瀵煎嚭缁勪欢
+import RowSettings from '@/views/component/rowSettings'                   //鍒楄缃粍浠�
+import PrintList from "@/views/component/printList";                       //鎵撳嵃缁勪欢
+
+export default {
+  name: 'Gy_BarCodeBillList',
+  components: { RowSettings, PrintList},
+  data() {
+    return {
+      baseURL: process.env.VUE_APP_BASE_API,                //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣╥p鍦板潃)
+
+      HInterID: null,
+      rowSel: [],                                           //鐢ㄤ簬鎵撳嵃鐨勬暟鎹泦鍚�
+      
+      rqsgList: [                                           //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鏁版嵁
+        { label: '浠婂ぉ', value: 0 },
+        { label: '杩戜袱澶�', value: 1 },
+        { label: '杩戜笁澶�', value: 2 },
+        { label: '杩戝洓澶�', value: 3 },
+        { label: '杩戜簲澶�', value: 4 },
+        { label: '杩戝叚澶�', value: 5 },
+        { label: '杩戜竷澶�', value: 6 },
+        { label: '杩�30澶�', value: 29 },
+        { label: '杩戝崐骞�', value: 180 },
+        { label: '杩戜竴骞�', value: 365 },
+      ],
+      organizationList: [],                                 //缁勭粐鍒楄〃
+      btList: [],                                           //鍒楄〃琛ㄥご瀛楁鍒楄〃
+      comparatorList: [                                     //杩愮畻鏍囪瘑涓嬫媺鍒楄〃
+        { label: '=', value: '=' },
+        { label: '>=', value: '>=' },
+        { label: '>', value: '>' },
+        { label: '<=', value: '<=' },
+        { label: '<', value: '<' },
+        { label: '<>', value: '<>' },
+        { label: '鍖呭惈', value: '7' },
+        { label: '宸﹀寘鍚�', value: '8' },
+        { label: '鍙冲寘鍚�', value: '9' },
+        { label: '涓嶅寘鍚�', value: '10' },
+      ],
+      
+      dialogTitle: '',                                      // 寮圭獥鏍囬
+      title: "",                                            // 寮瑰嚭灞傛爣棰�
+      open: false,                                          // 鏄惁鏄剧ず寮瑰嚭灞�
+      loading: true,                                        // 閬僵灞�
+      
+      activeSeach: '',
+      openPrintList: false,                                 //鎵撳嵃缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      printListShow: false,                                 //鎵撳嵃缁勪欢鏄剧ず鏍囪
+      openBtnHide: false,                                   //鎸夐挳缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      btnHideShow: false,                                   //鎸夐挳缁勪欢鏄剧ず鏍囪
+      openRowHide: false,                                   //鍒楄缃粍浠舵樉绀烘爣璁�
+      rowHideShow: false,                                   //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
+      
+      // 鏌ヨ鍙傛暟
+      sWhere: '',                                                   // 鎷兼帴杩囨护鏉′欢
+      queryParams: {                                                // form鏁版嵁
+        HBarCode: '',
+        HInitTimeCycle: 29,
+        sTime: '',
+        eTime: '',
+        HOrgID: 0,
+        HSourceBillNo: '',
+        HMaterNumumber: '',
+        HMaterName: '',
+        
+        
+        ColName: '',
+        Comparator: '',
+        ColContent: '',
+        ColName1: '',
+        Comparator1: '',
+        ColContent1: '',
+        ColName2: '',
+        Comparator2: '',
+        ColContent2: '',
+      },
+      
+      page: 1,                                                      //page椤电储寮�
+      pageSize: 0,                                                  //page椤甸潰璁板綍鏁�
+      total: 0,                                                     //璁板綍鍚堣鏁�
+      tableShow: true,                                              // table鏄剧ず鏍囪
+      totalNameList: [],                                            // 闇�瑕佽缃悎璁¤鐨勫垪鏁扮粍
+      tableData: [],                                                // 鍒楄〃鏁版嵁銆傜敤浜巘able鐩戝惉浜嬩欢
+      ids: [],                                                      // 閫変腑琛岀殑hmainid鏁扮粍
+      single: true,                                                 // 褰撻�変腑鐨勮鏁颁笉涓�1鏃朵负true銆傜敤浜庣鐢ㄧ浉鍏虫搷浣�
+      multiple: true,                                               // 褰撻�変腑鐨勮鏁颁负0鏃朵负true銆傜敤浜庣鐢ㄧ浉鍏虫搷浣�
+      lastSelectedRowIndex: null,                                   // 鐢ㄤ簬璁板綍涓婃鐐瑰嚮鐨勮绱㈠紩
+      lastSelectedRow: null,                                        // 涓婁竴娆¢�変腑鐨勮
+      selectedRow: null,                                            // 褰撳墠閫変腑鐨勮
+      rowForm: {},                                                  // 褰撻�変腑鐨勫彧鏈変竴琛屾椂锛屾洿鏂版暟鎹负璇ラ�変腑鐨勮銆�
+      checkDataList: [],                                            // 琛ㄦ牸閫変腑鏁版嵁闆嗗悎
+
+      tyResList: [],                                                // 鍒楄〃鏁版嵁锛岀敤浜庡鍑�
+      titleData: [],                                                // 涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+      btResList: [],                                                // 鍒楄〃琛ㄥご鏁版嵁銆傜敤浜庡垪璁剧疆
+      dataList: [],                                                 // option璁板綍銆傜敤浜庡綋option鏁版嵁鏃犳晥鏃讹紝鐢ㄤ簬鍒楄缃�
+    };
+  },
+  created() {
+    this.fetchData()                //鍔犺浇缁勭粐涓嬫媺鍒楄〃鏁版嵁
+    this.riqiChange()
+    this.handleQuery();
+  },
+
+  methods: {
+    //#region 璁剧疆琛ㄥご
+    renderHeader(h, { column, $index }) {// 鏂板缓涓�涓� span
+      let span = document.createElement(span)// 璁剧疆琛ㄥご鍚嶇О
+      span.innerText = column.label
+      //涓存椂鎻掑叆 document
+      document.body.appendChild(span)// 閲嶇偣:鑾峰彇 span 鏈�灏忓搴︼紝璁剧疆褰撳墠鍒楋紝娉ㄦ剰杩欓噷鍔犱簡 20锛屽瓧娈佃緝澶氭椂column.minWidth=span.getBoundingClientRect().width + 50.//绉婚櫎 document 涓复鏃剁殑 span
+      document.body.removeChild(span)
+      return h(span, column.label)
+    },
+    //#endregion
+
+    //#region 鐐瑰嚮琛�
+    handleRowClick(row, column, event) {
+      this.lastSelectedRow = this.selectedRow; // 璁板綍涓婁竴娆¢�変腑鐨勮
+      this.selectedRow = row; // 璁板綍褰撳墠閫変腑鐨勮
+      this.lastSelectedRowIndex = this.tableData.indexOf(row);
+      this.$refs.tableData.toggleRowSelection(row);
+    },
+    //#endregion
+    
+    //#region 閫変腑琛岄珮浜牱寮�
+    rowStyle({ row, rowIndex }) {
+      if (this.ids.includes(row.hmainid)) {
+        return { "background": "#ecf5ff" }
+      }
+    },
+    //#endregion
+
+    //#region 鍙屽嚮琛�
+    handleDblclick(row, column, cell, event) {
+    },
+    //#endregion
+
+    //#region 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      // this.rowForm = {}
+      this.checkDataList = selection;
+      this.ids = selection.map(item => item.hmainid)
+      this.single = selection.length != 1
+      this.multiple = !selection.length
+      if (!this.single) {
+        this.rowForm = selection[0]
+      }
+    },
+    //#endregion
+    
+    //#region 鏍规嵁鏃ユ湡闂撮殧锛岃缃紑濮嬫棩鏈熴�佺粨鏉熸棩鏈�
+    riqiChange() {
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
+      const yyyyS = start.getFullYear();
+      const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑
+      const ddS = String(start.getDate()).padStart(2, '0');
+      const yyyyE = end.getFullYear();
+      const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑
+      const ddE = String(end.getDate()).padStart(2, '0');
+      this.queryParams.sTime = yyyyS + '-' + mmS + '-' + ddS
+      this.queryParams.eTime = yyyyE + '-' + mmE + '-' + ddE
+    },
+    //#endregion
+    
+    //#region 鍔犺浇缁勭粐涓嬫媺鍒楄〃鏁版嵁
+    fetchData() {
+      axios.get(this.baseURL + "/Web/GetOrganizations", {
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.organizationList = response.data.data;//缁勭粐鍒楄〃
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+      this.queryParams.HOrgID = sessionStorage["OrganizationID"];
+    },
+    //#endregion
+
+    //#region 閲嶇疆
+    resetQuery() {
+      this.sWhere = ''
+      this.queryParams = {
+        HBarCode: '',
+        HInitTimeCycle: 29,
+        HSourceBillNo: '',
+        HMaterNumber: '',
+        HMaterName: '',
+
+        ColName: '',
+        Comparator: '',
+        ColContent: '',
+        ColName1: '',
+        Comparator1: '',
+        ColContent1: '',
+        ColName2: '',
+        Comparator2: '',
+        ColContent2: '',
+        
+      }
+      this.riqiChange()
+      this.resetForm("queryForm")
+      this.handleQuery()
+    },
+    //#endregion
+
+    //#region 蹇�熻繃婊�
+    handleQuery() {
+      this.sWhere = ''
+      if (this.queryParams.ColName && this.queryParams.Comparator) {
+        var com = "";
+        switch (this.queryParams.Comparator) {
+          case "7":
+            com = "like''%" + this.queryParams.ColContent + "%''";
+            break;
+          case "8":
+            com = "like''%" + this.queryParams.ColContent + "''";
+            break;
+          case "9":
+            com = "like''" + this.queryParams.ColContent + "%''";
+            break;
+          case "10":
+            com = "not like''%" + this.queryParams.ColContent + "%''";
+            break;
+          default:
+            com = "" + this.queryParams.Comparator + "''" + this.queryParams.ColContent + "''";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName + " " + com;
+      }
+      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
+        var com1 = "";
+        switch (this.queryParams.Comparator1) {
+          case "7":
+            com1 = "like''%" + this.queryParams.ColContent1 + "%''";
+            break;
+          case "8":
+            com1 = "like''%" + this.queryParams.ColContent1 + "''";
+            break;
+          case "9":
+            com1 = "like''" + this.queryParams.ColContent1 + "%''";
+            break;
+          case "10":
+            com1 = "not like''%" + this.queryParams.ColContent1 + "%''";
+            break;
+          default:
+            com1 = "" + this.queryParams.Comparator1 + "''" + this.queryParams.ColContent1 + "''";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
+      }
+      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
+        var com2 = "";
+        switch (this.queryParams.Comparator2) {
+          case "7":
+            com2 = "like''%" + this.queryParams.ColContent2 + "%''";
+            break;
+          case "8":
+            com2 = "like''%" + this.queryParams.ColContent2 + "''";
+            break;
+          case "9":
+            com2 = "like''" + this.queryParams.ColContent2 + "%''";
+            break;
+          case "10":
+            com2 = "not like''%" + this.queryParams.ColContent2 + "%''";
+            break;
+          default:
+            com2 = "" + this.queryParams.Comparator + "''" + this.queryParams.ColContent + "''";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
+      }
+      if (this.queryParams.sTime) {
+        this.queryParams.sTime = moment(this.queryParams.sTime).format('YYYY-MM-DD')
+        this.queryParams.eTime = moment(this.queryParams.eTime).format('YYYY-MM-DD')
+        console.log(this.queryParams.sTime, this.queryParams.eTime)
+        this.sWhere += " and CONVERT(varchar(100),鏃ユ湡, 23) >= ''" + this.queryParams.sTime + "''" + " and CONVERT(varchar(100),鏃ユ湡, 23) <= ''" + this.queryParams.eTime + "''";
+      }
+      if (this.queryParams.HBarCode) {
+        this.sWhere += " and 鏉$爜缂栧彿 like ''%" + this.queryParams.HBarCode + "%''";
+      }
+      if (this.queryParams.HSupName) {
+        this.sWhere += " and 婧愬崟鍗曞彿 like ''%" + this.queryParams.HSourceBillNo + "%''";
+      }
+      if (this.queryParams.HMaterNumber) {
+        this.sWhere += " and 鐗╂枡浠g爜 like ''%" + this.queryParams.HMaterNumber + "%''";
+      }
+      if (this.queryParams.HMaterName) {
+        this.sWhere += " and 鐗╂枡鍚嶇О like ''%" + this.queryParams.HMaterName + "%''";
+      }
+      if (this.queryParams.HOrgID) {
+        this.sWhere += " and HStockOrgID = ''" + this.queryParams.HOrgID + "''";
+      }
+      this.getList()
+    },
+    //#endregion
+
+    //#region 鏌ヨ
+    getList() {
+      this.pageSize = 50
+      if (this.pageSize == 0) {
+        this.pageSize = 50
+      }
+      this.tableShow = false
+      this.loading = true
+      
+      // 鍒楄〃鏌ヨ
+      axios.get(this.baseURL + '/Gy_BarCodeBillList/page', {
+        params: {
+          "sWhere": this.sWhere,
+          "user": sessionStorage["HUserName"],
+          "page": this.page,
+          "size": this.pageSize
+        },
+      }).then(response => {
+        this.tyResList = response.data.data//鎬绘暟鎹�
+        let data1 = response.data
+        let option = []
+        if (data1.code == 1) {
+          this.btResList = data1.list             //鍒楄〃琛ㄥご鏁版嵁
+          this.total = data1.count;
+          var data = [];//鍒楀瓧娈垫暟鎹�
+          var col = [];
+          var totalArray = [];
+          //缁欑┖鐨勬暟缁勮祴鍊�
+          for (var key in data1.list) {//寰簭閬嶅巻鏁扮粍
+            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//浠庢瘡涓璞′腑鎻愬彇鏁版嵁
+          }
+          //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+          col.push({ type: 'checkbox', fixed: 'left', totalRowText: '鍚堣' });
+          for (var i = 0; i < data.length; i++) {//閬嶅巻data鏁扮粍閲嶇殑鏁版嵁
+            if (this.titleData.indexOf(data[i].name) > -1) {//妫�鏌ata銆恑銆�.name鏄惁鍦ㄦ暟缁勪腑  //璁$畻鍒�
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+            } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //璁$畻鍒�
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
+            }
+            else {
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+            }
+          }
+          option.cols = [col]
+          this.dataList = option
+          option.data = data1.data;
+          var result = data1.data;
+          option.data = result;
+          this.checkDataList = [];
+          let HModName = "Gy_BarCodeBillList"
+          this.DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, this.dataList);
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+
+    //#region 鍚堣琛屾暟鎹鐞�
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '鍚堣';
+          return;
+        }
+        const values = data.map(item => Number(item[column.property]));
+        if (this.totalNameList[index].totalRow) {
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0)
+
+          } else {
+            sums[index] = '';
+          }
+        }
+      }, 1000);
+      return sums;
+    },
+    //#endregion
+
+    //#endregion
+
+    //#region 鍒犻櫎
+    handleDrop() {
+    },
+    //#endregion
+
+    //#region 浣滃簾
+    handleDelete(num) {
+      if (this.checkDataList.length != 1) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹�");
+      } else {
+        // this.rowSel = [];
+        // for (var i = 0; i < this.checkDataList.length; i++) {
+        //   this.rowSel.push(this.checkDataList[i].HItemID.toString());
+        // }
+
+        var HInterID = this.checkDataList[0].HItemID;
+        // 鍒楄〃鏌ヨ
+        axios.get(this.baseURL + '/Gy_BarCodeBillList/DeleteGy_BarCodeBillList', {
+          params: {
+            "HInterID": HInterID,
+            "IsAudit": num,
+            "CurUserName": sessionStorage["HUserName"],
+          },
+        }).then(response => {
+          let data1 = response.data
+          if (data1.count == 1) {
+            this.handleQuery();
+          }else{
+            this.$modal.msgError(data1.Message);
+          }
+        }).catch(error => {
+          this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+        });
+      }
+    },
+    //#endregion
+
+    //#region 鍒楄缃�
+    handleRowHide() {
+      this.rowHideShow = true
+      this.openRowHide = true
+    },
+    rowSetClose(val) {
+      this.rowHideShow = false
+      this.tableShow = true
+      this.openRowHide = val
+      this.handleQuery()
+    },
+    DisPlay_HideColumn(HModName, user, option, dataOption) {
+      this.totalNameList = []
+      axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
+        params: {
+          "HModName": HModName,
+          "user": user,
+        },
+      }).then(res => {
+        let data1 = res.data
+        if (data1.data.length != 0) {
+          var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+          var newCols = [[]];//瀵瑰簲鏁版嵁搴撳垪椤哄簭col
+          newCols[0].push(option.cols[0][0]);//鏀惧叆绗竴涓猚heckbox
+          dataCol = data1.data[0].HGridString.split(',');
+          //鍒楄缃垪鏁颁笌椤甸潰鍒楁暟鏄惁涓�鑷�
+          if (dataCol.length == option.cols[0].length - 1) {
+            //閬嶅巻瀵绘壘鍒楄缃搴斿垪鎸夐『搴忔彃鍏�
+            for (var j = 0; j < option.cols[0].length - 1; j++) {
+              for (var i = 0; i < option.cols[0].length - 1; i++) {
+                var dataCols = dataCol[j].split('|');
+                //閫夋嫨涓巇atacols鐩稿簲鍒楄繘琛屼慨鏀�
+                if (option.cols[0][i + 1]["field"] == dataCols[5]) {
+                  //闅愯棌鍒�
+                  if (dataCols[1] == 1) {
+                    option.cols[0][i + 1]["hide"] = true;
+                  }
+                  //璁剧疆鍒楀
+                  if (dataCols[3] > 0) {
+                    option.cols[0][i + 1]["width"] = dataCols[3];
+                  }
+                  //璁剧疆鍐呭瀛椾綋澶у皬
+                  if (data1.data[0].HFontSize != 0) {
+                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+                  } else {
+                    option.cols[0][i + 1]["style"] = "font-size:100%";
+                  }
+                  //鏄剧ず鍒�
+                  if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
+                    option.cols[0][i + 1]["hide"] = false;
+                  }
+                  //缁熻鍒�
+                  if (dataCols[6] == 1) {
+                    option.cols[0][i + 1]["totalRow"] = true;
+                  } else {
+                    option.cols[0][i + 1]["totalRow"] = false;
+                  }
+                  //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+                  switch (dataCols[2]) {
+                    case "L":
+                      option.cols[0][i + 1]["align"] = "left";
+                      break;
+                    case "M":
+                      option.cols[0][i + 1]["align"] = "center";
+                      break;
+                    case "R":
+                      option.cols[0][i + 1]["align"] = "right";
+                      break;
+                  }
+                  //璁剧疆琛ㄦ牸title灞炴�ф樉绀哄埆鍚�
+                  if (dataCols[4] != null && dataCols[4] != "") {
+                    option.cols[0][i + 1]["title"] = dataCols[4];
+                  }
+                  newCols[0].push(option.cols[0][i + 1]);
+                  break;
+                }
+              }
+            }
+            //閬嶅巻寰幆鍚庡垽鏂搴斿垪鏁版槸鍚︿竴鑷�
+            if (dataCol.length == newCols[0].length - 1) {
+              option.cols = newCols;
+              //鍙栨秷鍐荤粨鍒�
+              for (var i = 1; i < option.cols[0].length - 1; i++) {
+                if (option.cols[0][i + 1]["fixed"] != null) {
+                  option.cols[0][i + 1]["fixed"] = null;
+                }
+                else {
+                  break;
+                }
+              }
+              //鍐荤粨鍒�
+              if (data1.data[0].HFixCols != 0) {
+                for (var i = 0; i < data1.data[0].HFixCols; i++) {
+                  if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
+                    data1.data[0].HFixCols += 1;
+                  }
+
+                  option.cols[0][i + 1]["fixed"] = "left";
+                }
+              }
+              //璁剧疆鍒楁帓搴�
+              for (var i = 1; i < option.cols[0].length; i++) {
+                if (data1.data[0].HSortFlag == "鏄�") {
+                  option.cols[0][i]["sort"] = true;
+                }
+                else {
+                  option.cols[0][i]["sort"] = false;
+                }
+              }
+            }
+          }
+          this.btList = option.cols[0]
+          this.btList.map(item => {
+            if (!item.hide) {
+              this.totalNameList.push(item)
+            }
+          })
+          if (data1.data[0].HPageSize == 0) {
+            this.pageSize = 50
+          } else {
+            this.pageSize = data1.data[0].HPageSize
+          }
+          this.tableData = option.data
+          this.tableShow = true
+          this.loading = false
+        } else {
+          this.btList = dataOption.cols[0]
+          this.btList.map(item => {
+            if (!item.hide) {
+              this.totalNameList.push(item)
+            }
+          })
+          this.tableData = dataOption.data
+          this.tableShow = true
+          this.loading = false
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鎸夐挳璁剧疆
+    handleBtnHide() {
+      this.btnHideShow = true
+      this.openBtnHide = true
+    },
+    //#endregion
+
+    //#region 瀵煎嚭
+    handleExport() {
+      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 灏嗘暟鎹浆鎹负宸ヤ綔琛�
+      const wb = this.$XLSX.utils.book_new(); // 鍒涘缓涓�涓柊鐨勫伐浣滅翱
+      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 灏嗗伐浣滆〃娣诲姞鍒板伐浣滅翱涓紝骞跺懡鍚嶄负"Sheet1"
+      this.$XLSX.writeFile(wb, `Gy_BarCodeBillList_${new Date().getTime()}.xlsx`); // 瀵煎嚭鏂囦欢      
+    },
+    //#endregion
+
+    //#region 鎵撳嵃
+    get_PrintReport() {
+      if (this.checkDataList.length == 0) {
+       this.$modal.msgError("璇烽�夋嫨鏁版嵁");
+      } else {
+        this.rowSel = [];
+        for (var i = 0; i < this.checkDataList.length; i++) {
+          this.rowSel.push(this.checkDataList[i].HItemID.toString());
+        }
+        this.printListShow = true;
+        this.openPrintList = true;
+      }
+    },
+    //#endregion
+
+    //#region 閫�鍑�
+    close() {
+      // this.reset()
+      this.tableShow = true
+      this.openEdit = false
+      this.editShow = false
+      this.handleQuery()
+    },
+    //#endregion
+  }
+};
+</script>
+<style>
+.xsckdBox .el-date-editor.el-input {
+  width: 100%;
+}
+</style>

--
Gitblit v1.9.1