From d648edc0b6acaf33dac0030b15e01ae6622d0695 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 22 一月 2026 15:00:38 +0800
Subject: [PATCH] #
---
pages/listing/matnrPalletising.vue | 90 ++---
pages/outbound/orderOut/outLocView.vue | 325 +++++++++++++++++++++
pages.json | 6
static/css/common.css | 423 ++++++++++++++++++++++++++++
pages/outbound/orderOut/orderDetlList.vue | 16
5 files changed, 800 insertions(+), 60 deletions(-)
diff --git a/pages.json b/pages.json
index 4ac5867..e97a0c3 100644
--- a/pages.json
+++ b/pages.json
@@ -32,6 +32,12 @@
}
},
{
+ "path": "pages/outbound/orderOut/outLocView",
+ "style": {
+ "navigationBarTitleText": "鍑哄簱搴撲綅瑙嗗浘"
+ }
+ },
+ {
"path": "pages/emptyTray/outBound",
"style": {
"navigationBarTitleText": "绌烘墭鍑哄簱"
diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index db3cc7f..590a77a 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -148,7 +148,7 @@
<view class="form-item">
<text class="form-label">AGV绔欑偣</text>
<view class="input-wrapper">
- <input class="agv-input" type="text" v-model="agvStationInput" placeholder="璇疯緭鍏GV绔欑偣缂栧彿" />
+ <input class="agv-input" type="text" v-model="agvStationInput" placeholder="璇疯緭鍏GV绔欑偣缂栧彿" @input="checkAgvStation()"/>
</view>
</view>
<view class="form-item">
@@ -199,7 +199,8 @@
buttonPermissions: [], // 鎸夐挳鏉冮檺鍒楄〃
showAgvModal: false, // AGV纭寮圭獥
showAgvInputModal: false, // AGV绔欑偣杈撳叆寮圭獥
- agvStationInput: '' // AGV绔欑偣杈撳叆鍊�
+ agvStationInput: '' ,// AGV绔欑偣杈撳叆鍊�
+ agvStationName: ''
}
},
computed: {
@@ -222,6 +223,37 @@
console.log('褰撳墠椤甸潰鎸夐挳鏉冮檺:', this.buttonPermissions);
},
methods: {
+ async checkAgvStation(){
+ const that = this;
+ if(this.agvStationInput === '' || this.agvStationInput === null){
+ uni.showToast({
+ title: "瀹瑰櫒鐮佷负绌�",
+ icon: "none",
+ position: 'top'
+ })
+ return ;
+ }
+ const {
+ code,
+ data,
+ msg
+ } = await request('/check/agvStation', {
+ transferStationNo: this.agvStationInput
+ })
+ if (code === 200) {
+ this.agvStationName = data.stationName
+ } else {
+ uni.showToast({
+ title: msg,
+ icon: "none",
+ position: 'top'
+ })
+ setTimeout(function() {
+ that.agvStationName = ''
+ that.agvStationInput = ''
+ }, 200);
+ }
+ },
pickerChange(e) {
const index = e.detail.value
this.whAreaId = this.range[index].value
@@ -257,55 +289,7 @@
});
},
- // async getDet() {
- // let that = this;
- // const {
- // code,
- // data,
- // msg
- // } = await request('/asnOrderItem/trackCode', {
- // matnrCode: that.matnrCode,
- // asnCode: that.asnCode
- // }, "post")
- // if (code === 200) {
- // data.map(item => {
- // item.receiptQty = 0;
- // item.selected = false;
- // })
- // // for (var i = 0; i < data.length; i++) {
- // // data[i].receiptQty =1;
- // // data[i].selected = false;
- // // }
- // if(data !== [] || data !== null){
- // uni.navigateTo({
- // url: "../listing/itemSelect",
- // success: function(res) {
- // // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
- // res.eventChannel.emit('data', {
- // item: data
- // })
- // },
- // events: {
- // // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨�
- // backData: function(data) {
- // that.showBackData(data.data)
- // },
- // },
-
-
- // });
-
- // }
-
- // // this.list = data
- // } else {
- // uni.showToast({
- // title: msg,
- // icon: "none",
- // position: 'top'
- // })
- // }
- // },
+
async getList() {
if(this.container === '' || this.container === null){
uni.showToast({
@@ -447,12 +431,14 @@
handleAgvYes() {
this.showAgvModal = false;
this.agvStationInput = '';
+ this.agvStationName = '';
this.showAgvInputModal = true;
},
// 鍏抽棴AGV绔欑偣杈撳叆寮圭獥
closeAgvInputModal() {
this.showAgvInputModal = false;
this.agvStationInput = '';
+ this.agvStationName = '';
},
// 纭AGV绔欑偣
confirmAgvStation() {
@@ -473,7 +459,7 @@
return;
}
this.showAgvInputModal = false;
- this.submitConfirm(this.agvStationInput);
+ this.submitConfirm(this.agvStationName);
},
// 鎻愪氦缁勬墭璇锋眰
async submitConfirm(agvStation) {
diff --git a/pages/outbound/orderOut/orderDetlList.vue b/pages/outbound/orderOut/orderDetlList.vue
index d9c6d89..8f845ad 100644
--- a/pages/outbound/orderOut/orderDetlList.vue
+++ b/pages/outbound/orderOut/orderDetlList.vue
@@ -42,7 +42,7 @@
</view>
<view class="info-item">
<text class="info-label">鎵规</text>
- <text class="info-value">{{item.batch || '-'}}</text>
+ <text class="info-value">{{item.splrBatch || '-'}}</text>
</view>
<view class="info-item">
<text class="info-label">璁㈠崟鏁伴噺</text>
@@ -50,7 +50,7 @@
</view>
<view class="info-item">
<text class="info-label">宸插畬鎴�</text>
- <text class="info-value">{{item.anfme - item.enableQty}}</text>
+ <text class="info-value">{{item.qty}}</text>
</view>
</view>
@@ -64,8 +64,8 @@
</view>
<!-- 鍗$墖搴曢儴 -->
- <view class="card-footer" v-if="item.enableQty > 0">
- <text class="action-text">鐐瑰嚮缁勬墭鍏ュ簱</text>
+ <view class="card-footer" v-if="item.ableQty > 0">
+ <text class="action-text">鐐瑰嚮鍑哄簱</text>
<uni-icons type="right" size="14" color="#0081ff"></uni-icons>
</view>
<view class="card-footer card-footer-done" v-else>
@@ -158,8 +158,8 @@
methods: {
// 璁$畻杩涘害
getProgress(item) {
- if (!item.anfme || item.anfme === 0) return 0;
- const progress = ((item.anfme - item.enableQty) / item.anfme * 100).toFixed(0);
+ if (!item.qty || item.qty === 0) return 0;
+ const progress = (item.qty / item.anfme * 100).toFixed(0);
return Math.min(100, Math.max(0, progress));
},
// 鎼滅储
@@ -216,7 +216,7 @@
this.loading = false;
}
},
- // 閫夋嫨鏄庣粏杩涜缁勬墭
+ // 閫夋嫨鏄庣粏杩涜鍑哄簱
chose(item) {
if (item.enableQty <= 0) {
uni.showToast({ title: '璇ユ槑缁嗗凡瀹屾垚', icon: "none", position: 'top' });
@@ -224,7 +224,7 @@
}
let that = this;
uni.navigateTo({
- url: "../order/orderPakin2",
+ url: "./outLocView",
success: function(res) {
res.eventChannel.emit('orderItem', {
item: item
diff --git a/pages/outbound/orderOut/outLocView.vue b/pages/outbound/orderOut/outLocView.vue
new file mode 100644
index 0000000..7bf1b10
--- /dev/null
+++ b/pages/outbound/orderOut/outLocView.vue
@@ -0,0 +1,325 @@
+<template>
+ <view class="page-container">
+ <!-- 璁㈠崟淇℃伅澶撮儴 -->
+ <view class="order-header" v-if="orderItem">
+ <view class="header-content">
+ <view class="header-row">
+ <text class="header-label">鐗╂枡缂栫爜</text>
+ <text class="header-value">{{orderItem.matnrCode}}</text>
+ </view>
+ <view class="header-row">
+ <text class="header-label">鐗╂枡鍚嶇О</text>
+ <text class="header-value">{{orderItem.maktx || '-'}}</text>
+ </view>
+ <view class="header-row">
+ <text class="header-label">鎬诲嚭搴撴暟閲�</text>
+ <text class="header-value highlight-white">{{orderItem.anfme || 0}}</text>
+ </view>
+ <view class="header-row">
+ <text class="header-label">宸插畬鎴愭暟閲�</text>
+ <text class="header-value highlight-white">{{orderItem.qty || 0}}</text>
+ </view>
+ </view>
+ </view>
+
+ <!-- 搴撲綅瑙嗗浘鍒楄〃 -->
+ <view class="loc-list">
+ <view class="loc-card" v-for="(item, index) in locList" :key="index">
+ <!-- 鍗$墖澶撮儴 -->
+ <view class="card-header">
+ <view class="loc-info">
+ <text class="loc-code">{{item.locNo || '-'}}</text>
+ <text class="loc-name">{{item.locName || '搴撲綅'}}</text>
+ </view>
+ <view class="qty-badge">
+ <text class="qty-text">{{item.anfme || 0}}</text>
+ </view>
+ </view>
+
+ <!-- 鍗$墖鍐呭 -->
+ <view class="card-body">
+ <view class="info-grid">
+ <view class="info-item">
+ <text class="info-label">鎵规</text>
+ <text class="info-value">{{item.batch || '-'}}</text>
+ </view>
+ <view class="info-item">
+ <text class="info-label">搴撳瓨鏁伴噺</text>
+ <text class="info-value highlight">{{item.qty || 0}}</text>
+ </view>
+ <view class="info-item">
+ <text class="info-label">鎵樼洏鍙�</text>
+ <text class="info-value">{{item.zpallet || '-'}}</text>
+ </view>
+ <view class="info-item">
+ <text class="info-label">璐ф灦</text>
+ <text class="info-value">{{item.shelfNo || '-'}}</text>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+
+ <!-- 绌虹姸鎬� -->
+ <view class="empty-state" v-if="locList.length === 0 && !loading">
+ <uni-icons type="info" size="60" color="#CCCCCC"></uni-icons>
+ <text class="empty-text">鏆傛棤搴撲綅鏁版嵁</text>
+ </view>
+
+ <!-- 缁熻淇℃伅 -->
+ <view class="stats-bar" v-if="locList.length > 0">
+ <view class="stats-item">
+ <text class="stats-value">{{locList.length}}</text>
+ <text class="stats-label">搴撲綅鏁�</text>
+ </view>
+ <view class="stats-divider"></view>
+ <view class="stats-item">
+ <text class="stats-value">{{totalQty}}</text>
+ <text class="stats-label">鎬诲簱瀛�</text>
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import { request } from '@/common/request.js'
+ export default {
+ data() {
+ return {
+ orderItem: null,
+ locList: [],
+ loading: false,
+ }
+ },
+ computed: {
+ // 璁$畻鎬诲簱瀛樻暟閲�
+ totalQty() {
+ return this.locList.reduce((sum, item) => sum + (item.qty || 0), 0);
+ }
+ },
+ onLoad() {
+ let that = this;
+ const eventChannel = this.getOpenerEventChannel();
+ if (eventChannel) {
+ eventChannel.on('orderItem', function(data) {
+ that.orderItem = data.item;
+ that.getOutLocView(that.orderItem);
+ });
+ }
+ },
+ methods: {
+ // 鑾峰彇鍑哄簱搴撲綅瑙嗗浘
+ async getOutLocView(item) {
+ if (!item) return;
+ this.loading = true;
+ try {
+ const res = await request('/orderOut/getOutLocView', {
+ orderItemId: item.id
+ }, 'POST', true);
+
+ if (res.code === 200) {
+ this.locList = res.data || [];
+ } else if (res.code === 403) {
+ uni.showToast({ title: res.msg, icon: "none", position: 'top' });
+ setTimeout(() => {
+ uni.reLaunch({ url: '../login/login' });
+ }, 1000);
+ } else {
+ uni.showToast({ title: res.msg || '鑾峰彇鏁版嵁澶辫触', icon: "none", position: 'top' });
+ }
+ } catch (err) {
+ // request.js 宸茬粡澶勭悊浜嗛敊璇彁绀�
+ } finally {
+ this.loading = false;
+ }
+ }
+ }
+ }
+</script>
+
+<style>
+ /* 寮曞叆鍏叡鏍峰紡 */
+ @import url('@/static/css/common.scss');
+
+ .page-container {
+ padding-bottom: 120rpx;
+ }
+
+ /* 璁㈠崟澶撮儴 */
+ .order-header {
+ background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%);
+ padding: 16rpx 20rpx;
+ }
+
+ .header-content {
+ background: rgba(255, 255, 255, 0.15);
+ border-radius: 10rpx;
+ padding: 12rpx 16rpx;
+ }
+
+ .header-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 4rpx 0;
+ }
+
+ .header-label {
+ font-size: 24rpx;
+ color: rgba(255, 255, 255, 0.7);
+ }
+
+ .header-value {
+ font-size: 26rpx;
+ color: #ffffff;
+ font-weight: 500;
+ }
+
+ .header-value.highlight-white {
+ color: #ffeb3b;
+ font-weight: 600;
+ }
+
+ /* 搴撲綅鍒楄〃 */
+ .loc-list {
+ padding: 0 20rpx;
+ }
+
+ .loc-card {
+ background: #ffffff;
+ border-radius: 12rpx;
+ margin-top: 12rpx;
+ box-shadow: 0 2rpx 12rpx rgba(0, 129, 255, 0.08);
+ overflow: hidden;
+ border: 1rpx solid #e4e7ed;
+ }
+
+ /* 鍗$墖澶撮儴 */
+ .card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ padding: 14rpx 16rpx;
+ border-bottom: 1rpx solid #f0f0f0;
+ }
+
+ .loc-info {
+ flex: 1;
+ padding-right: 12rpx;
+ }
+
+ .loc-code {
+ font-size: 26rpx;
+ color: #303133;
+ font-weight: 600;
+ display: block;
+ }
+
+ .loc-name {
+ font-size: 22rpx;
+ color: #909399;
+ margin-top: 4rpx;
+ display: block;
+ }
+
+ .qty-badge {
+ padding: 4rpx 12rpx;
+ border-radius: 16rpx;
+ flex-shrink: 0;
+ background: linear-gradient(135deg, #0081ff 0%, #1890ff 100%);
+ }
+
+ .qty-text {
+ font-size: 20rpx;
+ font-weight: 500;
+ color: #ffffff;
+ }
+
+ /* 鍗$墖鍐呭 */
+ .card-body {
+ padding: 12rpx 16rpx;
+ }
+
+ .info-grid {
+ display: flex;
+ flex-wrap: wrap;
+ }
+
+ .info-item {
+ width: 50%;
+ margin-bottom: 8rpx;
+ }
+
+ .info-label {
+ font-size: 20rpx;
+ color: #909399;
+ display: block;
+ }
+
+ .info-value {
+ font-size: 24rpx;
+ color: #303133;
+ font-weight: 500;
+ display: block;
+ margin-top: 2rpx;
+ }
+
+ .info-value.highlight {
+ color: #0081ff;
+ font-weight: 600;
+ }
+
+ /* 绌虹姸鎬� */
+ .empty-state {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 60rpx 0;
+ }
+
+ .empty-text {
+ margin-top: 20rpx;
+ font-size: 28rpx;
+ color: #909399;
+ }
+
+ /* 缁熻鏍� */
+ .stats-bar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ background: #ffffff;
+ padding: 16rpx 0;
+ box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06);
+ }
+
+ .stats-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ flex: 1;
+ }
+
+ .stats-value {
+ font-size: 32rpx;
+ color: #303133;
+ font-weight: 600;
+ }
+
+ .stats-label {
+ font-size: 20rpx;
+ color: #909399;
+ margin-top: 4rpx;
+ }
+
+ .stats-divider {
+ width: 1rpx;
+ height: 50rpx;
+ background: #e8e8e8;
+ }
+</style>
diff --git a/static/css/common.css b/static/css/common.css
new file mode 100644
index 0000000..e3a5591
--- /dev/null
+++ b/static/css/common.css
@@ -0,0 +1,423 @@
+/**
+ * 鍏叡鏍峰紡 - 鍩轰簬 agv_start.vue 鎶界
+ * 閫傜敤浜庯細agv_start.vue, orderPakin2.vue, orderDetlList.vue 绛夐〉闈�
+ */
+
+/* ==================== 椤甸潰鍩虹鏍峰紡 ==================== */
+page {
+ height: 100%;
+ background: #f5f7fa;
+}
+
+.page-container {
+ min-height: 100vh;
+ background: linear-gradient(135deg, #f5f7fa 0%, #e4e8eb 100%);
+ padding-bottom: 110rpx;
+ box-sizing: border-box;
+}
+
+/* ==================== 琛ㄥ崟鍖哄煙鏍峰紡 ==================== */
+.form-section {
+ background: #ffffff;
+ padding: 12rpx 20rpx;
+ box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
+}
+
+.form-item {
+ display: flex;
+ align-items: center;
+ padding: 12rpx 0;
+ border-bottom: 1rpx solid #f0f0f0;
+}
+
+.form-item:last-child {
+ border-bottom: none;
+}
+
+.form-label {
+ display: flex;
+ align-items: center;
+ flex-shrink: 0;
+ white-space: nowrap;
+ margin-right: 16rpx;
+}
+
+.label-text {
+ font-size: 26rpx;
+ color: #303133;
+ margin-left: 6rpx;
+}
+
+.form-input-wrap {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ background: #f5f7fa;
+ border-radius: 6rpx;
+ padding: 0 16rpx;
+ height: 60rpx;
+}
+
+.form-input {
+ flex: 1;
+ height: 60rpx;
+ font-size: 26rpx;
+ color: #303133;
+}
+
+/* Picker 鏍峰紡 */
+.picker-full {
+ flex: 1;
+ width: 100%;
+}
+
+.picker-value {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 60rpx;
+ font-size: 26rpx;
+ color: #303133;
+}
+
+.picker-value text {
+ flex: 1;
+}
+
+/* ==================== 鍒楄〃澶撮儴鏍峰紡 ==================== */
+.list-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 16rpx 20rpx;
+ background: #ffffff;
+ margin-top: 12rpx;
+ box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
+}
+
+.header-left {
+ display: flex;
+ align-items: center;
+}
+
+.header-title {
+ font-size: 28rpx;
+ color: #303133;
+ font-weight: 600;
+}
+
+.count-badge {
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ border-radius: 16rpx;
+ padding: 2rpx 12rpx;
+ margin-left: 12rpx;
+}
+
+.count-text {
+ font-size: 20rpx;
+ color: #ffffff;
+ font-weight: 500;
+}
+
+/* ==================== 鍟嗗搧鍗$墖鏍峰紡 ==================== */
+.list-container {
+ padding: 0 20rpx;
+}
+
+.mat-card {
+ background: #ffffff;
+ border-radius: 12rpx;
+ margin-top: 12rpx;
+ box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
+ overflow: hidden;
+}
+
+.card-top {
+ display: flex;
+ align-items: center;
+ padding: 14rpx 16rpx;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+}
+
+.card-index {
+ width: 36rpx;
+ height: 36rpx;
+ background: rgba(255, 255, 255, 0.25);
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 22rpx;
+ color: #ffffff;
+ font-weight: 600;
+ margin-right: 12rpx;
+}
+
+.mat-code-wrap {
+ flex: 1;
+}
+
+.mat-code {
+ font-size: 26rpx;
+ color: #ffffff;
+ font-weight: 600;
+}
+
+.qty-badge {
+ background: rgba(255, 255, 255, 0.3);
+ padding: 4rpx 14rpx;
+ border-radius: 16rpx;
+}
+
+.qty-text {
+ font-size: 24rpx;
+ color: #ffffff;
+ font-weight: 600;
+}
+
+/* ==================== 鍗$墖鍐呭鏍峰紡 ==================== */
+.card-content {
+ padding: 12rpx 16rpx;
+}
+
+.info-row {
+ display: flex;
+ margin-bottom: 8rpx;
+}
+
+.info-row:last-child {
+ margin-bottom: 0;
+}
+
+.info-col {
+ flex: 1;
+}
+
+.info-col.half {
+ width: 50%;
+ flex: none;
+}
+
+.info-label {
+ font-size: 20rpx;
+ color: #909399;
+ display: block;
+}
+
+.info-value {
+ font-size: 24rpx;
+ color: #303133;
+ display: block;
+ margin-top: 2rpx;
+}
+
+.info-value.highlight {
+ color: #667eea;
+ font-weight: 500;
+}
+
+.info-value.qty {
+ font-size: 28rpx;
+ color: #303133;
+ font-weight: 600;
+}
+
+/* ==================== 鍗$墖鎿嶄綔鎸夐挳鏍峰紡 ==================== */
+.card-actions {
+ display: flex;
+ border-top: 1rpx solid #f0f0f0;
+}
+
+.action-btn {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 14rpx 0;
+}
+
+.edit-btn {
+ border-right: 1rpx solid #f0f0f0;
+}
+
+.action-text {
+ font-size: 24rpx;
+ color: #667eea;
+ margin-left: 6rpx;
+}
+
+.delete-text {
+ color: #f56c6c;
+}
+
+/* ==================== 绌虹姸鎬佹牱寮� ==================== */
+.empty-state {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 80rpx 0;
+}
+
+.empty-text {
+ font-size: 26rpx;
+ color: #909399;
+ margin-top: 16rpx;
+}
+
+.empty-hint {
+ font-size: 22rpx;
+ color: #c0c4cc;
+ margin-top: 8rpx;
+}
+
+.bottom-placeholder {
+ height: 20rpx;
+}
+
+/* ==================== 搴曢儴鎿嶄綔鏍忔牱寮� ==================== */
+.bottom-bar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ padding: 16rpx 20rpx;
+ background: #ffffff;
+ box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.06);
+}
+
+.btn-reset {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 160rpx;
+ height: 72rpx;
+ background: #f5f7fa;
+ border-radius: 36rpx;
+ margin-right: 16rpx;
+}
+
+.btn-reset .btn-text {
+ font-size: 26rpx;
+ color: #909399;
+ margin-left: 6rpx;
+}
+
+.btn-submit {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 72rpx;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ border-radius: 36rpx;
+}
+
+.btn-submit .btn-text {
+ font-size: 28rpx;
+ color: #ffffff;
+ font-weight: 500;
+ margin-left: 6rpx;
+}
+
+.btn-disabled {
+ background: #c0c4cc;
+ opacity: 0.6;
+}
+
+/* ==================== 寮圭獥鏍峰紡 ==================== */
+.popup-card {
+ width: 600rpx;
+ background: #ffffff;
+ border-radius: 16rpx;
+ overflow: hidden;
+}
+
+.popup-header {
+ padding: 24rpx;
+ text-align: center;
+ border-bottom: 1rpx solid #f0f0f0;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+}
+
+.popup-title {
+ font-size: 30rpx;
+ color: #ffffff;
+ font-weight: 600;
+}
+
+.popup-body {
+ padding: 24rpx;
+}
+
+.popup-row {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20rpx;
+ height: 70rpx;
+}
+
+.popup-row:last-child {
+ margin-bottom: 0;
+}
+
+.popup-label {
+ width: 80rpx;
+ font-size: 26rpx;
+ color: #606266;
+ flex-shrink: 0;
+}
+
+.popup-value {
+ flex: 1;
+ height: 70rpx;
+ background: #f5f7fa;
+ border-radius: 8rpx;
+ padding: 0 16rpx;
+ font-size: 26rpx;
+ color: #303133;
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+}
+
+.popup-value.disabled {
+ color: #909399;
+ background: #f0f0f0;
+}
+
+.popup-value.input {
+ padding: 0 16rpx;
+}
+
+.popup-value.number {
+ justify-content: center;
+ background: transparent;
+ padding: 0;
+}
+
+.popup-footer {
+ display: flex;
+ border-top: 1rpx solid #f0f0f0;
+}
+
+.popup-btn {
+ flex: 1;
+ height: 90rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 28rpx;
+}
+
+.popup-btn.cancel {
+ color: #909399;
+ border-right: 1rpx solid #f0f0f0;
+}
+
+.popup-btn.confirm {
+ color: #667eea;
+ font-weight: 600;
+}
--
Gitblit v1.9.1