From 3a75daf63f5b64af3388424c3de82662c20aa383 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期五, 18 七月 2025 13:49:01 +0800 Subject: [PATCH] 添加了打印超时定时器清除逻辑,确保打印成功后清除超时回调 --- pages/wareHouse/nuclearScale/nuclearscalerecord.vue | 1618 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 922 insertions(+), 696 deletions(-) diff --git a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue index 09b4a22..d80cbfe 100644 --- a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue +++ b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue @@ -1,734 +1,960 @@ <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"> - <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">{{ index + 1 }}</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.outBatchNo }} - </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.netWeight }} - </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.grossWeight }} - </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.trayWeight }} - </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.value5 }} - </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.netWeight }} - </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.value7 }} - </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="" v-for="(item, index) in listDevice" :key="index" - :show-confirm-button="true" @confirm="tapQuery(item)"> - <view class="packing-registration-param-view" @touchmove.stop.prevent="moveHandle" @click="maskclose"> - <scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle" - @click.stop="moveHandle"> - <view class="packing-registration-param-item param-extra"> - <view class="packing-registration-param-item-left"> - <text class="item-one">鍚嶇О锛�</text> - </view> - <view class="packing-registration-param-item-right"> - <text class="item-one">{{ item.name }}</text> - </view> - </view> - <view class="packing-registration-param-item param-extra"> - <view class="packing-registration-param-item-left"> - <text class="item-one">UUID:</text> - </view> - <view class="packing-registration-param-item-right"> - <text class="item-one">{{ item.address }}</text> - - </view> - </view> - </scroll-view> - </view> - </u-modal> - </view> + <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="{ + 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">{{ index + 1 }}</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.outBatchNo }} + </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.netWeight }} + </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.grossWeight }} + </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.trayWeight }} + </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.value5 }} + </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.netWeight }} + </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.value7 }} + </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"; +const jcapi = uni.requireNativePlugin("JCSDK-JCApiModule"); - // 浜岀淮鐮佺被鍨� - 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: [], //钃濈墮璁惧鏁版嵁 - pritList: [], - printDensity: 3, // 榛樿鎵撳嵃娴撳害 - labelType: 1, // 榛樿鏍囩绫诲瀷 * - // 1锛氶棿闅欑焊 - // 2锛氶粦鏍囩焊 - // 3锛氳繛缁焊 - // 4锛氬畾瀛旂焊 - // 5锛氶�忔槑绾� - printMode: 2, // 榛樿鎵撳嵃妯″紡 - // 1锛氱儹鏁� - // 2锛氱儹杞嵃 - connectedDevice: null // 宸茶繛鎺ョ殑鎵撳嵃鏈� - }; - }, - onLoad() { - this.getlist() - // 鍒濆鍖朣DK - jcapi.initSDK() - // 鐩戝惉椤电爜鍥炶皟 - jcapi.didReadPrintCountInfo(function(r) { - console.log(r) - }) +// 浜岀淮鐮佺被鍨� +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: "", // 閿欒淇℃伅 + }; + }, + onLoad() { + this.getlist(); + // 鍒濆鍖朣DK + jcapi.initSDK(); + // 鐩戝惉椤电爜鍥炶皟 + jcapi.didReadPrintCountInfo(function (r) { + console.log(r); + }); - // 鐩戝惉閿欒鍥炶皟 - jcapi.didReadPrintErrorInfo((r) => { - console.log(r) - if (r.code == 23) { - // 鎵撳嵃鏈烘柇寮�杩炴帴 - this.connectedDevice = null - uni.showToast({ - icon: 'none', - title: '鎵撳嵃鏈鸿繛鎺ュ凡鏂紑锛岃閲嶆柊杩炴帴', - duration: 2 * 1000 - }) - } else { - uni.showToast({ - icon: 'none', - title: JSON.stringify(r), - duration: 2 * 1000 - }) - } - }) - }, - methods: { - 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.workReporting - .getWorkshopOrder({ - current: this.pageNum, - size: this.pageSize - }) - .then((res) => { - this.list = res.data.records; - this.total = res.data.total; - if (this.pageSize >= this.total) { - this.status = "nomore"; - } else { - this.status = "loadmore"; - } - }); - }, - search(value) { - if (value) { - this.list = []; - this.pageSize = 10; - this.$u.api.workReporting - .getWorkshopOrder({ - 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) return false; + // 鐩戝惉閿欒鍥炶皟 + jcapi.didReadPrintErrorInfo((r) => { + console.log(r); + if (r.code == 23) { + // 鎵撳嵃鏈烘柇寮�杩炴帴 + this.connectedDevice = null; + uni.showToast({ + icon: "none", + title: "鎵撳嵃鏈鸿繛鎺ュ凡鏂紑锛岃閲嶆柊杩炴帴", + duration: 2 * 1000, + }); + } else { + uni.showToast({ + icon: "none", + title: JSON.stringify(r), + duration: 2 * 1000, + }); + } + }); + }, + methods: { + 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.workReporting + .getWorkshopOrder({ + current: this.pageNum, + size: this.pageSize, + }) + .then((res) => { + this.list = res.data.records; + this.total = res.data.total; + if (this.pageSize >= this.total) { + this.status = "nomore"; + } else { + this.status = "loadmore"; + } + }); + }, + search(value) { + if (value) { + this.list = []; + this.pageSize = 10; + this.$u.api.workReporting + .getWorkshopOrder({ + 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; + } - // 灏濊瘯鍙戦�佷竴涓畝鍗曞懡浠ゆ鏌ヨ繛鎺ョ姸鎬� - return new Promise(resolve => { - jcapi.checkPrinterStatus(this.connectedDevice.address, r => { - if (r && r.code === 0) { - resolve(true); - } else { - // 杩炴帴宸叉柇寮� - this.connectedDevice = null; - resolve(false); - } - }); - }); - }, + // 璁剧疆涓鸿繛鎺ヤ腑鐘舵�� + this.connectionStatus = "connecting"; - selectNo(item) { - let that = this - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: async function(res) { - if (res.confirm) { - // 妫�鏌ヨ摑鐗欒繛鎺ョ姸鎬� - const isConnected = await that.checkBluetoothConnection(); - if (isConnected) { - // 宸茶繛鎺ワ紝鐩存帴鎵撳嵃 - that.pritList = [item] - that.pritList.forEach(async item => { - await that.printQrCode(item) - }) - } else { - // 鏈繛鎺ユ垨杩炴帴宸叉柇寮�锛屾悳绱㈣澶� - that.searchDevice() - that.pritList = [item] - } - } - } - }); - }, - // 鎵撳嵃鍏ㄩ儴淇℃伅 - goPrintAll() { - let that = this - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: async function(res) { - if (res.confirm) { - // 妫�鏌ヨ摑鐗欒繛鎺ョ姸鎬� - const isConnected = await that.checkBluetoothConnection(); - if (isConnected) { - // 宸茶繛鎺ワ紝鐩存帴鎵撳嵃 - that.pritList = that.list - that.pritList.forEach(async item => { - await that.printQrCode(item) - }) - } else { - // 鏈繛鎺ユ垨杩炴帴宸叉柇寮�锛屾悳绱㈣澶� - that.searchDevice() - that.pritList = that.list - } - } - } - }); - }, - moveHandle() { + // 澧炲己杩炴帴鐘舵�佹娴� + 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); + } + }); + }, - }, - maskclose() { + // 娣诲姞鍒版墦鍗伴槦鍒� + addToPrintQueue(items) { + if (!Array.isArray(items)) { + items = [items]; + } - }, - //鎵撳嵃浜岀淮鐮� - async printQrCode(item) { - console.log('item de shuju ', item) - const params = { - rwMatlBindId: item.id - }; - try { - let res = await this.$u.api.dailyPaper.zongjianLabelInfo(params) - if (!res.data) { - this.$refs.uToast.show({ - title: '鏈煡璇㈠埌璇ユ爣绛句俊鎭紒', - type: 'warning ' - }) - return - } - // const res = { - // ht: 'HT20250717995352665', - // lj: '88.118.1/A0611091', - // ljms: '閾滃崟绾� 瑁搁摐-TY-鍦嗗舰-3.0', - // fh: '1083.6', - // scdt: '2025-07-14 13:46:55.0', - // scph: '2025071273-3', - // fhdw: '姹熶笢鍚堥噾鎶�鏈湁闄愬叕鍙�', - // shdw: '鏄嗗北娉板痉閫氶摐涓氭湁闄愬叕鍙�', - // } - // 浠嶢PI鍝嶅簲涓彁鍙栨墍闇�鏁版嵁 - const { - ht, - lj, - ljms, - fh, - scdt, - scph, - fhdw, - shdw - } = res.data - // const jsonString = JSON.stringify(res.data) + this.printQueue.push(...items); + // 濡傛灉涓嶅湪鎵撳嵃涓紝鍒欏紑濮嬪鐞嗛槦鍒� + if (!this.printing) { + this.processPrintQueue(); + } + }, - // 鍒濆鍖栫敾鏉� - jcapi.initDrawingBoard({ - width: 70, - height: 49, - rotate: 90 - }); + // 澶勭悊鎵撳嵃闃熷垪 + async processPrintQueue() { + while (this.printQueue.length > 0) { + // 妫�鏌ヨ繛鎺ョ姸鎬� + const isConnected = await this.checkBluetoothConnection(); + if (!isConnected) { + // 濡傛灉鏈繛鎺ワ紝鏄剧ず钃濈墮杩炴帴瀵硅瘽妗� + this.searchDevice(); + // 涓嶆槸鐩存帴return锛岃�屾槸绛夊緟鐢ㄦ埛杩炴帴鍚庡啀缁х画澶勭悊 + return; + } - // 缁樺埗浜岀淮鐮� - const qrContent = - `ht:${ht}\nlj:${lj}\nljms:${ljms}\nfh:${fh}\nscdt:${scdt}\nscph:${scph}\nfhdw:${fhdw}\nshdw:${shdw}`; - jcapi.drawLabelQrCode({ - x: 43.5, - y: 2, - width: 24, - height: 24, - value: qrContent, - rotate: 0, - codeType: QrCodeType.QrCode, - }); - // getDrawLabelLine 锛坸鍧愭爣锛寉鍧愭爣锛岀嚎鏉″搴︼紝绾挎潯楂樺害锛屾棆杞搴︼紝绾挎潯绫诲瀷锛� - // 缁樺埗妯嚎 瀹炵嚎8鏉� - 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, 21, 42, 0.3, 0, LineType.Solid) - this.getDrawLabelLine(1, 27, 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.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) // 绔栫嚎2 - // getDrawLabelText 锛�1.x鍧愭爣锛�2.y鍧愭爣锛�3.鏂囨湰妗嗗搴︼紝4.鏂囨湰妗嗛珮搴︼紝5.缁樺埗鏂囧瓧鍐呭锛�6.瀛椾綋澶у皬锛堥粯璁ら珮搴�4mm锛�,7.鏃嬭浆瑙掑害,8.鎹㈣鏂瑰紡,9.饩忛棿闅�,10.瀛楅棿闅�,11.鏂囧瓧姘村钩甯冨眬,12鏂囧瓧鍨傜洿甯冨眬) - // 鏍囬 - 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, 22.5, 25, 8, '鍙戣揣/瑁呯鏁�:', 2.5, 0, LineModeType.AutoHeight, 0, 0, 0, 1, 1) - this.getDrawLabelText(2, 27.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.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, 22.5, 27, 8, fh, 2.5, 0, LineModeType.AutoHeight, 0, 0, 0, 0, 1) - this.getDrawLabelText(14, 27.5, 55, 8, scdt, 2.5, 0, LineModeType.AutoHeight, 0, 0, 0, 0, 1) - this.getDrawLabelText(14, 32.5, 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) + this.printing = true; + this.printStatus = "printing"; - // 鐢熸垚鎵撳嵃鏁版嵁 - let imageJsonObj = jcapi.generateLabelJson() - let imageJsonObj111 = jcapi.generatePrintPreviewImage(imageJsonObj) - console.log('棰勮', imageJsonObj111) - // // 璁剧疆鎵撳嵃浠诲姟 - jcapi.startJob({ - totalCount: 1, - density: this.printDensity, - labelType: this.labelType, - printMode: this.printMode, - }, function(r) { - console.log('鎵撳嵃', r) - if (r.code == 0) { - // 鎵撳嵃鏁版嵁 - jcapi.printData(imageJsonObj, { - "printQuantity": 1, - }, function(r) { - if (r.code == 0) { - console.log("鎵撳嵃鎴愬姛") - uni.showToast({ - title: '鎵撳嵃鎴愬姛', - icon: 'success' - }) - } else { - console.log("鎵撳嵃澶辫触") - uni.showToast({ - title: '鎵撳嵃澶辫触: ' + (r.msg || '鏈煡閿欒'), - icon: 'none' - }) - } - }) - } else { - console.log("璁剧疆鎵撳嵃浠诲姟澶辫触") - } + // 鍙栧嚭闃熷垪涓殑绗竴涓换鍔� + const item = this.printQueue.shift(); - }) - } catch (error) { - console.log(error) - } - }, - tapQuery(item) { - this.maskShow = false - // 杩炴帴鎵撳嵃鏈� - let _this = this; - console.log(item) - jcapi.openPrinterByDevice({ - address: item.address, - name: item.name, - deviceType: 0 // 璁惧绫诲瀷锛�0-钃濈墮锛�1-缃戠粶 - }, function(r) { - uni.showToast({ - title: (r.code == 0) ? "杩炴帴鎴愬姛" : "杩炴帴澶辫触", - duration: 2 * 1000 - }) - if (r.code == 0) { - _this.connectedDevice = item - // 娣诲姞鎵撳嵃鍒楄〃绌哄�兼鏌� - if (!_this.pritList || _this.pritList.length === 0) { - uni.showToast({ - title: '娌℃湁鍙墦鍗扮殑鏁版嵁', - icon: 'none' - }) - return - } - // 缁樻爣绛捐繘琛屾墦鍗� - _this.pritList.forEach(async item => { - await _this.printQrCode(item) - }) - } - }) - }, - //鎵撳嵃鐩稿叧 - 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) { + try { + // 鎵ц鎵撳嵃 + await this.printQrCode(item); - 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 - }) - }, + // 鎵撳嵃鎴愬姛鍚庣户缁鐞嗕笅涓�涓� + uni.showToast({ + title: "鎵撳嵃鎴愬姛", + icon: "success", + duration: 1000, + }); - //鍒锋柊涓婁竴涓〉闈� - refreshLastPage(no) { - // 鍛婄煡 A.vue 鏇存柊鏁版嵁 - // 鑾峰彇椤甸潰鏍� - let pages = getCurrentPages() + // 鐭殏寤惰繜锛岄伩鍏嶆墦鍗版満缂撳瓨婧㈠嚭 + await new Promise((resolve) => setTimeout(resolve, 1000)); + } catch (error) { + console.error("鎵撳嵃鍑洪敊:", error); + this.printStatus = "error"; + this.errorMessage = error.message || "鎵撳嵃鏃跺彂鐢熸湭鐭ラ敊璇�"; + this.printing = false; - // 鑾峰彇涓婁竴椤垫爤 - let prevPage = pages[pages.length - 2] + // 璁板綍澶辫触鐨勪换鍔★紝涓嶉噸鏂版坊鍔犲埌闃熷垪 + this.failedPrintJobs = this.failedPrintJobs || []; + this.failedPrintJobs.push(item); - // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) - prevPage.$vm.setNo(no) + uni.showToast({ + title: `鎵撳嵃澶辫触: ${this.errorMessage}`, + icon: "none", + duration: 2000, + }); + // 缁х画澶勭悊涓嬩竴涓换鍔� + continue; + } + } - // 杩斿洖涓婁竴椤� - uni.navigateBack({ - delta: 1 - }) - }, - } - }; + 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); + } + }, + }); + }, + + // 鎵撳嵃鍏ㄩ儴淇℃伅 + 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() {}, + //鎵撳嵃浜岀淮鐮� + async printQrCode(item) { + return new Promise(async (resolve, reject) => { + const params = { + rwMatlBindId: item.id + }; + try { + let res = await this.$u.api.dailyPaper.zongjianLabelInfo(params) + if (!res.data) { + this.$refs.uToast.show({ + title: "鏈煡璇㈠埌璇ユ爣绛句俊鎭紒", + type: "warning ", + }); + reject(new Error("鏈煡璇㈠埌璇ユ爣绛句俊鎭�")); + return; + } + + // 浠嶢PI鍝嶅簲涓彁鍙栨墍闇�鏁版嵁 + const { ht, lj, ljms, fh, scdt, scph, fhdw, shdw } = res.data; + + // 鍒濆鍖栫敾鏉� + jcapi.initDrawingBoard({ + width: 70, + height: 49, + rotate: 90, + }); + + // 缁樺埗浜岀淮鐮� + const qrContent = `ht:${ht}\nlj:${lj}\nljms:${ljms}\nfh:${fh}\nscdt:${scdt}\nscph:${scph}\nfhdw:${fhdw}\nshdw:${shdw}`; + jcapi.drawLabelQrCode({ + x: 43.5, + y: 2, + width: 24, + height: 24, + value: qrContent, + rotate: 0, + codeType: QrCodeType.QrCode, + }); + + // 缁樺埗妯嚎 + 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, 21, 42, 0.3, 0, LineType.Solid); + this.getDrawLabelLine(1, 27, 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.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(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,22.5,25,8,"鍙戣揣/瑁呯鏁�:",2.5,0,LineModeType.AutoHeight,0,0,0,1,1); + this.getDrawLabelText(2,27.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.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,22.5,27,8,fh,2.5,0,LineModeType.AutoHeight,0,0,0,0,1); + this.getDrawLabelText(14,27.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(); + + // 璁剧疆鎵撳嵃浠诲姟 + 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); + + // 娣诲姞鎵撳嵃瓒呮椂澶勭悊 + const printTimeout = setTimeout(() => { + jcapi.didReadPrintCountInfo(originalPrintCountCallback); + reject(new Error("鎵撳嵃瓒呮椂鏈搷搴�")); + }, 20000); + + 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; + + // 璁剧疆涓鸿繛鎺ヤ腑鐘舵�� + this.connectionStatus = "connecting"; + + jcapi.openPrinterByDevice( + { + address: item.address, + name: item.name, + deviceType: 0, // 璁惧绫诲瀷锛�0-钃濈墮锛�1-缃戠粶 + }, + function (r) { + if (r.code == 0) { + _this.connectedDevice = item; + _this.connectionStatus = "connected"; + 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(); + + // 鑾峰彇涓婁竴椤垫爤 + 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; +} + +/* 妯℃�佹鍐呭鍖哄煙 */ +.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-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; +} + +/* 妯℃�佹鏍囬 */ +.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; +} + +.status-indicator { + padding: 8rpx 16rpx; + font-size: 24rpx; + text-align: center; + color: #fff; + background-color: #666; + + &.connected { + background-color: #07c160; + } + + &.connecting { + background-color: #ff976a; + } + + &.disconnected { + background-color: #f53f3f; + } + + .print-status { + margin-left: 10rpx; + font-size: 22rpx; + } +} </style> \ No newline at end of file -- Gitblit v1.9.3