From 678a846c202fff14fff92874e5bdc70c56014286 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期二, 14 十月 2025 10:41:12 +0800
Subject: [PATCH] 报工界面修改
---
.vs/前端2/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm | 0
.vs/前端2/CopilotIndices/17.14.878.3237/CodeChunks.db-shm | 0
.vs/前端2/CopilotIndices/17.14.878.3237/SemanticSymbols.db | 0
.vs/前端2/v17/DocumentLayout.backup.json | 19
.vs/slnx.sqlite | 0
components/WorkOrderPrint.vue | 1907 ++++++++++-----------------------------------------------
.vs/前端2/CopilotIndices/17.14.878.3237/CodeChunks.db | 0
.vs/前端2/CopilotIndices/17.14.878.3237/CodeChunks.db-wal | 0
.vs/前端2/CopilotIndices/17.14.878.3237/SemanticSymbols.db-wal | 0
.vs/前端2/v17/.wsuo | 0
.vs/前端2/v17/DocumentLayout.json | 5
11 files changed, 350 insertions(+), 1,581 deletions(-)
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
index bcd3363..2fee7f9 100644
--- a/.vs/slnx.sqlite
+++ b/.vs/slnx.sqlite
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db"
index 30b9b59..86dd708 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
index 8d5e51d..6294f4c 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-shm"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-wal" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-wal"
index 39b9452..d36f34d 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-wal"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/CodeChunks.db-wal"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db"
index 407db3a..b3b2e76 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
index 616e2bd..7ee78f5 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-wal" "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-wal"
index a772184..9202d2a 100644
--- "a/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-wal"
+++ "b/.vs/\345\211\215\347\253\2572/CopilotIndices/17.14.878.3237/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/v17/.wsuo" "b/.vs/\345\211\215\347\253\2572/v17/.wsuo"
index 470731e..e4287e5 100644
--- "a/.vs/\345\211\215\347\253\2572/v17/.wsuo"
+++ "b/.vs/\345\211\215\347\253\2572/v17/.wsuo"
Binary files differ
diff --git "a/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.backup.json" "b/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.backup.json"
index 623c0ab..a9a90d0 100644
--- "a/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.backup.json"
+++ "b/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.backup.json"
@@ -3,12 +3,12 @@
"WorkspaceRootPath": "F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\machine.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}",
- "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:components\\machine.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}"
- },
- {
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\mold.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:components\\mold.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\machine.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:components\\machine.vue||{40D31677-CBC0-4297-A9EF-89D907823A98}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\store\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
@@ -38,7 +38,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 4,
+ "SelectedChildIndex": 5,
"Children": [
{
"$type": "Bookmark",
@@ -58,7 +58,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 0,
+ "DocumentIndex": 1,
"Title": "machine.vue",
"DocumentMoniker": "F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\machine.vue",
"RelativeDocumentMoniker": "components\\machine.vue",
@@ -71,15 +71,16 @@
},
{
"$type": "Document",
- "DocumentIndex": 1,
+ "DocumentIndex": 0,
"Title": "mold.vue",
"DocumentMoniker": "F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\mold.vue",
"RelativeDocumentMoniker": "components\\mold.vue",
"ToolTip": "F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\mold.vue",
"RelativeToolTip": "components\\mold.vue",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAMIAAAARAAAAAAAAAA==",
+ "ViewState": "AgIAAEUAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003491|",
- "WhenOpened": "2025-10-08T05:39:55.433Z"
+ "WhenOpened": "2025-10-08T05:39:55.433Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
diff --git "a/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.json" "b/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.json"
index a9a90d0..6474d6e 100644
--- "a/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.json"
+++ "b/.vs/\345\211\215\347\253\2572/v17/DocumentLayout.json"
@@ -66,8 +66,7 @@
"RelativeToolTip": "components\\machine.vue",
"ViewState": "AgIAAD0AAAAAAAAAAAAmwFgAAAAYAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003491|",
- "WhenOpened": "2025-10-08T06:28:46.548Z",
- "EditorCaption": ""
+ "WhenOpened": "2025-10-08T06:28:46.548Z"
},
{
"$type": "Document",
@@ -77,7 +76,7 @@
"RelativeDocumentMoniker": "components\\mold.vue",
"ToolTip": "F:\\\u516C\u53F8\u9879\u76EE\u8F6F\u4EF6\\GIT\\01\u9F7F\u8F6E\u8BBE\u8BA1\\\u524D\u7AEF2\\components\\mold.vue",
"RelativeToolTip": "components\\mold.vue",
- "ViewState": "AgIAAEUAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAAG8CAAAAAAAAAAAUwJoCAAAIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003491|",
"WhenOpened": "2025-10-08T05:39:55.433Z",
"EditorCaption": ""
diff --git a/components/WorkOrderPrint.vue b/components/WorkOrderPrint.vue
index 1b01576..24cfc2b 100644
--- a/components/WorkOrderPrint.vue
+++ b/components/WorkOrderPrint.vue
@@ -1,8 +1,7 @@
<template>
<view class="page">
- <!-- 椤堕儴鏄剧ず褰撳墠绯荤粺閲囬泦鐢熶骇鏁帮紝鎵撶爜鎶ュ伐鏁板拰涓嶈壇鏁� -->
<view class="status-section">
- <!-- 鏁翠綋鏍囬鍜屽埛鏂版寜閽� -->
+ <!-- 澶撮儴 -->
<view class="header-container">
<view class="header-title">
<text>鐢熶骇鏁版嵁缁熻</text>
@@ -12,11 +11,11 @@
<text>v1.0.6</text>
</view>
<button class="refresh-btn" @click="refresh">鍒锋柊</button>
- <!-- 绱ф�ラ噸缃寜閽紙浠呭湪鐢熸垚鐘舵�佸崱浣忔椂鏄剧ず锛� -->
<button v-if="isGeneratingBarcode" class="reset-btn" @click="resetGenerateState">閲嶇疆</button>
</view>
</view>
+ <!-- 绗竴琛岋細淇濈暀 -->
<view class="status-row">
<view class="status-box">
<text>鏈哄彴闈㈡澘鏁帮細</text>
@@ -26,10 +25,6 @@
<text>褰撳墠閲囬泦鏁帮細</text>
<input v-model="calculatedCurrentCount" class="highlight" disabled />
</view>
- <!-- <view class="status-box">
- <text>寮�宸ユ椂宸ュ崟宸叉姤宸ユ暟锛�</text>
- <input v-model="kgQty" class="highlight" disabled />
- </view> -->
<view class="operator-box">-</view>
<view class="status-box standalone-box">
<text>宸叉墦鍗版潯鐮佹暟锛�</text>
@@ -45,231 +40,111 @@
<input v-model="calculatedTotalProduction" class="highlight" disabled />
</view>
</view>
- <view class="status-row">
- <view class="status-box">
- <text>鎵嬫姤涓嶈壇鏁帮細</text>
- <input v-model="defectiveCount" class="highlight" disabled />
- </view>
- <view class="status-box">
- <text>鏈墦鍗版潯鐮佹暟锛�</text>
- <input v-model="bqty" class="highlight" disabled />
- </view>
- </view>
- <!-- 绗竴琛� -->
- <!-- <view class="status-row">
- <view class="status-box result-box">
- <text>褰撳墠閲囬泦鏁帮細</text>
- <input v-model="calculatedCurrentCount" class="highlight" disabled />
- </view>
- <view class="operator-box">=</view>
- <view class="status-box">
- <text>鏈哄彴闈㈡澘鏁帮細</text>
- <input v-model="productionCount" class="highlight" disabled />
- </view>
- <view class="operator-box">-</view>
- <view class="status-box">
- <text>鍒濆鍊硷細</text>
- <input v-model="initialValue" class="highlight" disabled />
- </view>
- </view> -->
- <!-- 绗簩琛� -->
- <!-- <view class="status-row">
- <view class="status-box result-box">
- <text>宸茬敓浜ф暟锛�</text>
- <input v-model="calculatedTotalProduction" class="highlight" disabled />
- </view>
- <view class="operator-box">=</view>
- <view class="status-box">
- <text>寮�宸ユ椂宸ュ崟宸叉姤宸ユ暟锛�</text>
- <input v-model="kgQty" class="highlight" disabled />
- </view>
- <view class="operator-box">+</view>
- <view class="status-box">
- <text>褰撳墠閲囬泦鏁帮細</text>
- <input v-model="calculatedCurrentCount" class="highlight" disabled />
- </view>
- </view> -->
- <!-- 绗笁琛� -->
- <!-- <view class="status-row">
- <view class="status-box result-box">
- <text>涓嶈壇鏁帮細</text>
- <input v-model="calculatedDefectiveCount" class="highlight" disabled />
- </view>
- <view class="operator-box">=</view>
- <view class="status-box">
- <text>宸茬敓浜ф暟锛�</text>
- <input v-model="calculatedTotalProduction" class="highlight" disabled />
- </view>
- <view class="operator-box">-</view>
- <view class="status-box">
- <text>鑹搧鏁帮細</text>
- <input v-model="sQuantity" class="highlight" disabled />
- </view>
- <view class="status-box standalone-box">
- <text>宸叉墦鍗版潯鐮佹暟锛�</text>
- <input v-model="sQuantity" class="highlight" disabled />
- </view>
- </view> -->
+ <!-- 鍒犻櫎锛氱浜岃(鎵嬫姤涓嶈壇鏁�/鏈墦鍗版潯鐮佹暟) 宸叉寜闇�姹傚幓鎺� -->
+ <!-- <view class="status-row">...</view> -->
+ <!-- 鍩虹淇℃伅 -->
<view>
- <view style="display: flex; flex-direction: column; flex-wrap: nowrap; align-content: flex-start;">
+ <view style="display:flex;flex-direction:column;">
<view class="form-row">
<view class="form-item">
<label>浜у搧缂栫爜:</label>
- <input class="inp" type="text" v-model="order.daa002" disabled="true" />
+ <input class="inp" type="text" v-model="order.daa002" disabled />
</view>
<view class="form-item">
<label>浜у搧鍚嶇О:</label>
- <!-- <input class="inp" type="text" v-model="order.daa003" disabled="true" /> -->
- <superwei-combox :candidates="DAA003List" v-model="order.daa003" @select="onDaa003Change"
- class="inp"></superwei-combox>
+ <superwei-combox :candidates="DAA003List" v-model="order.daa003"
+ @select="onDaa003Change" class="inp"></superwei-combox>
</view>
<view class="form-item">
<label>浜у搧瑙勬牸:</label>
- <input class="inp" type="text" v-model="order.daa004" disabled="true" />
+ <input class="inp" type="text" v-model="order.daa004" disabled />
</view>
</view>
<view class="form-row">
<view class="form-item">
<label>鍥� 鍙�:</label>
- <input class="inp" type="text" v-model="order.engineeringNo" disabled="true" />
+ <input class="inp" type="text" v-model="order.engineeringNo" disabled />
</view>
<view class="form-item">
<label>鏉� 璐�:</label>
- <input class="inp" type="text" v-model="order.material" disabled="true" />
+ <input class="inp" type="text" v-model="order.material" disabled />
</view>
<view class="form-item">
<label>棰� 鑹�:</label>
- <input class="inp" type="text" v-model="order.colorName" disabled="true" />
+ <input class="inp" type="text" v-model="order.colorName" disabled />
</view>
</view>
</view>
</view>
- <!-- 鏉$爜鎵撳嵃閮ㄥ垎 - 涓儴鍏冪礌鍦ㄤ竴鏉$嚎涓� -->
- <view class="print-section">
+ <!-- 鍒犻櫎锛氭墦鍗版潯鐮佸尯鍩� -->
+ <!-- (鍘� 鎵撳嵃鏉$爜寮犳暟 / 姣忓紶鏉$爜鏁伴噺 / 鎵撳嵃鎸夐挳 / 鏄庣粏鎸夐挳 ) -->
+ <!-- 淇濈暀锛氫笉鑹暟閲忚緭鍏� -->
+ <view class="print-section" style="margin-top:20px;">
<view class="barcode-info">
<view class="user-select">
- <text style="display: inline-block;float:left;margin-left: -11px;">鎵撳嵃鏉$爜寮犳暟锛�</text>
- <input v-model="icount" class="inp"
- style="width: 20%; height: 70px; border: 3px solid #808080; font-size: 40px; text-align: center; margin-top: 5px;" />
- </view>
-
- <text style="margin-left:-280px;">姣忓紶鏉$爜鏁伴噺锛�</text>
- <input class="inp"
- style="width: 19%; height: 70px; border: 3px solid #808080; font-size: 40px; text-align: center; margin-top: 5px; margin-left: -38px;"
- v-model="barcodeAmount" placeholder="鏉$爜鏁伴噺锛堣绠辨暟锛�" />
-
- <view class="user-select">
- <button class="print-btn" @click="showPrint" :disabled="isGeneratingBarcode || printLoading"
- :style="(isGeneratingBarcode || printLoading) ? 'background-color: #ccc; cursor: not-allowed;' : ''">
- {{ isGeneratingBarcode ? '鐢熸垚涓�...' : (printLoading ? '鎵撳嵃涓�...' : '鎵撳嵃鏉$爜') }}
- </button>
- <button class="details-btn" @click="showBarcode">鏉$爜鏄庣粏</button>
- </view>
- </view>
- </view>
-
- <!-- 鑷畾涔夋暟閲忚緭鍏ヨ -->
- <view class="print-section" style="margin-top: 20px;">
- <view class="barcode-info">
- <view class="user-select">
- <text style="display: inline-block;float:left;margin-left: -11px;">涓嶈壇鏁伴噺锛�</text>
+ <text style="display:inline-block;float:left;margin-left:-11px;">涓嶈壇鏁伴噺锛�</text>
<input v-model="customAmount" class="inp"
- style="width: 55%; height: 70px; border: 3px solid #808080; font-size: 40px; text-align: center; margin-top: 5px;"
- placeholder="璇疯緭鍏ユ暟閲�" />
+ style="width:55%;height:70px;border:3px solid #808080;font-size:40px;text-align:center;margin-top:5px;"
+ placeholder="璇疯緭鍏ユ暟閲�" />
</view>
-
- <view class="user-select" style="margin-left: 30px;">
+ <view class="user-select" style="margin-left:30px;">
<button class="details-btn" @click="confirmCustomAmount">纭鎻愪氦</button>
</view>
</view>
</view>
- <!-- 涓嶈壇鍘熷洜閫夋嫨 -->
+ <!-- 鎶ュ伐浜洪�夋嫨锛堟浛鎹㈠師涓嶈壇澶囨敞鎸夐挳鍖猴級 -->
<view>
- <view class="reason-section" style="margin-bottom: -16px">
- <text>鐐归�変笉鑹娉紙缁戝畾鍒板伐鍗曪級锛�</text>
- <view class="reason-buttons" style="font-size: 23px;">
- <button v-for="(reason, index) in badReasons" :key="index"
- :class="{'reason-btn': true, 'selected': selectedReasons.includes(reason)}"
- @click="toggleReason(reason)" v-text="reason"></button>
+ <view class="reason-section" style="margin-bottom:-16px">
+ <text>鎶ュ伐浜猴細</text>
+ <view class="reason-buttons" style="font-size:23px;">
+ <button v-for="(u,index) in users" :key="index"
+ :class="{'reason-btn':true,'selected': staffNo===u}"
+ @click="toggleUser(u)" v-text="u"></button>
</view>
</view>
</view>
- <!-- 搴曢儴淇濆瓨鍜屽彇娑堟寜閽� -->
+ <!-- 搴曢儴鎸夐挳锛堜粛淇濈暀锛宻ave 宸查噸鍐欙紝浠呮牎楠屾槸鍚﹂�変汉锛� -->
<view class="bottom-section">
<button class="save-btn" @click="save">淇濆瓨骞剁敓鏁�</button>
<button class="cancel-btn" @click="cancel">鍙栨秷</button>
</view>
+ <!-- (淇濈暀鍘熷脊绐椾笌鏉$爜鏄庣粏寮圭獥鐨� DOM 锛屽褰诲簳涓嶇敤鍙悗缁垹闄�) -->
<view v-if="isShow" class="overlay">
<view class="popup">
- <view class="barcode-info">
- <!-- <view class="user-select">
- <text>宸叉墦鍗版潯鐮佹暟锛�</text>
- <input v-model="sQuantity" class="highlight" disabled />
- </view>
- <view class="user-select">
- <text>鏈墦鍗版潯鐮佹暟锛�</text>
- <input v-model="bqty" class="highlight" disabled />
- </view> -->
-
- <view class="user-select1">
- <text style="float: left; display: inline-block;">鎵撳嵃鏉$爜寮犳暟锛�</text>
- <input v-model="icount" class="inp5" disabled="true" />
- </view>
- <view class="user-select2">
- <text style="float: left;">姣忓紶鏉$爜鏁伴噺锛�</text>
- <input class="inp6" disabled="true" v-model="barcodeAmount" placeholder="鏉$爜鏁伴噺锛堣绠辨暟锛�" />
- </view>
-
- <view class="form-row">
- <!--<kk-printer defaultText="鎵撳嵃鏉$爜" class="print-btn" ref="kkprinter" :user="staffNo"
- :bufferData="bufferData" @onPrint="onPrint" @onPrintSuccess="onPrintSuccess"
- @onPrintFail="onPrintFail">
- </kk-printer>-->
- </view>
- </view>
<view class="bottom-section1">
- <!-- <button class="clean-btn" type="primary" @click="cleanUser">鍏抽棴</button> -->
- <button class="clean-btn" type="warn" @click="deleteBarcode">鍙栨秷鎵撳嵃</button>
- <button class="print-btn"
- style="width: 48%; padding: 1.5vh; color: white; font-size: 1.5vw; border: none; text-align: center; cursor: pointer; border-radius: 0.5vw;"
- @click="printTest" :loading="printLoading" :disabled="printLoading || isGeneratingBarcode"
- :style="(printLoading || isGeneratingBarcode) ? 'background-color: #ccc; cursor: not-allowed;' : ''">
- {{ isGeneratingBarcode ? '鐢熸垚涓�...' : (printLoading ? '鎵撳嵃涓�...' : '鎵撳嵃鏉$爜') }}
- </button>
+ <button class="clean-btn" type="warn" @click="deleteBarcode">鍏抽棴</button>
</view>
<view class="reason-section">
<text>鎶ュ伐浜猴細</text>
<view class="reason-buttons">
- <button v-for="(reason, index) in users" :key="index"
- :class="{'reason-btn': true, 'selected': user === reason}" @click="toggleUser(reason)"
- v-text="reason"></button>
+ <button v-for="(u,index) in users" :key="index"
+ :class="{'reason-btn':true,'selected': user===u}"
+ @click="toggleUser(u)" v-text="u"></button>
</view>
</view>
</view>
</view>
- <!-- 灞曠ず鏉$爜鏄庣粏 -->
<view v-if="barcodeIsShow" class="overlay">
<view class="popup">
- <!-- <view class="barcode-info"> -->
<uni-table ref="table" border stripe emptyText="鏆傛棤鏇村鏁版嵁" class="table1">
<uni-tr>
- <uni-th align="center" style="font-size: 40px;">鐢熸垚鏃堕棿</uni-th>
- <uni-th align="center" style="width:39%;font-size: 40px;">鏉$爜</uni-th>
- <uni-th align="center" style="font-size: 40px;">鎶ュ伐浜�</uni-th>
- <uni-th align="center" style="font-size: 40px;">鎶ュ伐鏁伴噺</uni-th>
+ <uni-th align="center" style="font-size:40px;">鐢熸垚鏃堕棿</uni-th>
+ <uni-th align="center" style="width:39%;font-size:40px;">鏉$爜</uni-th>
+ <uni-th align="center" style="font-size:40px;">鎶ュ伐浜�</uni-th>
+ <uni-th align="center" style="font-size:40px;">鎶ュ伐鏁伴噺</uni-th>
</uni-tr>
- <uni-tr v-for="(item, index) in reportingList" :key="index">
+ <uni-tr v-for="(item,index) in reportingList" :key="index">
<uni-td align="center">
- <input type="text" v-model="item.bgDate" style="width: 26vh;" />
+ <input type="text" v-model="item.bgDate" style="width:26vh;" />
</uni-td>
<uni-td align="center">
- <input v-model="item.itemNoCade" style="width: 40vh;" />
+ <input v-model="item.itemNoCade" style="width:40vh;" />
</uni-td>
<uni-td align="center">
<input v-model="item.staffName" />
@@ -279,9 +154,8 @@
</uni-td>
</uni-tr>
</uni-table>
- <!-- </view> -->
<view>
- <button class="clean-btn" type="warn" @click="barcodeIsShow = false">鍏抽棴</button>
+ <button class="clean-btn" type="warn" @click="barcodeIsShow=false">鍏抽棴</button>
</view>
</view>
</view>
@@ -290,9 +164,7 @@
</template>
<script>
- import {
- printTemplate3
- } from "../utils/printTemplate";
+ import { printTemplate3 } from "../utils/printTemplate";
export default {
props: {
@@ -302,20 +174,18 @@
},
data() {
return {
- currentUser: '', // 榛樿褰撳墠鐢ㄦ埛
- barcodeAmount: '', // 杈撳叆鐨勬潯鐮佹暟閲�
- users: [], // 鐢ㄦ埛鍒楄〃
+ currentUser: '',
+ barcodeAmount: '',
+ users: [],
userForm: [],
staff: [],
user: {},
- badReasons: [], // 涓嶈壇鍘熷洜
- itemsNgname: [],
- selectedReasons: [], // 瀛樺偍閫変腑鐨勪笉鑹師鍥�
- productionCount: 0, // 褰撳墠绯荤粺閲囬泦鐢熶骇鏁�
- printedCount: 0, // 褰撳墠宸叉墦鐮佹姤宸ユ暟
- defectiveCount: 0, // 涓嶈壇鏁�
+ // 鍒犻櫎涓嶈壇鍘熷洜鐩稿叧鏁版嵁
+ productionCount: 0,
+ printedCount: 0,
+ defectiveCount: 0,
order: {},
- icount: 1, // 榛樿涓�1锛岄伩鍏嶄负0鎴杗ull
+ icount: 1,
bqty: 0,
sQuantity: 0,
kgQty: 0,
@@ -324,69 +194,54 @@
ngStaid: 0,
bufferData: '',
dataToPrint: [],
- isLoading: false, // 鏂扮殑鍔犺浇鐘舵��
+ isLoading: false,
but: false,
DAA003List: [],
lineList: [],
- isShow: false, // 鎺у埗鎵撳嵃鏉$爜鎸夐挳鐨勬樉绀�
+ isShow: false,
barcodeIsShow: false,
barcodeList: [],
staffNo: '',
printStr: '',
-
printMac: '',
- bluetoothSocket: {}, // 钃濈墮杩炴帴
+ bluetoothSocket: {},
device: '',
uuid: '',
printNum: 1,
-
reportingList: [],
-
printLoading: false,
customAmount: '',
-
- // 鏂板闃查噸澶嶈姹傜浉鍏冲彉閲�
- isGeneratingBarcode: false, // 鏄惁姝e湪鐢熸垚鏉$爜
- lastGenerateTime: 0, // 涓婃鐢熸垚鏉$爜鐨勬椂闂存埑
- generateRequestId: null // 褰撳墠鐢熸垚璇锋眰鐨勫敮涓�ID
+ isGeneratingBarcode: false,
+ lastGenerateTime: 0,
+ generateRequestId: null
};
},
computed: {
- // 璁$畻褰撳墠閲囬泦鏁帮紝纭繚涓嶄細鍑虹幇NaN鎴杣ndefined
calculatedCurrentCount() {
const production = this.productionCount || 0;
const initial = this.initialValue || 0;
return production - initial;
},
- // 璁$畻宸茬敓浜ф�绘暟
calculatedTotalProduction() {
const kgQty = this.kgQty || 0;
const currentCount = this.calculatedCurrentCount;
- // 褰撳紑宸ユ椂宸ュ崟宸叉姤宸ユ暟涓�0鏃讹紝鐩存帴浣跨敤褰撳墠閲囬泦鏁扮殑鍊�
- //return kgQty === 0 ? currentCount : kgQty + currentCount;
- return kgQty + currentCount
+ return kgQty + currentCount;
},
- // 璁$畻涓嶈壇鏁�
calculatedDefectiveCount() {
const totalProduction = this.calculatedTotalProduction;
- // const totalProduction = this.productionCount;
const goodCount = this.sQuantity || 0;
return totalProduction - goodCount;
}
},
- components: {},
- mounted() {
- // this.fetchData(false); // Initial fetch
- // this.timer = setInterval(this.fetchData, 180000); // Call fetchData every 5 minutes
- },
+ mounted() { },
created() {
- // 鍒濆鍖栨暟鎹紝纭繚鎵�鏈夋暟鍊煎瀷鍙橀噺鏈夐粯璁ゅ��
this.initializeData();
this.fetchData(true);
this.init();
+ // 鐩存帴鍔犺浇浜哄憳渚涢�夋嫨
+ this.getXS0101();
},
methods: {
- // 鍒濆鍖栨墍鏈夋暟鍊煎瀷鍙橀噺锛岄伩鍏峮ull鎴杣ndefined
initializeData() {
this.productionCount = 0;
this.printedCount = 0;
@@ -397,985 +252,64 @@
this.kgQty = 0;
this.initialValue = 0;
this.qqty = 0;
-
- // 鍒濆鍖栭槻閲嶅鐘舵��
this.isGeneratingBarcode = false;
this.lastGenerateTime = 0;
this.generateRequestId = null;
},
-
- // 鎵嬪姩閲嶇疆闃查噸澶嶇姸鎬侊紙绱ф�ユ儏鍐典笅浣跨敤锛�
resetGenerateState() {
this.isGeneratingBarcode = false;
this.generateRequestId = null;
this.lastGenerateTime = 0;
- console.log("宸叉墜鍔ㄩ噸缃潯鐮佺敓鎴愮姸鎬�");
this.$showMessage("宸查噸缃潯鐮佺敓鎴愮姸鎬�");
},
refresh() {
this.$sendPostRequest({
url: "http://192.168.0.94:9095/Numerical/RefreshDev",
- data: {
- machineNo: this.order.machineNo
- },
+ data: { machineNo: this.order.machineNo },
contentType: "application/json"
}).then(res1 => {
if (res1.code == 200) {
- this.fetchData(true); // 閲嶆柊璇锋眰鏁版嵁
+ this.fetchData(true);
} else {
this.$showMessage("鍚屾澶辫触");
}
});
-
},
- printTest() {
- if (!this.staffNo) {
- this.$showMessage("璇烽�夋嫨鎶ュ伐浜�");
- return;
- }
-
- try {
- // 鍦ㄨ皟鐢╫nPrint鍓嶆竻绌烘暟鎹�
- // 杩欐牱鍙互纭繚姣忔鎵撳嵃閮芥槸浠庨浂寮�濮�
- this.dataToPrint = [];
- this.bufferData = '';
- this.onPrint();
-
- this.$showMessage('姝e湪鎵撳嵃锛岃绋嶇瓑!');
- this.printLoading = true;
-
- this.printNum = 1;
- setTimeout(() => {
- this.doPrint();
- this.printLoading = false;
- console.log("璋冪敤鎵撳嵃");
- }, 2000);
- } catch (e) {
- this.onPrintFail();
- console.log(e);
- }
-
- },
- doPrint() { //printNum:鎵撳嵃娆℃暟
- var mac_address = uni.getStorageSync('printMac');
- console.log("鎵撳嵃鏈哄湴鍧�" + mac_address);
- console.log('鎵撳嵃寮�濮�');
- console.log("鎵撳嵃鍙傛暟" + this.bufferData);
-
- if (!mac_address) {
- this.$showMessage('璇烽�夋嫨钃濈墮鎵撳嵃鏈�');
- this.printLoading = false;
- return false;
- }
-
- // 妫�鏌ndroid鐗堟湰骞朵娇鐢ㄥ搴旂殑鎵撳嵃鏂规硶
- // const androidVersion = this.getAndroidVersion();
- // console.log('Android鐗堟湰:', androidVersion);
-
- // if (androidVersion >= 12) {
- // return this.doPrintForAndroid12Plus(mac_address);
- // } else {
- return this.doPrintForAndroidLegacy(mac_address);
- // }
- },
-
- // Android 12+ 鐗堟湰鐨勮摑鐗欐墦鍗版柟娉�
- doPrintForAndroid12Plus(mac_address) {
- try {
- console.log('浣跨敤Android 12+鍏煎鐨勮摑鐗欐墦鍗版柟娉�');
-
- // 妫�鏌ヨ摑鐗欐潈闄�
- if (!this.checkBluetoothPermissions()) {
- this.$showMessage('钃濈墮鏉冮檺涓嶈冻锛岃妫�鏌ュ簲鐢ㄦ潈闄愯缃�');
- this.printLoading = false;
- return false;
- }
-
- var main = plus.android.runtimeMainActivity();
- var BluetoothManager = plus.android.importClass("android.bluetooth.BluetoothManager");
- var Context = plus.android.importClass("android.content.Context");
-
- // 鑾峰彇BluetoothManager
- var bluetoothManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
- var bluetoothAdapter = bluetoothManager.getAdapter();
-
- if (!bluetoothAdapter) {
- this.$showMessage('璁惧涓嶆敮鎸佽摑鐗�');
- this.printLoading = false;
- return false;
- }
-
- if (!bluetoothAdapter.isEnabled()) {
- this.$showMessage('璇峰厛寮�鍚摑鐗�');
- this.printLoading = false;
- return false;
- }
-
- // 鑾峰彇閰嶅璁惧
- var pairedDevices = bluetoothAdapter.getBondedDevices();
- var targetDevice = null;
-
- // 鏌ユ壘鐩爣璁惧
- var iterator = pairedDevices.iterator();
- while (iterator.hasNext()) {
- var device = iterator.next();
- if (device.getAddress().equals(mac_address)) {
- targetDevice = device;
- break;
- }
- }
-
- if (!targetDevice) {
- this.$showMessage('鏈壘鍒伴厤瀵圭殑鎵撳嵃鏈鸿澶�');
- this.printLoading = false;
- return false;
- }
-
- // 鍒涘缓钃濈墮杩炴帴
- var UUID = plus.android.importClass("java.util.UUID");
- var uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
- var bluetoothSocket = targetDevice.createRfcommSocketToServiceRecord(uuid);
-
- // 杩炴帴璁惧
- try {
- bluetoothSocket.connect();
- console.log('钃濈墮杩炴帴鎴愬姛');
-
- // 鍙戦�佹墦鍗版暟鎹�
- var outputStream = bluetoothSocket.getOutputStream();
- var bytes = plus.android.invoke(this.bufferData, 'getBytes', 'gbk');
- outputStream.write(bytes);
- outputStream.flush();
-
- // 鍏抽棴杩炴帴
- outputStream.close();
- bluetoothSocket.close();
-
- console.log("鎵撳嵃鎴愬姛");
- this.cleanUser();
- this.onPrintSuccess();
- return true;
-
- } catch (connectError) {
- console.error('钃濈墮杩炴帴澶辫触:', connectError);
-
- // 灏濊瘯fallback鏂规硶
- try {
- bluetoothSocket.close();
- // 浣跨敤鍙嶅皠鑾峰彇hidden鏂规硶
- var createRfcommSocket = targetDevice.getClass().getMethod("createRfcommSocket",
- plus.android.importClass("java.lang.Integer").TYPE);
- bluetoothSocket = createRfcommSocket.invoke(targetDevice, 1);
-
- bluetoothSocket.connect();
- console.log('浣跨敤fallback鏂规硶杩炴帴鎴愬姛');
-
- var outputStream = bluetoothSocket.getOutputStream();
- var bytes = plus.android.invoke(this.bufferData, 'getBytes', 'gbk');
- outputStream.write(bytes);
- outputStream.flush();
-
- outputStream.close();
- bluetoothSocket.close();
-
- this.cleanUser();
- this.onPrintSuccess();
- return true;
-
- } catch (fallbackError) {
- console.error('Fallback鏂规硶涔熷け璐�:', fallbackError);
- this.$showMessage('钃濈墮杩炴帴澶辫触锛岃妫�鏌ユ墦鍗版満鐘舵��');
- this.printLoading = false;
- return false;
- }
- }
-
- } catch (error) {
- console.error('Android 12+ 钃濈墮鎵撳嵃閿欒:', error);
- this.$showMessage('鎵撳嵃澶辫触: ' + error.message);
- this.printLoading = false;
- return false;
- }
- },
-
- // Android 11鍙婁互涓嬬増鏈殑钃濈墮鎵撳嵃鏂规硶锛堜繚鎸佸師鏈夐�昏緫锛�
- doPrintForAndroidLegacy(mac_address) {
- try {
- console.log('浣跨敤浼犵粺钃濈墮鎵撳嵃鏂规硶');
-
- var device = null,
- BAdapter = null,
- BluetoothAdapter = null,
- uuid = null,
- main = null,
- bluetoothSocket = null;
-
- main = plus.android.runtimeMainActivity();
- BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
- let UUID = plus.android.importClass("java.util.UUID");
- uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
- BAdapter = BluetoothAdapter.getDefaultAdapter();
-
- if (!BAdapter) {
- this.$showMessage('璁惧涓嶆敮鎸佽摑鐗�');
- this.printLoading = false;
- return false;
- }
-
- device = BAdapter.getRemoteDevice(mac_address);
- plus.android.importClass(device);
- bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
- plus.android.importClass(bluetoothSocket);
-
- if (!bluetoothSocket.isConnected()) {
- console.log('妫�娴嬪埌璁惧鏈繛鎺ワ紝灏濊瘯杩炴帴....');
- bluetoothSocket.connect();
- }
-
- console.log('璁惧宸茶繛鎺�');
- if (bluetoothSocket.isConnected()) {
- var outputStream = bluetoothSocket.getOutputStream();
- plus.android.importClass(outputStream);
- var bytes = plus.android.invoke(this.bufferData, 'getBytes', 'gbk');
- outputStream.write(bytes);
- outputStream.flush();
- device = null //杩欓噷鍏抽敭
- bluetoothSocket.close(); //蹇呴』鍏抽棴钃濈墮杩炴帴鍚﹀垯鎰忓鏂紑鐨勮瘽鎵撳嵃閿欒
- console.log("鎵撳嵃鏈鸿繛鎺ョ姸鎬侊細111");
- this.cleanUser();
- this.onPrintSuccess();
- return true;
- } else {
- console.log("鎵撳嵃鏈鸿繛鎺ョ姸鎬侊細222");
- this.printLoading = false;
- return false;
- }
- } catch (error) {
- console.error('浼犵粺钃濈墮鎵撳嵃閿欒:', error);
- this.$showMessage('鎵撳嵃澶辫触: ' + error.message);
- this.printLoading = false;
- return false;
- }
- },
-
- // 鑾峰彇Android鐗堟湰鍙�
- getAndroidVersion() {
- try {
- var Build = plus.android.importClass("android.os.Build");
- return Build.VERSION.SDK_INT;
- } catch (error) {
- console.error('鑾峰彇Android鐗堟湰澶辫触:', error);
- return 30; // 榛樿杩斿洖Android 11鐨凙PI Level
- }
- },
-
- // 妫�鏌ヨ摑鐗欐潈闄愶紙Android 12+闇�瑕侊級
- checkBluetoothPermissions() {
- try {
- const androidVersion = this.getAndroidVersion();
-
- // Android 12浠ヤ笅鐗堟湰涓嶉渶瑕佹柊鏉冮檺
- if (androidVersion < 31) { // Android 12 = API 31
- return true;
- }
-
- var main = plus.android.runtimeMainActivity();
- var PackageManager = plus.android.importClass("android.content.pm.PackageManager");
- var ContextCompat = plus.android.importClass("androidx.core.content.ContextCompat");
-
- // Android 12+ 闇�瑕佺殑鏉冮檺
- var permissions = [
- "android.permission.BLUETOOTH_CONNECT",
- "android.permission.BLUETOOTH_SCAN"
- ];
-
- var missingPermissions = [];
- for (var i = 0; i < permissions.length; i++) {
- var permission = permissions[i];
- var granted = ContextCompat.checkSelfPermission(main, permission);
- if (granted !== PackageManager.PERMISSION_GRANTED) {
- console.log('鏉冮檺鏈巿浜�:', permission);
- missingPermissions.push(permission);
- }
- }
-
- if (missingPermissions.length > 0) {
- // 灏濊瘯璇锋眰鏉冮檺
- this.requestBluetoothPermissions(missingPermissions);
- return false;
- }
-
- return true;
- } catch (error) {
- console.error('鏉冮檺妫�鏌ュけ璐�:', error);
- // 濡傛灉妫�鏌ュけ璐ワ紝鍋囪鏉冮檺宸叉巿浜堬紙鍙兘鏄�佺増鏈珹ndroid锛�
- return true;
- }
- },
-
- // 璇锋眰钃濈墮鏉冮檺
- requestBluetoothPermissions(permissions) {
- try {
- var main = plus.android.runtimeMainActivity();
- var ActivityCompat = plus.android.importClass("androidx.core.app.ActivityCompat");
-
- console.log('璇锋眰钃濈墮鏉冮檺:', permissions);
-
- // 灏咼avaScript鏁扮粍杞崲涓篔ava鏁扮粍
- var javaPermissions = plus.android.newObject("java.lang.String", permissions.length);
- for (var i = 0; i < permissions.length; i++) {
- javaPermissions[i] = permissions[i];
- }
-
- // 璇锋眰鏉冮檺
- ActivityCompat.requestPermissions(main, javaPermissions, 1001);
-
- // 鏄剧ず鎻愮ず淇℃伅
- this.$showMessage('姝e湪璇锋眰钃濈墮鏉冮檺锛岃鍦ㄧ郴缁熷脊绐椾腑鍏佽鏉冮檺鍚庨噸璇�');
-
- } catch (error) {
- console.error('璇锋眰鏉冮檺澶辫触:', error);
- this.$showMessage('鏃犳硶璇锋眰钃濈墮鏉冮檺锛岃鎵嬪姩鍦ㄨ缃腑寮�鍚簲鐢ㄧ殑钃濈墮鏉冮檺');
- }
- },
- init() {
- console.log("璁剧疆钃濈墮");
- try {
- // 妫�鏌ndroid鐗堟湰骞朵娇鐢ㄥ搴旂殑鍒濆鍖栨柟娉�
- const androidVersion = this.getAndroidVersion();
-
- if (androidVersion >= 12) {
- this.initForAndroid12Plus();
- } else {
- this.initForAndroidLegacy();
- }
- } catch (err) {
- console.error("钃濈墮鍒濆鍖栧紓甯革紒", err);
- }
- },
-
- // Android 12+ 鐗堟湰鐨勮摑鐗欏垵濮嬪寲
- initForAndroid12Plus() {
- try {
- console.log("浣跨敤Android 12+鍏煎鐨勮摑鐗欏垵濮嬪寲");
-
- var main = plus.android.runtimeMainActivity();
- var BluetoothManager = plus.android.importClass("android.bluetooth.BluetoothManager");
- var Context = plus.android.importClass("android.content.Context");
- var UUID = plus.android.importClass("java.util.UUID");
-
- this.uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
-
- // 鑾峰彇BluetoothManager鍜孉dapter
- var bluetoothManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
- var bluetoothAdapter = bluetoothManager.getAdapter();
-
- if (bluetoothAdapter && bluetoothAdapter.isDiscovering()) {
- bluetoothAdapter.cancelDiscovery(); // 鍋滄鎵弿
- }
-
- let printMac1 = uni.getStorageSync('printMac');
- this.printMac = printMac1;
- console.log("鎵撳嵃鏈哄湴鍧�" + this.printMac);
-
- var address_mac = this.printMac ? this.printMac : "DC:1D:30:91:06:52";
- console.log("status:" + address_mac);
-
- if (bluetoothAdapter) {
- this.device = bluetoothAdapter.getRemoteDevice(address_mac);
- plus.android.importClass(this.device);
- console.log("Android 12+ 钃濈墮鍒濆鍖栨垚鍔�");
- }
-
- } catch (err) {
- console.error("Android 12+ 钃濈墮鍒濆鍖栧け璐�:", err);
- // 濡傛灉澶辫触锛屽皾璇曚娇鐢ㄤ紶缁熸柟娉�
- this.initForAndroidLegacy();
- }
- },
-
- // Android 11鍙婁互涓嬬増鏈殑钃濈墮鍒濆鍖栵紙淇濇寔鍘熸湁閫昏緫锛�
- initForAndroidLegacy() {
- try {
- console.log("浣跨敤浼犵粺钃濈墮鍒濆鍖栨柟娉�");
-
- var main = plus.android.runtimeMainActivity();
- var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
- var UUID = plus.android.importClass("java.util.UUID");
-
- this.uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
- var BAdapter = BluetoothAdapter.getDefaultAdapter();
-
- if (BAdapter) {
- BAdapter.cancelDiscovery(); // 鍋滄鎵弿
- }
-
- let printMac1 = uni.getStorageSync('printMac');
- this.printMac = printMac1;
- console.log("鎵撳嵃鏈哄湴鍧�" + this.printMac);
-
- var address_mac = this.printMac ? this.printMac : "DC:1D:30:91:06:52";
- console.log("status:" + address_mac);
-
- if (BAdapter) {
- this.device = BAdapter.getRemoteDevice(address_mac);
- plus.android.importClass(this.device);
-
- this.bluetoothSocket = this.device.createInsecureRfcommSocketToServiceRecord(this.uuid);
- plus.android.importClass(this.bluetoothSocket);
- console.log("浼犵粺钃濈墮鍒濆鍖栨垚鍔�");
- }
-
- } catch (err) {
- console.error("浼犵粺钃濈墮鍒濆鍖栧け璐�:", err);
- }
- },
-
onDaa003Change(event) {
-
let orde = this.lineList[this.DAA003List.indexOf(event)];
-
this.orderId = orde.id;
this.orderNo = orde.daa001;
-
- //鍒囨崲涓烘柊鐨刬d
uni.setStorageSync('machine', this.machineNo);
uni.setStorageSync('orderId', this.orderId);
uni.setStorageSync('orderNo', this.orderNo);
uni.setStorageSync('engineeringNo', this.order.engineeringNo);
-
this.fetchData(false);
},
fetchData(flag) {
- // let machine = uni.getStorageSync('machine');
- // let orderId = uni.getStorageSync('orderId');
- // let orderNo = uni.getStorageSync('orderNo');
-
- // if (orderId) {
- // this.orderId = orderId;
- // } else {
- // if (!this.orderId) {
- // this.orderId = uni.getStorageSync('id');
- // }
-
- // }
-
- // if (orderNo) {
- // this.orderNo = orderNo;
- // } else {
- // if (!this.orderNo) {
- // this.orderNo = uni.getStorageSync('daa001');
- // }
- // }
-
- // if (machine) {
- // this.machineNo = machine;
- // } else {
- // if (!this.machineNo) {
- // this.machineNo = uni.getStorageSync('machineNo');
- // }
- // }
-
- if (!this.orderId && !this.orderNo) {
- return;
- }
-
+ if (!this.orderId && !this.orderNo) return;
this.getOrderById();
- this.getMesItemsNgname();
-
this.getWomdaaPrintById();
- this.findByOrderId();
-
if (flag) {
this.$post({
url: "/Womdaa/GetWomdaasByShow",
- data: {
- machineNo: this.machineNo
- }
+ data: { machineNo: this.machineNo }
}).then(res => {
this.lineList = res.data.tbBillList;
this.DAA003List = res.data.tbBillList.map(item => item.daa003);
- })
- }
-
- },
- formatDate(date) {
- if (!date) return '';
-
- try {
- let year = date.getFullYear(); // 鑾峰彇骞翠唤
- let month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆�
- let day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆�
- return `${year}-${month}-${day}`; // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆
- } catch (error) {
- console.error("鏃ユ湡鏍煎紡鍖栭敊璇�:", error);
- return '';
- }
- },
- // 鍒囨崲閫変腑鐨勪笉鑹師鍥�
- toggleReason(reason) {
- if (!reason) return;
-
- if (this.selectedReasons.includes(reason)) {
- this.selectedReasons = this.selectedReasons.filter(r => r !== reason);
- } else {
- this.selectedReasons.push(reason);
+ });
}
},
toggleUser(user) {
if (!user) return;
-
this.user = this.user === user ? null : user;
- this.staffNo = user;
- },
- showPrint() {
- // 闃查噸澶嶇偣鍑绘鏌� - 鐢熸垚涓垨鎵撳嵃涓兘涓嶅厑璁�
- if (this.isGeneratingBarcode) {
- this.$showMessage('姝e湪鐢熸垚鏉$爜锛岃绋嶇瓑...');
- return;
- }
-
- if (this.printLoading) {
- this.$showMessage('姝e湪鎵撳嵃鏉$爜锛岃绋嶇瓑...');
- return;
- }
-
- // 闃叉姈妫�鏌ワ細2绉掑唴涓嶅厑璁搁噸澶嶆搷浣�
- const currentTime = Date.now();
- if (currentTime - this.lastGenerateTime < 2000) {
- this.$showMessage('鎿嶄綔杩囦簬棰戠箒锛岃绋嶇瓑鍐嶈瘯');
- return;
- }
-
- if (this.icount > 6) {
- this.$showMessage('鏉$爜鏁伴噺涓嶈兘瓒呰繃6寮�');
- return;
- }
-
- this.isShow = true;
-
- //this.printBarcode();
- this.getXS0101();
-
- this.user = "";
-
- this.staffNo = null;
- },
- showBarcode() {
-
-
- this.$post({
- url: "/MesStaff/GetMesReportingList",
- data: {
- orderNo: this.orderNo,
- }
- }).then(res => {
- this.reportingList = res.data.tbBillList;
- this.barcodeIsShow = true;
- });
- },
- // 鎵撳嵃鏉$爜鎶ュ伐
- printBarcode() {
- // 闃查噸澶嶈姹傛鏌�
- if (this.isGeneratingBarcode) {
- this.$showMessage('姝e湪鐢熸垚鏉$爜锛岃绋嶇瓑...');
- return;
- }
-
- if (!this.barcodeAmount) {
- this.isShow = false;
- this.$showMessage('璇疯緭鍏ユ潯鐮佹暟閲�');
- return;
- }
-
- if (this.bqty == 0) {
- this.isShow = false;
- this.$showMessage('鍙墦鍗版暟閲忎负0');
- return;
- }
-
- if (this.bqty < this.barcodeAmount) {
- this.isShow = false;
- this.$showMessage('鎵撳嵃鏁伴噺涓嶈兘澶т簬鍙墦鍗版暟閲�');
- return;
- }
-
- if (this.icount * this.barcodeAmount > this.bqty) {
- this.isShow = false;
- this.$showMessage('鎵撳嵃鎬绘暟瓒呰繃鍙墦鍗版�绘暟');
- return;
- }
-
- // 璁剧疆鐢熸垚鐘舵�侀攣瀹�
- this.isGeneratingBarcode = true;
- this.lastGenerateTime = Date.now();
-
- // 鐢熸垚鍞竴璇锋眰ID锛岀敤浜庨槻閲�
- this.generateRequestId = `${this.orderNo}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
-
- console.log('寮�濮嬬敓鎴愭潯鐮侊紝璇锋眰ID:', this.generateRequestId);
-
- // 娣诲姞瓒呮椂鏈哄埗锛�15绉掑悗鑷姩閲婃斁閿佸畾
- const timeoutId = setTimeout(() => {
- if (this.isGeneratingBarcode) {
- console.log('鏉$爜鐢熸垚瓒呮椂锛岄噴鏀鹃攣瀹�');
- this.isGeneratingBarcode = false;
- this.$showMessage('鐢熸垚鏉$爜瓒呮椂锛岃閲嶈瘯');
- }
- }, 15000);
-
- this.$post({
- url: "/MesInvItemBarcodes/AddItemToBarcodes",
- data: {
- printQty: this.barcodeAmount,
- orderNo: this.orderNo,
- orderId: this.orderId,
- user: this.user,
- count: this.icount,
- requestId: this.generateRequestId // 浼犻�掕姹侷D鍒板悗绔敤浜庨槻閲�
- },
- showLoading: true,
- showLoadingTitle: "姝e湪鐢熸垚鏉$爜..."
- }).then(res => {
- // 娓呴櫎瓒呮椂瀹氭椂鍣�
- clearTimeout(timeoutId);
-
- // 娉ㄦ剰锛氳繖閲屼笉绔嬪嵆閲婃斁 isGeneratingBarcode锛岃绛夊埌鎵撳嵃瀹屾垚鎵嶉噴鏀�
- // this.isGeneratingBarcode = false; // 绉婚櫎杩欒锛屽湪 cleanUser() 涓噸缃�
-
- if (res.status == 1) {
- this.$showMessage(res.message);
- this.isShow = false;
- // 濡傛灉鐢熸垚澶辫触锛岄噸缃姸鎬�
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
- return;
- }
- this.dataToPrint = res.data.tbBillList;
- // this.getXS0101();
-
- let printCommands = [];
-
- console.log("鎺ュ彛杩斿洖鐨勬潯鏁�" + this.dataToPrint.length);
-
- let user = this.staffNo;
-
- for (let i = 0; i < this.dataToPrint.length; i++) {
- let _printData = {
- strp1: this.dataToPrint[i].out12,
- strp2: this.dataToPrint[i].out2,
- strp3: this.dataToPrint[i].out6,
- strp4: this.dataToPrint[i].out1,
- strp5: this.dataToPrint[i].out11,
- strp6: this.dataToPrint[i].out8,
- strp7: this.dataToPrint[i].out9,
- strp8: this.dataToPrint[i].out12,
- strp9: this.dataToPrint[i].out7,
- strp10: user,
- }
- let printCmd = printTemplate3(_printData);
- printCommands.push(printCmd);
- }
- this.bufferData = printCommands.join('\n');
-
- console.log('鏉$爜鐢熸垚鎴愬姛锛岃姹侷D:', this.generateRequestId);
- }).catch(error => {
- // 缃戠粶閿欒鏃朵篃瑕侀噴鏀鹃攣瀹�
- clearTimeout(timeoutId);
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
-
- console.error('鏉$爜鐢熸垚澶辫触:', error);
- this.$showMessage('缃戠粶寮傚父锛屾潯鐮佺敓鎴愬け璐ワ紝璇烽噸璇�');
- });
- },
- onPrint() {
-
- this.printBarcode();
- },
-
- onPrintSuccess() {
- this.getOrderById();
- this.findByOrderId();
- // this.updateBarcodeAmount();
- this.getWomdaaPrintById();
-
- // 娓呯┖鎵撳嵃鏁版嵁
- this.bufferData = '';
- this.dataToPrint = [];
-
- // 娓呯┖鎶ュ伐浜烘暟鎹�
- this.staffNo = null;
- this.user = '';
-
- // 閲嶇疆闃查噸澶嶇姸鎬侊紙鎵撳嵃鎴愬姛鍚庡畬鍏ㄩ噸缃級
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
-
- console.log("鎵撳嵃鎴愬姛锛屽凡閲嶇疆闃查噸澶嶇姸鎬�");
- },
- onPrintFail() {
- console.log("閲嶈繛澶辫触");
- this.printLoading = false;
-
- // 閲嶇疆闃查噸澶嶇姸鎬侊紙鎵撳嵃澶辫触鍚庝篃瑕侀噸缃級
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
-
- console.log("鎵撳嵃澶辫触锛屽凡閲嶇疆闃查噸澶嶇姸鎬�");
- },
-
- updateBarcodeAmount() {
- if (this.dataToPrint.length == 0) {
- return;
- }
-
- let barcodes = this.dataToPrint.map(s => s.out12);
-
- this.$post({
- url: "/MesInvItemBarcodes/UpdateBarcodeAmount",
- data: {
- barcodes: barcodes,
- user: this.staffNo
- }
- }).then(res => {
- console.log("鏇存柊鏉$爜鏁伴噺鎴愬姛");
- })
- },
-
- deleteBarcode() {
-
- // 鍏抽棴寮圭獥
- this.isShow = false;
-
- // 鍙栨秷鎵撳嵃鏃跺畬鍏ㄩ噸缃槻閲嶅鐘舵��
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
-
- // 娓呯┖鎵撳嵃鏁版嵁
- this.bufferData = '';
- this.dataToPrint = [];
-
- // 娓呯┖鎶ュ伐浜虹浉鍏虫暟鎹�
- this.staffNo = null;
- this.user = '';
-
- // 閲嶇疆鎵撳嵃鏉$爜鏁版嵁
- this.barcodeAmount = '';
- this.icount = 1;
-
- // 娓呯┖staff鏁版嵁
- this.staff = null;
-
- console.log("宸叉竻绌烘姤宸ヤ汉鍜屾墦鍗版暟鎹紝閲嶇疆闃查噸澶嶇姸鎬�");
-
- if (this.dataToPrint.length == 0) {
- return;
- }
-
-
-
- // let barcodes = this.dataToPrint.map(s => s.out12);
- // this.$post({
- // url: "/MesInvItemBarcodes/DeleteBarcode",
- // data: {
- // barcodes: barcodes,
- // }
- // }).then(res => {
- // console.log("鍒犻櫎鏉$爜鎴愬姛");
- // })
- },
- cleanUser() {
- this.isShow = false;
-
- this.printLoading = false;
-
- // 鎵撳嵃缁撴潫鍚庨噸缃敓鎴愮姸鎬侊紝鍏佽涓嬫鐢熸垚
- this.isGeneratingBarcode = false;
- this.generateRequestId = null;
-
- console.log("鎵撳嵃缁撴潫锛屽凡閲嶇疆鐢熸垚鐘舵��");
- },
- // 淇濆瓨鎿嶄綔
- save() {
- console.log('淇濆瓨鎴愬姛');
- let ids = [];
-
- this.selectedReasons.forEach(s => {
- let id = this.itemsNgname[this.badReasons.indexOf(s)].id;
- ids.push(id);
- });
-
- if (ids.length <= 0) {
- return
- }
-
- let ngids = ids.join(",");
-
- //MesOrderSta
- this.$post({
- url: "/MesOrderSta/UpdateNg",
- data: {
- ngId: ngids,
- staId: this.ngStaid
- }
- }).then(res => {
- if (res.data.tbBillList) {
- uni.showToast({
- title: '淇濆瓨鎴愬姛',
- icon: 'success',
- });
- this.getOrderById();
- this.getWomdaaPrintById();
- this.findByOrderId();
- }
- });
-
- },
- // 鍙栨秷鎿嶄綔
- cancel() {
- console.log('鍙栨秷鎿嶄綔');
- uni.showToast({
- title: '鍙栨秷鎿嶄綔',
- icon: 'none',
- });
- },
- getOrderById() {
- this.$post({
- url: "/Womdaa/GetWomdaaById",
- data: {
- orderId: this.orderId,
- orderNo: this.orderNo
- }
- }).then(res => {
- this.order = res.data.tbBillList;
- this.printedCount = res.data.tbBillList.bgqty;
- this.defectiveCount = res.data.tbBillList.blQty;
- this.productionCount = this.order.todayOutput;
-
- if (!this.order.todayOutput) {
- this.productionCount = 0;
- }
-
- if (!this.defectiveCount) {
- this.defectiveCount = 0;
- }
-
- if (!this.printedCount) {
- this.printedCount = 0;
- }
-
- //this.defectiveCount = this.productionCount - this.sQuantity;
- })
- },
- getMesItemsNgname() {
- this.$post({
- url: "/MesItemsNgname/GetMesItemsNgname",
- }).then(res => {
- this.itemsNgname = res.data.tbBillList;
- this.badReasons = this.itemsNgname.map(s => s.ngName);
- });
- },
- getXS0101() {
- this.$post({
- url: "/MesStaff/GetAllXS0101",
- }).then(res => {
- this.staff = res.data.tbBillList;
- this.users = this.staff.map(s => s.staffNo + ":" + s.staffName);
- });
- },
- getWomdaaPrintById() {
- // 娣诲姞閿欒澶勭悊鍜屾暟鎹牎楠�
- try {
- this.$post({
- url: "/Womdaa/GetWomdaaPrintById",
- data: {
- orderId: this.orderId
- }
- }).then(res => {
- // 妫�鏌ュ搷搴旀暟鎹槸鍚﹀瓨鍦ㄤ笖鏍煎紡姝g‘
- if (!res || !res.data || !res.data.tbBillList) {
- console.error('鑾峰彇鎵撳嵃鏁版嵁澶辫触: 鍝嶅簲鏁版嵁鏍煎紡閿欒');
- return;
- }
-
- const data = res.data.tbBillList;
-
- // 鐩存帴璧嬪�糱qty,涓嶄娇鐢ㄩ粯璁ゅ��
- this.bqty = data.bqty;
- this.icount = 1; // 鍥哄畾涓�1
- this.sQuantity = data.sQuantity || 0;
- this.initialValue = data.initialValue || 0;
- this.kgQty = data.kgQty || 0;
- this.barcodeAmount = data.qqty || 0;
-
- // 鍙湁褰揵qty涓嶄负null涓斾笉涓簎ndefined涓旂瓑浜�0鏃舵墠鎵цCompleted
- if (this.bqty !== null && this.bqty !== undefined && this.bqty === 0) {
- console.log('鏁伴噺涓�0,鎵ц瀹屾垚鎿嶄綔');
- this.Completed();
- }
-
- }).catch(err => {
- console.error('鑾峰彇鎵撳嵃鏁版嵁澶辫触:', err);
- });
- } catch (error) {
- console.error('鎵цgetWomdaaPrintById鏃跺彂鐢熼敊璇�:', error);
- }
- },
- Completed() {
- this.$post({
- url: "/MesOrderSta/Completed",
- data: {
- orderId: this.orderId,
- orderNo: this.orderNo
- }
- }).then(res1 => {
-
- })
- },
- findByOrderId() {
- this.$post({
- url: "/MesOrderSta/FindByOrderNo",
- data: {
- orderId: this.orderId,
- orderNo: this.orderNo
- }
- }).then(res => {
-
- // 浠庢帴鍙h幏鍙栫殑宸查�夋嫨鍘熷洜
- let str = res.data.tbBillList.ngId;
-
- this.ngStaid = res.data.tbBillList.id;
-
- if (!str) {
- return;
- }
-
- let ids = str.split(",");
-
- // 浣跨敤 map 鍜� filter 鎻愬彇瀵瑰簲鐨� ngName
- let preSelectedReasons = ids.map(id => {
- // 鏌ユ壘瀵瑰簲鐨勫璞�
- let matchedItem = this.itemsNgname.find(item => item.id == id);
- return matchedItem ? matchedItem.ngName : null; // 濡傛灉鎵惧埌锛岃繑鍥� ngName锛涘惁鍒欒繑鍥� null
- }).filter(ngName => ngName !== null); // 杩囨护鎺� null 鍊�
-
- // 璁剧疆宸查�変腑鐨勪笉鑹師鍥�
- this.selectedReasons = this.badReasons.filter(reason => preSelectedReasons.includes(reason));
- });
+ this.staffNo = this.user;
},
confirmCustomAmount() {
- // 妫�鏌ヨ緭鍏ユ槸鍚︿负鏈夋晥鏁板瓧
if (!this.customAmount || isNaN(Number(this.customAmount))) {
this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺');
return;
}
-
- // 灏嗚嚜瀹氫箟鏁伴噺搴旂敤鍒扮郴缁熶腑
let amount = Number(this.customAmount);
- console.log('搴旂敤鑷畾涔夋暟閲�:', amount);
-
- // 杩欓噷鍙互鏍规嵁闇�瑕佽皟鐢ˋPI鎴栨洿鏂扮浉鍏虫暟鎹�
this.$post({
url: "/MesInvItemBarcodes/AddBFToBarcodes",
data: {
@@ -1389,21 +323,132 @@
return;
}
this.$showMessage('鎶ュ簾鏁伴噺濉啓鎴愬姛');
- // 閲嶆柊鑾峰彇鏁版嵁浠ユ洿鏂版樉绀�
this.fetchData(true);
- // 娓呯┖杈撳叆妗�
this.customAmount = '';
- }).catch(err => {
- console.error('鎶ュ簾鏁伴噺濉啓澶辫触:', err);
+ }).catch(() => {
this.$showMessage('鎶ュ簾鏁伴噺濉啓澶辫触锛岃閲嶈瘯');
});
+ },
+ // 淇濆瓨鎸夐挳鐜板湪浠呮牎楠屾姤宸ヤ汉锛堝彲鏍规嵁涓氬姟鏀规垚鎻愪氦鎺ュ彛锛�
+ save() {
+ if (!this.staffNo) {
+ this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');
+ return;
+ }
+ uni.showToast({ title: '淇濆瓨鎴愬姛', icon: 'success' });
+ },
+ cancel() {
+ uni.showToast({ title: '鍙栨秷鎿嶄綔', icon: 'none' });
+ },
+ getOrderById() {
+ this.$post({
+ url: "/Womdaa/GetWomdaaById",
+ data: { orderId: this.orderId, orderNo: this.orderNo }
+ }).then(res => {
+ this.order = res.data.tbBillList;
+ this.printedCount = res.data.tbBillList.bgqty;
+ this.defectiveCount = res.data.tbBillList.blQty;
+ this.productionCount = this.order.todayOutput || 0;
+ this.defectiveCount = this.defectiveCount || 0;
+ this.printedCount = this.printedCount || 0;
+ });
+ },
+ getXS0101() {
+ this.$post({ url: "/MesStaff/GetAllXS0101" }).then(res => {
+ this.staff = res.data.tbBillList;
+ this.users = this.staff.map(s => s.staffNo + ":" + s.staffName);
+ });
+ },
+ getWomdaaPrintById() {
+ this.$post({
+ url: "/Womdaa/GetWomdaaPrintById",
+ data: { orderId: this.orderId }
+ }).then(res => {
+ if (!res || !res.data || !res.data.tbBillList) return;
+ const data = res.data.tbBillList;
+ this.bqty = data.bqty;
+ this.icount = 1;
+ this.sQuantity = data.sQuantity || 0;
+ this.initialValue = data.initialValue || 0;
+ this.kgQty = data.kgQty || 0;
+ this.barcodeAmount = data.qqty || 0;
+ if (this.bqty === 0) this.Completed();
+ }).catch(() => { });
+ },
+ Completed() {
+ this.$post({
+ url: "/MesOrderSta/Completed",
+ data: { orderId: this.orderId, orderNo: this.orderNo }
+ });
+ },
+ // 浠ヤ笅鎵撳嵃鐩稿叧鍑芥暟浠嶄繚鐣欙紙鑻ュ畬鍏ㄤ笉鐢ㄥ彲缁х画鍒犻櫎锛�
+ init() {
+ try {
+ const androidVersion = this.getAndroidVersion();
+ if (androidVersion >= 12) this.initForAndroid12Plus(); else this.initForAndroidLegacy();
+ } catch (e) { console.error(e); }
+ },
+ getAndroidVersion() {
+ try {
+ var Build = plus.android.importClass("android.os.Build");
+ return Build.VERSION.SDK_INT;
+ } catch { return 30; }
+ },
+ initForAndroid12Plus() {
+ try {
+ var main = plus.android.runtimeMainActivity();
+ var BluetoothManager = plus.android.importClass("android.bluetooth.BluetoothManager");
+ var Context = plus.android.importClass("android.content.Context");
+ var UUID = plus.android.importClass("java.util.UUID");
+ this.uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
+ var bluetoothManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
+ var bluetoothAdapter = bluetoothManager.getAdapter();
+ if (bluetoothAdapter && bluetoothAdapter.isDiscovering()) bluetoothAdapter.cancelDiscovery();
+ this.printMac = uni.getStorageSync('printMac');
+ var address_mac = this.printMac ? this.printMac : "DC:1D:30:91:06:52";
+ if (bluetoothAdapter) {
+ this.device = bluetoothAdapter.getRemoteDevice(address_mac);
+ plus.android.importClass(this.device);
+ }
+ } catch (e) {
+ this.initForAndroidLegacy();
+ }
+ },
+ initForAndroidLegacy() {
+ try {
+ var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
+ var UUID = plus.android.importClass("java.util.UUID");
+ this.uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
+ var BAdapter = BluetoothAdapter.getDefaultAdapter();
+ if (BAdapter) BAdapter.cancelDiscovery();
+ this.printMac = uni.getStorageSync('printMac');
+ var address_mac = this.printMac ? this.printMac : "DC:1D:30:91:06:52";
+ if (BAdapter) {
+ this.device = BAdapter.getRemoteDevice(address_mac);
+ plus.android.importClass(this.device);
+ this.bluetoothSocket = this.device.createInsecureRfcommSocketToServiceRecord(this.uuid);
+ plus.android.importClass(this.bluetoothSocket);
+ }
+ } catch (e) { }
+ },
+ deleteBarcode() {
+ this.isShow = false;
+ this.isGeneratingBarcode = false;
+ this.generateRequestId = null;
+ this.bufferData = '';
+ this.dataToPrint = [];
+ this.staffNo = null;
+ this.user = '';
+ this.barcodeAmount = '';
+ this.icount = 1;
+ this.staff = null;
}
}
};
</script>
<style scoped>
- /* 椤甸潰鏍峰紡 */
+ /* 鏍峰紡淇濇寔鍘熸湁锛屽ぇ鍧楀垹闄ゅ尯鍩熶笉鍐嶉渶瑕侀澶栨牱寮� */
.page {
padding: 2vh;
display: flex;
@@ -1412,353 +457,23 @@
box-sizing: border-box;
}
- .top-right {
- position: absolute;
- top: -25px;
- right: 50px;
- z-index: 1000;
- }
-
.refresh-btn {
- /* padding: 10px; */
float: right;
background-color: #00A2E9;
- color: white;
+ color: #fff;
border: none;
font-size: 32px;
border-radius: 15px;
- margin-top: -23px;
- padding-left: 25px;
- padding-right: 25px;
margin-top: -32px;
margin-bottom: 49px;
+ padding: 0 25px;
}
- /* 鐘舵�佽鏍峰紡 */
.status-section {
display: flex;
flex-direction: column;
margin-bottom: 3vh;
padding-top: 14px;
- }
-
- .status-row {
- display: flex;
- justify-content: space-around;
- margin-bottom: 20px;
- }
-
- .status-box {
- display: flex;
- align-items: center;
- }
-
- .refresh-container {
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- }
-
- input.highlight {
- width: 10vw;
- font-weight: 700;
- border: none;
- background-color: #FFD700;
- text-align: center;
- font-size: 1.5vw;
- }
-
- .form-row {
- display: flex;
- justify-content: space-between;
- margin-bottom: 3vh;
- flex-wrap: nowrap;
- }
-
- .form-item {
- width: 30%;
-
- }
-
- .print-section {
-
- padding: 1vh;
- border-radius: 1vw;
- margin-bottom: 2vh;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- flex-direction: row;
- align-content: stretch;
- justify-content: flex-start;
- }
-
- .barcode-info {
- display: flex;
- align-items: flex-start;
- gap: 2vw;
- flex-direction: row;
- flex-wrap: nowrap;
- align-content: flex-start;
- justify-content: flex-start;
- }
-
- .inp {
- width: 65%;
- padding: 1vh;
- margin-top: -13px;
- font-size: 1.3vw;
- border: 1px solid #808080;
- border-radius: 0.5vw;
- box-sizing: border-box;
- }
-
- .barcode-info text {
- font-size: 2.5vw
- }
-
- input {
- padding: 1vh;
- font-size: 1.5vw;
- width: 10vw;
- border-radius: 0.5vw;
- height: 2.4em;
- }
-
- .print-btn {
- display: inline-block;
- padding: 1.5vh;
- background-color: #e93c00eb;
- color: white;
- font-size: 1.5vw;
- border: none;
- cursor: pointer;
- border-radius: 1vw;
- margin-left: 30px;
- }
-
- .details-btn {
- display: inline-block;
- padding: 1.5vh;
- background-color: #00a2e9;
- color: white;
- font-size: 1.5vw;
- border: none;
- cursor: pointer;
- border-radius: 1vw;
- margin-left: 50px;
- }
-
- /* 涓嶈壇鍘熷洜閫夋嫨 */
- .reason-section {
- margin-bottom: 3vh;
- }
-
- .reason-buttons {
- display: grid;
- grid-template-columns: repeat(5, 1fr);
- gap: 1vw;
- }
-
- .reason-btn {
- padding: 0.5vh;
- background-color: #808080;
- color: white;
- font-size: 1.3vw;
- border: none;
- border-radius: 0.5vw;
- cursor: pointer;
- }
-
- .reason-btn.selected {
- background-color: #FFD700;
- color: black;
- }
-
- /* 搴曢儴淇濆瓨鍜屽彇娑堟寜閽� */
- .bottom-section {
- display: flex;
- justify-content: space-between;
- margin-top: 2vh;
- }
-
- .bottom-section1 {
- display: flex;
- justify-content: space-around;
- margin-bottom: 2vh;
- padding: 2vh 1vw;
- }
-
- .save-btn,
- .cancel-btn {
- width: 48%;
- padding: 1.5vh;
- background-color: #00A2E9;
- color: white;
- font-size: 1.5vw;
- border: none;
- text-align: center;
- cursor: pointer;
- border-radius: 0.5vw;
- }
-
- .clean-btn {
- width: 48%;
- padding: 1.5vh;
- color: white;
- font-size: 1.5vw;
- border: none;
- text-align: center;
- cursor: pointer;
- border-radius: 0.5vw;
- background-color: #007aff;
- }
-
- .user-select1 {
- float: left;
- display: inline-block;
- margin-top: 17px;
- }
-
- .user-select2 {
- margin-top: 17px;
- margin-left: -10px;
- }
-
- .user-select {
- /* margin-right: 2vw; */
- font-size: 1.5vw;
- }
-
- .form-item label {
- float: left;
- margin-top: -5px;
- font-size: 1.5vw;
- /* Larger font for labels */
- display: inline-block;
- margin-bottom: 0.5vh;
- color: #333;
- }
-
- .overlay {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.5);
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- .popup {
- background-color: #fff;
- padding: 2vh;
- border: 1px solid #ccc;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
- width: 70vw;
- height: 70vh;
- font-size: 1.6vw;
- /* 璁剧疆寮规鐨勬渶澶ч珮搴� */
- max-height: 80vh;
- /* 鍚敤绾靛悜婊氬姩鏉� */
- overflow-y: auto;
- /* 璁剧疆寮规鐨勫瑙� */
- border-radius: 8px;
- /* Increased font size within popups */
- }
-
- .inp5 {
- float: left;
- margin-top: 0px;
- width: 20%;
- text-align: center;
- font-size: 45px;
- border: 0px;
- border-radius: 1.5vw;
- background-color: #e5d3a0;
- }
-
- .inp6 {
- float: left;
- width: 22%;
- text-align: center;
- font-size: 45px;
- border: 0px;
- border-radius: 1.5vw;
- background-color: #e5d3a0;
- display: inline-block;
- }
-
- .table1 {
- width: 100%;
- border-spacing: 3px;
- }
-
- .table2 {
- background-color: bisque;
-
- }
-
- .top-refresh-container {
- display: flex;
- justify-content: flex-end;
- align-items: center;
- margin-bottom: 15px;
- }
-
- .version-info-top {
- text-align: right;
- font-size: 13px;
- color: #000;
- margin-right: 10px;
- }
-
- .operator-box {
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 36px;
- font-weight: bold;
- margin: 0 10px;
- color: #333;
- }
-
- .header-container {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 20px;
- padding: 10px 15px;
- background-color: #f2f2f2;
- border-radius: 10px;
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
- }
-
- .header-title {
- font-size: 24px;
- font-weight: bold;
- color: #333;
- }
-
- .header-right {
- display: flex;
- align-items: center;
- }
-
- .top-refresh-container {
- display: flex;
- justify-content: flex-end;
- align-items: center;
- margin-bottom: 15px;
- }
-
- .version-info-top {
- text-align: right;
- font-size: 13px;
- color: #666;
- margin-right: 10px;
}
.status-row {
@@ -1769,7 +484,7 @@
background-color: #f9f9f9;
padding: 15px;
border-radius: 8px;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.status-box {
@@ -1794,7 +509,7 @@
font-size: 1.5vw;
padding: 8px;
border-radius: 4px;
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 3px rgba(0,0,0,.1);
}
.operator-box {
@@ -1807,116 +522,170 @@
color: #007aff;
width: 40px;
height: 40px;
- line-height: 40px;
- text-align: center;
}
- .refresh-btn {
- background-color: #007aff;
- color: white;
+ .header-container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 20px;
+ padding: 10px 15px;
+ background-color: #f2f2f2;
+ border-radius: 10px;
+ box-shadow: 0 2px 5px rgba(0,0,0,.1);
+ }
+
+ .header-title {
+ font-size: 24px;
+ font-weight: bold;
+ color: #333;
+ }
+
+ .version-info-top {
+ font-size: 13px;
+ color: #666;
+ margin-right: 10px;
+ }
+
+ .inp {
+ width: 65%;
+ padding: 1vh;
+ margin-top: -13px;
+ font-size: 1.3vw;
+ border: 1px solid #808080;
+ border-radius: .5vw;
+ box-sizing: border-box;
+ }
+
+ .form-row {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 3vh;
+ flex-wrap: nowrap;
+ }
+
+ .form-item {
+ width: 30%;
+ }
+
+ .print-section {
+ padding: 1vh;
+ border-radius: 1vw;
+ margin-bottom: 2vh;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ }
+
+ .barcode-info {
+ display: flex;
+ align-items: flex-start;
+ gap: 2vw;
+ }
+
+ .details-btn {
+ display: inline-block;
+ padding: 1.5vh;
+ background-color: #00a2e9;
+ color: #fff;
+ font-size: 1.5vw;
border: none;
- font-size: 18px;
- border-radius: 6px;
- padding: 8px 20px;
- transition: background-color 0.3s;
+ cursor: pointer;
+ border-radius: 1vw;
}
- .refresh-btn:active {
- background-color: #0062cc;
+ .reason-section {
+ margin-bottom: 3vh;
+ }
+
+ .reason-buttons {
+ display: grid;
+ grid-template-columns: repeat(5,1fr);
+ gap: 1vw;
+ }
+
+ .reason-btn {
+ padding: .5vh;
+ background-color: #808080;
+ color: #fff;
+ font-size: 1.3vw;
+ border: none;
+ border-radius: .5vw;
+ cursor: pointer;
+ }
+
+ .reason-btn.selected {
+ background-color: #FFD700;
+ color: #000;
+ }
+
+ .bottom-section {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 2vh;
+ }
+
+ .save-btn, .cancel-btn {
+ width: 48%;
+ padding: 1.5vh;
+ background-color: #00A2E9;
+ color: #fff;
+ font-size: 1.5vw;
+ border: none;
+ text-align: center;
+ cursor: pointer;
+ border-radius: .5vw;
+ }
+
+ .overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0,0,0,.5);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .popup {
+ background-color: #fff;
+ padding: 2vh;
+ border: 1px solid #ccc;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+ width: 70vw;
+ height: 70vh;
+ font-size: 1.6vw;
+ max-height: 80vh;
+ overflow-y: auto;
+ border-radius: 8px;
+ }
+
+ .clean-btn {
+ width: 48%;
+ padding: 1.5vh;
+ color: #fff;
+ font-size: 1.5vw;
+ border: none;
+ text-align: center;
+ cursor: pointer;
+ border-radius: .5vw;
+ background-color: #007aff;
+ }
+
+ .table1 {
+ width: 100%;
+ border-spacing: 3px;
}
.reset-btn {
background-color: #ff6b6b;
- color: white;
+ color: #fff;
border: none;
font-size: 18px;
border-radius: 6px;
padding: 8px 15px;
margin-left: 10px;
- transition: background-color 0.3s;
- }
-
- .reset-btn:active {
- background-color: #e55555;
- }
-
- .non-calc-row {
- border-top: 1px dashed #ccc;
- margin-top: 30px;
- padding-top: 20px;
- position: relative;
- }
-
- .divider-label {
- position: absolute;
- top: -12px;
- left: 30px;
- background-color: #fff;
- padding: 0 15px;
- font-size: 16px;
- color: #777;
- }
-
- .standalone-box {
- background-color: #f5f5f5;
- padding: 8px 15px;
- border-radius: 6px;
- margin-right: 20px;
- }
-
- .confirm-row {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 10px;
- }
-
- .input-group {
- display: flex;
- align-items: center;
- }
-
- .custom-input {
- width: 60%;
- padding: 1vh;
- font-size: 1.5vw;
- border: 1px solid #808080;
- border-radius: 0.5vw;
- }
-
- .confirm-btn {
- padding: 1.5vh;
- background-color: #00A2E9;
- color: white;
- font-size: 1.5vw;
- border: none;
- cursor: pointer;
- border-radius: 0.5vw;
- }
-
- .custom-amount-section {
- margin-top: 20px;
- }
-
- .custom-amount-container {
- display: flex;
- align-items: center;
- }
-
- .custom-amount-label {
- margin-right: 10px;
- font-size: 1.5vw;
- }
-
- .custom-amount-input {
- width: 60%;
- padding: 1vh;
- font-size: 1.5vw;
- border: 1px solid #808080;
- border-radius: 0.5vw;
- }
-
- .custom-amount-row {
- margin-top: 20px;
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3