shish 11 месяцев назад
Родитель
Сommit
8f9e594291

+ 8 - 2
hdApp/src/admin/order/components/detail-goods.vue

@@ -3,10 +3,10 @@
 		<block v-if="!$util.isEmpty(info)">
 			<view class="list-left">
 				<view class="image">
-					<image :src="info.smallCover" mode="aspectFit" style="width:120upx; height:120upx;"></image>
+					<image :src="info.smallCover" mode="aspectFit" class="thumb"></image>
 				</view>
 				<view class="list-msg">
-					<view class="title" @click="pageTo({url: '/admin/goods/detail?id='+info.goodsId})">{{ info.name || '' }}</view>
+					<view class="title link-primary" @click="pageTo({url: '/admin/goods/detail?id='+info.goodsId})">{{ info.name || '' }}</view>
 				</view>
 			</view>
 			<view class="list-right">
@@ -42,6 +42,8 @@ export default {
 		@include disFlex(flex-start, space-between);
 		.image {
 			width: 120upx;
+			height: 120upx;
+			.thumb { width: 120upx; height: 120upx; border-radius: 8upx; background: #f7f7f7; }
 		}
 		.list-msg {
 			margin-left: 20upx;
@@ -65,7 +67,11 @@ export default {
 		.price {
 			margin-bottom: 70upx;
 			color: #333;
+			font-weight: 600;
 		}
+		.num { color: $fontColor3; }
 	}
 }
+
+.link-primary { color: #3385ff; }
 </style>

+ 8 - 2
hdApp/src/admin/order/components/detail-item.vue

@@ -3,10 +3,10 @@
 		<block v-if="!$util.isEmpty(info)">
 			<view class="list-left">
 				<view class="image">
-					<image :src="info.smallCover" mode="aspectFit" style="width:120upx; height:120upx;"></image>
+					<image :src="info.smallCover" mode="aspectFit" class="thumb"></image>
 				</view>
 				<view class="list-msg">
-					<view class="title" @click="pageTo({url: '/admin/item/detail?id='+info.itemId})">{{ info.name || '' }}</view>
+					<view class="title link-primary" @click="pageTo({url: '/admin/item/detail?id='+info.itemId})">{{ info.name || '' }}</view>
 				</view>
 			</view>
 			<view class="list-right">
@@ -42,6 +42,8 @@ export default {
 		@include disFlex(flex-start, space-between);
 		.image {
 			width: 120upx;
+			height: 120upx;
+			.thumb { width: 120upx; height: 120upx; border-radius: 8upx; background: #f7f7f7; }
 		}
 		.list-msg {
 			margin-left: 20upx;
@@ -65,7 +67,11 @@ export default {
 		.price {
 			margin-bottom: 70upx;
 			color: #333;
+			font-weight: 600;
 		}
+		.num { color: $fontColor3; }
 	}
 }
+
+.link-primary { color: #3385ff; }
 </style>

+ 14 - 7
hdApp/src/admin/order/components/detail-work.vue

@@ -3,7 +3,7 @@
 		<block v-if="!$util.isEmpty(info)">
 			<view class="list-left">
 				<view class="image">
-					<image :src="info.smallCover" mode="aspectFit" style="width:95upx;height:95upx;"></image>
+					<image :src="info.smallCover" mode="aspectFit" class="thumb"></image>
 				</view>
 				<view class="list-msg">
 					<view class="title">{{info.workSn}} {{ info.name}}</view>
@@ -11,8 +11,10 @@
 			</view>
 			<view class="list-right">
 				<view class="price">X&nbsp;{{ info.num||0 }}</view>
-				<view class="num">{{info.status==0?'待完成':info.status==1?'已完成':info.status==2?'已取消':''}}</view>
-				<view style="position:absolute;left:-480upx;top:50upx;">{{info.finishStaffName}}</view>
+				<view class="num tag" :class="{'tag--primary': info.status==1, 'tag--danger': info.status==2}">
+					{{info.status==0?'待完成':info.status==1?'已完成':info.status==2?'已取消':''}}
+				</view>
+				<view class="worker">{{info.finishStaffName}}</view>
 			</view>
 		</block>
 	</view>
@@ -45,6 +47,8 @@ export default {
 		@include disFlex(flex-start, space-between);
 		.image {
 			width:95upx;
+			height:95upx;
+			.thumb { width:95upx; height:95upx; border-radius: 8upx; background:#f7f7f7; }
 		}
 		.list-msg {
 			margin-left: 20upx;
@@ -68,12 +72,15 @@ export default {
 		text-align: right;
 		color: $fontColor2;
 		.price {
-			margin-bottom:30upx;
+			margin-bottom: 16upx;
 			color: #333;
+			font-weight: 600;
 		}
-		.num{
-			color:rgb(43, 100, 43);
-		}
+		.worker { position:absolute; left:-480upx; top:50upx; color: $fontColor3; }
 	}
 }
+
+.tag { display: inline-block; padding: 2upx 8upx; border-radius: 6upx; font-size: 24upx; }
+.tag--primary { background: #e8f2ff; color: #3385ff; }
+.tag--danger { background: #ffecec; color: #ff4d4f; font-weight: 600; }
 </style>

+ 396 - 146
hdApp/src/admin/order/detail.vue

@@ -1,214 +1,356 @@
 <template>
   <view class="app-content">
     <view class="page-det">
-
+      <!-- 售后付款单提示 -->
       <view class="after-sale-tip" v-if="orderInfo.forward == 1" @click="goPreOrder(orderInfo)">
         <view class="tip-content">
           <text class="tip-text">本单是售后付款单<block v-if="!$util.isEmpty(orderInfo.forwardMap)">,点击查看原订单</block></text>
         </view>
       </view>
       
+      <!-- 商品信息模块 -->
       <view class="module-com">
         <view class="module-tit">商品信息</view>
         <view class="module-det">
           <block v-if="!$util.isEmpty(orderInfo.goodsInfoList)">
-            <detailGoods v-for="(items, subIndex) in orderInfo.goodsInfoList" :key="subIndex" :info="items"></detailGoods>
+            <detailGoods 
+              v-for="(items, subIndex) in orderInfo.goodsInfoList" 
+              :key="subIndex" 
+              :info="items">
+            </detailGoods>
           </block>
           <block v-if="!$util.isEmpty(orderInfo.itemInfoList)">
-            <detailItem v-for="(items, subIndex) in orderInfo.itemInfoList" :key="subIndex" :info="items"></detailItem>
+            <detailItem 
+              v-for="(items, subIndex) in orderInfo.itemInfoList" 
+              :key="subIndex" 
+              :info="items">
+            </detailItem>
           </block>
         </view>
       </view>
 
+      <!-- 收花人信息模块 -->
       <view class="module-com order-msg" v-if="orderInfo.forward == 0">
         <view class="module-tit">
-          收花人信息<text v-if="orderInfo.fromType == 4 && !$util.isEmpty(orderInfo.thirdSn)">(美团编号:{{orderInfo.thirdSn}})</text>
-          <button class="admin-button-com mini-btn" @click="edit(orderInfo)" v-if="orderInfo.status == 1 || orderInfo.status == 2" style="float:right;">修改</button>
-          <button class="admin-button-com mini-btn default" v-else style="float:right;">修改</button>
+          <text class="module-tit__text">
+            收花人信息
+            <text v-if="orderInfo.fromType == 4 && !$util.isEmpty(orderInfo.thirdSn)">(美团编号:{{orderInfo.thirdSn}})</text>
+          </text>
+          <view class="module-tit__actions">
+            <button 
+              class="admin-button-com mini-btn" 
+              @click="edit(orderInfo)" 
+              v-if="orderInfo.status == 1 || orderInfo.status == 2">
+              修改
+            </button>
+            <button 
+              class="admin-button-com mini-btn default" 
+              v-else>
+              修改
+            </button>
+          </view>
         </view>
         <view class="module-det">
-
           <view class="order-msg-blo">
-
+            <!-- 备注信息 -->
             <view class="msg-list" v-if="!$util.isEmpty(orderInfo.remark)">
               <view class="label">备注:</view>
-              <view class="value" style="color:red;font-weight:bold;width:580upx;min-height:28upx;height:auto;word-break:break-all;">{{orderInfo.remark}}</view>
+              <view class="value remark-box">{{orderInfo.remark}}</view>
             </view>
 
+            <!-- 收花人信息 -->
             <view class="msg-list">
-              <view class="label">收花:</view>
-              <view class="value">{{ orderInfo.receiveUserName }} <text style="margin-left:18upx;" v-if="!$util.isEmpty(orderInfo.receiveMobile)" @click="callUp(orderInfo.receiveMobile)">{{orderInfo.receiveMobile}}</text></view>
+              <view class="label">收花姓名:</view>
+              <view class="value">
+                {{ orderInfo.receiveUserName }} 
+                <text 
+                  class="ml-18 phone-link link-primary" 
+                  v-if="!$util.isEmpty(orderInfo.receiveMobile)" 
+                  @click="callUp(orderInfo.receiveMobile)">{{orderInfo.receiveMobile}}</text>
+              </view>
             </view>
+
+            <!-- 地址信息 -->
             <view class="msg-list">
-              <view class="label">地址:</view>
-              <view class="value">{{ orderInfo.fullAddress }}<text v-if="!$util.isEmpty(orderInfo.showAddress)">({{orderInfo.showAddress}})</text></view>
+              <view class="label">收花地址:</view>
+              <view class="value">
+                <view>{{orderInfo.dist}}{{orderInfo.address}}{{orderInfo.floor}}</view>
+                <view v-if="orderInfo.fullAddress!=orderInfo.showAddress && orderInfo.showAddress!=''" style="color:#a7a0a0;">
+                  {{ orderInfo.showAddress }}
+                </view>
+              </view>
             </view>
+
+            <!-- 匿名派送 -->
             <view class="msg-list" v-if="orderInfo.anonymity && Number(orderInfo.anonymity) == 1">
               <view class="label">要求:</view>
-              <view class="value" style="font-weight:bold;color:red;">匿名派送</view>
+              <view class="value"><text class="tag tag--danger">匿名派送</text></view>
             </view>
-            <view class="msg-list" v-if="orderInfo.sendType != 1 ">
-              <view class="label">时间:</view>
+
+            <!-- 送达时间 -->
+            <view class="msg-list" v-if="orderInfo.sendType != 1">
+              <view class="label">配送时间:</view>
               <view class="value">
                 <text v-if="orderInfo.reachDate == orderInfo.today">今天</text>
                 <text v-else-if="orderInfo.reachDate == orderInfo.tomorrow">明天</text>
                 <text v-else>{{orderInfo.reachDate ? orderInfo.reachDate.substr(5,11):''}}</text>
-                <text style="margin-left:10upx;">{{orderInfo.reachPeriod||''}}前</text>
+                <text class="ml-10">{{orderInfo.reachPeriod||''}}前</text>
               </view>
             </view>
+
+            <!-- 寄语信息 -->
             <view class="msg-list">
-              <view class="label">寄语:</view>
+              <view class="label">贺卡内容:</view>
               <view class="value">{{ orderInfo.cardInfo || '' }}</view>
             </view>
+
+            <!-- 自取信息 -->
             <view class="msg-list" v-if="orderInfo.sendType == 1">
               <view class="label">类型:</view>
-              <view class="value" style="font-weight:bold;color:red;">到店自取</view>
+              <view class="value"><text class="tag tag--danger">到店自取</text></view>
             </view>
+
+            <!-- 订花人信息 -->
             <view class="msg-list" v-if="!$util.isEmpty(orderInfo.bookName)">
-              <view class="label" @click.stop="getCustomInfo(orderInfo)">订花:</view>
-              <view class="value" @click.stop="getCustomInfo(orderInfo)">{{orderInfo.bookName}} <text style="margin-left:22upx;color:blue;" v-if="!$util.isEmpty(orderInfo.bookMobile)" @click="callUp(orderInfo.bookMobile)">{{orderInfo.bookMobile}}</text></view>
+              <view class="label" @click.stop="getCustomInfo(orderInfo)">订花姓名:</view>
+              <view class="value" @click.stop="getCustomInfo(orderInfo)">
+                {{orderInfo.bookName}} 
+                <text 
+                  class="ml-22 link-primary phone-link" 
+                  v-if="!$util.isEmpty(orderInfo.bookMobile)" 
+                  @click.stop="callUp(orderInfo.bookMobile)">{{orderInfo.bookMobile}}</text>
+              </view>
             </view>
           </view>
         </view>
       </view>
 
+      <!-- 任务模块 -->
       <view class="module-com" v-if="!$util.isEmpty(orderInfo.workList)">
         <view class="module-tit">任务</view>
         <view class="module-det">
           <block v-if="!$util.isEmpty(orderInfo.workList)">
-            <detailWork v-for="(items, subIndex) in orderInfo.workList" :key="subIndex" :info="items"></detailWork>
+            <detailWork 
+              v-for="(items, subIndex) in orderInfo.workList" 
+              :key="subIndex" 
+              :info="items">
+            </detailWork>
           </block>
-
         </view>
       </view>
 
+      <!-- 订单信息模块 -->
       <view class="module-com order-msg">
         <view class="module-tit">
-          <text>订单信息</text>
-          <block v-if="orderInfo.payStatus == 1 && orderInfo.forward == 0">
-            <text style="float:right;color: #3385ff;font-weight:normal;" @click.stop="goRefund()">发起售后</text>
-          </block>
+          <text class="module-tit__text">订单信息</text>
+          <view class="module-tit__actions" v-if="orderInfo.payStatus == 1 && orderInfo.forward == 0">
+            <text class="link-primary" @click.stop="goRefund()">发起售后</text>
+          </view>
         </view>
         <view class="module-det">
           <view class="order-msg-blo">
+            <!-- 付款类型 -->
             <view class="msg-list" v-if="orderInfo.payStatus == 1">
-              <view class="label">类型:</view>
-              <view class="value" v-if="orderInfo.onlinePay == 2" style="color:#3385ff;font-weight:bold;">线上付款</view>
+              <view class="label">付款类型:</view>
+              <view class="value" v-if="orderInfo.onlinePay == 2"><text class="tag tag--primary">线上付款</text></view>
               <view class="value" v-else>线下付款</view>
             </view>
+
+            <!-- 付款方式 -->
             <view class="msg-list" v-if="orderInfo.payStatus == 1">
-              <view class="label">方式:</view>
+              <view class="label">付款方式:</view>
               <block v-if="orderInfo.payWay==3">
-                <view class="value" v-if="Number(orderInfo.remainDebtPrice)>0" style="color:red;font-weight:bold;">
+                <view 
+                  class="value" 
+                  v-if="Number(orderInfo.remainDebtPrice)>0" 
+                  style="color:red;font-weight:bold;">
                   赊账
                 </view>
-                <view v-else class="value"  style="color:#3385ff;font-weight:bold;">
+                <view 
+                  v-else 
+                  class="value"  
+                  style="color:#3385ff;font-weight:bold;">
                   赊账<text>(已结清)</text>
                 </view>
               </block>
               <view class="value" v-else>
-                {{ orderInfo.payWay == 0 ? '微信支付':orderInfo.payWay==1?'支付宝':orderInfo.payWay==2?'余额':orderInfo.payWay==4?'现金':orderInfo.payWay==5 ?'银行卡' :'其它'}}
-                <text v-if="Number(orderInfo.mainPay)>0 && Number(orderInfo.cash)>0">(现金付了¥{{ orderInfo.cash ? parseFloat(orderInfo.cash) : 0 }})</text>
+                {{ orderInfo.payWay == 0 ? '微信支付':
+                   orderInfo.payWay == 1 ? '支付宝':
+                   orderInfo.payWay == 2 ? '余额':
+                   orderInfo.payWay == 4 ? '现金':
+                   orderInfo.payWay == 5 ? '银行卡':'其它'}}
+                <text v-if="Number(orderInfo.mainPay)>0 && Number(orderInfo.cash)>0">
+                  (现金付了¥{{ orderInfo.cash ? parseFloat(orderInfo.cash) : 0 }})
+                </text>
               </view>
             </view>
-            <view class="msg-list" v-if="Number(orderInfo.remainDebtPrice)>0" style="position:relative;">
-              <view class="label">欠款:</view>
+
+            <!-- 欠款信息 -->
+            <view 
+              class="msg-list rel" 
+              v-if="Number(orderInfo.remainDebtPrice)>0">
+              <view class="label">欠款金额:</view>
               <view class="value" style="color:red;font-weight:bold;">
                 ¥{{ orderInfo.remainDebtPrice ? parseFloat(orderInfo.remainDebtPrice) : 0 }}
-                </view>
-              <button class="admin-button-com mini-btn" v-if="Number(orderInfo.remainDebtPrice)>0" @click="clear(orderInfo)" style="position:absolute;right:0upx;top:0;border:1upx solid red;color:red;">结清</button>
+              </view>
+              <button 
+                class="admin-button-com mini-btn btn-outline-danger abs-tr" 
+                v-if="Number(orderInfo.remainDebtPrice)>0" 
+                @click="clear(orderInfo)">结清</button>
             </view>
 
+            <!-- 账单信息 -->
             <view class="msg-list" v-if="!$util.isEmpty(orderInfo.orderSettleList)">
-              <view class="label">账单:</view>
+              <view class="label">账单信息:</view>
               <view class="value">
-                <text v-for="(osItem, osIndex) in orderInfo.orderSettleList" :key="osIndex" style="margin-right:10upx;color:#3385ff;" @click="goSettle(osItem)">
-                  {{ osItem.settleSn!=''? osItem.settleSn:'结账单'+(osIndex+1) }}
-                </text>
+                <text 
+                  v-for="(osItem, osIndex) in orderInfo.orderSettleList" 
+                  :key="osIndex" 
+                  class="link-primary mr-10" 
+                  @click="goSettle(osItem)">{{ osItem.settleSn!=''? osItem.settleSn:'结账单'+(osIndex+1) }}</text>
               </view>
             </view>
 
+            <!-- 商品价格 -->
             <view class="msg-list">
-              <view class="label">商品:</view>
+              <view class="label">商品金额:</view>
               <view class="value">¥{{ orderInfo.goodsPrice ? parseFloat(orderInfo.goodsPrice) : 0 }}</view>
             </view>
+
+            <!-- 运费 -->
             <view class="msg-list" v-if="Number(orderInfo.sendCost)>0">
-              <view class="label">运费:</view>
+              <view class="label">运费金额:</view>
               <view class="value">¥{{ orderInfo.sendCost ? parseFloat(orderInfo.sendCost) : 0 }}</view>
             </view>
+
+            <!-- 手续费 -->
             <view class="msg-list" v-if="Number(orderInfo.serviceFee)>0">
-              <view class="label">手续费:</view>
+              <view class="label">手续费:</view>
               <view class="value">¥{{ orderInfo.serviceFee ? parseFloat(orderInfo.serviceFee) : 0 }}</view>
             </view>
+
+            <!-- 包装费(劳务) -->
             <view class="msg-list" v-if="Number(orderInfo.labourCost)>0">
-              <view class="label">包装:</view>
+              <view class="label">材料费用:</view>
               <view class="value">¥{{ orderInfo.labourCost ? parseFloat(orderInfo.labourCost) : 0 }}</view>
             </view>
+
+            <!-- 包装费 -->
             <view class="msg-list" v-if="Number(orderInfo.packingFee)>0">
-              <view class="label">包装:</view>
+              <view class="label">包装费用:</view>
               <view class="value">¥{{ orderInfo.packingFee ? parseFloat(orderInfo.packingFee) : 0 }}</view>
             </view>
+
+            <!-- 原价 -->
             <view class="msg-list">
               <view class="label">原价:</view>
               <view class="value">¥{{ orderInfo.prePrice ? parseFloat(orderInfo.prePrice) : 0 }}</view>
             </view>
+
+            <!-- 优惠金额 -->
             <view v-if="orderInfo.discountAmount > 0" class="msg-list">
-              <view class="label">优惠:</view>
+              <view class="label">优惠金额:</view>
               <view class="value">-¥{{ orderInfo.discountAmount ? parseFloat(orderInfo.discountAmount) : 0 }}</view>
             </view>
+
+            <!-- 应付金额 -->
             <view class="msg-list">
-              <view class="label">应付:</view>
+              <view class="label">应付金额:</view>
               <view class="value">¥{{ orderInfo.orderPrice ? parseFloat(orderInfo.orderPrice) : 0 }}</view>
             </view>
-            <view class="msg-list" v-if="Number(orderInfo.tkPrice)>0" style="position:relative;">
-              <view class="label">退款:</view>
-              <view class="value" style="color:red;font-weight:bold;">-¥{{ orderInfo.tkPrice ? parseFloat(orderInfo.tkPrice) : 0 }}</view>
-              <button class="admin-button-com mini-btn" @click="pageTo({url: '/admin/order/refundList',query: {orderSn: orderInfo.orderSn}})" style="position:absolute;right:0upx;top:0upx;">售后记录</button>
+
+            <!-- 退款信息 -->
+            <view class="msg-list rel" v-if="Number(orderInfo.tkPrice)>0">
+              <view class="label">退款金额:</view>
+              <view class="value" style="color:red;font-weight:bold;">
+                -¥{{ orderInfo.tkPrice ? parseFloat(orderInfo.tkPrice) : 0 }}
+              </view>
+              <button 
+                class="admin-button-com mini-btn abs-tr" 
+                @click="pageTo({url: '/admin/order/refundList',query: {orderSn: orderInfo.orderSn}})">售后记录</button>
             </view>
+
+            <!-- 售后付款信息 -->
             <view v-if="!$util.isEmpty(orderInfo.shOrderMap)" style="color:#856404;font-size:26upx;">
-              本单有售后付款:<text v-for="(shItem, shIndex) in orderInfo.shOrderMap" :key="shIndex" style="margin-right:10upx;" @click="goShOrder(shItem)">{{ shItem.shOrderSn }}</text>
+              本单有售后付款:
+              <text 
+                v-for="(shItem, shIndex) in orderInfo.shOrderMap" 
+                :key="shIndex" 
+                style="margin-right:10upx;" 
+                @click="goShOrder(shItem)">
+                {{ shItem.shOrderSn }}
+              </text>
             </view>
+
+            <!-- 实际金额 -->
             <view class="msg-list">
-              <view class="label">实际:</view>
-              <view class="value">{{orderInfo.forward==0?'':'-'}}¥{{ orderInfo.realPrice ? parseFloat(orderInfo.realPrice) : 0 }}</view>
+              <view class="label">实际金额:</view>
+              <view class="value">
+                {{orderInfo.forward==0?'':'-'}}¥{{ orderInfo.realPrice ? parseFloat(orderInfo.realPrice) : 0 }}
+              </view>
             </view>
 
+            <!-- 订单状态 -->
             <view class="msg-list">
               <view class="label">状态:</view>
-              <view class="value">{{orderInfo.status == 1?'待付款':orderInfo.status==2?'待发货':orderInfo.status == 3?'配送中':orderInfo.status ==4?'已完成':orderInfo.status == 5?'已取消':'待付款'}}</view>
+              <view class="value">
+                {{orderInfo.status == 1 ? '待付款':
+                  orderInfo.status == 2 ? '待发货':
+                  orderInfo.status == 3 ? '配送中':
+                  orderInfo.status == 4 ? '已完成':
+                  orderInfo.status == 5 ? '已取消':'待付款'}}
+              </view>
             </view>
 
+            <!-- 订单编号 -->
             <view class="msg-list">
-              <view class="label">单号:</view>
-              <view class="value">{{ orderInfo.orderSn||'' }}</view>
+              <view class="label">号:</view>
+              <view class="value">{{ orderInfo.orderSn || '' }}</view>
             </view>
 
+            <!-- 下单时间 -->
             <view class="msg-list">
-              <view class="label">时间:</view>
+              <view class="label">下单时间:</view>
               <view class="value">{{ orderInfo.addTime ? orderInfo.addTime.substr(5,11) : ''}}</view>
             </view>
 
+            <!-- 过期时间 -->
             <view class="msg-list" v-if="orderInfo.status == 1">
-              <view class="label">过期:</view>
-              <view class="value">{{ orderInfo.deadline?orderInfo.deadline:''}}</view>
+              <view class="label">过期时间:</view>
+              <view class="value">{{ orderInfo.deadline ? orderInfo.deadline : ''}}</view>
             </view>
-
           </view>
         </view>
-
       </view>
-
     </view>
+
+    <!-- 底部操作按钮 -->
     <view class="page-btn app-footer">
-      <view class="flex-center"> </view>
+      <view class="flex-center"></view>
       <view class="operate-btn-wrap">
-        <button class="admin-button-com middle" @click.stop="cancelFn(orderInfo)" v-if="orderInfo.status == 1">取消</button>
-        <button class="admin-button-com middle" @click.stop="goScan(orderInfo)" v-if="orderInfo.status == 1">扫码收款</button>
-        <button class="admin-button-com middle" @click.stop="printOrder(orderInfo)" v-if="orderInfo.payStatus == 1">打印</button>
+        <button 
+          class="admin-button-com middle" 
+          @click.stop="cancelFn(orderInfo)" 
+          v-if="orderInfo.status == 1">
+          取消
+        </button>
+        <button 
+          class="admin-button-com middle" 
+          @click.stop="goScan(orderInfo)" 
+          v-if="orderInfo.status == 1">
+          扫码收款
+        </button>
+        <button 
+          class="admin-button-com middle" 
+          @click.stop="printOrder(orderInfo)" 
+          v-if="orderInfo.payStatus == 1">
+          打印
+        </button>
       </view>
     </view>
   </view>
 </template>
+
 <script>
 import detailGoods from "./components/detail-goods.vue";
 import detailWork from "./components/detail-work.vue";
@@ -216,171 +358,227 @@ import detailItem from "./components/detail-item.vue";
 import AppCoupon from "@/components/app-coupon-sel";
 import ModalModule from "@/components/plugin/modal";
 import RateModule from "@/components/plugin/rate";
-import { onlinePrintOrder,cancelOrder } from '@/api/order'
-import { getDetB} from "@/api/order";
+import { onlinePrintOrder, cancelOrder } from '@/api/order'
+import { getDetB } from "@/api/order";
 const commonUtil = require("@/utils/common.js");
 import { confirmSettle } from "@/api/settle/index"
 import { refundAmount } from "@/api/refund";
+
 export default {
   name: "detail",
-  components: { detailGoods, AppCoupon, ModalModule, RateModule,detailItem,detailWork },
+  components: { 
+    detailGoods, 
+    AppCoupon, 
+    ModalModule, 
+    RateModule,
+    detailItem,
+    detailWork 
+  },
+  
   data() {
     return {
       constant: this.$constant,
       orderInfo: {},
-      refreshPage:0
+      refreshPage: 0
     };
   },
+  
   onLoad() {
-
     //返回上一页时不需要刷新
-		let pages = getCurrentPages();
-		let prevPage = pages[ pages.length - 2 ];
-		prevPage.$vm.refreshPage = 0
-
+    let pages = getCurrentPages();
+    let prevPage = pages[pages.length - 2];
+    prevPage.$vm.refreshPage = 0
   },
-	onShow() {
-		if(this.refreshPage == 1){
-			this.refreshPage = 0
-			this.init()
-		}
+  
+  onShow() {
+    if (this.refreshPage == 1) {
+      this.refreshPage = 0
+      this.init()
+    }
   },
+  
   methods: {
-    goPreOrder(info){
-      if(!this.$util.isEmpty(info.forwardMap)){
-        this.$util.pageTo({url:'/admin/order/detail?id='+info.forwardMap.orderId})
+    goPreOrder(info) {
+      if (!this.$util.isEmpty(info.forwardMap)) {
+        this.$util.pageTo({url: '/admin/order/detail?id=' + info.forwardMap.orderId})
       }
     },
-    clear(item){
-			let that = this
-			that.$util.confirmModal({content:'确认结账?'},() => {
-				uni.showActionSheet({
-					itemList: ['请选择收款方式:', '微信', '支付宝','现金','银行卡'],
-					success: function (respond) {
-						let currentIndex = respond.tapIndex
-						let inWay = [{name:"未选择",id:-1},{name:"微信",id:0},{name:"支付宝",id:1},{name:"现金",id:4},{name:"银行卡",id:5}]
-						if(currentIndex > 0){
-							let payWay = inWay[currentIndex].id
-              let arr = [{id:item.id}]
+    
+    clear(item) {
+      let that = this
+      that.$util.confirmModal({content: '确认结账?'}, () => {
+        uni.showActionSheet({
+          itemList: ['请选择收款方式:', '微信', '支付宝', '现金', '银行卡'],
+          success: function(respond) {
+            let currentIndex = respond.tapIndex
+            let inWay = [
+              {name: "未选择", id: -1},
+              {name: "微信", id: 0},
+              {name: "支付宝", id: 1},
+              {name: "现金", id: 4},
+              {name: "银行卡", id: 5}
+            ]
+            if (currentIndex > 0) {
+              let payWay = inWay[currentIndex].id
+              let arr = [{id: item.id}]
               let str = JSON.stringify(arr)
-							confirmSettle({id:str,payWay:payWay,customId:item.customId}).then(res=>{
-								if(res.code == 1){
-									that.$msg('操作成功')
+              confirmSettle({
+                id: str,
+                payWay: payWay,
+                customId: item.customId
+              }).then(res => {
+                if (res.code == 1) {
+                  that.$msg('操作成功')
                   that.getDetailInfo()
-								}
-							})
-						}else{
-							that.$msg("请选择收款方式")
-						}
-					}
-				})
-			})
+                }
+              })
+            } else {
+              that.$msg("请选择收款方式")
+            }
+          }
+        })
+      })
+    },
+    
+    callUp(mobile) {
+      this.$util.callUp(mobile)
     },
-		callUp(mobile) {
-			this.$util.callUp(mobile)
-		},
-    goScan(info){
-      let actPrice = info.actPrice ? parseFloat(info.actPrice):0
-      let orderSn = info.orderSn?info.orderSn:''
+    
+    goScan(info) {
+      let actPrice = info.actPrice ? parseFloat(info.actPrice) : 0
+      let orderSn = info.orderSn ? info.orderSn : ''
       let orderId = info.id ? info.id : 0
-      this.$util.pageTo({url:'/admin/billing/toPay?orderId='+orderId+'&actPrice='+actPrice+'&orderSn='+orderSn,type:2})
+      this.$util.pageTo({
+        url: '/admin/billing/toPay?orderId=' + orderId + '&actPrice=' + actPrice + '&orderSn=' + orderSn,
+        type: 2
+      })
     },
-    cancelFn(item){
-			this.$util.confirmModal({content:'确认取消?'},() => {
-        cancelOrder({id:item.id}).then(res=>{
-          if(res.code == 1){
+    
+    cancelFn(item) {
+      this.$util.confirmModal({content: '确认取消?'}, () => {
+        cancelOrder({id: item.id}).then(res => {
+          if (res.code == 1) {
             this.$msg('取消成功')
             this.getDetailInfo()
           }
         })
-			})
+      })
     },
-		backMoney(info){
-			refundAmount({id:info.id}).then(res=>{
-				if(res.code == 1){
-					if(res.data.status == 1){
-						this.$msg('退款成功')
-					}else{
-						this.$msg(res.msg)
-					}
-				}
-			})
-		},
-    printOrder(item){
-      onlinePrintOrder({id:item.id}).then(res=>{
-        if(res.code == 1){
+    
+    backMoney(info) {
+      refundAmount({id: info.id}).then(res => {
+        if (res.code == 1) {
+          if (res.data.status == 1) {
+            this.$msg('退款成功')
+          } else {
+            this.$msg(res.msg)
+          }
+        }
+      })
+    },
+    
+    printOrder(item) {
+      onlinePrintOrder({id: item.id}).then(res => {
+        if (res.code == 1) {
           this.$msg('操作成功')
         }
       })
     },
-    goSettle(item){
-      this.$util.pageTo({url:'/admin/settle/detail?id='+item.settleId})
+    
+    goSettle(item) {
+      this.$util.pageTo({url: '/admin/settle/detail?id=' + item.settleId})
     },
-    getCustomInfo(item){
-      this.$util.pageTo({url:'/admin/member/detail?id='+item.customId})
+    
+    getCustomInfo(item) {
+      this.$util.pageTo({url: '/admin/member/detail?id=' + item.customId})
     },
-    edit(item){
-      this.$util.pageTo({url:'/admin/order/modify?id='+item.id})
+    
+    edit(item) {
+      this.$util.pageTo({url: '/admin/order/modify?id=' + item.id})
     },
-    goRefund(){
-      this.$util.pageTo({url:'/admin/order/refund?id='+this.option.id})
+    
+    goRefund() {
+      this.$util.pageTo({url: '/admin/order/refund?id=' + this.option.id})
     },
-    goShOrder(info){
-      this.$util.pageTo({url:'/admin/order/detail?id='+info.shOrderId})
+    
+    goShOrder(info) {
+      this.$util.pageTo({url: '/admin/order/detail?id=' + info.shOrderId})
     },
+    
     init() {
       this.getDetailInfo();
     },
+    
     getDetailInfo() {
       return getDetB({ id: this.option.id }).then(res => {
         this.orderInfo = res.data;
-        this.orderInfo.deadline = commonUtil.getFormatDate(this.orderInfo.deadline,'MM-dd hh:mm')
+        this.orderInfo.deadline = commonUtil.getFormatDate(this.orderInfo.deadline, 'MM-dd hh:mm')
       })
     }
   }
 };
 </script>
+
 <style lang="scss" scoped>
 .app-content {
-  padding-bottom:120upx;
+  padding-bottom: 120upx;
 }
+
 .page-det {
   width: 94%;
   margin: 0 auto;
   position: relative;
   top: 20upx;
+  
   .order-msg {
     .order-msg-blo {
       font-size: 28upx;
       padding: 20upx 0;
       border-top: 1px solid $borderColor;
+      
       .msg-list {
         display: flex;
         justify-content: flex-start;
         margin: 16upx 0;
+        
         .label {
           color: #999999;
+          width: 160upx;
+          flex-shrink: 0;
+          text-align: right;
+          padding-right: 12upx;
+        }
+        .value {
+          flex: 1;
+          line-height: 1.6;
+          word-break: break-all;
         }
       }
     }
+    
     & .order-msg-blo:first-child {
       border-top: none;
     }
   }
 }
+
 .page-btn {
   @include disFlex(center, space-between);
   padding: 0 30upx;
+  
   .app-price {
     margin-bottom: 8upx;
     margin-left: 4upx;
   }
+  
   .red {
     width: 270upx;
   }
+  
   .default {
     width: 260upx;
   }
+  
   .operate-btn-wrap {
     .admin-button-com {
       margin-left: 30upx;
@@ -388,17 +586,34 @@ export default {
     }
   }
 }
+
 .module-com {
   border-radius: 10upx;
   background-color: #fff;
   padding: 0 20upx;
   box-shadow: 0upx 6upx 16upx #ddd;
   margin-bottom: 20upx;
+  
   .module-tit {
     padding: 20upx 0;
     font-size: 28upx;
     font-weight: 600;
     border-bottom: 1px solid $borderColor;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+    .module-tit__text {
+      display: inline-flex;
+      align-items: center;
+      gap: 10upx;
+    }
+
+    .module-tit__actions {
+      display: inline-flex;
+      align-items: center;
+      gap: 16upx;
+    }
   }
 }
 
@@ -418,6 +633,7 @@ export default {
     justify-content: center;
     align-items: center;
     width: 100%;
+    
     .tip-text {
       font-size: 28upx;
       color: #856404;
@@ -427,4 +643,38 @@ export default {
     }
   }
 }
+
+/* 通用工具类 */
+.ml-10 { margin-left: 10upx; }
+.ml-18 { margin-left: 18upx; }
+.ml-22 { margin-left: 22upx; }
+.mr-10 { margin-right: 10upx; }
+.rel { position: relative; }
+.abs-tr { position: absolute; right: 0upx; top: 0upx; }
+
+/* 链接与强调 */
+.link-primary { color: #3385ff; }
+.phone-link { text-decoration: underline; }
+
+/* 标签与状态 */
+.tag { display: inline-block; padding: 2upx 8upx; border-radius: 6upx; font-size: 24upx; }
+.tag--primary { background: #e8f2ff; color: #3385ff; }
+.tag--danger { background: #ffecec; color: #ff4d4f; font-weight: 600; }
+
+/* 备注盒子 */
+.remark-box {
+  color: red;
+  font-weight: bold;
+  width: auto;
+  max-width: 100%;
+  min-height: 28upx;
+  height: auto;
+  word-break: break-all;
+}
+
+/* 描边按钮(红色) */
+.btn-outline-danger {
+  border: 1upx solid red;
+  color: red;
+}
 </style>