From fc1a5059e586ab6d41fc3ec3bfacb727accc4765 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 15 十二月 2025 14:52:02 +0800
Subject: [PATCH] 核磅录入打印装箱单

---
 common/bluetoothPrinter.js                          |  102 ++
 pages/wareHouse/nuclearScale/nuclearscalerecord.vue | 2247 +++++++++++++++++++++++++++----------------------------
 2 files changed, 1,203 insertions(+), 1,146 deletions(-)

diff --git a/common/bluetoothPrinter.js b/common/bluetoothPrinter.js
new file mode 100644
index 0000000..dc018e0
--- /dev/null
+++ b/common/bluetoothPrinter.js
@@ -0,0 +1,102 @@
+const jcapi = uni.requireNativePlugin("JCSDK-JCApiModule");
+
+let state = {
+  connectedDevice: null,
+  connectionStatus: "disconnected", // disconnected | connecting | connected
+  listeners: [],
+};
+
+/** 閫氱煡鎵�鏈夎闃呴〉闈� */
+function notify() {
+  state.listeners.forEach(fn => fn({
+    connectedDevice: state.connectedDevice,
+    connectionStatus: state.connectionStatus,
+  }));
+}
+
+/** 椤甸潰璁㈤槄钃濈墮鐘舵�� */
+function onChange(fn) {
+  state.listeners.push(fn);
+  fn({
+    connectedDevice: state.connectedDevice,
+    connectionStatus: state.connectionStatus,
+  });
+}
+
+/** 鍒濆鍖栵紙鍏ㄥ眬鍙渶涓�娆★級 */
+function init() {
+  jcapi.initSDK();
+
+  const saved = uni.getStorageSync("bluetoothConnection");
+  if (saved) {
+    state.connectedDevice = saved;
+    state.connectionStatus = "connected";
+  }
+
+  // 鏂紑鐩戝惉
+  jcapi.didReadPrintErrorInfo((r) => {
+    if (r.code === 23) {
+      state.connectedDevice = null;
+      state.connectionStatus = "disconnected";
+      uni.removeStorageSync("bluetoothConnection");
+      notify();
+    }
+  });
+}
+
+/** 鎼滅储璁惧 */
+function searchDevices() {
+  return new Promise((resolve, reject) => {
+    uni.openBluetoothAdapter({
+      success() {
+        jcapi.getBluetoothDevices(list => {
+          resolve(list || []);
+        });
+      },
+      fail: reject
+    });
+  });
+}
+
+/** 杩炴帴璁惧 */
+function connect(device) {
+  return new Promise((resolve, reject) => {
+    state.connectionStatus = "connecting";
+    notify();
+
+    jcapi.openPrinterByDevice({
+      address: device.address,
+      name: device.name,
+      deviceType: 0,
+    }, (r) => {
+      if (r.code === 0) {
+        state.connectedDevice = device;
+        state.connectionStatus = "connected";
+        uni.setStorageSync("bluetoothConnection", device);
+        notify();
+        resolve(device);
+      } else {
+        state.connectionStatus = "disconnected";
+        notify();
+        reject(r);
+      }
+    });
+  });
+}
+
+function isConnected() {
+  return state.connectionStatus === "connected";
+}
+
+function getCurrentDevice() {
+  return state.connectedDevice;
+}
+
+export default {
+  init,
+  onChange,
+  searchDevices,
+  connect,
+  isConnected,
+  getCurrentDevice,
+};
diff --git a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue
index 4363f74..c70221d 100644
--- a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue
+++ b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue
@@ -1,1219 +1,1174 @@
 <template>
-	<view class="page">
-		<view class="finishProductIn-locno-bg" />
-		<u-navbar title="鏍哥璁板綍" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
-			back-icon-color="#000">
-			<view class="navbar-right" slot="right" @click="goPrintAll">
-				鍏ㄩ儴鎵撳嵃
-			</view>
-		</u-navbar>
-		<view class="wrap">
-			<!-- 杩炴帴鍜屾墦鍗扮姸鎬佹寚绀哄櫒 -->
-			<view class="status-indicator" :class="{
+  <view class="page">
+    <view class="finishProductIn-locno-bg" />
+    <u-navbar
+      title=""
+      :background="background"
+      :border-bottom="false"
+      :title-bold="true"
+      title-color="#000"
+      back-icon-color="#000"
+    >
+      <view class="navbar-right" slot="right">
+        <text class="bluetooth-btn" @click="searchDevice">
+          {{ connectedDevice ? `宸茶繛鎺ワ細${connectedDevice.name}` : "杩炴帴钃濈墮" }}
+        </text>
+        <text class="print-all-btn" @click="goPrintAll">鍏ㄩ儴鎵撳嵃</text>
+      </view>
+    </u-navbar>
+    <view class="wrap">
+      <!-- 杩炴帴鍜屾墦鍗扮姸鎬佹寚绀哄櫒 -->
+      <view
+        class="status-indicator"
+        :class="{
           connected: connectionStatus === 'connected',
           connecting: connectionStatus === 'connecting',
           disconnected: connectionStatus === 'disconnected',
-        }">
-				<text class="status-text">{{ getConnectionStatusText() }}</text>
-				<text class="print-status" v-if="printStatus !== 'idle'">- {{ getPrintStatusText() }}</text>
-			</view>
-			<scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="getmoreList()">
-				<u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false">
-					<view class="content" v-for="(item, index) in list" :key="item.locNo" :index="index"
-						@click="selectNo(item)">
-						<view class="content-header">
-							<view class="content-header-title">{{ list.length - index }}</view>
-						</view>
-						<view class="content-body">
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-1"> </view>
-									<view class="_label-name">鎵规鍙凤細</view>
-								</view>
-								<view class="_content">
-									{{ item.batchNo }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-2"> </view>
-									<view class="_label-name">浜у搧鎻忚堪锛�</view>
-								</view>
-								<view class="_content">
-									{{ item.partDescription }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-3"> </view>
-									<view class="_label-name">闆朵欢鍙凤細</view>
-								</view>
-								<view class="_content">
-									{{ item.partNo }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-1"> </view>
-									<view class="_label-name">姣涢噸锛�</view>
-								</view>
-								<view class="_content">
-									{{ item.newGrossWeight }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-2"> </view>
-									<view class="_label-name">鐩橀噸锛�</view>
-								</view>
-								<view class="_content">
-									{{ item.newWeight }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-3"> </view>
-									<view class="_label-name">鍑�閲嶏細</view>
-								</view>
-								<view class="_content">
-									{{ item.newNetWeight }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-1"> </view>
-									<view class="_label-name">鏍哥閲嶉噺锛�</view>
-								</view>
-								<view class="_content">
-									{{ item.verificationWeight }}
-								</view>
-							</view>
-							<view class="row-list">
-								<view class="_label">
-									<view class="_label-icon-2"> </view>
-									<view class="_label-name">鍙夎溅鐩橀噸锛�</view>
-								</view>
-								<view class="_content">
-									{{ item.forkliftWeight }}
-								</view>
-							</view>
-						</view>
-					</view>
-				</u-cell-group>
-				<view class="loadmore" @click="getmoreList()">
-					<u-loadmore :status="status" :load-text="loadText" @loadmore="getmoreList()" />
-				</view>
-			</scroll-view>
-		</view>
-		<u-toast ref="uToast" />
-		<u-modal v-model="maskShow" title="" :show-confirm-button="false">
-			<view @touchmove.stop.prevent="moveHandle" @click="maskclose">
-				<scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle"
-					@click.stop="moveHandle">
-					<view class="modal-title">閫夋嫨钃濈墮璁惧</view>
-					<view v-if="listDevice.length === 0" class="empty-tip">鏆傛棤璁惧</view>
-					<view v-for="(item, index) in listDevice" :key="index" @click="tapQuery(item)" class="device-item">
-						<view class="device-name">
-							<text>鍚嶇О锛�</text>
-							<text>{{ item.name || "鏈煡璁惧" }}</text>
-						</view>
-						<view class="device-uuid">
-							<text>UUID:</text>
-							<text>{{ item.address || "鏃犲湴鍧�" }}</text>
-						</view>
-					</view>
-				</scroll-view>
-			</view>
-		</u-modal>
-	</view>
+        }"
+      >
+        <text class="status-text">{{ getConnectionStatusText() }}</text>
+        <text class="print-status" v-if="printStatus !== 'idle'"
+          >- {{ getPrintStatusText() }}</text
+        >
+      </view>
+      <scroll-view
+        class="finishProductIn-locno-scroll-list"
+        scroll-y="true"
+        @scrolltolower="getmoreList()"
+      >
+        <u-cell-group
+          class="finishProductIn-locno-scroll-list-group"
+          :border="false"
+        >
+          <view
+            class="content"
+            v-for="(item, index) in list"
+            :key="item.locNo"
+            :index="index"
+            @click="selectNo(item)"
+          >
+            <view class="content-header">
+              <view class="content-header-title">{{
+                list.length - index
+              }}</view>
+            </view>
+            <view class="content-body">
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-1"> </view>
+                  <view class="_label-name">鎵规鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.batchNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-2"> </view>
+                  <view class="_label-name">浜у搧鎻忚堪锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.partDescription }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-3"> </view>
+                  <view class="_label-name">闆朵欢鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.partNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-1"> </view>
+                  <view class="_label-name">姣涢噸锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.newGrossWeight }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-2"> </view>
+                  <view class="_label-name">鐩橀噸锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.newWeight }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-3"> </view>
+                  <view class="_label-name">鍑�閲嶏細</view>
+                </view>
+                <view class="_content">
+                  {{ item.newNetWeight }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-1"> </view>
+                  <view class="_label-name">鏍哥閲嶉噺锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.verificationWeight }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-2"> </view>
+                  <view class="_label-name">鍙夎溅鐩橀噸锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.forkliftWeight }}
+                </view>
+              </view>
+            </view>
+          </view>
+        </u-cell-group>
+        <view class="loadmore" @click="getmoreList()">
+          <u-loadmore
+            :status="status"
+            :load-text="loadText"
+            @loadmore="getmoreList()"
+          />
+        </view>
+      </scroll-view>
+    </view>
+    <u-toast ref="uToast" />
+    <u-modal v-model="maskShow" title="" :show-confirm-button="false">
+      <view @touchmove.stop.prevent="moveHandle" @click="maskclose">
+        <scroll-view
+          class="uni-scroll_box"
+          scroll-y
+          @touchmove.stop.prevent="moveHandle"
+          @click.stop="moveHandle"
+        >
+          <view class="modal-title">閫夋嫨钃濈墮璁惧</view>
+          <view v-if="listDevice.length === 0" class="empty-tip">鏆傛棤璁惧</view>
+          <view
+            v-for="(item, index) in listDevice"
+            :key="index"
+            @click="tapQuery(item)"
+            class="device-item"
+          >
+            <view class="device-name">
+              <text>鍚嶇О锛�</text>
+              <text>{{ item.name || "鏈煡璁惧" }}</text>
+            </view>
+            <view class="device-uuid">
+              <text>UUID:</text>
+              <text>{{ item.address || "鏃犲湴鍧�" }}</text>
+            </view>
+          </view>
+        </scroll-view>
+      </view>
+    </u-modal>
+  </view>
 </template>
 <script>
