From 872362acd0e306bb2150d72cce1b556d272e6ba5 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期三, 25 六月 2025 10:01:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/tms/modules/toolLedger/ToolLedgerListLeft.vue   |    3 
 src/views/tms/modules/baseTools/BaseToolsListRight.vue    |   10 +-
 src/views/tms/modules/inbound/InboundListLeft.vue         |    3 
 src/views/tms/modules/inbound/QrCodePrint.vue             |  165 +++++++++++++++++++++++++++++++++++++++++
 src/views/tms/modules/baseTools/BaseToolsListLeft.vue     |   11 +-
 src/views/tms/modules/inbound/InboundListRight.vue        |   10 +-
 src/views/tms/modules/toolLedger/ToolLedgerListRight.vue  |   14 ++-
 src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue |    1 
 8 files changed, 193 insertions(+), 24 deletions(-)

diff --git a/src/views/tms/modules/baseTools/BaseToolsListLeft.vue b/src/views/tms/modules/baseTools/BaseToolsListLeft.vue
index f1ed47a..03932f8 100644
--- a/src/views/tms/modules/baseTools/BaseToolsListLeft.vue
+++ b/src/views/tms/modules/baseTools/BaseToolsListLeft.vue
@@ -3,7 +3,6 @@
     :loading="cardLoading"
     :bordered="false"
     title="宸ュ叿淇℃伅"
-    style="height: 100%;"
   >
     <a-spin :spinning="loading">
       <a-alert
@@ -55,13 +54,11 @@
       />
 
       <!-- showLine -->
-      <a-tree
+      <div style="flex: 1;overflow:auto;margin-top: 10px;max-height: 400px; min-height: 400px">
+          <a-tree
         :checkStrictly="checkStrictly"
-      
         :selectedKeys="selectedKeys"
-        :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
         :treeData="treeDataSource"
-        
         :defaultExpandAll="true"
         @select="onSelect"
         @expand="onExpand"
@@ -90,6 +87,8 @@
       
         </template>
       </a-tree>
+      </div>
+      
     </a-spin>
   </a-card>
 </template>
@@ -228,7 +227,7 @@
       this.expandedKeys = this.allTreeKeys;
     },
     closeAll() {
-      this.expandedKeys = this.allSiteIds;
+      this.expandedKeys = [];
     },
     refreshTree() {
       this.queryTreeData();
diff --git a/src/views/tms/modules/baseTools/BaseToolsListRight.vue b/src/views/tms/modules/baseTools/BaseToolsListRight.vue
index 70774c8..78201e1 100644
--- a/src/views/tms/modules/baseTools/BaseToolsListRight.vue
+++ b/src/views/tms/modules/baseTools/BaseToolsListRight.vue
@@ -1,5 +1,5 @@
 <template>
-  <a-card :bordered="false">
+  <a-card :bordered="false" style="flex: 1;overflow:auto;max-height: 600px; min-height: 600px">
     <!-- 鏌ヨ鍖哄煙 -->
     <div class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
@@ -206,8 +206,8 @@
         /* 鍒嗛〉鍙傛暟 */
       ipagination:{
         current: 1,
-        pageSize: 10,
-        pageSizeOptions: ['10', '20', '50'],
+        pageSize: 5,
+        pageSizeOptions: ['5', '10', '30'],
         showTotal: (total, range) => {
           return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
         },
@@ -549,7 +549,7 @@
               this.selectedRowKeys[0] = res.result.records[0].id
               this.onSelectChange(this.selectedRowKeys)
             } else {
-              this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+              //this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
               this.ipagination.total = 0
             }
           })
@@ -557,7 +557,7 @@
             this.loading = false;
           });
         } else {
-          this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+          //this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
         }
       },
       onClearSelected() {
diff --git a/src/views/tms/modules/inbound/InboundListLeft.vue b/src/views/tms/modules/inbound/InboundListLeft.vue
index 7621396..f498dc5 100644
--- a/src/views/tms/modules/inbound/InboundListLeft.vue
+++ b/src/views/tms/modules/inbound/InboundListLeft.vue
@@ -3,7 +3,6 @@
     :loading="cardLoading"
     :bordered="false"
     title="宸ュ叿鍒嗙被"
-    style="height: 100%;"
   >
     <a-spin :spinning="loading">
       <a-alert
@@ -55,6 +54,7 @@
       />
 
       <!-- showLine -->
+      <div style="flex: 1;overflow:auto;margin-top: 10px;max-height: 400px; min-height: 400px">
       <a-tree
         :checkStrictly="checkStrictly"
       
@@ -90,6 +90,7 @@
       
         </template>
       </a-tree>
+      </div>
     </a-spin>
   </a-card>
 </template>
diff --git a/src/views/tms/modules/inbound/InboundListRight.vue b/src/views/tms/modules/inbound/InboundListRight.vue
index 2a56ce4..9d15b9c 100644
--- a/src/views/tms/modules/inbound/InboundListRight.vue
+++ b/src/views/tms/modules/inbound/InboundListRight.vue
@@ -1,5 +1,5 @@
 <template>
-  <a-card :bordered="false">
+  <a-card :bordered="false" style="flex: 1;overflow:auto;max-height: 600px; min-height: 600px">
     <!-- 鏌ヨ鍖哄煙 -->
     <div class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
@@ -188,8 +188,8 @@
         /* 鍒嗛〉鍙傛暟 */
       ipagination:{
         current: 1,
-        pageSize: 10,
-        pageSizeOptions: ['10', '20', '50'],
+        pageSize: 5,
+        pageSizeOptions: ['5', '10', '30'],
         showTotal: (total, range) => {
           return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
         },
@@ -493,7 +493,7 @@
               this.selectedRowKeys[0] = res.result.records[0].id
               this.onSelectChange(this.selectedRowKeys)
             } else {
-              this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+              //this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
               this.ipagination.total = 0
             }
           })
