From 0b7121d8a85a2bb70eb03d5c1b4ed1928644effa Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期三, 10 九月 2025 10:41:20 +0800
Subject: [PATCH] Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

---
 pages/shouliaotongzhi/table.vue     |  857 ++++++++++++++++++++++++++++++++++++++---------------
 manifest.json                       |    4 
 pages/huanyangdan/form.vue          |   73 ++-
 pages/shouliaotongzhi/table_son.vue |    3 
 4 files changed, 660 insertions(+), 277 deletions(-)

diff --git a/manifest.json b/manifest.json
index d9baf68..351d099 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
     "name" : "鏅轰簯LMES",
     "appid" : "__UNI__B002F49",
     "description" : "",
-    "versionName" : "1.0.71",
-    "versionCode" : 171,
+    "versionName" : "1.0.72",
+    "versionCode" : 172,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
diff --git a/pages/huanyangdan/form.vue b/pages/huanyangdan/form.vue
index 52af18a..eb21f42 100644
--- a/pages/huanyangdan/form.vue
+++ b/pages/huanyangdan/form.vue
@@ -565,41 +565,45 @@
                     resFunction: (res) => {
                         let {
                             code,
-                            msg,
+                            Message,
                             count,
                             data
                         } = res.data
-                        if (code == 1) {
-                            this.HBarCode = ''
-                            let data1 = data.h_v_Sc_ProcessExchangeBillList
+                        if (count == 1) {
                             this.hform = Object.assign(this.hform, {
-                                "HMaterID": data1[0].HMaterID, //浜у搧ID
-                                "HMaterCode": data1[0].浜у搧浠g爜, //浜у搧浠g爜
-                                "HMaterName": data1[0].浜у搧, //浜у搧鍚嶇О
-                                "HMaterSpec": data1[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
-                                "HUnitID": data1[0].HUnitID, //璁¢噺鍗曚綅id
-                                "HUnitName": data1[0].鍗曚綅, //璁¢噺鍗曚綅
-                                "HMainSourceBillNo": data1[0].鍗曟嵁鍙�, //婧愬崟鍗曞彿
-                                "HMainSourceInterID": data1[0].hmainid, //婧愬崟涓诲唴鐮�
-                                "HMainSourceBillType": 3772, //婧愬崟绫诲瀷
-                                "HProcExchBillNo": data1[0].鍗曟嵁鍙�, //娴佽浆鍗″彿
-                                "HProcExchInterID": data1[0].hmainid, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
-                                "HBatchNo": data1[0].鎵瑰彿, //娴佽浆鍗℃壒娆�
-                                "HICMOInterID": data1[0].hicmointerid, //鐢熶骇璁㈠崟ID
-                                "HICMOEntryID": data1[0].HICMOEntryID, //鐢熶骇璁㈠崟瀛怚D
-                                "HICMOBillNo": data1[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
-                                "HDeptID": data1[0].HWorkShopID, //杞﹂棿ID
-                                "HDeptName": data1[0].鐢熶骇杞﹂棿, //杞﹂棿
+                                "HMaterID": data[0].HMaterID, //浜у搧ID
+                                "HMaterNumber": data[0].浜у搧缂栫爜, //浜у搧浠g爜
+                                "HMaterName": data[0].浜у搧鍚嶇О, //浜у搧鍚嶇О
+                                "HModel": data[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
+                                "HUnitID": data[0].HUnitID, //璁¢噺鍗曚綅id
+                                "HUnitName": data[0].璁¢噺鍗曚綅, //璁¢噺鍗曚綅
+                                "HProcExchBillNo": data[0].宸ュ簭娴佽浆鍗″彿, //娴佽浆鍗″彿
+                                "HProcExchInterID": data[0].宸ュ簭娴佽浆鍗′富鍐呯爜, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
+                                "HBatchNo": data[0].宸ュ簭娴佽浆鍗℃壒娆″彿, //娴佽浆鍗℃壒娆�
+                                "HICMOInterID": data[0].浠诲姟鍗曞唴鐮�, //鐢熶骇璁㈠崟ID
+                                "HICMOEntryID": data[0].浠诲姟鍗曞瓙鍐呯爜, //鐢熶骇璁㈠崟瀛怚D
+                                "HICMOBillNo": data[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
+                                "HDeptID": data[0].HDeptID, //杞﹂棿ID
+                                "HDeptName": data[0].閮ㄩ棬, //杞﹂棿
+                                "HProcID": data[0].HProcID, //褰撳墠宸ュ簭ID
+                                "HProcName": data[0].宸ュ簭, //褰撳墠宸ュ簭
+                                "HProcExchEntryID": data[0].宸ュ簭娴佽浆鍗″瓙鍐呯爜, //娴佽浆鍗″瓙鍐呯爜(婧愬崟琛屽彿)
+                                "HProcExchQty": data[0].宸ュ簭娴佽浆鍗℃暟閲�, //娴佽浆鍗℃暟閲�
+                                "HICMOQty": data[0].浠诲姟鍗曟暟閲�,
+                                "WorkShiftName": data[0].鐢熶骇鐝,
+                                "HWorkShiftID": data[0].HShiftsID,
+                                "HBarCode": "",
                             })
 
+                            console.log('this.hform: ', this.hform);
                             uni.showToast({
                                 icon: 'none',
-                                title: msg
+                                title: '鑾峰彇鎴愬姛!'
                             })
                         } else {
                             uni.showToast({
                                 icon: 'none',
-                                title: msg
+                                title: Message
                             })
                         }
                     }
@@ -657,11 +661,28 @@
 
                 console.log('this.hform: ', this.hform);
                 let sMainStr = JSON.stringify(this.hform)
-                console.log('sMainStr: ', sMainStr);
-                let sMainSub = sMainStr + ';' + this.refSav + ';' + getUserInfo()['Czymc'];
+                let numData = [{
+                    "HMaterID": this.hform.HMaterID,
+                    "HUnitID": this.hform.HUnitID,
+                    "HProcExchBillNo": this.hform.HProcExchBillNo,
+                    "HProcExchInterID": this.hform.HProcExchInterID,
+                    "HProcExchEntryID": this.hform.HProcExchEntryID,
+                    "HICMOInterID": this.hform.HICMOInterID,
+                    "HICMOEntryID": this.hform.HICMOEntryID,
+                    "HICMOBillNo": this.hform.HICMOBillNo,
+                    "HDeptID": this.hform.HDeptID,
+                    "HProcID": this.hform.HProcID,
+                    "HProcExchQty": this.hform.HProcExchQty,
+                    "HWorkShiftID": this.hform.HWorkShiftID,
+                    "HBatchNo": this.hform.HBatchNo,
+                    "HICMOQty": this.hform.HICMOQty,
+                    "HQty": this.hform.HQty
+                }]
+                let sSubStr = JSON.stringify(numData)
+                let sMainSub = sMainStr + ';' + sSubStr +';' + this.refSav + ';' + getUserInfo()['Czymc'];
                 CommonUtils.doRequest2({
                     method: 'POST',
-                    url: '/QC_TakeSampleCheckBill/SaveQC_TakeSampleCheckBillMain',
+                    url: '/QC_TakeSampleCheckBill/SaveQC_BackSampleCheckBillMain',
                     data: {
                         msg: sMainSub
                     },
diff --git a/pages/shouliaotongzhi/table.vue b/pages/shouliaotongzhi/table.vue
index 51701d3..e2b9e7e 100644
--- a/pages/shouliaotongzhi/table.vue
+++ b/pages/shouliaotongzhi/table.vue
@@ -1,257 +1,618 @@
 <template>
-	<view class="content">
-		<view class="form">
-			<view class="form-item">
-				<view class="title"><text>*</text>鏉$爜:</view>
-				<view class="right" style="width: 380rpx;">
-					<input :focus="HBarCodeFocus" v-model="HBarCode" placeholder="璇锋壂鎻�(鎴栬緭鍏�)鏉$爜" @confirm="getCode(HBarCode)"/>
-				</view>
-				<uni-icons type="scan" style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20" @click="toScanCode"></uni-icons>
-			</view>
-			<view class="form-item">
-				<view class="title">鍗曟嵁鍙�:</view>
-				<view class="righton">
-					<input v-model="baseInfo.HBillNo" disabled/>
-				</view>
-			</view>
-			<view class="form-item">
-				<view class="title">渚涘簲鍟�:</view>
-				<view class="righton">
-					<input v-model="baseInfo.HSupName" disabled/>
-				</view>
-			</view>
-			<view class="form-item">
-				<view class="title">閮ㄩ棬:</view>
-				<view class="righton">
-					<input v-model="baseInfo.HDeptName" disabled/>
-				</view>
-			</view>
-		</view>
-		
-		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
-		
-		<view class="list" v-for="(item,index) in listData" :key="index" @tap="toSon(item)">
-			<uni-card :title="item.鐗╂枡浠g爜" :extra="'No. ' + Number(index+1)" style="margin: 10px;">
-				<view class="card-detail">
-					<view class="detail">
-						<text>鐗╂枡鍚嶇О锛�</text>{{item.鐗╂枡鍚嶇О}}
-					</view>
-					<view class="detail">
-						<text>瑙勬牸鍨嬪彿锛�</text>{{item.瑙勬牸鍨嬪彿}}
-					</view>
-					<view class="detail">
-						<text>璁㈠崟鏁伴噺锛�</text>{{item.鏁伴噺}}
-					</view>
-				</view>
+    <view class="content">
+        <view class="form">
+            <view class="form-item">
+                <view class="title"><text>*</text>鏉$爜:</view>
+                <view class="right" style="width: 380rpx">
+                    <input :focus="HBarCodeFocus" v-model="HBarCode" placeholder="璇锋壂鎻�(鎴栬緭鍏�)鏉$爜"
+                        @confirm="getCode(HBarCode)" />
+                </view>
+                <uni-icons type="scan" style="
+            margin-left: 10rpx;
+            background-color: #3a78ff;
+            padding: 6rpx;
+            color: #fff;
+            border-radius: 100%;
+          " size="20" @click="toScanCode"></uni-icons>
+            </view>
+            <view class="form-item">
+                <view class="title">鍗曟嵁鍙�:</view>
+                <view class="righton">
+                    <input v-model="baseInfo.HBillNo" disabled />
+                </view>
+            </view>
+            <view class="form-item">
+                <view class="title">渚涘簲鍟�:</view>
+                <view class="righton">
+                    <input v-model="baseInfo.HSupName" disabled />
+                </view>
+            </view>
+            <view class="form-item">
+                <view class="title">閮ㄩ棬:</view>
+                <view class="righton">
+                    <input v-model="baseInfo.HDeptName" disabled />
+                </view>
+            </view>
+        </view>
+        <view class="button-groups">
+            <view :class="MultiCodePrint ? 'show' : 'hidden'">
+                <button @click="execMultiPrint" type="default" class="btn-c">鎵撳嵃</button>
+            </view>
+            <view>
+                <button @click="changePrintMode" type="default" class="btn-c">
+                    {{ MultiCodePrint ? "鍗曟潯鐮佹墦鍗�" : "澶氭潯鐮佹墦鍗�" }}
+                </button>
+            </view>
+        </view>
+        <view style="width: 100%; height: 16rpx; background-color: #e5e5e5"></view>
 
-			</uni-card>
-		</view>
-		
-		<view class="over" v-if="listData.length == 0">鏆傛棤鏁版嵁</view>
-		<view class="over" v-if="listData.length != 0">宸插埌搴�</view>
-	</view>
+        <view class="list" v-for="(item, index) in listData" :key="index" @tap="toSon(item)">
+            <uni-card :class="item['isActive'] ? 'active' : ''" :title="item.鐗╂枡浠g爜" :extra="'No. ' + Number(index + 1)"
+                style="margin: 10px">
+                <view class="card-detail">
+                    <view class="detail"> <text>鐗╂枡鍚嶇О锛�</text>{{ item.鐗╂枡鍚嶇О }} </view>
+                    <view class="detail"> <text>瑙勬牸鍨嬪彿锛�</text>{{ item.瑙勬牸鍨嬪彿 }} </view>
+                    <view class="detail"> <text>璁㈠崟鏁伴噺锛�</text>{{ item.鏁伴噺 }} </view>
+                    <view class="detail"> <text>娆惧彿锛�</text>{{ item.娆惧彿 }} </view>
+                </view>
+            </uni-card>
+        </view>
+
+        <view class="over" v-if="listData.length == 0">鏆傛棤鏁版嵁</view>
+        <view class="over" v-if="listData.length != 0">宸插埌搴�</view>
+        <labelPrinterComponentVue ref="labelPrinter" :printInfo="printInfo" :printMode="'cpcl'">
+        </labelPrinterComponentVue>
+    </view>
 </template>
 
 <script>
-	import { getUserInfo } from "@/utils/auth.js";
-	export default {
-	    data() {
-	        return {
-				HBarCodeFocus: false,
-				
-				userInfo:getUserInfo(),
-				serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
-				HBarCode:'',
-				baseInfo:{
-					HBillNo:'',
-					HSupName:'',
-					HDeptName:'',
-					HInterID:'',
-				},
-				sWhere:'',
-				listData:[],
-	        }
-	    },
-		onLoad() {
-			this.HBarCodeFocus = true
-		},
-	    methods: {
-			async refreshBarCodeState() {
-				this.HBarCodeFocus = false
-				await this.$nextTick(() => {
-					this.HBarCodeFocus = true
-					this.HBarCode = ""
-				})
-			},
- 			playSound(e){
-				const innerAudioContext = uni.createInnerAudioContext();
-				if(e == 1){
-					innerAudioContext.src = '/static/success.wav';
-				}else{
-					innerAudioContext.src = '/static/jingbao.wav';
-				}
-				innerAudioContext.play(); // 鎾斁闊抽
-			},
-			//鎵爜
-			toScanCode(){
-				var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
-				mpaasScanModule.mpaasScan({
-					'hideAlbum': true,
-					'timeoutInterval':'10', //瓒呮椂鏃堕棿
-					'timeoutText':'鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋            
-				},(ret) => {
-					console.log(ret.resp_result)
-					this.HBarCode = ret.resp_result
-					this.getCode(this.HBarCode)
-				})
-			},
-			//鎵潯鐮佸鐞�
-			getCode(HBarCode){
-				if(!HBarCode){
-					this.playSound(0)
-					this.refreshBarCodeState()
-					uni.showToast({
-						title:'鏉$爜涓嶈兘涓虹┖',
-						icon:'none'
-					})
-				}else{
-					uni.request({
-					    url: this.serverUrl + '/Cg_POInStockBill/GetCg_POInStockBill_PDA', 
-						data: { HBillno: HBarCode },
-					    success: (res) => {
-							console.log('鎵爜杩斿洖',res.data.data);
-							this.HBarCode = ''
-							if(res.data.count == 1){
-								this.playSound(1)
-								var data = res.data.data
-								this.baseInfo = {
-									HBillNo:data[0].鍗曟嵁鍙�,
-									HSupName:data[0].渚涘簲鍟�,
-									HDeptName:data[0].閮ㄩ棬,
-									HInterID:data[0].hmainid,
-								}
-								this.listData = data
-							}else{
-								this.playSound(0)
-								this.refreshBarCodeState()
-								uni.showToast({
-									title:res.data.Message,
-									icon:'none'
-								})
-							}
-						},
-						fail: (res) => {
-							this.playSound(0)
-							this.refreshBarCodeState()
-							console.log(res);
-							uni.showToast({
-								title:'鎺ュ彛璇锋眰澶辫触',
-								icon:'none'
-							})
-						},
-					});
-				}			
-			},
-			toSon(item){
-				uni.navigateTo({
-					url:'./table_son?OperationType=1&closeType=1&linterid=' + item.hmainid + '&hsubid=' + item.hsubid
-				})
-			}
-	    }
-	}
+    import {
+        getUserInfo
+    } from "@/utils/auth.js";
+    import labelPrinterComponentVue from "../../components/labelPrinterComponent/labelPrinterComponent.vue";
+    export default {
+        data() {
+            return {
+                printInfo: '',
+                MultiCodePrint: false,
+                HBarCodeFocus: false,
+
+                userInfo: getUserInfo(),
+                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+                HBarCode: '',
+                baseInfo: {
+                    HBillNo: '',
+                    HSupName: '',
+                    HDeptName: '',
+                    HInterID: '',
+                },
+                sWhere: '',
+                listData: [],
+
+                printableWaitCache: [],
+                printableBaseInfo: {
+                    HBarCode: '',
+                    HMainID: '',
+                    HSubID: '',
+                    HBillNo: '',
+                    HMaterID: '',
+                    HMaterNumber: '',
+                    HMaterName: '',
+                    HMaterModel: '',
+                    HQty: '',
+                    HMinQty: '',
+                    HSupID: '',
+                    SHdate: '',
+                    HMTONo: '',
+                    HBatchNo: '',
+                    HBQty: '',
+                    HSupID: '',
+                    HSupNumber: '',
+                    HSupName: '',
+                    HUnitID: '',
+                    HBillType: '',
+                    HPcsName: '',
+                    HSupNameShort: '',
+                    HMTONo: '',
+                    HDate: '',
+                    HSourceBillNo: '',
+                    HMaker: getUserInfo()["Czymc"],
+                    HCoilNO: '',
+                    HFurnaceNO: '',
+                    HFactory: '',
+                    HSupMaterNumber: '',
+                },
+            }
+        },
+        onLoad() {
+            this.HBarCodeFocus = true
+        },
+        components: {
+            labelPrinterComponentVue
+        },
+        methods: {
+            changePrintMode() {
+                this.MultiCodePrint = !this.MultiCodePrint
+                if (this.MultiCodePrint == false) {
+                    this.printableWaitCache = []
+                    this.listData.forEach(item => {
+                        if(typeof item.isActive != 'undefined'){
+                            item.isActive = false
+                        }
+                    })
+                }
+            },
+            async refreshBarCodeState() {
+                this.HBarCodeFocus = false
+                await this.$nextTick(() => {
+                    this.HBarCodeFocus = true
+                    this.HBarCode = ""
+                })
+            },
+            playSound(e) {
+                const innerAudioContext = uni.createInnerAudioContext();
+                if (e == 1) {
+                    innerAudioContext.src = '/static/success.wav';
+                } else {
+                    innerAudioContext.src = '/static/jingbao.wav';
+                }
+                innerAudioContext.play(); // 鎾斁闊抽
+            },
+            //鎵爜
+            toScanCode() {
+                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
+                mpaasScanModule.mpaasScan({
+                    'hideAlbum': true,
+                    'timeoutInterval': '10', //瓒呮椂鏃堕棿
+                    'timeoutText': '鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋
+                }, (ret) => {
+                    console.log(ret.resp_result)
+                    this.HBarCode = ret.resp_result
+                    this.getCode(this.HBarCode)
+                })
+            },
+            //鎵潯鐮佸鐞�
+            getCode(HBarCode) {
+                if (!HBarCode) {
+                    this.playSound(0)
+                    this.refreshBarCodeState()
+                    uni.showToast({
+                        title: '鏉$爜涓嶈兘涓虹┖',
+                        icon: 'none'
+                    })
+                } else {
+                    uni.request({
+                        url: this.serverUrl + '/Cg_POInStockBill/GetCg_POInStockBill_PDA',
+                        data: {
+                            HBillno: HBarCode
+                        },
+                        success: (res) => {
+                            console.log('鎵爜杩斿洖', res.data.data);
+                            this.HBarCode = ''
+                            if (res.data.count == 1) {
+                                this.playSound(1)
+                                var data = res.data.data
+                                this.baseInfo = {
+                                    HBillNo: data[0].鍗曟嵁鍙�,
+                                    HSupName: data[0].渚涘簲鍟�,
+                                    HDeptName: data[0].閮ㄩ棬,
+                                    HInterID: data[0].hmainid,
+                                }
+                                this.listData = data
+                            } else {
+                                this.playSound(0)
+                                this.refreshBarCodeState()
+                                uni.showToast({
+                                    title: res.data.Message,
+                                    icon: 'none'
+                                })
+                            }
+                        },
+                        fail: (res) => {
+                            this.playSound(0)
+                            this.refreshBarCodeState()
+                            console.log(res);
+                            uni.showToast({
+                                title: '鎺ュ彛璇锋眰澶辫触',
+                                icon: 'none'
+                            })
+                        },
+                    });
+                }
+            },
+            toSon(item) {
+                // 鏍规嵁鏉′欢鍒ゆ柇鏄惁鍘诲瓙椤甸潰锛屽鏋滄槸澶氭潯鐮佹墦鍗版ā寮忥紝鍒欏瓨鍏ョ紦瀛�
+                if (!this.MultiCodePrint) {
+                    uni.navigateTo({
+                        url: './table_son?OperationType=1&closeType=1&linterid=' + item.hmainid + '&hsubid=' +
+                            item
+                            .hsubid
+                    })
+                } else {
+                    this.setPrintableWaitInfo(item)
+                }
+            },
+            setPrintableWaitInfo(item) {
+                if (typeof item['isActive'] == 'undefined') {
+                    // 瀵硅薄绗竴娆¤鐐瑰嚮
+                    this.$set(item, 'isActive', true)
+                } else {
+                    item['isActive'] = !item['isActive']
+                }
+
+                if (item.isActive) {
+                    this.printableWaitCache.push(item)
+                } else {
+                    let index = this.printableWaitCache.findIndex(elem => {
+                        return item.HMaterID == elem.HMaterID && item["娆惧彿"] == elem["娆惧彿"]
+                    })
+                    if (index != -1) {
+                        this.printableWaitCache.splice(index, 1)
+                    }
+                }
+
+            },
+            // 鑾峰彇瀛樺偍鏉$爜淇℃伅锛岄渶鍚屾
+            async storePrinterInfo(printerOne) {
+                return new Promise((resolve, reject) => {
+                    let printInfoClone = JSON.parse(JSON.stringify(this.printableBaseInfo))
+                    printInfoClone = Object.assign(printInfoClone, {
+                        HMainID: printerOne.hmainid,
+                        HSubID: printerOne.hsubid,
+                        HBillNo: printerOne.鍗曟嵁鍙�,
+                        HSourceBillNo: printerOne.鍗曟嵁鍙�,
+                        HBillType: printerOne['HBillType'],
+                        HInnerBillNo: printerOne.閲囪喘璁㈠崟鍙�,
+                        HMaterID: printerOne.HMaterID,
+                        HMaterNumber: printerOne.鐗╂枡浠g爜,
+                        HMaterName: printerOne.鐗╂枡鍚嶇О,
+                        HMaterModel: printerOne.瑙勬牸鍨嬪彿,
+                        HQty: printerOne.鏁伴噺,
+                        HMinQty: printerOne.鏁伴噺,
+                        HSupID: printerOne.HSupID,
+                        SHdate: printerOne.瀹℃牳鏃ユ湡,
+                        HBatchNo: printerOne['鎵瑰彿'],
+                        HSupID: printerOne['HSupID'],
+                        HSupNumber: printerOne['渚涘簲鍟嗕唬鐮�'],
+                        HSupName: printerOne['渚涘簲鍟�'],
+                        HSupMaterNumber: printerOne['渚涘簲鍟嗙墿鏂欑紪鐮�'],
+                        HUnitID: printerOne['HUnitID'],
+                        HPcsName: printerOne['璁¢噺鍗曚綅'],
+                        HSupNameShort: printerOne['渚涘簲鍟嗙畝绉�'],
+                        HMTONo: printerOne['璁″垝璺熻釜鍙�'],
+                        HDate: printerOne['鏃ユ湡'],
+                        HCoilNO: printerOne['娆惧彿'],
+                        HFurnaceNO: printerOne['鍒嗙粍'],
+                        HFactory: printerOne['瀹㈡埛缂栧彿'],
+                    })
+                    let HBarCode = this.getHBarCode({
+                        HBillNo: printInfoClone.HBillNo,
+                        HSubID: printInfoClone.HSubID,
+                        HMaterNumber: printInfoClone.HMaterNumber,
+                        HMTONo: printInfoClone.HMTONo,
+                        HQty: printInfoClone.HQty
+                    })
+                    printInfoClone.HBarCode = HBarCode
+                    console.log('printInfoClone: ',printInfoClone);
+                    let sMain = []
+                    sMain[0] = printInfoClone
+                    let sMainStr = JSON.stringify(sMain);
+                    //鑾峰彇閫夋嫨鐨勭粍缁�
+                    let HOrgType = uni.getStorageSync('Organization');
+                    //鑾峰彇閫夋嫨鐨勫伐鍘備唬鐮�
+                    let CampanyName = "xxx";
+                    //鑾峰彇閫夋嫨鐨勬簮鍗曠被鍨�
+                    let HSourceBillType = "鏀舵枡閫氱煡鍗�";
+                    //鑾峰彇閫夋嫨鐨勬潯鐮佺被鍨�
+                    let HSelectBarCodeType = "鍝佺鏉$爜";
+                    //鑾峰彇褰撳墠鐧诲綍浜哄憳
+                    let UserName = uni.getStorageSync('HUserName');
+                    let sMainSub = sMainStr + ';' + HOrgType + ';' + HSourceBillType + ';' +
+                        HSelectBarCodeType + ';' +
+                        CampanyName + ';' + UserName + ';' + HBarCode + ';' + printInfoClone.HFactory +
+                        ';' + printInfoClone.HCoilNO + ';' + printInfoClone.HFurnaceNO + '';
+                    uni.request({
+                        url: this.serverUrl + '/Sc_BarCode/SaveBarCode_NoGenerate',
+                        method: 'POST',
+                        data: {
+                            msg: sMainSub,
+                            CampanyName: CampanyName
+                        },
+                        success: (res) => {
+                            if (res.data.count == 1) {
+                                resolve(printInfoClone)
+                            } else {
+                                reject()
+                            }
+                        },
+                        fail: (res) => {
+                            reject()
+                        },
+                    });
+                })
+            },
+            getHBarCode({
+                HBillNo,
+                HSubID,
+                HMaterNumber,
+                HMTONo,
+                HQty
+            }) {
+                return `${HBillNo}@${HSubID}@${HMaterNumber || ''}@${HMTONo || ''}@${HQty || 0}`
+            },
+            getPrintCodeCpcl(barCodeStr, printerInfoModel) {
+                console.log('printerInfoModel: ',printerInfoModel);
+                let {
+                    HSupNameShort,
+                    HFactory,
+                    HMaterNumber,
+                    HMaterName,
+                    HCoilNO,
+                    HSupMaterNumber,
+                    HFurnaceNO,
+                    HMaterModel,
+                    HQty,
+                    HPcsName,
+                    HDate,
+                    HInnerBillNo
+                } = printerInfoModel
+                console.log("HFurnaceNO", HFurnaceNO)
+                let pcsInfo = HPcsName ? '(' + HPcsName + ')' : ''
+                let HFurnaceNo = HFurnaceNO.split('.')
+
+                let printCodeCpclStr = new String()
+                return printCodeCpclStr.concat(
+                    "! 0 200 200 400 1\r\n",
+                    "PAGE-WIDTH 608\r\n",
+                    "SETQRVER 3\r\n",
+                    "B QR 475 15 Q 0 U 3\r\n",
+                    `LA,${barCodeStr}\r\n`,
+                    "ENDQR\r\n",
+                    `T 24 0 0 30 渚涘簲鍟�: ${HSupNameShort}\r\n`,
+                    `T 55 0 0 55 (Supplier)\r\n`,
+                    `T 24 0 220 30 瀹㈡埛缂栧彿: ${HFactory || ''}\r\n`,
+                    `T 55 0 220 55 (Consumer No.)\r\n`,
+                    `T 24 0 0 75 鐗╂枡缂栫爜: ${HMaterNumber}\r\n`,
+                    `T 55 0 0 100 (Material Number)\r\n`,
+                    `T 24 0 0 120 鐗╂枡鍚嶇О: ${HMaterName}\r\n`,
+                    `T 55 0 0 145 (Material Code)\r\n`,
+                    `T 24 0 0 165 娆惧彿: ${HCoilNO || ''}\r\n`,
+                    `T 55 0 0 190 (Style No.)\r\n`,
+                    `T 24 0 300 165 渚涘簲鍟嗘枡鍙�: ${HSupMaterNumber}\r\n`,
+                    `T 55 0 300 190 (Supplier Sku No.)\r\n`,
+                    `T 24 0 0 210 鍒嗙粍: ${HFurnaceNo[1] || HFurnaceNo[0] || ''}\r\n`,
+                    `T 55 0 0 235 (Group)\r\n`,
+                    `T 24 0 300 210 瑙勬牸: ${HMaterModel}\r\n`,
+                    `T 55 0 300 235 (SKU NO.)\r\n`,
+                    `T 24 0 0 255 鏁伴噺: ${ parseFloat(HQty || 0).toFixed(0) } ${pcsInfo}\r\n`,
+                    `T 55 0 0 280 (Quantity)\r\n`,
+                    `T 24 0 300 255 鏃ユ湡: ${HDate || ''}\r\n`,
+                    `T 55 0 300 280 (Date)\r\n`,
+                    `T 24 0 0 300 妫�楠屽憳: \r\n`,
+                    `L 80 325 230 325 3\r\n`,
+                    `T 55 0 0 325 (QC)\r\n`,
+                    `T 24 0 240 300 閲囪喘鍗曞彿: ${HInnerBillNo || ''}\r\n`,
+                    `T 55 0 300 325 (Purchase Order No.)\r\n`,
+                    `T 24 0 0 345 妫�楠岀粨鏋�: \r\n`,
+                    `T 55 0 0 370 (Inspection status)\r\n`,
+                    `BOX 240 345 260 365 4\r\n`,
+                    `T 24 0 270 345 鍚堟牸\r\n`,
+                    `T 55 0 250 370 (Pass)\r\n`,
+                    `BOX 340 345 360 365 4\r\n`,
+                    `T 24 0 370 345 涓嶅悎鏍糪r\n`,
+                    `T 55 0 370 370 (Fail)\r\n`,
+                    `BOX 460 345 480 365 4\r\n`,
+                    `T 24 0 490 345 鐗归噰\r\n`,
+                    `T 55 0 440 370 (Spec. accepted)\r\n`,
+                    `FORM\r\n`,
+                    `PRINT`,
+                ).toString()
+
+            },
+            async execMultiPrint() {
+                if (this.$printer.isConnected() === false) {
+                    this.$refs.labelPrinter.openPopup()
+                    return
+                }
+                if (this.printableWaitCache.length == 0) {
+                    return uni.showToast({
+                        icon: 'none',
+                        title: '鏃犳墦鍗板唴瀹�!!'
+                    })
+                }
+                console.log(this.printableWaitCache);
+                let printerOne = {}
+                let printContent = []
+                let printInfoBuffer = []
+                let count = 0
+                try {
+                    for (printerOne of this.printableWaitCache) {
+                        // 鍚屾鎻愪氦鏉$爜瀛樺偍璇锋眰
+                        let printedInfo = await this.storePrinterInfo(printerOne)
+                        // 鏉$爜瀛樺偍鎴愬姛鍚� 鑾峰彇鎵撳嵃鎸囦护
+                        let printCode = this.getPrintCodeCpcl(printedInfo.HBarCode, printedInfo)
+                        printContent.push(printCode)
+                        count++;
+                        if (count == 10) {
+                        	printInfoBuffer.push(printContent.join("\r\n"))
+                        	count = 0
+                        	printContent = []
+                        }
+                    }
+                    
+                    printInfoBuffer.push(printContent.join("\r\n"))
+                    this.printInfo = JSON.stringify(printInfoBuffer)
+                    
+                    printInfoBuffer = []
+                    
+                    await this.$nextTick(() => {
+                    	this.$refs.labelPrinter.execPrint()
+                    })
+                    
+                } catch (e) {
+                    console.error('e: ',e);
+                    uni.showModal({
+                        title: '娓╅Θ鎻愮ず',
+                        content: `鐗╂枡鍚�: ${printerOne['鐗╂枡鍚嶇О']} 娆惧彿: ${printerOne['娆惧彿']} 鍑虹幇閿欒锛屽凡閫�鍑烘墦鍗版祦绋媊,
+                        showCancel: false
+                    })
+                }
+
+            }
+        }
+    }
 </script>
 
 <style lang="scss" scoped>
-	.form{
-		width: 640rpx;
-		margin: 20rpx auto;
-	}
-    .form-item{
-		display: flex;
-		align-items: center;
-		font-size: 28rpx;
-		padding: 6rpx 0;
-		.title{
-			width: 180rpx;
-			text{
-				color: red;
-				font-weight: bold;
-			}
-		}
-		.right{
-			width: 450rpx;
-			border-radius: 22rpx;
-			border: 1px solid #acacac;
-		}
-		.righton{
-			width: 450rpx;
-			border-radius: 22rpx;
-			border: 1px solid #e4e4e4;
-			background-color: #e4e4e4;
-		}
-		input{
-			width: 100%;
-			padding: 8rpx 20rpx;
-			font-size: 30rpx;
-		}
-	}
-	.buttons{
-		width: 100%;
-		display: flex;
-		justify-content: center;
-		margin-top: 20rpx;
-		button{
-			border-radius: 50rpx;
-			width: 180rpx;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: 28rpx;
-		}
-		.btn-a{
-			background-color: #acacac;
-			color: #fff;
-		}
-		.btn-b{
-			background-color: #41a863;
-			color: #fff;
-		}
-		.btn-c{
-			background-color: #3a78ff;
-			color: #fff;
-		}
-	}
-	
-	.list{
-		width: 100%;
-		.card-detail{
-			width: 100%;
-			display: flex;
-			flex-wrap: wrap;
-			justify-content: space-between;
-			line-height: 120%;
-			.detail{
-				// width: 50%;
-				font-size: 26rpx;
-				margin-bottom: 12rpx;
-				color: #555;
-				margin-right: 20rpx;
-				text{
-					color: #999;
-					font-size: 26rpx;
-				}
-			}
-		}
-		.more{
-			color: #888;
-			font-size: 24rpx;
-			display: flex;
-			border-top: 1px solid #eee;
-			padding-top: 20rpx;
-			.part{
-				width: 50%;
-				text-align: center;
-			}
-		}
-	}
+    .show {
+        display: block;
+    }
 
-</style>
+    .active {
+        background-color: rgba(0, 122, 255, 0.2);
+    }
+
+    .hidden {
+        display: none;
+    }
+
+    .form {
+        width: 640rpx;
+        margin: 20rpx auto;
+    }
+
+    .form-item {
+        display: flex;
+        align-items: center;
+        font-size: 28rpx;
+        padding: 6rpx 0;
+
+        .title {
+            width: 180rpx;
+
+            text {
+                color: red;
+                font-weight: bold;
+            }
+        }
+
+        .right {
+            width: 450rpx;
+            border-radius: 22rpx;
+            border: 1px solid #acacac;
+        }
+
+        .righton {
+            width: 450rpx;
+            border-radius: 22rpx;
+            border: 1px solid #e4e4e4;
+            background-color: #e4e4e4;
+        }
+
+        input {
+            width: 100%;
+            padding: 8rpx 20rpx;
+            font-size: 30rpx;
+        }
+    }
+
+    .buttons {
+        width: 100%;
+        display: flex;
+        justify-content: center;
+        margin-top: 20rpx;
+
+        button {
+            border-radius: 50rpx;
+            width: 180rpx;
+            height: 66rpx;
+            line-height: 66rpx;
+            font-size: 28rpx;
+        }
+
+        .btn-a {
+            background-color: #acacac;
+            color: #fff;
+        }
+
+        .btn-b {
+            background-color: #41a863;
+            color: #fff;
+        }
+
+        .btn-c {
+            background-color: #3a78ff;
+            color: #fff;
+        }
+    }
+
+    .button-groups {
+        box-sizing: border-box;
+        padding: 0 60rpx 20rpx 60rpx;
+        display: flex;
+        flex-direction: row;
+        justify-content: right;
+        gap: 20rpx;
+
+        button {
+            border-radius: 50rpx;
+            // width: 180rpx;
+            height: 66rpx;
+            line-height: 66rpx;
+            font-size: 28rpx;
+        }
+
+        .btn-a {
+            background-color: #acacac;
+            color: #fff;
+        }
+
+        .btn-b {
+            background-color: #41a863;
+            color: #fff;
+        }
+
+        .btn-c {
+            background-color: #3a78ff;
+            color: #fff;
+        }
+    }
+
+    .list {
+        width: 100%;
+
+        .card-detail {
+            width: 100%;
+            display: flex;
+            flex-wrap: wrap;
+            justify-content: space-between;
+            line-height: 120%;
+
+            .detail {
+                // width: 50%;
+                font-size: 26rpx;
+                margin-bottom: 12rpx;
+                color: #555;
+                margin-right: 20rpx;
+
+                text {
+                    color: #999;
+                    font-size: 26rpx;
+                }
+            }
+        }
+
+        .more {
+            color: #888;
+            font-size: 24rpx;
+            display: flex;
+            border-top: 1px solid #eee;
+            padding-top: 20rpx;
+
+            .part {
+                width: 50%;
+                text-align: center;
+            }
+        }
+    }
+</style>
\ No newline at end of file
diff --git a/pages/shouliaotongzhi/table_son.vue b/pages/shouliaotongzhi/table_son.vue
index bdcb313..9eea15f 100644
--- a/pages/shouliaotongzhi/table_son.vue
+++ b/pages/shouliaotongzhi/table_son.vue
@@ -394,7 +394,8 @@
 							`${this.baseInfo.HBillNo}@${this.baseInfo.HSubID}@${this.baseInfo.HMaterNumber || ''}@${this.baseInfo.HMTONo || ''}@${this.baseInfo.HQty || 0}`
 						let pcsInfo = this.baseInfo.HPcsName ? '(' + this.baseInfo.HPcsName + ')' : ''
                         let HFurnaceNO = this.baseInfo.HFurnaceNO.split('.')
-						printContent.push(`! 0 200 200 400 1
+						printContent.push(
+`! 0 200 200 400 1
 PAGE-WIDTH 608
 SETQRVER 3
 B QR 475 15 Q 0 U 3

--
Gitblit v1.9.1