|
@@ -6,7 +6,10 @@
|
|
|
<view class="status-card">
|
|
<view class="status-card">
|
|
|
<view class="order-number">
|
|
<view class="order-number">
|
|
|
<text class="number-label">订单号</text>
|
|
<text class="number-label">订单号</text>
|
|
|
- <text class="number-value">{{ orderDetail.orderId }}</text>
|
|
|
|
|
|
|
+ <view class="number-value-row">
|
|
|
|
|
+ <text class="number-value">{{ orderDetail.orderId }}</text>
|
|
|
|
|
+ <AppIcon name="copy" :size="28" color="#C6171E" class="copy-icon" @click.stop="copyText(orderDetail.orderId)" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="status-row">
|
|
<view class="status-row">
|
|
|
<text
|
|
<text
|
|
@@ -29,11 +32,17 @@
|
|
|
</view>
|
|
</view>
|
|
|
<view class="info-item">
|
|
<view class="info-item">
|
|
|
<text class="item-label">用户手机号</text>
|
|
<text class="item-label">用户手机号</text>
|
|
|
- <text class="item-value">{{ orderDetail.mobilePhone || '匿名用户' }}</text>
|
|
|
|
|
|
|
+ <view class="item-value-row">
|
|
|
|
|
+ <text class="item-value">{{ orderDetail.mobilePhone || '匿名用户' }}</text>
|
|
|
|
|
+ <AppIcon v-if="orderDetail.mobilePhone" name="copy" :size="28" color="#C6171E" class="copy-icon" @click.stop="copyText(orderDetail.mobilePhone)" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="info-item">
|
|
<view class="info-item">
|
|
|
<text class="item-label">设备编号</text>
|
|
<text class="item-label">设备编号</text>
|
|
|
- <text class="item-value">{{ orderDetail.shortId || '未知设备' }}</text>
|
|
|
|
|
|
|
+ <view class="item-value-row">
|
|
|
|
|
+ <text class="item-value">{{ orderDetail.shortId || '未知设备' }}</text>
|
|
|
|
|
+ <AppIcon v-if="orderDetail.shortId" name="copy" :size="28" color="#C6171E" class="copy-icon" @click.stop="copyText(orderDetail.shortId)" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="info-item">
|
|
<view class="info-item">
|
|
|
<text class="item-label">消费站点</text>
|
|
<text class="item-label">消费站点</text>
|
|
@@ -132,7 +141,7 @@
|
|
|
<script setup>
|
|
<script setup>
|
|
|
import { ref, onMounted, computed } from 'vue'
|
|
import { ref, onMounted, computed } from 'vue'
|
|
|
import { getOrderDetail, handleRefund as refundApi } from '../../api/order.js'
|
|
import { getOrderDetail, handleRefund as refundApi } from '../../api/order.js'
|
|
|
-import { formatTime, showToast, formatAmount, fmtDictName, getDictColor } from '../../utils/index.js'
|
|
|
|
|
|
|
+import { formatTime, showToast, formatAmount, fmtDictName, getDictColor, copyText } from '../../utils/index.js'
|
|
|
import dictUtil, { loadDicts } from '../../utils/dict.js'
|
|
import dictUtil, { loadDicts } from '../../utils/dict.js'
|
|
|
|
|
|
|
|
const orderId = ref('')
|
|
const orderId = ref('')
|
|
@@ -392,6 +401,24 @@ onMounted(async () => {
|
|
|
text-align: right;
|
|
text-align: right;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+.item-value-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8rpx;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.number-value-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8rpx;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.copy-icon {
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
/* 金额列表 */
|
|
/* 金额列表 */
|
|
|
.amount-list {
|
|
.amount-list {
|
|
|
padding: 20rpx 30rpx 24rpx;
|
|
padding: 20rpx 30rpx 24rpx;
|