@@ -501,7 +501,7 @@
             this.loading = false;
           });
         } else {
-          this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+          //this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
         }
       },
       onClearSelected() {
diff --git a/src/views/tms/modules/inbound/QrCodePrint.vue b/src/views/tms/modules/inbound/QrCodePrint.vue
new file mode 100644
index 0000000..3234d11
--- /dev/null
+++ b/src/views/tms/modules/inbound/QrCodePrint.vue
@@ -0,0 +1,165 @@
+<template>
+  <a-card>
+    <!-- 鎿嶄綔鎸夐挳 -->
+    <a-button type="primary" @click="handlePrint">鐢熸垚骞舵墦鍗颁簩缁寸爜</a-button>
+    <a-button @click="handleBatchGenerate">鎵归噺鐢熸垚浜岀淮鐮�</a-button>
+
+    <!-- 闅愯棌鐨勬墦鍗板尯鍩� -->
+    <div id="printContainer" v-show="false">
+      <img :src="qrData.image" alt="浜岀淮鐮�" style="width: 5cm; height: 5cm;">
+      <div style="margin-top: 10px; font-size: 16px;" class="qr-content">{{ qrData.content }}</div>
+    </div>
+
+    <div id="printArea" style="display: block;">
+      <div v-for="(item, index) in qrList" :key="index" class="qrcode-item">
+        <img :src="item.base64" alt="QR Code">
+        <p>{{ item.content }}</p>
+      </div>
+    </div>
+  </a-card>
+</template>
+
+<script>
+import { getAction } from '@/api/manage'
+import printJS from 'print-js';
+
+export default {
+  data() {
+    return {
+      qrData: {
+        image: '',
+        content: ''
+      },
+      qrList: []
+    }
+  },
+  methods: {
+    // 鐢熸垚骞舵墦鍗颁簩缁寸爜
+    handlePrint() {
+      
+      getAction('/tms/qyCode/generate').then(res => {
+        if (res.success) {
+          this.qrData = res.result;
+          // 纭繚DOM鏇存柊鍚庢墽琛屾墦鍗�
+          this.$nextTick(() => {
+            this.printQrCode();
+          });
+        }
+      });
+    },
+    
+    // 鎵ц鎵撳嵃鎿嶄綔
+    printQrCode() {
+      // 1. 鍒涘缓鎵撳嵃鍐呭
+      const printContent = document.getElementById('printContainer').innerHTML;
+      
+      // 2. 鍒涘缓鎵撳嵃绐楀彛
+      const printWindow = window.open('', '_blank');
+      
+      // 3. 鍐欏叆鎵撳嵃鍐呭
+      printWindow.document.write(`
+        <!DOCTYPE html>
+        <html>
+          <head>
+            <title>浜岀淮鐮佹墦鍗�</title>
+            <style>
+              body {
+                margin: 0;
+                padding: 0;
+                font-family: Arial, sans-serif;
+              }
+              @media print {
+                @page {
+                  size: auto;
+                  margin: 0;
+                }
+                body {
+                  margin: 0;
+                }
+              }
+              .qr-label {
+                width: 60mm;
+                height: 40mm;
+                padding: 2mm;
+                box-sizing: border-box;
+                border: 1px dotted #ccc; /* 鎵撳嵃鏃朵笉浼氭樉绀� */
+                text-align: center;
+              }
+              .qr-image {
+                width: 30mm;
+                height: 30mm;
+                display: block;
+                margin: 0 auto;
+              }
+              .qr-content {
+                font-size: 10pt;
+                margin-top: 1mm;
+                word-break: break-all;
+              }
+            </style>
+          </head>
+          <body>
+            ${printContent}
+            <script>
+              // 鑷姩瑙﹀彂鎵撳嵃骞跺叧闂獥鍙�
+              window.onload = function() {
+                setTimeout(function() {
+                  window.print();
+                  window.onafterprint = function() {
+                    window.close();
+                  };
+                  // 鍏煎Safari
+                  if (window.matchMedia) {
+                    const mediaQueryList = window.matchMedia('print');
+                    mediaQueryList.addListener(function(mql) {
+                      if (!mql.matches) {
+                        setTimeout(function() {
+                          window.close();
+                        }, 300);
+                      }
+                    });
+                  }
+                }, 100);
+              };
+            <\/script>
+          </body>
+        </html>
+      `);
+      
+      printWindow.document.close();
+    },
+
+    // 鎵归噺鐢熸垚浜岀淮鐮�
+    async handleBatchGenerate() {
+      getAction('/tms/qyCode/batchGenerate').then(res => {
+      if (res.success) {
+        this.qrList = res.result.map((content, i) => ({
+          content:res.result[i].content,
+          base64: res.result[i].image
+        }));
+        this.handleBacthPrint();
+      }
+      })
+    },
+    
+    // 鎵ц鎵撳嵃
+    handleBacthPrint() {
+      this.$nextTick(() => {
+        printJS({
+          printable: 'printArea',
+          type: 'html',
+          style: `
+            .qrcode-item { 
+              page-break-inside: avoid;
+              margin: 10px; 
+              text-align: center;
+            }
+            img { width: 100px; height: 100px; }
+          `,
+          scanStyles: false
+        });
+      });
+    }
+  }
+}
+</script>
\ No newline at end of file
diff --git a/src/views/tms/modules/toolLedger/ToolLedgerListLeft.vue b/src/views/tms/modules/toolLedger/ToolLedgerListLeft.vue
index 6e2d070..4c6c91e 100644
--- a/src/views/tms/modules/toolLedger/ToolLedgerListLeft.vue
+++ b/src/views/tms/modules/toolLedger/ToolLedgerListLeft.vue
@@ -3,7 +3,6 @@
     :loading="cardLoading"
     :bordered="false"
     title="宸ュ叿淇℃伅"
-    style="height: 100%;"
   >
     <a-spin :spinning="loading">
       <a-alert
@@ -55,6 +54,7 @@
       />
 
       <!-- showLine -->
+       <div style="flex: 1;overflow:auto;margin-top: 10px;max-height: 400px; min-height: 400px">
       <a-tree
         :checkStrictly="checkStrictly"
       
@@ -90,6 +90,7 @@
       
         </template>
       </a-tree>
+       </div>
     </a-spin>
   </a-card>
 </template>
diff --git a/src/views/tms/modules/toolLedger/ToolLedgerListRight.vue b/src/views/tms/modules/toolLedger/ToolLedgerListRight.vue
index 7c0a839..6a257e2 100644
--- a/src/views/tms/modules/toolLedger/ToolLedgerListRight.vue
+++ b/src/views/tms/modules/toolLedger/ToolLedgerListRight.vue
@@ -1,5 +1,5 @@
 <template>
-  <a-card :bordered="false">
+  <a-card :bordered="false" style="flex: 1;overflow:auto;max-height: 600px; min-height: 600px">
     <!-- 鏌ヨ鍖哄煙 -->
     <div class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
@@ -220,8 +220,8 @@
         /* 鍒嗛〉鍙傛暟 */
       ipagination:{
         current: 1,
-        pageSize: 10,
-        pageSizeOptions: ['10', '20', '50'],
+        pageSize: 5,
+        pageSizeOptions: ['5', '10', '30'],
         showTotal: (total, range) => {
           return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
         },
@@ -410,6 +410,7 @@
       onSelectChange(selectedRowKeys,selectionRows) {
         this.selectedRowKeys = selectedRowKeys;
         this.selectionRows = selectionRows
+        console.log("22222",selectedRowKeys)
         //閫氳繃id鏌ヨ绠$悊鍙傛暟鍜屽弬鏁版暟鎹�
         getAction(this.url.queryParaByToolCode, { toolCode: this.selectedRowKeys[0],paraTypeFlag:this.paraTypeFlag}).then((res) => {
           if (res.success) {
@@ -460,9 +461,10 @@
               this.ipagination.total = res.result.total
               //榛樿閫変腑绗竴鏉℃暟鎹�
               this.selectedRowKeys[0] = res.result.records[0].id
-              this.onSelectChange(this.selectedRowKeys)
+              this.onSelectChange(this.selectedRowKeys,this.selectionRows)
+              console.log("1111111",this.selectedRowKeys,this.selectionRows)
             } else {
-              this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+              //this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
               this.ipagination.total = 0
             }
           })
@@ -470,7 +472,7 @@
             this.loading = false;
           });
         } else {
-          this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
+         // this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ");
         }
       },
       onClearSelected() {
diff --git a/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue b/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue
index d442612..9fdc32e 100644
--- a/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue
+++ b/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue
@@ -164,6 +164,7 @@
       },
       submitForm () {
         const that = this;
+        console.log("111",this.model.id)
         // 瑙﹀彂琛ㄥ崟楠岃瘉
         this.$refs.form.validate(valid => {
           if (valid) {

--
Gitblit v1.9.3