From eeff5fca55deb0de745405871ff1ae52061bc98d Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期五, 18 七月 2025 11:26:12 +0800 Subject: [PATCH] 优化打印蓝牙连接弹出框,增加监听打印回调解决全部打印只能打印一张问题 --- pages/wareHouse/nuclearScale/nuclearscalerecord.vue | 1466 ++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 901 insertions(+), 565 deletions(-) diff --git a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue index 260c131..2da0918 100644 --- a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue +++ b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue @@ -1,600 +1,936 @@ <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="loadMore"> - <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.value0 }} - </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.value1 }} - </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.value2 }} - </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.value3 }} - </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.value4 }} - </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.value6 }} - </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="loadMore"> - <u-loadmore :status="loadStatus"></u-loadmore> - </view> - </scroll-view> - </view> - <u-toast ref="uToast" /> - <view v-if="maskShow" class="uni-mask" @touchmove.stop.prevent="moveHandle" @click="maskclose"> - <scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle" @click.stop="moveHandle"> - <view class="uni-list-box" v-for="(item, index) in listDevice" :key="index" @click="tapQuery(item)"> - <view> - <view class="uni-list_name">鍚嶇О锛歿{ item.name }}</view> - <view class="uni-list_item">UUID:{{ item.address }}</view> - </view> - </view> - </scroll-view> - </view> - </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"> + <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> + <!-- </scroll-view> + </view> + </u-modal> --> + <!-- 杩炴帴鍜屾墦鍗扮姸鎬佹寚绀哄櫒 --> + <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> + </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: '', - alllist: [], - originList: [], - query: { - current: 1, - size: 10 - }, - list: [ - { - value0: '123456789', - value1: '123456789', - value2: '123456789', - value3: '123456789', - value4: '123456789', - value5: '123456789', - value6: '123456789', - value7: '123456789' - }, - { - value0: '123456789', - value1: '123456789', - value2: '123456789', - value3: '123456789', - value4: '123456789', - value5: '123456789', - value6: '123456789', - value7: '123456789' - } - ], - count: 0, - loadStatus: 'loading', - maskShow: false, - listDevice: [], //钃濈墮璁惧鏁版嵁 - pritList: [] - }; - }, - onLoad() { - this.$u.api.finishProductIn.fetchList().then(res => { - this.alllist = res.data - this.originList = res.data - this.loadList() - }) - // 鍒濆鍖朣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(function (r) { - console.log(r) - if (r.code == 23) { - // 鎵撳嵃鏈烘柇寮�杩炴帴 - _this.connectedDevice = null - } - uni.showToast({ - icon: 'none', - title: JSON.stringify(r), - duration: 2 * 1000 - }) - }) - }, - methods: { - loadMore() { - if (this.loadStatus == "nomore" || this.loadStatus == "loading") { - return - } - this.loadStatus = "loading"; - setTimeout(() => { - this.query.current += 1; - this.loadList(); - }, 100); - }, - loadList() { - const data = this.originList.slice((this.query.current - 1) * this.query.size, this.query.current * this.query.size) - this.list = this.list.concat(data); - this.loadStatus = "loadmore"; - if (!data || data.length < this.query.size) { - this.loadStatus = "nomore"; - } - }, - search(value) { - this.list = []; - this.query.current = 1; - if (value) { - this.originList = this.alllist.filter(item => item.locNo.includes(value)) - } else { - this.originList = this.alllist - } - this.loadList() - }, - // 鎵撳嵃鍗曚釜淇℃伅 - selectNo(item) { - let that = this - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: function (res) { - if (res.confirm) { - that.searchDevice() - that.pritList = [item] - } - } - }); - }, - // 鎵撳嵃鍏ㄩ儴淇℃伅 - goPrintAll() { - let that = this - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: function (res) { - if (res.confirm) { - that.searchDevice() - that.pritList = this.list - } - } - }); - }, - moveHandle() { + // 鐩戝惉閿欒鍥炶皟 + 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() { + console.log('disconnected1111111111111') + if (!this.connectedDevice) { + this.connectionStatus = 'disconnected'; + return false; + } + console.log('disconnected2222222222') - }, - maskclose() { + // 璁剧疆涓鸿繛鎺ヤ腑鐘舵�� + this.connectionStatus = 'connecting'; + console.log('disconnected33333333333') - }, - //鎵撳嵃浜岀淮鐮� - async printQrCode(item) { - const params = { - rwMatlBindId: item.id - } - let res = await this.$u.api.dailyPaper.zongjianLabelInfo(params) - if (!res.data) { - this.$refs.uToast.show({ - title: '鏈煡璇㈠埌璇ユ爣绛句俊鎭紒', - type: 'warning ' - }) - return - } - // 鍒濆鍖栫敾鏉� - jcapi.initDrawingBoard({ - width: 50, - height: 100, - rotate: 0 - }); + // 澧炲己杩炴帴鐘舵�佹娴� + 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); + } + }); + }, - // // 缁樺埗浜岀淮鐮� - jcapi.drawLabelQrCode({ - x: 14.5, - y: 74, - width: 20, - height: 20, - value: jsonString, - rotate: 0, - codeType: QrCodeType.QrCode, - }); - // 缁樺埗妯嚎 瀹炵嚎8鏉� - let sum = 4; - for (let i = 1; i < 13; i++) { - this.getDrawLabelLine(4, sum, 46, 0.5, 0, LineType.Solid) // 瀹炵嚎 - sum = (i * 6) + 4 - } - // 浜岀淮鐮佸ぇ妗� - this.getDrawLabelLine(4, 97, 46, 0.5, 0, LineType.Solid) // 瀹炵嚎9 + // 娣诲姞鍒版墦鍗伴槦鍒� + addToPrintQueue(items) { + if (!Array.isArray(items)) { + items = [items]; + } - //缁樺埗绔栫嚎 - this.getDrawLabelLine(4, 4, 0.5, 97, 0, LineType.Solid) // 绔栫嚎1 - this.getDrawLabelLine(20, 4, 0.5, 66, 0, LineType.Solid) // 绔栫嚎2 - this.getDrawLabelLine(44.5, 4, 0.5, 97, 0, LineType.Solid) // 绔栫嚎2 + this.printQueue.push(...items); + // 濡傛灉涓嶅湪鎵撳嵃涓紝鍒欏紑濮嬪鐞嗛槦鍒� + if (!this.printing) { + this.processPrintQueue(); + } + }, - // 濉啿鏂囧瓧鏍囬 - this.getDrawLabelText(5, 5, 20, 20, '缂� 鍙�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 11, 20, 20, '宸ュ崟鍙�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 17, 20, 20, '鐗� 鍙�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 23, 20, 20, '鐗囧锛坢m锛�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 29, 20, 20, '鍘氬害锛坢m锛�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 35, 20, 20, '閲嶉噺锛圞G锛�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 41, 20, 20, '闀垮害锛坢锛�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 47, 20, 20, '鐢熶骇浜�:', 3.6, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 53, 20, 20, '鐢熶骇鏃堕棿:', 3.4, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 59, 20, 20, '鍘傚:', 3.4, 0, LineModeType.AutoHeight, 0, 0, 0, 1) - this.getDrawLabelText(5, 65, 20, 20, '閾佹崯:', 3.4, 0, LineModeType.AutoHeight, 0, 0, 0, 1) + // 澶勭悊鎵撳嵃闃熷垪 + async processPrintQueue() { + while (this.printQueue.length > 0) { + console.log('111111111111111', this.printQueue.length) + + // 妫�鏌ヨ繛鎺ョ姸鎬� + console.log('12222222222222222') + const isConnected = await this.checkBluetoothConnection(); + console.log('isConnected',isConnected) + if (!isConnected) { + // 濡傛灉鏈繛鎺ワ紝鏄剧ず钃濈墮杩炴帴瀵硅瘽妗� + this.searchDevice(); + // 涓嶆槸鐩存帴return锛岃�屾槸绛夊緟鐢ㄦ埛杩炴帴鍚庡啀缁х画澶勭悊 + return; + } - // // 濉啿鍙傛暟鍊� - this.getDrawLabelText(22, 5, 35, 12, labelNo, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 11, 35, 12, optaskNo, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 17, 35, 12, grade, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 23, 35, 12, sliceWidth, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 29, 35, 12, thickness, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 35, 35, 12, wweight, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 41, 35, 12, llength, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 47, 35, 12, reportName, 2, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 53, 35, 12, reportTime, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 59, 35, 12, supplierVenderName, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) - this.getDrawLabelText(22, 65, 35, 12, ironLoss, 3, 0, LineModeType.AutoHeight, 0, 0, 0, 0) + this.printing = true; + this.printStatus = 'printing'; - // 鐢熸垚鎵撳嵃鏁版嵁 - let imageJsonObj = jcapi.generateLabelJson() - // 璁剧疆鎵撳嵃浠诲姟 - jcapi.startJob({ - totalCount: 1, - density: this.printDensity, - labelType: this.labelType, - printMode: this.printMode, - }, function (r) { - if (r.code == 0) { - // 鎵撳嵃鏁版嵁 - jcapi.printData(imageJsonObj, { - "printQuantity": 1, - }, function (r) { - if (r.code == 0) { - console.log("鎵撳嵃鎴愬姛") - } else { - console.log("鎵撳嵃澶辫触") - } - }) - } else { - console.log("璁剧疆鎵撳嵃浠诲姟澶辫触") - } - }) - }, - tapQuery(item) { - this.maskShow = false - // 杩炴帴鎵撳嵃鏈� - let _this = this; - console.log(item) - jcapi.openPrinterByDevice({ - address: item.address, - name: item.name, - deviceType: item.deviceType // 璁惧绫诲瀷锛�0-钃濈墮锛�1-缃戠粶 - }, function (r) { - uni.showToast({ - title: (r.code == 0) ? "杩炴帴鎴愬姛" : "杩炴帴澶辫触", - duration: 2 * 1000 - }) - if (r.code == 0) { - _this.connectedDevice = item - // 缁樻爣绛捐繘琛屾墦鍗� - _this.pritList.forEac(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() - _this.listDevice = r; - _this.maskShow = true - }) - }, - fail(e) { - uni.showModal({ - confirmText: "鎵撳紑钃濈墮澶辫触" - }) - 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) { - 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 - }) - }, + // 鍙栧嚭闃熷垪涓殑绗竴涓换鍔� + const item = this.printQueue.shift(); + console.log('鎵撳嵃鐨勪换鍔�',item) - //鍒锋柊涓婁竴涓〉闈� - refreshLastPage(no) { - // 鍛婄煡 A.vue 鏇存柊鏁版嵁 - // 鑾峰彇椤甸潰鏍� - let pages = getCurrentPages() + try { + // 鎵ц鎵撳嵃 + await this.printQrCode(item); - // 鑾峰彇涓婁竴椤垫爤 - let prevPage = pages[pages.length - 2] + // 鎵撳嵃鎴愬姛鍚庣户缁鐞嗕笅涓�涓� + uni.showToast({ + title: '鎵撳嵃鎴愬姛', + icon: 'success', + duration: 1000 + }); - // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) - prevPage.$vm.setNo(no) + // 鐭殏寤惰繜锛岄伩鍏嶆墦鍗版満缂撳瓨婧㈠嚭 + await new Promise(resolve => setTimeout(resolve, 1000)); + } catch (error) { + console.error('鎵撳嵃鍑洪敊:', error); + this.printStatus = 'error'; + this.errorMessage = error.message || '鎵撳嵃鏃跺彂鐢熸湭鐭ラ敊璇�'; + this.printing = false; - // 杩斿洖涓婁竴椤� - uni.navigateBack({ - delta: 1 - }) - }, - } -}; + // 璁板綍澶辫触鐨勪换鍔★紝涓嶉噸鏂版坊鍔犲埌闃熷垪 + this.failedPrintJobs = this.failedPrintJobs || []; + this.failedPrintJobs.push(item); + + uni.showToast({ + title: `鎵撳嵃澶辫触: ${this.errorMessage}`, + icon: 'none', + duration: 2000 + }); + // 缁х画澶勭悊涓嬩竴涓换鍔� + continue; + } + } + + 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) => { + console.log('item de shuju ', item) + // const params = { + // rwMatlBindId: item.id + // }; + try { + let res = { + data: { + ht:'1', + lj:'1', + ljms:'1', + fh:'1', + scdt:'1', + scph:'1', + fhdw:'1', + shdw:'1', + }} + // 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() + console.log('鎵撳嵃鐨勬暟鎹�',imageJsonObj) + + // 璁剧疆鎵撳嵃浠诲姟 + 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) => { + console.log("鎵撳嵃璁℃暟鍥炶皟:", printResult); + // 鎭㈠鍘熷鍥炶皟 + jcapi.didReadPrintCountInfo(originalPrintCountCallback); + // 缁撴潫褰撳墠鎵撳嵃浠诲姟 + // 瑙f瀽Promise琛ㄧず鎵撳嵃瀹屾垚 + resolve(); + }; + // 璁剧疆涓存椂鍥炶皟 + jcapi.didReadPrintCountInfo(tempPrintCountCallback); + + // 娣诲姞鎵撳嵃瓒呮椂澶勭悊 + const printTimeout = setTimeout(() => { + jcapi.didReadPrintCountInfo(originalPrintCountCallback); + reject(new Error('鎵撳嵃瓒呮椂鏈搷搴�')); + }, 10000); + + jcapi.printData(imageJsonObj, { + "printQuantity": 1, + }, function(r) { + if (r.code != 0) { + console.log("鎵撳嵃澶辫触", r); + // 鎭㈠鍘熷鍥炶皟 + jcapi.didReadPrintCountInfo(originalPrintCountCallback); + // 缁撴潫褰撳墠鎵撳嵃浠诲姟 + reject(new Error(r.msg || '鎵撳嵃澶辫触')); + } + // 锟斤拷鍗版暟鎹彂閫佹垚鍔熷悗绛夊緟鎵撳嵃璁℃暟鍥炶皟纭瀹為檯鎵撳嵃瀹屾垚 + + }) + } else { + console.log("璁剧疆鎵撳嵃浠诲姟澶辫触", r) + reject(new Error(r.msg || '璁剧疆鎵撳嵃浠诲姟澶辫触')); + } + }) + } catch (error) { + console.log(error) + reject(error); + } + }); + }, + tapQuery(item) { + this.maskShow = false + // 杩炴帴鎵撳嵃鏈� + let _this = this; + console.log(item) + + // 璁剧疆涓鸿繛鎺ヤ腑鐘舵�� + 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 + }) + // 寮�濮嬪鐞嗘墦鍗伴槦鍒� + console.log('鎵撳嵃闃熷垪',_this.printQueue) + 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; -} -</style> + .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: 24rpx; + color: #666666; + word-break: break-all; + } + + /* 妯℃�佹鏍囬 */ + .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