From 55e991a9ce96d65f76f53af7dcd11b293f3e9c59 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期一, 21 七月 2025 10:54:19 +0800 Subject: [PATCH] 上线前隐藏未开发菜单 --- pages/wareHouse/nuclearScale/nuclearscalerecord.vue | 823 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 707 insertions(+), 116 deletions(-) diff --git a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue index ecc7ab9..d80cbfe 100644 --- a/pages/wareHouse/nuclearScale/nuclearscalerecord.vue +++ b/pages/wareHouse/nuclearScale/nuclearscalerecord.vue @@ -1,24 +1,51 @@ <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"> + <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> + </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 + <!-- 杩炴帴鍜屾墦鍗扮姸鎬佹寚绀哄櫒 --> + <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.index)" + @click="selectNo(item)" > <view class="content-header"> - <view class="content-header-title">{{ index+1 }}</view> + <view class="content-header-title">{{ index + 1 }}</view> </view> <view class="content-body"> <view class="row-list"> @@ -27,7 +54,7 @@ <view class="_label-name">鎵规鍙凤細</view> </view> <view class="_content"> - {{ item.value0 }} + {{ item.outBatchNo }} </view> </view> <view class="row-list"> @@ -36,7 +63,7 @@ <view class="_label-name">浜у搧鎻忚堪锛�</view> </view> <view class="_content"> - {{ item.value1 }} + {{ item.netWeight }} </view> </view> <view class="row-list"> @@ -45,7 +72,7 @@ <view class="_label-name">闆朵欢鍙凤細</view> </view> <view class="_content"> - {{ item.value2 }} + {{ item.partNo }} </view> </view> <view class="row-list"> @@ -54,7 +81,7 @@ <view class="_label-name">姣涢噸锛�</view> </view> <view class="_content"> - {{ item.value3 }} + {{ item.grossWeight }} </view> </view> <view class="row-list"> @@ -63,7 +90,7 @@ <view class="_label-name">鐩橀噸锛�</view> </view> <view class="_content"> - {{ item.value4 }} + {{ item.trayWeight }} </view> </view> <view class="row-list"> @@ -81,7 +108,7 @@ <view class="_label-name">鏍哥閲嶉噺锛�</view> </view> <view class="_content"> - {{ item.value6 }} + {{ item.netWeight }} </view> </view> <view class="row-list"> @@ -94,146 +121,623 @@ </view> </view> </view> - </view> + </view> </u-cell-group> - <view class="loadmore" @click="loadMore"> - <u-loadmore :status="loadStatus"></u-loadmore> + <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' +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', + backgroundAttachment: "fixed", + backgroundSize: "100% auto", + backgroundRepeat: "no-repeat", }, - keywords: '', - alllist: [], - originList: [], - query: { - current: 1, - size: 10 + keywords: "", + list: [], + total: 0, + pageNum: 1, + pageSize: 10, + status: "loading", + loadText: { + loadmore: "鍔犺浇鏇村...", + loading: "鍔姏鍔犺浇涓�...", + nomore: "娌℃湁鏇村浜�", }, - 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: [], //钃濈墮璁惧鏁版嵁 + 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.$u.api.finishProductIn.fetchList().then(res => { - this.alllist = res.data - this.originList = res.data - this.loadList() - }) + 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: { - loadMore() { - if (this.loadStatus == "nomore" || this.loadStatus == "loading") { - return + getmoreList() { + if (this.pageSize >= this.total) { + this.status = "nomore"; + return; } - this.loadStatus = "loading"; + this.status = "loading"; setTimeout(() => { - this.query.current += 1; - this.loadList(); - }, 100); + this.pageSize += this.pageSize; + this.getlist(); + }, 1000); }, - 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"; - } + 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) { - this.list = []; - this.query.current = 1; if (value) { - this.originList = this.alllist.filter(item => item.locNo.includes(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.originList = this.alllist + this.getlist(); } - this.loadList() }, - // 鎵撳嵃鍗曚釜淇℃伅 - selectNo(no) { - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: function (res) { - if (res.confirm) { - - } - } - }); - }, - // 鎵撳嵃鍏ㄩ儴淇℃伅 - goPrintAll() { - uni.showModal({ - title: '鎻愮ず', - content: '鏄惁鎵撳嵃瑁呯鍗曪紵', - showCancel: true, - success: function (res) { - if (res.confirm) { - - } - } - }); + // 妫�鏌ヨ摑鐗欒繛鎺ョ姸鎬� + async checkBluetoothConnection() { + if (!this.connectedDevice) { + this.connectionStatus = "disconnected"; + return false; + } + + // 璁剧疆涓鸿繛鎺ヤ腑鐘舵�� + this.connectionStatus = "connecting"; + + // 澧炲己杩炴帴鐘舵�佹娴� + 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); + } + }); }, + // 娣诲姞鍒版墦鍗伴槦鍒� + addToPrintQueue(items) { + if (!Array.isArray(items)) { + items = [items]; + } + + this.printQueue.push(...items); + // 濡傛灉涓嶅湪鎵撳嵃涓紝鍒欏紑濮嬪鐞嗛槦鍒� + if (!this.printing) { + this.processPrintQueue(); + } + }, + + // 澶勭悊鎵撳嵃闃熷垪 + async processPrintQueue() { + while (this.printQueue.length > 0) { + // 妫�鏌ヨ繛鎺ョ姸鎬� + const isConnected = await this.checkBluetoothConnection(); + if (!isConnected) { + // 濡傛灉鏈繛鎺ワ紝鏄剧ず钃濈墮杩炴帴瀵硅瘽妗� + this.searchDevice(); + // 涓嶆槸鐩存帴return锛岃�屾槸绛夊緟鐢ㄦ埛杩炴帴鍚庡啀缁х画澶勭悊 + return; + } + + this.printing = true; + this.printStatus = "printing"; + + // 鍙栧嚭闃熷垪涓殑绗竴涓换鍔� + const item = this.printQueue.shift(); + + try { + // 鎵ц鎵撳嵃 + await this.printQrCode(item); + + // 鎵撳嵃鎴愬姛鍚庣户缁鐞嗕笅涓�涓� + uni.showToast({ + title: "鎵撳嵃鎴愬姛", + icon: "success", + duration: 1000, + }); + + // 鐭殏寤惰繜锛岄伩鍏嶆墦鍗版満缂撳瓨婧㈠嚭 + await new Promise((resolve) => setTimeout(resolve, 1000)); + } catch (error) { + console.error("鎵撳嵃鍑洪敊:", error); + this.printStatus = "error"; + this.errorMessage = error.message || "鎵撳嵃鏃跺彂鐢熸湭鐭ラ敊璇�"; + this.printing = false; + + // 璁板綍澶辫触鐨勪换鍔★紝涓嶉噸鏂版坊鍔犲埌闃熷垪 + 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) => { + 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 pages = getCurrentPages(); // 鑾峰彇涓婁竴椤垫爤 - let prevPage = pages[pages.length - 2] + let prevPage = pages[pages.length - 2]; // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) - prevPage.$vm.setNo(no) + prevPage.$vm.setNo(no); // 杩斿洖涓婁竴椤� uni.navigateBack({ - delta: 1 - }) + delta: 1, + }); }, - } + }, }; </script> <style lang="scss"> .finishProductIn-locno-bg { - background-color: #F6F9FF; - background-image: url('~@/static/custom/finishProductIn/locNoBg.png'); + 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; @@ -359,11 +863,98 @@ } } } + .navbar-right { - font-weight: 500; - font-size: 13px; - color: #0b0b0b; - line-height: 36rpx; - margin-right: 32rpx; + font-weight: 500; + font-size: 13px; + color: #0b0b0b; + line-height: 36rpx; + margin-right: 32rpx; } -</style> + +/* 妯℃�佹鏍峰紡浼樺寲 */ +.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