From 2c7a7d3eaf692fdfd04a30b42da2d94848cdc89a Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 24 十二月 2025 16:25:50 +0800
Subject: [PATCH] 界面样式优化
---
pages/index.vue | 349 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 283 insertions(+), 66 deletions(-)
diff --git a/pages/index.vue b/pages/index.vue
index 51880c1..46af944 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -41,12 +41,9 @@
<scroll-view class="content">
<view v-if="currentTab === 7" class="tab-content">
<view class="content">
- <!--<view class="top-right">
- <button class="refresh-btn" @click="refresh">鍒锋柊</button>
- </view>-->
- <view>
+ <!--<view>
<h4>涓�鍙版満鍙板彧鑳介�夋嫨涓�鏉″伐鍗曪紙澶氶�夐粯璁や负鏈�鍚庝竴鏉★級</h4>
- </view>
+ </view>-->
<view class="section top-section">
<view class="form-row align-row">
<input v-model="machineName"
@@ -54,8 +51,10 @@
type="text"
class="machine-name-box" />
<view class="form-group">
- <label class="order-label">绗竴姝ラ�夋嫨宸ュ崟:</label>
- <button class="print-btn" @click="isShowTab">閫夋嫨宸ュ崟</button>
+ <label style="float: left;margin-top: 18px;font-size: 22px;">鐐瑰嚮鎸夐挳绛涢�夊伐鍗曠姸鎬�:</label>
+ <superwei-combox :candidates="engineeringNoMapList" placeholder="璇烽�夋嫨" v-model="engineeringNo"
+ @select="onEngineeringNoChange" class="picker"
+ style="padding: 7px 46px;width: 650px;margin-right: 20px;"></superwei-combox>
</view>
<view class="top-right">
<button class="refresh-btn" @click="refresh">鍒锋柊</button>
@@ -63,77 +62,75 @@
</view>
</view>
- <!-- <!– 涓儴锛氳繍琛岀姸鎬�-->
+ <!-- 宸ュ崟閫夋嫨琛ㄦ牸 -->
<view class="section card">
- <uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁" @selection-change="selectionChange">
+ <uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁">
<uni-tr>
+ <uni-th align="center" class="th" style="width: 220px;">鎿嶄綔</uni-th>
<uni-th align="center" class="th" style="width: 100px;">宸ュ簭</uni-th>
- <uni-th align="center" class="th" style="width: 170px;">宸ュ崟鍙�</uni-th>
+ <uni-th align="center" class="th" style="width: 200px;">宸ュ崟鍙�</uni-th>
<uni-th align="center" class="th" style="width: 150px;">浜у搧缂栫爜</uni-th>
- <uni-th align="center" class="th" style="width: 190px;">浜у搧鍚嶇О</uni-th>
- <uni-th align="center" class="th" style="width: 190px;">瑙勬牸</uni-th>
- <uni-th align="center" class="th" style="width: 80px;">宸茬敓浜ф暟閲�</uni-th>
- <uni-th align="center" class="th" style="width: 80px;">鏈敓浜ф暟閲�</uni-th>
- <uni-th align="center" class="th" style="width: 80px;">娲惧伐鏁伴噺</uni-th>
- <uni-th align="center" class="th" style="width: 80px;">宸ュ崟鏁伴噺</uni-th>
+ <uni-th align="center" class="th" style="width: 240px;">浜у搧鍚嶇О</uni-th>
+ <uni-th align="center" class="th" style="width: 200px;">瑙勬牸</uni-th>
+ <uni-th align="center" class="th" style="width: 150px;">宸茬敓浜ф暟閲�</uni-th>
+ <uni-th align="center" class="th" style="width: 150px;">鏈敓浜ф暟閲�</uni-th>
+ <uni-th align="center" class="th" style="width: 150px;">娲惧伐鏁伴噺</uni-th>
+ <uni-th align="center" class="th" style="width: 150px;">宸ュ崟鏁伴噺</uni-th>
<uni-th align="center" class="th" style="width: 90px;">宸ュ崟鐘舵��</uni-th>
<uni-th align="center" class="th" style="width: 90px;">鎶ュ伐浜�</uni-th>
- <uni-th align="center" class="th" style="width: 90px;">閫夋嫨</uni-th>
</uni-tr>
- <uni-tr v-for="(item, index) in isShowTableData" :key="index">
+ <uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.procName" /><!--宸ュ簭-->
- </uni-td>
- <uni-td align="center">
- <div class="form-input">{{ item.daa001 }}</div><!--宸ュ崟鍙�-->
- </uni-td>
- <uni-td align="center">
- <div class="form-input">{{ item.daa002 }}</div><!--浜у搧缂栫爜-->
- </uni-td>
- <uni-td align="center">
- <div class="form-input">{{ item.daa003 }}</div><!--浜у搧鍚嶇О-->
- </uni-td>
- <uni-td align="center">
- <div class="form-input">{{ item.daa004 }}</div><!--瑙勬牸-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.daa011" /><!--宸茬敓浜ф暟閲�-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" :value="(item.daa008 || 0) - (item.daa011 || 0)" /><!--鏈敓浜ф暟閲�-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.daa008" /><!--娲惧伐鏁伴噺-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.daa008" /><!--宸ュ崟鏁伴噺-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.daa018" /><!--宸ュ崟鐘舵��-->
- </uni-td>
- <uni-td align="center">
- <input class="form-input" disabled="true" type="text" v-model="item.staffName" /><!--鎶ュ伐浜�-->
- </uni-td>
- <uni-td>
- <view class="uni-group">
- <button class="select-btn" type="default" @click="toDetail(item)">
- 杞埌涓荤晫闈�
+ <view class="operation-btns">
+ <button
+ :class="getStartBtnClass(item)"
+ :disabled="isStartBtnDisabled(item)"
+ @click="handleStartWork(item)">
+ {{ getStartBtnText(item) }}
+ </button>
+ <button
+ class="pause-btn"
+ :disabled="isPauseBtnDisabled(item)"
+ @click="handlePauseWork(item)">
+ 鏆傚仠
</button>
</view>
</uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.procName" />
+ </uni-td>
+ <uni-td align="center">
+ <div class="form-input">{{ item.daa001 }}</div>
+ </uni-td>
+ <uni-td align="center">
+ <div class="form-input">{{ item.daa002 }}</div>
+ </uni-td>
+ <uni-td align="center">
+ <div class="form-input">{{ item.daa003 }}</div>
+ </uni-td>
+ <uni-td align="center">
+ <div class="form-input">{{ item.daa004 }}</div>
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.daa011" />
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" :value="(item.daa008 || 0) - (item.daa011 || 0)" />
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.daa008" />
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.daa008" />
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.daa018" />
+ </uni-td>
+ <uni-td align="center">
+ <input class="form-input" disabled="true" type="text" v-model="item.staffName" />
+ </uni-td>
</uni-tr>
</uni-table>
- </view>
-
- <view class="bottom-section">
- <button class="cancel-btn" @click="cancel">娓呯┖閲嶉��</button>
- </view>
-
- <view>
- <!--<text style="color: red;">
- 璇存槑:鍙兘鍚屾椂寮�宸ヤ竴涓伐鍗曘�傞�夋嫨瀹屾垚锛岀偣鍑讳繚瀛橀�夋嫨銆傜郴缁熶繚鐣欓�変腑鐨勫伐鍗曘��
- 濡傛灉瑕侀噸閫夛紝鐐瑰嚮娓呯┖閲嶉�夊姛鑳姐��
- </text>-->
</view>
</view>
</view>
@@ -334,6 +331,10 @@
// 鑷姩璺宠浆鐩稿叧
autoRedirectTimer: null,
autoRedirectTime: 5 * 60 * 1000, // 5鍒嗛挓
+
+ // 宸ュ崟閫夋嫨椤甸潰瀹氭椂鍒锋柊
+ autoRefreshTimer: null,
+ autoRefreshInterval: 60 * 1000, // 1鍒嗛挓
};
},
created() {
@@ -360,6 +361,23 @@
onShow() {
this.refresh();
this.resetAutoRedirectTimer();
+ // 椤甸潰鏄剧ず鏃跺姞杞藉伐鍗曞垪琛�
+ if (this.currentTab === 7) {
+ // 榛樿閫変腑鈥滃緟寮�宸ャ�佹湭寮�宸ャ�佹殏鍋溾��
+ this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';
+ this.engineeringNoMapList = [
+ '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�',
+ '寮�宸�',
+ '瀹屽伐'
+ ];
+ this.getWomdaaByStatus();
+ // 鍚姩瀹氭椂鍒锋柊
+ this.startAutoRefresh();
+ }
+ },
+ onHide() {
+ // 椤甸潰闅愯棌鏃舵竻闄ゅ畾鏃跺櫒
+ this.stopAutoRefresh();
},
methods: {
onRowClick(index) {
@@ -458,6 +476,17 @@
this.getMachineList();
this.getPrintInfo();
this.getWomdaaIsShow();
+ // 濡傛灉褰撳墠鍦ㄥ伐鍗曢�夋嫨椤甸潰锛岄粯璁ゅ姞杞藉伐鍗曞垪琛�
+ if (this.currentTab === 7) {
+ // 榛樿閫変腑鈥滃緟寮�宸ャ�佹湭寮�宸ャ�佹殏鍋溾��
+ this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';
+ this.engineeringNoMapList = [
+ '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�',
+ '寮�宸�',
+ '瀹屽伐'
+ ];
+ this.getWomdaaByStatus();
+ }
},
getPrintInfo() {
var mac = "";
@@ -659,6 +688,11 @@
// 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂�
if (index === 7) {
this.refresh();
+ // 鍚姩瀹氭椂鍒锋柊
+ this.startAutoRefresh();
+ } else {
+ // 绂诲紑宸ュ崟閫夋嫨椤甸潰鏃跺仠姝㈠畾鏃跺埛鏂�
+ this.stopAutoRefresh();
}
// 閲嶇疆鑷姩璺宠浆璁℃椂鍣�
this.resetAutoRedirectTimer();
@@ -791,6 +825,120 @@
this.productCode = item.daa002; // 浜у搧缂栫爜
this.productSpec = item.daa004; // 浜у搧瑙勬牸
this.currentTab = 0;
+ },
+
+ // 鑾峰彇寮�宸ユ寜閽殑class
+ getStartBtnClass(item) {
+ const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+ if (isSelected) {
+ return 'start-btn start-btn-selected'; // 褰撳墠閫変腑鐨勫伐鍗曪紝缁胯壊
+ }
+ return 'start-btn';
+ },
+
+ // 鍒ゆ柇寮�宸ユ寜閽槸鍚︾鐢�
+ isStartBtnDisabled(item) {
+ // 濡傛灉宸茬粡鏈夐�変腑鐨勫伐鍗曪紝涓斿綋鍓嶉」涓嶆槸閫変腑鐨勫伐鍗曪紝鍒欑鐢�
+ if (this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 !== item.daa001) {
+ return true;
+ }
+ return false;
+ },
+
+ // 鍒ゆ柇鏆傚仠鎸夐挳鏄惁绂佺敤
+ isPauseBtnDisabled(item) {
+ // 濡傛灉宸茬粡鏈夐�変腑鐨勫伐鍗曪紝涓斿綋鍓嶉」涓嶆槸閫変腑鐨勫伐鍗曪紝鍒欑鐢�
+ if (this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 !== item.daa001) {
+ return true;
+ }
+ // 濡傛灉杩樻病鏈夐�変腑浠讳綍宸ュ崟锛屼篃绂佺敤鏆傚仠鎸夐挳
+ if (this.isShowTableData.length === 0) {
+ return true;
+ }
+ return false;
+ },
+
+ // 鑾峰彇寮�宸ユ寜閽枃鏈�
+ getStartBtnText(item) {
+ const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+ if (isSelected) {
+ return '杞烦鍒颁富鐣岄潰';
+ }
+ return '寮�宸�';
+ },
+
+ // 澶勭悊寮�宸�
+ async handleStartWork(item) {
+ // 鍒ゆ柇褰撳墠宸ュ崟鏄惁宸查�変腑
+ const isSelected = this.isShowTableData.length > 0 && this.isShowTableData[0].daa001 === item.daa001;
+
+ if (isSelected) {
+ // 濡傛灉宸查�変腑锛屽垯璺宠浆鍒颁富鐣岄潰
+ this.toDetail(item);
+ } else {
+ // 濡傛灉鏈�変腑锛屽垯鎵ц寮�宸ラ�昏緫
+ let orderSelect = [{
+ orderId: item.id,
+ orderNo: item.daa001
+ }];
+
+ let editDate = this.formatDate(new Date());
+
+ this.$post({
+ url: "/MesOrderSelect/Add",
+ data: {
+ machineNo: this.machineNo,
+ editDate: editDate,
+ item: orderSelect
+ }
+ }).then(res => {
+ if (res.data.tbBillList) {
+ this.getWomdaaIsShow();
+ uni.showToast({
+ title: '寮�宸ユ垚鍔�',
+ icon: 'success',
+ duration: 2000
+ });
+ }
+ });
+ }
+ },
+
+ // 澶勭悊鏆傚仠锛堜娇鐢ㄦ竻绌洪噸閫夌殑閫昏緫锛�
+ async handlePauseWork(item) {
+ if (!this.machineNo) {
+ return;
+ }
+
+ // 鐩存帴鐢� flag 鍒ゆ柇
+ if (this.hasBindedCutterFlag) {
+ uni.showToast({
+ title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘鏆傚仠',
+ icon: 'error',
+ duration: 2000
+ });
+ return;
+ }
+
+ let editDate = this.formatDate(new Date());
+ this.selectedIndexs = [];
+
+ this.$post({
+ url: "/MesOrderSelect/Remove",
+ data: {
+ machineNo: this.machineNo,
+ editDate: editDate
+ },
+ }).then(res => {
+ if (res.data.tbBillList > 0) {
+ this.isShowTableData = [];
+ uni.showToast({
+ title: '宸ュ崟宸叉殏鍋�',
+ icon: 'success',
+ duration: 2000
+ });
+ }
+ });
}
},
computed: {}
@@ -962,7 +1110,7 @@
.top-right {
position: absolute;
- top: 10px;
+ top: -15px;
right: 50px;
z-index: 1000;
}
@@ -1089,6 +1237,75 @@
background-color: #00A2E9;
color: white;
}
+
+ /* 鎿嶄綔鎸夐挳鍖哄煙 */
+ .operation-btns {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 10px;
+ }
+
+ /* 寮�宸ユ寜閽� */
+ .start-btn {
+ padding: 8px 20px;
+ background-color: #00A2E9;
+ color: white;
+ font-size: 18px;
+ font-weight: 500;
+ border: none;
+ border-radius: 4px;
+ cursor: pointer;
+ transition: all 0.3s;
+ box-shadow: 0 2px 4px rgba(0, 162, 233, 0.2);
+ }
+
+ .start-btn:hover:not(:disabled) {
+ background-color: #0092d6;
+ box-shadow: 0 4px 8px rgba(0, 162, 233, 0.3);
+ transform: translateY(-1px);
+ }
+
+ /* 寮�宸ユ寜閽� - 閫変腑鐘舵�侊紙缁胯壊锛� */
+ .start-btn-selected {
+ background-color: #52c41a !important;
+ box-shadow: 0 2px 4px rgba(82, 196, 26, 0.3) !important;
+ }
+
+ .start-btn-selected:hover:not(:disabled) {
+ background-color: #49b015 !important;
+ box-shadow: 0 4px 8px rgba(82, 196, 26, 0.4) !important;
+ }
+
+ /* 鏆傚仠鎸夐挳 */
+ .pause-btn {
+ padding: 8px 20px;
+ background-color: #ff4d4f;
+ color: white;
+ font-size: 18px;
+ font-weight: 500;
+ border: none;
+ border-radius: 4px;
+ cursor: pointer;
+ transition: all 0.3s;
+ box-shadow: 0 2px 4px rgba(255, 77, 79, 0.2);
+ }
+
+ .pause-btn:hover:not(:disabled) {
+ background-color: #ff3336;
+ box-shadow: 0 4px 8px rgba(255, 77, 79, 0.3);
+ transform: translateY(-1px);
+ }
+
+ /* 鎸夐挳绂佺敤鐘舵�� */
+ .start-btn:disabled,
+ .pause-btn:disabled {
+ background-color: #d9d9d9 !important;
+ color: #999 !important;
+ cursor: not-allowed !important;
+ box-shadow: none !important;
+ opacity: 0.6;
+ }
.overlay {
position: fixed;
--
Gitblit v1.9.3