From 5bda960d3f630766cc3854f8bbd4440fdcf94194 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 05 十一月 2025 17:42:28 +0800
Subject: [PATCH] 样式修改
---
components/WorkOrderPrint.vue | 310 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 217 insertions(+), 93 deletions(-)
diff --git a/components/WorkOrderPrint.vue b/components/WorkOrderPrint.vue
index cf92268..f44898b 100644
--- a/components/WorkOrderPrint.vue
+++ b/components/WorkOrderPrint.vue
@@ -1,8 +1,55 @@
<template>
<view class="page wide-layout" :class="{'has-overlay': (isShowUserSelect || isShow || barcodeIsShow)}">
<view class="status-section">
+ <!-- 鎶ュ伐璁板綍琛ㄩ儴鍒嗭紝鍦ㄦ爣棰樿娣诲姞鍒锋柊鎸夐挳 -->
<view class="report-table-wrapper">
- <view class="report-title">鎶ュ伐璁板綍琛�</view>
+ <view class="report-header">
+ <view class="report-title">鎶ュ伐璁板綍琛�</view>
+ <view class="header-buttons">
+ <button class="refresh-btn-header" @click="refresh">鍒锋柊</button>
+ <button v-if="isGeneratingBarcode" class="reset-btn-header" @click="resetGenerateState">閲嶇疆</button>
+ </view>
+ </view>
+
+ <!-- 鏁伴噰鎬讳骇閲� -->
+ <view class="section-title">鏁伴噰浜ч噺</view>
+ <div class="table-scroll">
+ <table class="report-table">
+ <thead>
+ <tr>
+ <th>鏃堕棿</th>
+ <th>鎶ュ伐浜�</th>
+ <th>宸ュ崟鍙�</th>
+ <th>浜у搧鍚嶇О</th>
+ <th>璁″垝鐢熶骇鏁�</th>
+ <th>鏈哄彴鍙�</th>
+ <th>鍒濆閲囬泦鏁�</th>
+ <th>鎶ュ伐鏃堕噰闆嗘暟</th>
+ <th>鍩轰簬鏁伴噰鐨勬姤宸ユ暟</th>
+ <th>涓嶈壇鏁�</th>
+ <th>鑹搧鏁帮紙璁$畻锛�</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="summary-row highlight-row">
+ <td>{{ nowTime }}</td>
+ <td>{{ staffDisplay || '-' }}</td>
+ <td>{{ orderNo || '-' }}</td>
+ <td>{{ order.daa003 || '-' }}</td>
+ <td>{{ planQtyDisplay }}</td>
+ <td>{{ machineNo || '-' }}</td>
+ <td>{{ order.initCjNum }}</td>
+ <td>{{ order.currentCjNum }}</td>
+ <td>{{ order.currentCjNum - order.initCjNum }}</td>
+ <td>{{ realTimeDefectiveCount }}</td>
+ <td>{{ realTimeOkCount }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <!-- 鍘嗗彶鎶ュ伐璁板綍 -->
+ <view class="section-title history-title">鍘嗗彶鎶ュ伐璁板綍</view>
<div class="table-scroll">
<table class="report-table">
<thead>
@@ -21,33 +68,18 @@
</tr>
</thead>
<tbody>
- <!-- 褰撳墠瀹炴椂缁熻(淇濇寔鍘熸潵鍗曡) -->
- <tr class="summary-row">
- <td>{{ nowTime }}</td>
- <td>{{ staffDisplay || '-' }}</td>
- <td>{{ orderNo || '-' }}</td>
- <td>{{ order.daa003 || '-' }}</td>
- <td>{{ planQtyDisplay }}</td>
- <td>{{ machineNo || '-' }}</td>
- <td>{{ initialValue }}</td>
- <td>{{ productionCount }}</td>
- <td>{{ calculatedTotalProduction }}</td>
- <td>{{ calculatedDefectiveCount }}</td>
- <td>{{ sQuantity }}</td>
- </tr>
- <!-- 鍘嗗彶鎶ュ伐璁板綍琛� -->
<tr v-for="(r, idx) in reportingHistory" :key="idx">
- <td>{{ r.time }}</td>
+ <td>{{ r.bgDate }}</td>
<td>{{ r.staff || '-' }}</td>
<td>{{ r.orderNo || '-' }}</td>
- <td>{{ r.productName || '-' }}</td>
- <td>{{ r.planQty }}</td>
+ <td>{{ order.daa003 || '-' }}</td>
+ <td>{{ planQtyDisplay }}</td>
<td>{{ r.machineNo || '-' }}</td>
<td>{{ r.initialValue }}</td>
<td>{{ r.productionCount }}</td>
<td>{{ r.totalProduction }}</td>
- <td>{{ r.defective }}</td>
- <td>{{ r.good }}</td>
+ <td>{{ r.BfQty }}</td>
+ <td>{{ r.OkQty }}</td>
</tr>
<tr v-if="!reportingHistory.length">
<td colspan="11" class="no-data">鏆傛棤鍘嗗彶鎶ュ伐璁板綍</td>
@@ -57,9 +89,9 @@
</div>
</view>
- <!-- 涓嬮潰鍘熸湁鍐呭淇濇寔涓嶅彉 -->
+ <!-- 绉婚櫎浜嗗師鏉ョ殑鐘舵�佽涓殑鎸夐挳缁� -->
<view class="status-row">
- <view class="status-box">
+ <!--<view class="status-box">
<text>鏈哄彴闈㈡澘鏁帮細</text>
<input v-model="productionCount" class="highlight" disabled />
</view>
@@ -80,30 +112,26 @@
<view class="status-box result-box">
<text>宸茬敓浜ф暟锛�</text>
<input v-model="calculatedTotalProduction" class="highlight" disabled />
- </view>
- <view class="btn-group">
- <button class="refresh-btn-inline" @click="refresh">鍒锋柊</button>
- <button v-if="isGeneratingBarcode" class="reset-btn-inline" @click="resetGenerateState">閲嶇疆</button>
- </view>
+ </view>-->
</view>
<view class="flex-row gap-lg">
- <view class="print-section flex-grow">
- <view class="barcode-info">
- <view class="user-select">
- <text>涓嶈壇鏁伴噺锛�</text>
- <input v-model="customAmount" class="inp bad-input" placeholder="璇疯緭鍏ユ暟閲�" />
- </view>
- <view class="user-select">
- <button class="details-btn" @click="confirmCustomAmount">纭鎻愪氦</button>
- </view>
- </view>
- </view>
-
- <view class="current-user-section fill-width">
+ <!-- 褰撳墠鎶ュ伐浜洪儴鍒� -->
+ <view class="current-user-section">
<text>褰撳墠鎶ュ伐浜猴細</text>
<text class="current-user-name">{{ staffDisplay || '鏈�夋嫨' }}</text>
<button class="select-user-btn" @click="isShowUserSelect = true">閫変汉</button>
+ </view>
+
+ <!-- 涓嶈壇鏁伴噺閮ㄥ垎 -->
+ <view class="defective-section">
+ <text>涓嶈壇鏁伴噺锛�</text>
+ <input v-model="customAmount" class="inp bad-input" placeholder="璇疯緭鍏ユ暟閲�" />
+ </view>
+
+ <!-- 纭鎻愪氦鎸夐挳 -->
+ <view class="submit-section">
+ <button class="details-btn" @click="confirmCustomAmount">纭鎻愪氦</button>
</view>
</view>
@@ -120,7 +148,7 @@
<button v-if="userSearch" class="user-search-clear" @click="userSearch=''">娓呯┖</button>
<view class="user-search-info">
鍖归厤锛歿{ filteredUsers.length }} / {{ users.length }}
- </view>
+ </view>
</view>
<view class="user-list-scroll">
<template v-if="filteredUsers.length">
@@ -144,11 +172,11 @@
</view>
</view>
- <view class="bottom-section">
+ <!-- 绂佺敤鎸夐挳锛氣�樹繚瀛樺苟鐢熸晥'銆佲�樺彇娑堚�� -->
+ <!--<view class="bottom-section">
<button class="save-btn" @click="save">淇濆瓨骞剁敓鏁�</button>
<button class="cancel-btn" @click="cancel">鍙栨秷</button>
- </view>
-
+ </view>-->
<!-- 淇濈暀鏃у脊绐� -->
<view v-if="isShow" class="overlay">
<view class="popup">
@@ -216,8 +244,20 @@
}
},
computed: {
+ //鑹搧鏁板疄鏃惰绠�
+ realTimeDefectiveCount() {
+ // 浼樺厛鐢ㄨ緭鍏ユ鐨勫�硷紝鍚﹀垯鐢ㄦ帴鍙f暟鎹�
+ const val = Number(this.customAmount);
+ if (!isNaN(val) && this.customAmount !== '') return val;
+ return this.calculatedDefectiveCount;
+ },
+ realTimeOkCount() {
+ // 鑹搧鏁� = 鎶ュ伐鏁帮紙璁$畻锛� - 涓嶈壇鏁�
+ const total = (this.order.currentCjNum || 0) - (this.order.initCjNum || 0);
+ return total - this.realTimeDefectiveCount;
+ },
calculatedCurrentCount() { return (this.productionCount || 0) - (this.initialValue || 0); },
- calculatedTotalProduction() { return (this.kgQty || 0); }, // 鑻ラ渶瑕佹仮澶嶄箣鍓嶉�昏緫鍙敼涓� (this.kgQty||0)+this.calculatedCurrentCount
+ calculatedTotalProduction() { return (this.kgQty || 0); }, // 鑻ラ渶鎭㈠鏃ч�昏緫鍙敤 (this.kgQty||0)+this.calculatedCurrentCount
calculatedDefectiveCount() { return this.calculatedTotalProduction - (this.sQuantity || 0); },
planQtyDisplay() { return this.order.planQty || this.order.planQuantity || this.order.daa008 || 0; },
staffDisplay() {
@@ -237,7 +277,8 @@
this.init();
this.getXS0101();
this.updateNowTime();
- this.nowTimeTimer = setInterval(this.updateNowTime, 60000);
+ // 绉掔骇鍒锋柊锛涘涓嶉渶鍔ㄦ�佽烦绉掑彲鏀逛负 60000
+ this.nowTimeTimer = setInterval(this.updateNowTime, 1000);
},
beforeDestroy() { if (this.nowTimeTimer) clearInterval(this.nowTimeTimer); },
methods: {
@@ -247,9 +288,10 @@
return segs.length > 1 ? `${segs[0]} ${segs[1]}` : u;
},
selectUser(u) { this.staffNo = u; this.isShowUserSelect = false; this.userSearch = ''; },
+ /* 淇敼锛氬鍔犵 */
updateNowTime() {
const d = new Date(), p = n => n.toString().padStart(2, '0');
- this.nowTime = `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
+ this.nowTime = `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}`;
},
initializeData() {
this.productionCount = this.printedCount = this.defectiveCount = 0;
@@ -263,7 +305,7 @@
},
refresh() {
this.$sendPostRequest({
- url: "http://192.168.0.94:9095/Numerical/RefreshDev",
+ url: "http://192.168.0.94:9095/Numerical/RefreshDevBycl",
data: { machineNo: this.order.machineNo },
contentType: "application/json"
}).then(r => { r.code == 200 ? this.fetchData(true) : this.$showMessage("鍚屾澶辫触"); });
@@ -290,28 +332,34 @@
}
},
/* 鏂板锛氳幏鍙栧巻鍙叉姤宸ヨ褰� */
+ /* 淇敼锛氳鑼冨巻鍙叉椂闂村埌绉� */
getReportingHistory() {
if (!this.orderNo) { this.reportingHistory = []; return; }
- this.$post({
- url: "/Womdaa/GetByBillNoBG",
- data: { billNo: this.orderNo, machineNo: this.machineNo || null }
+ const fmtSec = v => {
+ if (!v) return '';
+ // 鍏煎鍚庣鍙兘杩斿洖鐨勪笉鍚屾牸寮�
+ const d = new Date(typeof v === 'string' ? v.replace(/-/g, '/') : v);
+ if (isNaN(d.getTime())) return v; // 鏃犳硶瑙f瀽鍒欏師鏍疯繑鍥�
+ const p = n => n.toString().padStart(2, '0');
+ return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}`;
+ };
+ this.$post({
+ url: "/Womdaa/GetByBillNoBG",
+ data: { billNo: this.orderNo, machineNo: this.machineNo || null }
}).then(res => {
const list = res?.data?.tbBillList || res?.data || [];
this.reportingHistory = list.map(r => {
// 渚濇嵁浣犳暟鎹簱瀛楁鍋氭槧灏勶紙涓嬮潰瀛楁鍚嶆寜甯歌鍛藉悕涓句緥锛岄渶瑕佹寜瀹為檯鏀癸級
return {
- time: r.bgDate || r.startTime || r.createTime || '', // 寮�濮嬫椂闂�
- staff: (r.staffNo ? (r.staffNo + ' ' + (r.staffName || '')) : (r.staffName || '')),
- orderNo: r.billNo || this.orderNo,
- productName: r.daa003 || this.order?.daa003,
- planQty: this.planQtyDisplay,
- machineNo: r.machineNo || this.machineNo,
- initialValue: r.initialValue ?? 0,
- productionCount: r.productionCount ?? r.todayOutput ?? 0,
- totalProduction: r.kgQty ?? r.totalProduction ?? 0,
- good: r.sQuantity ?? r.okQty ?? 0,
- defective: (r.defectiveQty ??
- ((r.kgQty ?? r.totalProduction ?? 0) - (r.sQuantity ?? r.okQty ?? 0)))
+ bgDate: r.bgDate || '', // 鎶ュ伐鏃堕棿
+ staff: (r.staffNo ? (r.staffNo + ' ' + (r.staffName || '')) : (r.staffName || '')),//鎶ュ伐浜�
+ orderNo: r.billNo,//宸ュ崟鍙�
+ machineNo: r.machineNo,//鏈哄彴鍙�
+ initialValue: r.csQty ?? 0,//鍒濆閲囬泦鏁�
+ productionCount: r.cjQty ?? 0,//鎶ュ伐鏃堕噰闆嗘暟
+ totalProduction: (r.cjQty - r.csQty) ?? 0,//鎶ュ伐鏁帮紙璁$畻锛�
+ BfQty: r.bfQty,//涓嶈壇鏁�
+ OkQty: r.okQty//鑹搧鏁帮紙璁$畻锛�
}
});
}).catch(() => { this.reportingHistory = []; });
@@ -321,6 +369,7 @@
this.user = this.user === u ? null : u;
this.staffNo = this.user;
},
+ //閫夋嫨鎶ュ伐浜�
confirmCustomAmount() {
if (!this.customAmount || isNaN(Number(this.customAmount))) { this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺'); return; }
if (!this.staffNo) { this.$showMessage('璇烽�夋嫨鎶ュ伐浜�'); return; }
@@ -332,7 +381,9 @@
orderNo: this.orderNo,
orderId: this.orderId,
bf: amount,
- staffNo: staffNo
+ staffNo: staffNo,
+ initCjNum: this.order.initCjNum, // 鍒濆閲囬泦鏁�
+ currentCjNum: this.order.currentCjNum // 鎶ュ伐鏃堕噰闆嗘暟
}
}).then(res => {
if (res.status == 1) { this.$showMessage(res.message); return; }
@@ -437,7 +488,26 @@
</script>
<style scoped>
- /* 鍘熸牱寮忎繚鎸侊紝鏂板鍑犺杈呭姪鏍峰紡 */
+ .section-title {
+ font-size: 20px;
+ font-weight: bold;
+ margin: 18px 0 8px 0;
+ color: #fff;
+ background: #007aff;
+ padding: 8px 18px;
+ border-radius: 8px 8px 0 0;
+ display: inline-block;
+ }
+
+ .history-title {
+ background: #555;
+ }
+
+ .highlight-row {
+ background: #ffe9b3 !important;
+ font-weight: bold;
+ }
+
.report-table .summary-row {
background: #f0f8ff;
font-weight: 600;
@@ -448,7 +518,47 @@
color: #777;
font-size: 14px;
}
- /* 鍏朵綑鏍峰紡淇濇寔涓嶅彉 */
+
+ .report-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 8px;
+ }
+
+ .header-buttons {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ }
+
+ .refresh-btn-header {
+ background: #00A2E9;
+ color: #fff;
+ border: none;
+ font-size: 16px;
+ border-radius: 8px;
+ padding: 8px 20px;
+ transition: background 0.15s;
+ }
+
+ .refresh-btn-header:hover {
+ background: #0086c0;
+ }
+
+ .reset-btn-header {
+ background: #ff6b6b;
+ color: #fff;
+ border: none;
+ font-size: 14px;
+ border-radius: 8px;
+ padding: 8px 16px;
+ transition: background 0.15s;
+ }
+
+ .reset-btn-header:hover {
+ background: #e94d4d;
+ }
.page {
padding: 1.2vh 2vw;
@@ -482,7 +592,7 @@
font-size: 24px;
font-weight: 600;
text-align: center;
- margin: 0 0 8px;
+ margin: 0;
}
.report-table {
@@ -593,7 +703,7 @@
display: flex;
flex-wrap: wrap;
gap: 20px;
- align-items: flex-start;
+ align-items: stretch;
}
.flex-grow {
@@ -604,17 +714,16 @@
gap: 30px;
}
- .print-section {
- padding: 6px 0 14px;
- margin-bottom: 0;
- flex: 1;
+ .defective-section {
+ display: flex;
+ align-items: center;
+ gap: 14px;
+ font-size: 18px;
}
- .barcode-info {
+ .submit-section {
display: flex;
- flex-wrap: wrap;
- align-items: flex-start;
- gap: 30px;
+ align-items: center;
}
.inp {
@@ -657,10 +766,7 @@
padding: 14px 22px;
background: #fff;
gap: 14px;
- }
-
- .fill-width {
- flex: 0 1 380px;
+ flex: 0 0 auto;
}
.current-user-name {
@@ -717,7 +823,7 @@
display: flex;
flex-direction: column;
}
- /* 鎼滅储鏉℃牱寮� */
+
.user-search-bar {
display: flex;
align-items: center;
@@ -768,8 +874,8 @@
.user-list-grid {
display: grid;
- grid-template-columns: repeat(auto-fill,minmax(150px,1fr));
- gap: 24px 24px;
+ grid-template-columns: repeat(auto-fill,minmax(110px,1fr));
+ gap: 12px 12px;
}
.user-list-btn {
@@ -777,14 +883,14 @@
flex-direction: column;
justify-content: center;
align-items: center;
- gap: 6px;
- padding: 16px 10px;
- height: 120px;
- font-size: 18px;
+ gap: 4px;
+ padding: 10px 8px;
+ height: 75px;
+ font-size: 14px;
background: #00a2e9;
color: #fff;
border: none;
- border-radius: 10px;
+ border-radius: 8px;
cursor: pointer;
box-sizing: border-box;
word-break: break-word;
@@ -792,11 +898,11 @@
.user-list-btn .user-code {
font-weight: 600;
- font-size: 18px;
+ font-size: 14px;
}
.user-list-btn .user-name {
- font-size: 16px;
+ font-size: 13px;
}
.user-list-btn.selected {
@@ -900,12 +1006,30 @@
}
.user-list-btn {
- height: 110px;
- font-size: 16px;
+ height: 70px;
+ font-size: 13px;
}
+
+ .user-list-btn .user-code {
+ font-size: 13px;
+ }
+
+ .user-list-btn .user-name {
+ font-size: 12px;
+ }
.reason-btn {
font-size: 12px;
}
+
+ .refresh-btn-header {
+ font-size: 14px;
+ padding: 6px 16px;
+ }
+
+ .reset-btn-header {
+ font-size: 12px;
+ padding: 6px 12px;
+ }
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3