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