-	import content_bg from "@/static/custom/finishProductIn/locNoBg.png";
-	const jcapi = uni.requireNativePlugin("JCSDK-JCApiModule");
+import content_bg from "@/static/custom/finishProductIn/locNoBg.png";
+import bluetooth from "@/common/bluetoothPrinter.js";
 
-	// 浜岀淮鐮佺被鍨�
-	const QrCodeType = {
-		QrCode: 31,
-		PDF417: 32,
-		DataMatrix: 33,
-		AZTEC: 34,
-	};
-	// 绾挎潯绫诲瀷
-	const LineType = {
-		Solid: 1, // 瀹炵嚎
-		Dotted: 2, // 铏氱嚎锛堥粯璁よ櫄瀹�1:1鐩搁棿锛�
-	};
-	// 鎹㈣鏂瑰紡
-	const LineModeType = {
-		Justified: 1, // 瀹介珮鍥哄畾锛屽唴瀹硅嚜閫傚簲锛堝瓧鍙�/瀛楅棿璺�/琛岄棿璺濇寜姣斾緥缂╂斁锛�
-		AutoHeight: 2, // 瀹藉害鍥哄畾锛岄珮搴﹁嚜閫傚簲
-		Fixed: 4, // 瀹介珮鍥哄畾锛岃秴鍑洪儴鍒嗚鍓�
-		Adapt: 6, // 瀹介珮鍥哄畾锛屽唴瀹硅秴杩囨椂棰勮瀹介珮鑷姩缂╁皬
-	};
-	export default {
-		data() {
-			return {
-				background: {
-					backgroundImage: `url(${content_bg})`,
-					backgroundAttachment: "fixed",
-					backgroundSize: "100% auto",
-					backgroundRepeat: "no-repeat",
-				},
-				keywords: "",
-				list: [],
-				total: 0,
-				pageNum: 1,
-				pageSize: 10,
-				status: "loading",
-				loadText: {
-					loadmore: "鍔犺浇鏇村...",
-					loading: "鍔姏鍔犺浇涓�...",
-					nomore: "娌℃湁鏇村浜�",
-				},
-				maskShow: false,
-				listDevice: [], //钃濈墮璁惧鏁版嵁
-				printQueue: [], // 鎵撳嵃闃熷垪
-				printing: false, // 鏄惁姝e湪鎵撳嵃
-				printDensity: 3, // 榛樿鎵撳嵃娴撳害
-				labelType: 1, // 榛樿鏍囩绫诲瀷
-				// 1锛氶棿闅欑焊
-				// 2锛氶粦鏍囩焊
-				// 3锛氳繛缁焊
-				// 4锛氬畾瀛旂焊
-				// 5锛氶�忔槑绾�
-				printMode: 2, // 榛樿鎵撳嵃妯″紡
-				//	1锛氱儹鏁�
-				// 	2锛氱儹杞嵃
-				connectedDevice: null, // 宸茶繛鎺ョ殑鎵撳嵃鏈�
-				connectionStatus: "disconnected", // 杩炴帴鐘舵��: disconnected, connecting, connected
-				printStatus: "idle", // 鎵撳嵃鐘舵��: idle, printing, error
-				errorMessage: "", // 閿欒淇℃伅
-				verificationNo: "",
-				failedPrintJobs: [],
-			};
-		},
-		onLoad(options) {
-			this.verificationNo = JSON.parse(
-				decodeURIComponent(options.verificationNo)
-			);
-			this.getlist();
-			// 鍒濆鍖朣DK
-			jcapi.initSDK();
+const jcapi = uni.requireNativePlugin("JCSDK-JCApiModule");
 
-			// 灏濊瘯鎭㈠涔嬪墠鐨勮摑鐗欒繛鎺ョ姸鎬�
-			this.restoreBluetoothConnection();
+// 浜岀淮鐮佺被鍨�
+const QrCodeType = {
+  QrCode: 31,
+  PDF417: 32,
+  DataMatrix: 33,
+  AZTEC: 34,
+};
+// 绾挎潯绫诲瀷
+const LineType = {
+  Solid: 1, // 瀹炵嚎
+  Dotted: 2, // 铏氱嚎锛堥粯璁よ櫄瀹�1:1鐩搁棿锛�
+};
+// 鎹㈣鏂瑰紡
+const LineModeType = {
+  Justified: 1, // 瀹介珮鍥哄畾锛屽唴瀹硅嚜閫傚簲锛堝瓧鍙�/瀛楅棿璺�/琛岄棿璺濇寜姣斾緥缂╂斁锛�
+  AutoHeight: 2, // 瀹藉害鍥哄畾锛岄珮搴﹁嚜閫傚簲
+  Fixed: 4, // 瀹介珮鍥哄畾锛岃秴鍑洪儴鍒嗚鍓�
+  Adapt: 6, // 瀹介珮鍥哄畾锛屽唴瀹硅秴杩囨椂棰勮瀹介珮鑷姩缂╁皬
+};
+export default {
+  data() {
+    return {
+      background: {
+        backgroundImage: `url(${content_bg})`,
+        backgroundAttachment: "fixed",
+        backgroundSize: "100% auto",
+        backgroundRepeat: "no-repeat",
+      },
+      keywords: "",
+      list: [],
+      total: 0,
+      pageNum: 1,
+      pageSize: 10,
+      status: "loading",
+      loadText: {
+        loadmore: "鍔犺浇鏇村...",
+        loading: "鍔姏鍔犺浇涓�...",
+        nomore: "娌℃湁鏇村浜�",
+      },
+      maskShow: false,
+      listDevice: [], //钃濈墮璁惧鏁版嵁
+      printQueue: [], // 鎵撳嵃闃熷垪
+      printing: false, // 鏄惁姝e湪鎵撳嵃
+      printDensity: 10, // 榛樿鎵撳嵃娴撳害
+      labelType: 1, // 榛樿鏍囩绫诲瀷
+      // 1锛氶棿闅欑焊
+      // 2锛氶粦鏍囩焊
+      // 3锛氳繛缁焊
+      // 4锛氬畾瀛旂焊
+      // 5锛氶�忔槑绾�
+      printMode: 2, // 榛樿鎵撳嵃妯″紡
+      //	1锛氱儹鏁�
+      // 	2锛氱儹杞嵃
+      connectedDevice: null,
+      connectionStatus: "disconnected",
+      printStatus: "idle", // 鎵撳嵃鐘舵��: idle, printing, error
+      errorMessage: "", // 閿欒淇℃伅
+      verificationNo: "",
+      failedPrintJobs: [],
+    };
+  },
+  onLoad(options) {
+    this.verificationNo = JSON.parse(
+      decodeURIComponent(options.verificationNo)
+    );
 
-			// 鐩戝惉椤电爜鍥炶皟
-			jcapi.didReadPrintCountInfo(function(r) {
-				console.log("椤电爜", r);
-			});
+    bluetooth.init();
 
-			// 鐩戝惉閿欒鍥炶皟
-			jcapi.didReadPrintErrorInfo((r) => {
-				console.log("閿欒", r);
-				if (r.code == 23) {
-					// 鎵撳嵃鏈烘柇寮�杩炴帴
-					this.connectedDevice = null;
-					// 娓呴櫎鏈湴瀛樺偍鐨勮繛鎺ヤ俊鎭�
-					uni.removeStorageSync("bluetoothConnection");
-					uni.showToast({
-						icon: "none",
-						title: "鎵撳嵃鏈鸿繛鎺ュ凡鏂紑锛岃閲嶆柊杩炴帴",
-						duration: 2 * 1000,
-					});
-				} else {
-					uni.showToast({
-						icon: "none",
-						title: JSON.stringify(r),
-						duration: 2 * 1000,
-					});
-				}
-			});
-		},
-		methods: {
-			restoreBluetoothConnection() {
-				try {
-					// 浠庢湰鍦板瓨鍌ㄨ幏鍙栦箣鍓嶄繚瀛樼殑杩炴帴淇℃伅
-					const savedConnection = uni.getStorageSync("bluetoothConnection");
-					if (savedConnection && savedConnection.address) {
-						console.log("灏濊瘯鎭㈠钃濈墮杩炴帴:", savedConnection);
-						// 璁剧疆涓鸿繛鎺ヤ腑鐘舵��
-						this.connectionStatus = "connecting";
+    bluetooth.onChange(({ connectedDevice, connectionStatus }) => {
+      this.connectedDevice = connectedDevice;
+      this.connectionStatus = connectionStatus;
+    });
 
-						// 灏濊瘯閲嶆柊杩炴帴
-						jcapi.openPrinterByDevice({
-								address: savedConnection.address,
-								name: savedConnection.name,
-								deviceType: 0, // 璁惧绫诲瀷锛�0-钃濈墮锛�1-缃戠粶
-							},
-							(r) => {
-								if (r.code == 0) {
-									this.connectedDevice = savedConnection;
-									this.connectionStatus = "connected";
-									console.log("钃濈墮杩炴帴宸叉仮澶�");
-								} else {
-									this.connectionStatus = "disconnected";
-									// 濡傛灉閲嶈繛澶辫触锛屾竻闄や繚瀛樼殑杩炴帴淇℃伅
-									uni.removeStorageSync("bluetoothConnection");
-									console.log("钃濈墮閲嶈繛澶辫触:", r);
-								}
-							}
-						);
-					}
-				} catch (e) {
-					console.error("鎭㈠钃濈墮杩炴帴澶辫触:", e);
-				}
-			},
-			getmoreList() {
-				if (this.pageSize >= this.total) {
-					this.status = "nomore";
-					return;
-				}
-				this.status = "loading";
-				setTimeout(() => {
-					this.pageSize += this.pageSize;
-					this.getlist();
-				}, 1000);
-			},
-			getlist() {
-				this.$u.api.NuclearScaleEntry.queryPacking({
-					current: this.pageNum,
-					size: this.pageSize,
-					verificationNo: this.verificationNo,
-				}).then((res) => {
-					this.list = res.data;
-					this.total = res.data.length;
-					if (this.pageSize >= this.total) {
-						this.status = "nomore";
-					} else {
-						this.status = "loadmore";
-					}
-				});
-			},
-			search(value) {
-				if (value) {
-					this.list = [];
-					this.pageSize = 10;
-					this.$u.api.NuclearScaleEntry.queryPacking({
-						current: this.pageNum,
-						size: this.pageSize,
-						moNo: value,
-					}).then((res) => {
-						this.list = res.data.records;
-						this.total = res.data.total;
-						if (this.pageSize >= this.total) {
-							this.status = "nomore";
-						} else {
-							this.status = "loadmore";
-						}
-					});
-				} else {
-					this.getlist();
-				}
-			},
-			// 妫�鏌ヨ摑鐗欒繛鎺ョ姸鎬�
-			async checkBluetoothConnection() {
-				if (!this.connectedDevice) {
-					this.connectionStatus = "disconnected";
-					return false;
-				}
+    this.getlist();
+  },
 
-				// 璁剧疆涓鸿繛鎺ヤ腑鐘舵��
-				this.connectionStatus = "connecting";
+  // 椤甸潰鍗歌浇鏃朵笉涓诲姩鏂紑钃濈墮杩炴帴锛屼繚鎸佽繛鎺ョ姸鎬�
+  onUnload() {
+    // 涓嶆墽琛屾柇寮�杩炴帴鎿嶄綔锛屼繚鎸佽摑鐗欒繛鎺�
+  },
+  methods: {
+    // restoreBluetoothConnection() {
+    // 	try {
+    // 		// 浠庢湰鍦板瓨鍌ㄨ幏鍙栦箣鍓嶄繚瀛樼殑杩炴帴淇℃伅
+    // 		const savedConnection = uni.getStorageSync("bluetoothConnection");
+    // 		if (savedConnection && savedConnection.address) {
+    // 			console.log("灏濊瘯鎭㈠钃濈墮杩炴帴:", savedConnection);
+    // 			// 鐩存帴璁剧疆涓哄凡杩炴帴鐘舵�侊紝閬垮厤涓嶅繀瑕佺殑閲嶈繛
+    // 			// 瀹為檯杩炴帴鐘舵�佷細閫氳繃SDK鐨勫洖璋冭嚜鍔ㄦ洿鏂�
+    // 			this.connectedDevice = savedConnection;
+    // 			this.connectionStatus = "connected";
+    // 			console.log("钃濈墮杩炴帴鐘舵�佸凡鎭㈠");
 
-				// 澧炲己杩炴帴鐘舵�佹娴�
-				return new Promise((resolve) => {
-					// 绠�鍖栬繛鎺ョ姸鎬佹娴嬶紝鐩存帴浣跨敤宸茶褰曠殑杩炴帴鐘舵��
-					if (this.connectedDevice) {
-						this.connectionStatus = "connected";
-						resolve(true);
-					} else {
-						this.connectionStatus = "disconnected";
-						uni.showToast({
-							icon: "none",
-							title: "鎵撳嵃鏈烘湭杩炴帴锛岃鍏堣繛鎺�",
-							duration: 2000,
-						});
-						resolve(false);
-					}
-				});
-			},
+    // 			// 楠岃瘉杩炴帴鏄惁鐪熺殑鏈夋晥锛岄�氳繃鍙戦�佷竴涓畝鍗曠殑鍛戒护鎴栨鏌ョ姸鎬�
+    // 			// 杩欓噷涓嶆墽琛屽疄闄呯殑閲嶈繛鎿嶄綔锛岃�屾槸渚濊禆SDK鐨勮繛鎺ョ姸鎬佸洖璋�
+    // 			// 濡傛灉杩炴帴宸叉柇寮�锛孲DK浼氶�氳繃didReadPrintErrorInfo鍥炶皟閫氱煡鎴戜滑
+    // 		}
+    // 	} catch (e) {
+    // 		console.error("鎭㈠钃濈墮杩炴帴澶辫触:", e);
+    // 		this.connectionStatus = "disconnected";
+    // 	}
+    // },
+    getmoreList() {
+      if (this.pageSize >= this.total) {
+        this.status = "nomore";
+        return;
+      }
+      this.status = "loading";
+      setTimeout(() => {
+        this.pageSize += this.pageSize;
+        this.getlist();
+      }, 1000);
+    },
+    getlist() {
+      this.$u.api.NuclearScaleEntry.queryPacking({
+        current: this.pageNum,
+        size: this.pageSize,
+        verificationNo: this.verificationNo,
+      }).then((res) => {
+        this.list = res.data;
+        this.total = res.data.length;
+        if (this.pageSize >= this.total) {
+          this.status = "nomore";
+        } else {
+          this.status = "loadmore";
+        }
+      });
+    },
+    search(value) {
+      if (value) {
+        this.list = [];
+        this.pageSize = 10;
+        this.$u.api.NuclearScaleEntry.queryPacking({
+          current: this.pageNum,
+          size: this.pageSize,
+          moNo: value,
+        }).then((res) => {
+          this.list = res.data.records;
+          this.total = res.data.total;
+          if (this.pageSize >= this.total) {
+            this.status = "nomore";
+          } else {
+            this.status = "loadmore";
+          }
+        });
+      } else {
+        this.getlist();
+      }
+    },
+    checkBluetoothConnection() {
+      return bluetooth.isConnected();
+    },
 
-			// 娣诲姞鍒版墦鍗伴槦鍒�
-			addToPrintQueue(items) {
-				if (!Array.isArray(items)) {
-					items = [items];
-				}
+    // 	// 鐩存帴浣跨敤宸茶褰曠殑杩炴帴鐘舵�侊紝閬垮厤涓嶅繀瑕佺殑杩炴帴妫�鏌�
+    // 	// 瀹為檯杩炴帴鐘舵�佷細閫氳繃SDK鐨勫洖璋冭嚜鍔ㄦ洿鏂�
+    // 	this.connectionStatus = "connected";
+    // 	return true;
+    // },
 
-				this.printQueue.push(...items);
-				// 濡傛灉涓嶅湪鎵撳嵃涓紝鍒欏紑濮嬪鐞嗛槦鍒�
-				if (!this.printing) {
-					this.processPrintQueue();
-				}
-			},
+    // 娣诲姞鍒版墦鍗伴槦鍒�
+    addToPrintQueue(items) {
+      if (!Array.isArray(items)) {
+        items = [items];
+      }
 
-			// 澶勭悊鎵撳嵃闃熷垪
-			async processPrintQueue() {
-				while (this.printQueue.length > 0) {
-					// 妫�鏌ヨ繛鎺ョ姸鎬�
-					const isConnected = await this.checkBluetoothConnection();
-					if (!isConnected) {
-						// 濡傛灉鏈繛鎺ワ紝鏄剧ず钃濈墮杩炴帴瀵硅瘽妗�
-						this.searchDevice();
-						// 涓嶆槸鐩存帴return锛岃�屾槸绛夊緟鐢ㄦ埛杩炴帴鍚庡啀缁х画澶勭悊
-						return;
-					}
+      this.printQueue.push(...items);
+      // 濡傛灉涓嶅湪鎵撳嵃涓紝鍒欏紑濮嬪鐞嗛槦鍒�
+      if (!this.printing) {
+        this.processPrintQueue();
+      }
+    },
 
-					this.printing = true;
-					this.printStatus = "printing";
+    // 澶勭悊鎵撳嵃闃熷垪
+    async processPrintQueue() {
+      while (this.printQueue.length > 0) {
+        // 妫�鏌ヨ繛鎺ョ姸鎬�
+        const isConnected = await this.checkBluetoothConnection();
+        if (!isConnected) {
+          // 濡傛灉鏈繛鎺ワ紝鏄剧ず钃濈墮杩炴帴瀵硅瘽妗�
+          this.searchDevice();
+          // 涓嶆槸鐩存帴return锛岃�屾槸绛夊緟鐢ㄦ埛杩炴帴鍚庡啀缁х画澶勭悊
+          return;
+        }
 
-					// 鍙栧嚭闃熷垪涓殑绗竴涓换鍔�
-					const item = this.printQueue.shift();
+        this.printing = true;
+        this.printStatus = "printing";
 
-					try {
-						// 鎵ц鎵撳嵃
-						await this.printQrCode(item);
+        // 鍙栧嚭闃熷垪涓殑绗竴涓换鍔�
+        const item = this.printQueue.shift();
 
-						// 鎵撳嵃鎴愬姛鍚庣户缁鐞嗕笅涓�涓�
-						uni.showToast({
-							title: "鎵撳嵃鎴愬姛",
-							icon: "success",
-							duration: 1000,
-						});
+        try {
+          // 鎵ц鎵撳嵃
+          await this.printQrCode(item);
 
-						// 鐭殏寤惰繜锛岄伩鍏嶆墦鍗版満缂撳瓨婧㈠嚭
-						await new Promise((resolve) => setTimeout(resolve, 1000));
-					} catch (error) {
-						console.error("鎵撳嵃鍑洪敊:", error);
-						this.printStatus = "error";
-						this.errorMessage = error.message || "鎵撳嵃鏃跺彂鐢熸湭鐭ラ敊璇�";
-						this.printing = false;
+          // 鎵撳嵃鎴愬姛鍚庣户缁鐞嗕笅涓�涓�
+          uni.showToast({
+            title: "鎵撳嵃鎴愬姛",
+            icon: "success",
+            duration: 1000,
+          });
 
-						// 璁板綍澶辫触鐨勪换鍔★紝涓嶉噸鏂版坊鍔犲埌闃熷垪
-						this.failedPrintJobs = this.failedPrintJobs || [];
-						this.failedPrintJobs.push(item);
+          // 鐭殏寤惰繜锛岄伩鍏嶆墦鍗版満缂撳瓨婧㈠嚭
+          await new Promise((resolve) => setTimeout(resolve, 1000));
+        } catch (error) {
+          console.error("鎵撳嵃鍑洪敊:", error);
+          this.printStatus = "error";
+          this.errorMessage = error.message || "鎵撳嵃鏃跺彂鐢熸湭鐭ラ敊璇�";
+          this.printing = false;
 
-						uni.showToast({
-							title: `鎵撳嵃澶辫触: ${this.errorMessage}`,
-							icon: "none",
-							duration: 2000,
-						});
-						// 缁х画澶勭悊涓嬩竴涓换鍔�
-						continue;
-					}
-				}
+          // 璁板綍澶辫触鐨勪换鍔★紝涓嶉噸鏂版坊鍔犲埌闃熷垪
+          this.failedPrintJobs = this.failedPrintJobs || [];
+          this.failedPrintJobs.push(item);
 
-				this.printing = false;
-				this.printStatus = "idle";
-			},
-			// 鎵撳嵃鍗曚釜淇℃伅
-			selectNo(item) {
-				let that = this;
-				uni.showModal({
-					title: "鎻愮ず",
-					content: "鏄惁鎵撳嵃瑁呯鍗曪紵",
-					showCancel: true,
-					success: async function(res) {
-						if (res.confirm) {
-							// 娣诲姞鍒版墦鍗伴槦鍒�
-							that.addToPrintQueue(item);
-						}
-					},
-				});
-			},
+          uni.showToast({
+            title: `鎵撳嵃澶辫触: ${this.errorMessage}`,
+            icon: "none",
+            duration: 2000,
+          });
+          // 缁х画澶勭悊涓嬩竴涓换鍔�
+          continue;
+        }
+      }
 
-			// 鎵撳嵃鍏ㄩ儴淇℃伅
-			goPrintAll() {
-				let that = this;
-				uni.showModal({
-					title: "鎻愮ず",
-					content: `鏄惁鎵撳嵃鍏ㄩ儴${that.list.length}鏉¤绠卞崟锛焋,
-					showCancel: true,
-					success: async function(res) {
-						if (res.confirm) {
-							// 娣诲姞鍒版墦鍗伴槦鍒�
-							that.addToPrintQueue([...that.list]);
-						}
-					},
-				});
-			},
-			moveHandle() {},
-			maskclose() {},
-			//鎵撳嵃浜岀淮鐮�
-			printQrCode(item) {
-				return new Promise(async (resolve, reject) => {
-					// const params = {
-					// 	rwMatlBindId: item.id
-					// };
-					try {
-						// let res = await this.$u.api.dailyPaper.zongjianLabelInfo(params)
-						if (!item) {
-							this.$refs.uToast.show({
-								title: "鏈煡璇㈠埌璇ユ爣绛句俊鎭紒",
-								type: "warning ",
-							});
-							reject(new Error("鏈煡璇㈠埌璇ユ爣绛句俊鎭�"));
-							return;
-						}
+      this.printing = false;
+      this.printStatus = "idle";
+    },
+    // 鎵撳嵃鍗曚釜淇℃伅
+    selectNo(item) {
+      let that = this;
+      uni.showModal({
+        title: "鎻愮ず",
+        content: "鏄惁鎵撳嵃瑁呯鍗曪紵",
+        success(res) {
+          if (res.confirm) {
+            // 鎸� batchNo 鍚堝苟
+            const sameBatchList = that.list.filter(
+              (i) => i.batchNo === item.batchNo
+            );
+            that.addToPrintQueue(sameBatchList);
+          }
+        },
+      });
+    },
 
-						const ht = item.contractNo;
-						const lj = item.partNo;
-						const ljms = item.ccontrProModel;
-						const fh = item.newNetWeight;
-						const scdt = item.productionDate;
-						const scph = item.batchNo;
-						const shdw = item.customerName;
-						const fhdw = "姹熶笢鍚堥噾鎶�鏈湁闄愬叕鍙�";
+    // 鎵撳嵃鍏ㄩ儴淇℃伅
+    goPrintAll() {
+      let that = this;
+      uni.showModal({
+        title: "鎻愮ず",
+        content: `鏄惁鎵撳嵃鍏ㄩ儴${that.list.length}鏉¤绠卞崟锛焋,
+        showCancel: true,
+        success: async function (res) {
+          if (res.confirm) {
+            // 娣诲姞鍒版墦鍗伴槦鍒�
+            that.addToPrintQueue([...that.list]);
+          }
+        },
+      });
+    },
+    moveHandle() {},
+    maskclose() {},
+    //鎵撳嵃浜岀淮鐮�
+    printQrCode(item) {
+      return new Promise(async (resolve, reject) => {
+        // const params = {
+        // 	rwMatlBindId: item.id
+        // };
+        try {
+          // let res = await this.$u.api.dailyPaper.zongjianLabelInfo(params)
+          if (!item) {
+            this.$refs.uToast.show({
+              title: "鏈煡璇㈠埌璇ユ爣绛句俊鎭紒",
+              type: "warning ",
+            });
+            reject(new Error("鏈煡璇㈠埌璇ユ爣绛句俊鎭�"));
+            return;
+          }
 
-						// 鍒濆鍖栫敾鏉�
-						jcapi.initDrawingBoard({
-							width: 70,
-							height: 49,
-							rotate: 90,
-						});
+          const ht = item.contractNo;
+          const lj = item.partNo;
+          const ljms = item.ccontrProModel;
+          const fh = item.newNetWeight;
+          const scdt = item.productionDate;
+          const scph = item.batchNo;
+          const shdw = item.customerName;
+          const fhdw = "姹熶笢鍚堥噾鎶�鏈湁闄愬叕鍙�";
 
-						// 缁樺埗浜岀淮鐮�
-						const qrContent = {
-							company: item.customerNo,
-							line_no: item.lineNo,
-							lot_batch_no: item.batchNo,
-							order_no: item.contractNo,
-							part_no: item.partNo,
-							total_qty: item.newNetWeight,
-							qty_arrived: item.newNetWeight,
-							release_no: item.relNo,
-						};
+          // 鍒濆鍖栫敾鏉�
+          jcapi.initDrawingBoard({
+            width: 70,
+            height: 49,
+            rotate: 90,
+          });
 
-						jcapi.drawLabelQrCode({
-							x: 43.5,
-							y: 2,
-							width: 24,
-							height: 24,
-							value: qrContent,
-							rotate: 0,
-							codeType: QrCodeType.QrCode,
-						});
+          // 缁樺埗浜岀淮鐮�
+          const qrContent = {
+            company: item.customerNo,
+            line_no: item.lineNo,
+            lot_batch_no: item.batchNo,
+            order_no: item.contractNo,
+            part_no: item.partNo,
+            total_qty: item.newNetWeight,
+            qty_arrived: item.newNetWeight,
+            release_no: item.relNo,
+          };
 
-						// 缁樺埗妯嚎
-						this.getDrawLabelLine(1, 1, 67, 0.5, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 6, 42, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 11, 42, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 16, 42, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 23, 42, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 27.5, 67, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 32, 67, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 37, 67, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 42, 67, 0.3, 0, LineType.Solid);
-						this.getDrawLabelLine(1, 47, 67, 0.5, 0, LineType.Solid);
+          jcapi.drawLabelQrCode({
+            x: 43.5,
+            y: 2,
+            width: 24,
+            height: 24,
+            value: qrContent,
+            rotate: 0,
+            codeType: QrCodeType.QrCode,
+          });
 
-						//缁樺埗绔栫嚎
-						this.getDrawLabelLine(1, 1, 0.5, 46, 0, LineType.Solid); // 绔栫嚎1
-						this.getDrawLabelLine(43, 1, 0.3, 26, 0, LineType.Solid); // 绔栫嚎2
-						this.getDrawLabelLine(68, 1, 0.5, 46, 0, LineType.Solid); // 绔栫嚎3
+          // 缁樺埗妯嚎
+          this.getDrawLabelLine(1, 1, 67, 0.5, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 6, 42, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 11, 42, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 16, 42, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 23, 42, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 27.5, 67, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 32, 67, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 37, 67, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 42, 67, 0.3, 0, LineType.Solid);
+          this.getDrawLabelLine(1, 47, 67, 0.5, 0, LineType.Solid);
 
-						// 缁樺埗鏂囨湰
-						this.getDrawLabelText(
-							3,
-							2.5,
-							40,
-							8,
-							"涓ぉ绉戞妧瑁呯娓呭崟",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							1,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							7,
-							25,
-							8,
-							"鍚堝悓鍙�:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							12,
-							25,
-							8,
-							"闆朵欢鍙�:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							17,
-							25,
-							8,
-							"闆朵欢鎻忚堪:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							23.5,
-							25,
-							8,
-							"鍙戣揣/瑁呯鏁�:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							28.5,
-							25,
-							8,
-							"鐢熶骇鏃ユ湡:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							32.5,
-							25,
-							8,
-							"鐢熶骇鎵瑰彿:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							37.5,
-							25,
-							8,
-							"鍙戣揣鍗曚綅:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
-						this.getDrawLabelText(
-							2,
-							42.5,
-							25,
-							8,
-							"鏀惰揣鍗曚綅:",
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							1,
-							1
-						);
+          //缁樺埗绔栫嚎
+          this.getDrawLabelLine(1, 1, 0.5, 46, 0, LineType.Solid); // 绔栫嚎1
+          this.getDrawLabelLine(43, 1, 0.3, 26, 0, LineType.Solid); // 绔栫嚎2
+          this.getDrawLabelLine(68, 1, 0.5, 46, 0, LineType.Solid); // 绔栫嚎3
 
-						// 濉厖鍙傛暟鍊�
-						this.getDrawLabelText(
-							11,
-							7,
-							30,
-							8,
-							ht,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							11,
-							12,
-							32,
-							8,
-							lj,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							14,
-							17,
-							30,
-							8,
-							ljms,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							17,
-							23.5,
-							27,
-							8,
-							fh,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							14,
-							28.5,
-							55,
-							8,
-							scdt,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							14,
-							32.7,
-							55,
-							8,
-							scph,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							14,
-							37.5,
-							55,
-							8,
-							fhdw,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						this.getDrawLabelText(
-							14,
-							42.5,
-							55,
-							8,
-							shdw,
-							2.5,
-							0,
-							LineModeType.AutoHeight,
-							0,
-							0,
-							0,
-							0,
-							1
-						);
-						// 鐢熸垚鎵撳嵃鏁版嵁
-						let imageJsonObj = jcapi.generateLabelJson();
+          // 缁樺埗鏂囨湰
+          this.getDrawLabelText(
+            3,
+            2.5,
+            40,
+            8,
+            "涓ぉ绉戞妧瑁呯娓呭崟",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            1,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            7,
+            25,
+            8,
+            "鍚堝悓鍙�:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            12,
+            25,
+            8,
+            "闆朵欢鍙�:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            17,
+            25,
+            8,
+            "闆朵欢鎻忚堪:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            23.5,
+            25,
+            8,
+            "鍙戣揣/瑁呯鏁�:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            28.5,
+            25,
+            8,
+            "鐢熶骇鏃ユ湡:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            32.5,
+            25,
+            8,
+            "鐢熶骇鎵瑰彿:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            37.5,
+            25,
+            8,
+            "鍙戣揣鍗曚綅:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
+          this.getDrawLabelText(
+            2,
+            42.5,
+            25,
+            8,
+            "鏀惰揣鍗曚綅:",
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            1,
+            1
+          );
 
-						// 璁剧疆鎵撳嵃浠诲姟
-						jcapi.startJob({
-								totalCount: 1,
-								density: this.printDensity,
-								labelType: this.labelType,
-								printMode: this.printMode,
-							},
-							function(r) {
-								if (r.code == 0) {
-									// 鎵撳嵃鏁版嵁
-									// 瀛樺偍鍘熷鎵撳嵃璁℃暟鍥炶皟
-									const originalPrintCountCallback =
-										jcapi.didReadPrintCountInfo._callback;
-									// 涓存椂鎵撳嵃璁℃暟鍥炶皟锛岀敤浜庣‘璁ゆ墦鍗板畬鎴�
-									const tempPrintCountCallback = (printResult) => {
-										// 鎭㈠鍘熷鍥炶皟
-										jcapi.didReadPrintCountInfo(originalPrintCountCallback);
-										// 娓呴櫎鎵撳嵃瓒呮椂
-										clearTimeout(printTimeout);
-										// 缁撴潫褰撳墠鎵撳嵃浠诲姟
-										// 瑙f瀽Promise琛ㄧず鎵撳嵃瀹屾垚
-										resolve();
-									};
-									// 璁剧疆涓存椂鍥炶皟
-									jcapi.didReadPrintCountInfo(tempPrintCountCallback);
+          // 濉厖鍙傛暟鍊�
+          this.getDrawLabelText(
+            11,
+            7,
+            30,
+            8,
+            ht,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            11,
+            12,
+            32,
+            8,
+            lj,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            14,
+            17,
+            30,
+            8,
+            ljms,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            17,
+            23.5,
+            27,
+            8,
+            fh,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            14,
+            28.5,
+            55,
+            8,
+            scdt,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            14,
+            32.7,
+            55,
+            8,
+            scph,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            14,
+            37.5,
+            55,
+            8,
+            fhdw,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          this.getDrawLabelText(
+            14,
+            42.5,
+            55,
+            8,
+            shdw,
+            2.5,
+            0,
+            LineModeType.AutoHeight,
+            0,
+            0,
+            0,
+            0,
+            1
+          );
+          // 鐢熸垚鎵撳嵃鏁版嵁
+          let imageJsonObj = jcapi.generateLabelJson();
 
-									// 娣诲姞鎵撳嵃瓒呮椂澶勭悊
-									const printTimeout = setTimeout(() => {
-										jcapi.didReadPrintCountInfo(originalPrintCountCallback);
-										reject(new Error("鎵撳嵃瓒呮椂鏈搷搴�"));
-									}, 20000);
+          // 璁剧疆鎵撳嵃浠诲姟
+          jcapi.startJob(
+            {
+              totalCount: 1,
+              density: this.printDensity,
+              labelType: this.labelType,
+              printMode: this.printMode,
+            },
+            function (r) {
+              if (r.code == 0) {
+                // 鎵撳嵃鏁版嵁
+                // 瀛樺偍鍘熷鎵撳嵃璁℃暟鍥炶皟
+                const originalPrintCountCallback =
+                  jcapi.didReadPrintCountInfo._callback;
+                // 涓存椂鎵撳嵃璁℃暟鍥炶皟锛岀敤浜庣‘璁ゆ墦鍗板畬鎴�
+                const tempPrintCountCallback = (printResult) => {
+                  // 鎭㈠鍘熷鍥炶皟
+                  jcapi.didReadPrintCountInfo(originalPrintCountCallback);
+                  // 娓呴櫎鎵撳嵃瓒呮椂
+                  clearTimeout(printTimeout);
+                  // 缁撴潫褰撳墠鎵撳嵃浠诲姟
+                  // 瑙f瀽Promise琛ㄧず鎵撳嵃瀹屾垚
+                  resolve();
+                };
+                // 璁剧疆涓存椂鍥炶皟
+                jcapi.didReadPrintCountInfo(tempPrintCountCallback);
 
-									jcapi.printData(
-										imageJsonObj, {
-											printQuantity: 1,
-										},
-										function(r) {
-											if (r.code != 0) {
-												// 鎭㈠鍘熷鍥炶皟
-												jcapi.didReadPrintCountInfo(
-													originalPrintCountCallback);
-												// 缁撴潫褰撳墠鎵撳嵃浠诲姟
-												reject(new Error(r.msg || "鎵撳嵃澶辫触"));
-											}
-											// 鎵撳嵃鏁版嵁鍙戦�佹垚鍔熷悗绛夊緟鎵撳嵃璁℃暟鍥炶皟纭瀹為檯鎵撳嵃瀹屾垚
-										}
-									);
-								} else {
-									reject(new Error(r.msg || "璁剧疆鎵撳嵃浠诲姟澶辫触"));
-								}
-							}
-						);
-					} catch (error) {
-						reject(error);
-					}
-				});
-			},
-			tapQuery(item) {
-				this.maskShow = false;
-				// 杩炴帴鎵撳嵃鏈�
-				let _this = this;
+                // 娣诲姞鎵撳嵃瓒呮椂澶勭悊
+                const printTimeout = setTimeout(() => {
+                  jcapi.didReadPrintCountInfo(originalPrintCountCallback);
+                  reject(new Error("鎵撳嵃瓒呮椂鏈搷搴�"));
+                }, 20000);
 
-				// 璁剧疆涓鸿繛鎺ヤ腑鐘舵��
-				this.connectionStatus = "connecting";
+                jcapi.printData(
+                  imageJsonObj,
+                  {
+                    printQuantity: 1,
+                  },
+                  function (r) {
+                    if (r.code != 0) {
+                      // 鎭㈠鍘熷鍥炶皟
+                      jcapi.didReadPrintCountInfo(originalPrintCountCallback);
+                      // 缁撴潫褰撳墠鎵撳嵃浠诲姟
+                      reject(new Error(r.msg || "鎵撳嵃澶辫触"));
+                    }
+                    // 鎵撳嵃鏁版嵁鍙戦�佹垚鍔熷悗绛夊緟鎵撳嵃璁℃暟鍥炶皟纭瀹為檯鎵撳嵃瀹屾垚
+                  }
+                );
+              } else {
+                reject(new Error(r.msg || "璁剧疆鎵撳嵃浠诲姟澶辫触"));
+              }
+            }
+          );
+        } catch (error) {
+          reject(error);
+        }
+      });
+    },
+    async tapQuery(item) {
+      this.maskShow = false;
+      try {
+        await bluetooth.connect(item);
+        uni.showToast({ title: "杩炴帴鎴愬姛" });
 
-				jcapi.openPrinterByDevice({
-						address: item.address,
-						name: item.name,
-						deviceType: 0, // 璁惧绫诲瀷锛�0-钃濈墮锛�1-缃戠粶
-					},
-					function(r) {
-						// 鍦╰apQuery鏂规硶涓紝杩炴帴鎴愬姛鏃舵坊鍔犱繚瀛樿繛鎺ヤ俊鎭殑浠g爜
-						if (r.code == 0) {
-							_this.connectedDevice = item;
-							_this.connectionStatus = "connected";
-							// 淇濆瓨杩炴帴淇℃伅鍒版湰鍦板瓨鍌�
-							uni.setStorageSync("bluetoothConnection", item);
-							uni.showToast({
-								title: "杩炴帴鎴愬姛",
-								duration: 1500,
-							});
-							// 寮�濮嬪鐞嗘墦鍗伴槦鍒�
-							if (_this.printQueue.length > 0) {
-								_this.processPrintQueue();
-							}
-						} else {
-							_this.connectionStatus = "disconnected";
-							uni.showToast({
-								title: "杩炴帴澶辫触: " + (r.msg || "鏈煡閿欒"),
-								icon: "none",
-								duration: 2000,
-							});
-						}
-					}
-				);
-			},
-			//鎵撳嵃鐩稿叧
-			searchDevice() {
-				let _this = this;
-				uni.openBluetoothAdapter({
-					// 纭钃濈墮鏄惁鎵撳紑
-					success(r) {
-						uni.showLoading({
-							title: "鎼滅储涓�...",
-						});
-						// 鏈巿浜堣摑鐗欑浉鍏虫潈闄愬拰鏈墦寮�鎵嬫満瀹氫綅浼氭悳绱笉鍒拌澶�
-						jcapi.getBluetoothDevices(function(r) {
-							console.log("device:" + JSON.stringify(r));
-							// 鎼滅储鍒拌澶囧洖璋�
-							uni.hideLoading();
-							// 濡傛灉涔嬪墠鏈夎繛鎺ョ殑璁惧浣嗕笉鍦ㄦ悳绱㈢粨鏋滀腑锛岃鏄庤澶囧凡鏇存崲
-							if (
-								_this.connectedDevice &&
-								!r.some((dev) => dev.address === _this.connectedDevice.address)
-							) {
-								_this.connectedDevice = null;
-								uni.showToast({
-									icon: "none",
-									title: "宸茶繛鎺ョ殑钃濈墮璁惧宸叉洿鎹紝璇烽噸鏂伴�夋嫨",
-									duration: 2000,
-								});
-							}
-							_this.listDevice = r;
-							_this.maskShow = true;
-						});
-					},
-					fail(e) {
-						uni.showModal({
-							title: "鎻愮ず",
-							content: "鎵撳紑钃濈墮澶辫触锛岃妫�鏌ヨ摑鐗欐槸鍚﹀紑鍚�",
-							showCancel: false,
-						});
-						console.log("寮�鍚摑鐗欒澶囧け璐�" + e);
-					},
-				});
-			},
-			// 缁樺埗妯嚎
-			getDrawLabelLine(x, y, width, height, rotate, lineType) {
-				jcapi.drawLabelLine({
-					x: x,
-					y: y,
-					width: width,
-					height: height,
-					rotate: rotate,
-					lineType: lineType,
-				});
-			},
-			// 濉啿鏂囧瓧鏍囬
-			getDrawLabelText(
-				x,
-				y,
-				width,
-				height,
-				value,
-				fontSize,
-				rotate,
-				lineMode,
-				lineSpace,
-				letterSpace,
-				textAlignHorizontal,
-				textAlignVertical,
-				bold
-			) {
-				jcapi.drawLabelText({
-					x: x,
-					y: y,
-					width: width,
-					height: height,
-					value: value,
-					fontSize: fontSize,
-					rotate: rotate,
-					lineMode: lineMode,
-					lineSpace: lineSpace,
-					letterSpace: letterSpace,
-					textAlignHorizontal: textAlignHorizontal,
-					textAlignVertical: textAlignVertical,
-					bold: bold,
-				});
-			},
-			getConnectionStatusText() {
-				switch (this.connectionStatus) {
-					case "connected":
-						return "钃濈墮宸茶繛鎺�";
-					case "connecting":
-						return "钃濈墮杩炴帴涓�...";
-					default:
-						return "钃濈墮鏈繛鎺�";
-				}
-			},
-			getPrintStatusText() {
-				switch (this.printStatus) {
-					case "printing":
-						const total = this.printQueue.length + 1; // 闃熷垪涓墿浣� + 褰撳墠姝e湪鎵撳嵃
-						const current = total - this.printQueue.length;
-						return `鎵撳嵃涓�(${current}/${total})`;
-					case "error":
-						return `鎵撳嵃閿欒: ${this.errorMessage}`;
-					default:
-						return "灏辩华";
-				}
-			},
-			//鍒锋柊涓婁竴涓〉闈�
-			refreshLastPage(no) {
-				// 鍛婄煡 A.vue 鏇存柊鏁版嵁
-				// 鑾峰彇椤甸潰鏍�
-				let pages = getCurrentPages();
+        // 濡傛灉鏈夋墦鍗颁换鍔★紝缁х画鎵撳嵃
+        if (this.printQueue.length) {
+          this.processPrintQueue();
+        }
+      } catch (e) {
+        uni.showToast({
+          icon: "none",
+          title: "杩炴帴澶辫触",
+        });
+      }
+    },
 
-				// 鑾峰彇涓婁竴椤垫爤
-				let prevPage = pages[pages.length - 2];
+    //鎵撳嵃鐩稿叧
+    async searchDevice() {
+      try {
+        uni.showLoading({ title: "鎼滅储涓�..." });
+        const devices = await bluetooth.searchDevices();
+        uni.hideLoading();
 
-				// 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�)
-				prevPage.$vm.setNo(no);
+        this.listDevice = devices;
+        this.maskShow = true;
+      } catch (e) {
+        uni.hideLoading();
+        uni.showModal({
+          title: "鎻愮ず",
+          content: "璇风‘璁よ摑鐗欏拰瀹氫綅宸插紑鍚�",
+          showCancel: false,
+        });
+      }
+    },
 
-				// 杩斿洖涓婁竴椤�
-				uni.navigateBack({
-					delta: 1,
-				});
-			},
-		},
-	};
+    // 缁樺埗妯嚎
+    getDrawLabelLine(x, y, width, height, rotate, lineType) {
+      jcapi.drawLabelLine({
+        x: x,
+        y: y,
+        width: width,
+        height: height,
+        rotate: rotate,
+        lineType: lineType,
+      });
+    },
+    // 濉啿鏂囧瓧鏍囬
+    getDrawLabelText(
+      x,
+      y,
+      width,
+      height,
+      value,
+      fontSize,
+      rotate,
+      lineMode,
+      lineSpace,
+      letterSpace,
+      textAlignHorizontal,
+      textAlignVertical,
+      bold
+    ) {
+      jcapi.drawLabelText({
+        x: x,
+        y: y,
+        width: width,
+        height: height,
+        value: value,
+        fontSize: fontSize,
+        rotate: rotate,
+        lineMode: lineMode,
+        lineSpace: lineSpace,
+        letterSpace: letterSpace,
+        textAlignHorizontal: textAlignHorizontal,
+        textAlignVertical: textAlignVertical,
+        bold: bold,
+      });
+    },
+    getConnectionStatusText() {
+      switch (this.connectionStatus) {
+        case "connected":
+          return "钃濈墮宸茶繛鎺�";
+        case "connecting":
+          return "钃濈墮杩炴帴涓�...";
+        default:
+          return "钃濈墮鏈繛鎺�";
+      }
+    },
+    getPrintStatusText() {
+      switch (this.printStatus) {
+        case "printing":
+          const total = this.printQueue.length + 1; // 闃熷垪涓墿浣� + 褰撳墠姝e湪鎵撳嵃
+          const current = total - this.printQueue.length;
+          return `鎵撳嵃涓�(${current}/${total})`;
+        case "error":
+          return `鎵撳嵃閿欒: ${this.errorMessage}`;
+        default:
+          return "灏辩华";
+      }
+    },
+    //鍒锋柊涓婁竴涓〉闈�
+    refreshLastPage(no) {
+      // 鍛婄煡 A.vue 鏇存柊鏁版嵁
+      // 鑾峰彇椤甸潰鏍�
+      let pages = getCurrentPages();
+
+      // 鑾峰彇涓婁竴椤垫爤
+      let prevPage = pages[pages.length - 2];
+
+      // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�)
+      prevPage.$vm.setNo(no);
+
+      // 杩斿洖涓婁竴椤�
+      uni.navigateBack({
+        delta: 1,
+      });
+    },
+  },
+};
 </script>
 <style lang="scss">
-	.finishProductIn-locno-bg {
-		background-color: #f6f9ff;
-		background-image: url("~@/static/custom/finishProductIn/locNoBg.png");
-		// background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
-		padding: 0 20rpx;
-		background-attachment: fixed;
-		background-size: 100% auto;
-		background-repeat: no-repeat;
-		position: fixed;
-		top: 0;
-		bottom: 0;
-		width: 100%;
-		z-index: -1;
-	}
+.finishProductIn-locno-bg {
+  background-color: #f6f9ff;
+  background-image: url("~@/static/custom/finishProductIn/locNoBg.png");
+  // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
+  padding: 0 20rpx;
+  background-attachment: fixed;
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  width: 100%;
+  z-index: -1;
+}
 
-	.finishProductIn-locno-search {
-		padding: 40rpx 30rpx 20rpx 30rpx;
-	}
+.finishProductIn-locno-search {
+  padding: 40rpx 30rpx 20rpx 30rpx;
+}
 
-	.wrap .finishProductIn-locno-scroll-list {
-		height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
-		width: 100%;
-	}
+.wrap .finishProductIn-locno-scroll-list {
+  height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
+  width: 100%;
+}
 
-	.finishProductIn-locno-scroll-list-group {
-		::v-deep .u-cell-item-box {
-			background-color: rgba(250, 252, 255, 0.36) !important;
-			padding: 0rpx 30rpx;
-		}
+.finishProductIn-locno-scroll-list-group {
+  ::v-deep .u-cell-item-box {
+    background-color: rgba(250, 252, 255, 0.36) !important;
+    padding: 0rpx 30rpx;
+  }
 
-		.content {
-			font-size: 12px;
-			background-color: #ffffff;
-			box-sizing: border-box;
-			border-radius: 10rpx;
-			margin: 0rpx 0rpx 16rpx;
-			padding: 20rpx 8rpx;
-			box-shadow: none;
-			display: flex;
-			align-items: center;
+  .content {
+    font-size: 12px;
+    background-color: #ffffff;
+    box-sizing: border-box;
+    border-radius: 10rpx;
+    margin: 0rpx 0rpx 16rpx;
+    padding: 20rpx 8rpx;
+    box-shadow: none;
+    display: flex;
+    align-items: center;
 
-			.content-header {
-				width: 40rpx;
-				height: 90rpx;
-				display: flex;
-				align-items: center;
+    .content-header {
+      width: 40rpx;
+      height: 90rpx;
+      display: flex;
+      align-items: center;
 
-				.content-header-icon {
-					background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
-					background-size: 100% auto;
-					background-repeat: no-repeat;
-					height: 28rpx;
-					width: 28rpx;
-				}
+      .content-header-icon {
+        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
+        background-size: 100% auto;
+        background-repeat: no-repeat;
+        height: 28rpx;
+        width: 28rpx;
+      }
 
-				.content-header-title {
-					margin-left: 11rpx;
-					font-size: 26rpx;
-					font-weight: bold;
-					color: #3d52f5;
-				}
-			}
+      .content-header-title {
+        margin-left: 11rpx;
+        font-size: 26rpx;
+        font-weight: bold;
+        color: #3d52f5;
+      }
+    }
 
-			.content-body {
-				flex: 1;
-				background: #f5f9ff;
-				border-radius: 10rpx;
-				padding: 0rpx 23rpx;
+    .content-body {
+      flex: 1;
+      background: #f5f9ff;
+      border-radius: 10rpx;
+      padding: 0rpx 23rpx;
 
-				.row-list {
-					height: 60rpx;
-					display: flex;
-					flex-direction: row;
-					padding: 0px;
-					align-items: center;
-				}
+      .row-list {
+        height: 60rpx;
+        display: flex;
+        flex-direction: row;
+        padding: 0px;
+        align-items: center;
+      }
 
-				.row-list ._label {
-					display: flex;
-					flex: 0.8;
-					color: #909399;
-					align-items: center;
+      .row-list ._label {
+        display: flex;
+        flex: 0.8;
+        color: #909399;
+        align-items: center;
 
-					._label-icon-1 {
-						background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height: 26rpx;
-						width: 26rpx;
-					}
+        ._label-icon-1 {
+          background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
 
-					._label-icon-2 {
-						background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height: 26rpx;
-						width: 26rpx;
-					}
+        ._label-icon-2 {
+          background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
 
-					._label-icon-3 {
-						background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height: 26rpx;
-						width: 26rpx;
-					}
+        ._label-icon-3 {
+          background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
 
-					._label-name {
-						margin-left: 11rpx;
-						font-size: 26rpx;
-						font-weight: 500;
-						color: #666666;
-					}
-				}
+        ._label-name {
+          margin-left: 11rpx;
+          font-size: 26rpx;
+          font-weight: 500;
+          color: #666666;
+        }
+      }
 
-				.row-list ._content {
-					flex: 1.5;
-					text-align: right;
-					color: #909399;
-					font-size: 24rpx;
-				}
+      .row-list ._content {
+        flex: 1.5;
+        text-align: right;
+        color: #909399;
+        font-size: 24rpx;
+      }
 
-				.row-list .s1 {
-					color: #d35651;
-				}
-			}
-		}
-	}
+      .row-list .s1 {
+        color: #d35651;
+      }
+    }
+  }
+}
 
-	.navbar-right {
-		font-weight: 500;
-		font-size: 13px;
-		color: #0b0b0b;
-		line-height: 36rpx;
-		margin-right: 32rpx;
-	}
+.navbar-right {
+  font-weight: 500;
+  font-size: 13px;
+  color: #0b0b0b;
+  line-height: 36rpx;
+  margin-right: 32rpx;
+}
 
-	/* 妯℃�佹鏍峰紡浼樺寲 */
-	.u-modal {
-		--modal-width: 85% !important;
-		--modal-radius: 16rpx !important;
-		--modal-bg-color: #ffffff !important;
-	}
+/* 妯℃�佹鏍峰紡浼樺寲 */
+.u-modal {
+  --modal-width: 85% !important;
+  --modal-radius: 16rpx !important;
+  --modal-bg-color: #ffffff !important;
+}
 
-	/* 妯℃�佹鍐呭鍖哄煙 */
-	.uni-scroll_box {
-		height: 500rpx !important;
-		padding: 20rpx;
-	}
+/* 妯℃�佹鍐呭鍖哄煙 */
+.uni-scroll_box {
+  height: 500rpx !important;
+  padding: 20rpx;
+}
 
-	/* 璁惧鍒楄〃椤规牱寮� */
-	.device-item {
-		background-color: #f5f9ff;
-		border-radius: 12rpx;
-		padding: 20rpx;
-		margin-bottom: 16rpx;
-		box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
-	}
+/* 璁惧鍒楄〃椤规牱寮� */
+.device-item {
+  background-color: #f5f9ff;
+  border-radius: 12rpx;
+  padding: 20rpx;
+  margin-bottom: 16rpx;
+  box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
+}
 
-	/* 璁惧鍚嶇О鏍峰紡 */
-	.device-name {
-		font-size: 28rpx;
-		font-weight: 500;
-		color: #333333;
-		margin-bottom: 10rpx;
-		display: flex;
-		justify-content: space-between;
-	}
+/* 璁惧鍚嶇О鏍峰紡 */
+.device-name {
+  font-size: 28rpx;
+  font-weight: 500;
+  color: #333333;
+  margin-bottom: 10rpx;
+  display: flex;
+  justify-content: space-between;
+}
 
-	/* UUID鏂囨湰鏍峰紡 */
-	.device-uuid {
-		font-size: 28rpx;
-		font-weight: 500;
-		color: #333333;
-		margin-bottom: 10rpx;
-		display: flex;
-		justify-content: space-between;
-	}
+/* UUID鏂囨湰鏍峰紡 */
+.device-uuid {
+  font-size: 28rpx;
+  font-weight: 500;
+  color: #333333;
+  margin-bottom: 10rpx;
+  display: flex;
+  justify-content: space-between;
+}
 
-	/* 妯℃�佹鏍囬 */
-	.modal-title {
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #333333;
-		text-align: center;
-		margin-bottom: 20rpx;
-		padding-bottom: 10rpx;
-		border-bottom: 1rpx solid #eeeeee;
-	}
+/* 妯℃�佹鏍囬 */
+.modal-title {
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #333333;
+  text-align: center;
+  margin-bottom: 20rpx;
+  padding-bottom: 10rpx;
+  border-bottom: 1rpx solid #eeeeee;
+}
 
-	/* 绌虹姸鎬佹彁绀� */
-	.empty-tip {
-		text-align: center;
-		padding: 100rpx 0;
-		color: #999999;
-		font-size: 28rpx;
-	}
+/* 绌虹姸鎬佹彁绀� */
+.empty-tip {
+  text-align: center;
+  padding: 100rpx 0;
+  color: #999999;
+  font-size: 28rpx;
+}
 
-	.status-indicator {
-		padding: 8rpx 16rpx;
-		font-size: 24rpx;
-		text-align: center;
-		color: #fff;
-		background-color: #666;
+.status-indicator {
+  padding: 8rpx 16rpx;
+  font-size: 24rpx;
+  text-align: center;
+  color: #fff;
+  background-color: #666;
 
-		&.connected {
-			background-color: #07c160;
-		}
+  &.connected {
+    background-color: #07c160;
+  }
 
-		&.connecting {
-			background-color: #ff976a;
-		}
+  &.connecting {
+    background-color: #ff976a;
+  }
 
-		&.disconnected {
-			background-color: #f53f3f;
-		}
+  &.disconnected {
+    background-color: #f53f3f;
+  }
 
-		.print-status {
-			margin-left: 10rpx;
-			font-size: 22rpx;
-		}
-	}
+  .print-status {
+    margin-left: 10rpx;
+    font-size: 22rpx;
+  }
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3