From b05fea19990632b2ec6320cbfaab2bddc87006c0 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 22 一月 2026 21:17:36 +0800
Subject: [PATCH] 经销商管理

---
 admin/src/components/business/OperaGoodsOrderDetail.vue |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 105 insertions(+), 10 deletions(-)

diff --git a/admin/src/components/business/OperaGoodsOrderDetail.vue b/admin/src/components/business/OperaGoodsOrderDetail.vue
index d5580ef..76c4f46 100644
--- a/admin/src/components/business/OperaGoodsOrderDetail.vue
+++ b/admin/src/components/business/OperaGoodsOrderDetail.vue
@@ -4,7 +4,7 @@
       width="100%"
       :visible.sync="visible"
   >
-    <div style="display: block">
+    <div class="detail-box">
       <div class="header">
         <div  class="header-b">璁㈠崟璇︽儏</div>
           <div v-if="info.status ==0"  class="header-orange">寰呮敮浠�</div>
@@ -13,7 +13,11 @@
           <span  v-if="info.status ==3"   class="header-grey ">浜ゆ槗瀹屾垚</span>
           <div  v-if="info.status ==4"   class="header-grey">宸插叧闂�</div>
           <div  v-if="info.status ==6"   class="header-grey">宸查��娆�</div>
-           <div class="header-blue-btn" @click="showChangeRecord">鍙樻洿璁板綍</div>
+          <div style="text-align: right;">
+            <div class="header-red-btn" v-if="info.status == 0" @click="$refs.OperaOrderCancelWindow.open('鍙栨秷璁㈠崟', info)">鍙栨秷璁㈠崟</div>
+            <div class="header-red-btn" v-if="info.status == 3" @click="$refs.OperaOrderCancelWindow.open('璁㈠崟閫�娆�', info)">璁㈠崟閫�娆�</div>
+            <div class="header-blue-btn" @click="showChangeRecord">鍙樻洿璁板綍</div>
+          </div>
       </div>
       <div class="info-item">
         <div class="info-item-a">璁㈠崟缂栧彿锛�<span>{{info.code}}</span></div>
@@ -30,7 +34,11 @@
         <div class="info-item-a" style="flex: 3">褰掑睘缁忛攢鍟嗭細<span >{{ info.shopName }}</span></div>
       </div>
       <div class="info-item">
-        <div class="info-item-a" style="flex: 3">澶囨敞锛�<span v-if="info.sysInfo" class="red">{{info.sysInfo}}</span></div>
+        <div class="info-item-a" style="flex: 3">澶囨敞锛�<span v-if="info.sysInfo" class="red">{{info.sysInfo}}</span>
+        <span style="margin-left: 20px;" >
+           <el-button  type="text" @click="$refs.operaOrderMarkWindow.open(info.sysInfo && info.sysInfo.length?'缂栬緫澶囨敞':'娣诲姞澶囨敞', info)">
+              {{ info.sysInfo && info.sysInfo.length?'淇敼澶囨敞':'娣诲姞澶囨敞' }}</el-button>
+        </span></div>
       </div>
       <div class="info-item"></div>
       <div class="header">
@@ -45,6 +53,8 @@
       <template  v-if="info.receiveType!=1">
         <div class="header">
           <div  class="header-b">蹇�掍俊鎭�</div>
+          <div class="header-blue-btn" v-if="info.status==1 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('鍙戣揣',info)">鍙戣揣</div>
+          <div class="header-blue-btn" v-if="info.status==2 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('蹇�掑彉鏇�',info)">蹇�掑彉鏇�</div>
         </div>
         <div class="info-item"  >
           <div class="info-item-a">鏀惰揣浜猴細<span class="el-icon-user">{{info.linkname}}</span></div>
@@ -57,18 +67,89 @@
           <div class="info-item-a"  >鍙戣揣浜猴細<span>{{info.kdUserName }}</span></div>
         </div>
         <div class="info-item"  >
-          <div class="info-item-a">鍙戣揣鏃堕棿锛�<span  >{{info.kdDate }}</span></div>
-          <div class="info-item-a" style="flex: 2">蹇�掑娉細<span>{{info.kdInfo }}</span></div>
+          <div class="info-item-a">鍙戣揣鏃堕棿锛�<span>{{info.kdDate }}</span></div>
+          <div class="info-item-a" style="flex: 2;">蹇�掑娉細<span>{{info.kdInfo }}</span></div>
         </div>
         <div class="info-item"></div>
       </template>
-
+      <template  v-if="info.status ==6">
+        <div class="header">
+          <div  class="header-b">閫�娆句俊鎭�</div>
+          <div class="header-blue-btn" v-if="info.status==1 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('鍙戣揣',info)">鍙戣揣</div>
+          <div class="header-blue-btn" v-if="info.status==2 && info.receiveType!=1"  @click="$refs.operaShipmentsWindow.open('蹇�掑彉鏇�',info)">蹇�掑彉鏇�</div>
+        </div>
+        <div class="info-item"  >
+          <div class="info-item-a">閫�娆鹃噾棰濓細<span class="orange">锟{(info.refundMoney||0).toFixed(2)}}</span></div>
+          <div class="info-item-a"  >鎿嶄綔浜猴細<span>{{info.refundUserName }}</span></div>
+          <div class="info-item-a"  >閫�娆炬椂闂达細<span>{{info.refundTime }}</span></div>
+        </div>
+        <div class="info-item"  >
+          <div class="info-item-a" >閫�娆惧娉細<span>{{info.kdInfo }}</span></div>
+        </div>
+        <div class="info-item"></div>
+      </template>
+      <template  v-if="info.status == 4">
+        <div class="header">
+          <div  class="header-b">鍙栨秷淇℃伅</div>
+        </div>
+        <div class="info-item"  >
+          <div class="info-item-a">鍙栨秷鏃堕棿锛�<span >{{info.cancelDate}}</span></div>
+          <div class="info-item-a">鍙栨秷浜哄憳锛�<span>{{info.cancelUserName }}</span></div>
+          <div class="info-item-a">鍙栨秷璇存槑锛�<span>{{info.cancelInfo }}</span></div>
+        </div>
+        <div class="info-item"></div>
+      </template>
+       <div class="header">
+          <div  class="header-b">杩旂Н鍒嗕俊鎭�</div>
+        </div>
+        <div class="info-item"  >
+          <div class="info-item-a">杩旇繕鐢ㄦ埛绉垎锛�<span class="orange"> {{(info.returnMemberIntegral||0)}}</span></div>
+          <div class="info-item-a">杩旇繕缁忛攢鍟嗙Н鍒嗭細<span class="orange">{{info.returnCustomerIntegral || 0 }}</span></div>
+          <div class="info-item-a"></div>
+        </div>
+        <div class="info-item"></div>
+      <div class="header">
+        <div  class="header-b">鍟嗗搧淇℃伅</div>
+      </div>
+      <div class="info-item"  >
+        <el-table  :data="info.goodsorderDetailList||[]"  stripe  border >
+          <el-table-column prop="imgurl" label="鍟嗗搧鍥�" min-width="80px" align="center">
+            <template slot-scope="{row}">
+              <el-image style="width: 50px;height: 50px;" v-if="row.imgurl && row.imgurl!=''" :src="row.imgurl" :preview-src-list="[row.imgurl]"></el-image>
+            </template>
+          </el-table-column>
+          <el-table-column prop="name" label="鍟嗗搧鍚嶇О"   align="center" min-width="150px">  </el-table-column>
+          <el-table-column prop="categoryName" label="鍟嗗搧鍒嗙被"   align="center" min-width="150px">  </el-table-column>
+          <el-table-column prop="goodsWeight" label="閲嶉噺(kg)" align="center" min-width="150px"></el-table-column>
+          <el-table-column prop="price" label="閿�鍞环(鍏�)" align="center" min-width="100px"></el-table-column>
+          <el-table-column prop="goodsNum" label="鏁伴噺" align="center" min-width="150px"></el-table-column>
+          <el-table-column prop="totalPrice" label="灏忚" align="center" min-width="150px"></el-table-column>
+        </el-table>
+      </div>
+      <div class="info-item"  >
+        <div class="info-item-a">鍟嗗搧鎬讳环锛�<span> 锟{((info.totalPrice||0)-(info.mailPrice || 0)).toFixed(2)}}</span></div>
+        <div class="info-item-a">蹇�掕垂锛�<span>锟{(info.mailPrice||0).toFixed(2)}}</span></div>
+        <div class="info-item-a">璁㈠崟鎬讳环锛�<span > 锟{(info.totalPrice||0).toFixed(2)}}</span></div>
+      </div>
+      <div class="info-item"  >
+        <div class="info-item-a">浼樻儬鍏卞噺锛�<span> -锟{((info.integral||0) + (info.couponPrice||0)).toFixed(2) }}</span>
+          <span style="margin-left: 20px;" >
+           <el-button  type="text" @click="showCouponPrice">鏌ョ湅</el-button>
+        </span>
+        </div>
+      </div>
+      <div class="info-item"  >
+        <div class="info-item-a">瀹炰粯閲戦锛�<span class="red"> 锟{(info.price||0).toFixed(2)}}</span></div>
+      </div>
     </div>
     <template  v-slot:footer>
       <el-button @click="visible=false">杩斿洖</el-button>
     </template>
     <OperaChangeOrderRecordWindow ref="OperaChangeOrderRecordWindow"/>
+    <OperaShipmentsWindow ref="operaShipmentsWindow" @success="successBiz"/>
     <OperaChangeIntegralWindow ref="OperaChangeIntegralWindow" @success="successBiz"/>
+    <OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="successBiz"/>
+    <OperaOrderCancelWindow ref="OperaOrderCancelWindow" @success="successBiz"/>
   </GlobalWindow>
 </template>
 
@@ -77,10 +158,13 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import OperaChangeOrderRecordWindow from '@/components/business/OperaChangeOrderRecordWindow'
 import OperaChangeIntegralWindow from '@/components/business/OperaChangeIntegralWindow'
+import OperaOrderCancelWindow from '@/components/business/OperaOrderCancelWindow'
+import OperaOrderMarkWindow from '@/components/business/OperaOrderMarkWindow'
+import OperaShipmentsWindow from '@/components/business/OperaShipmentsWindow'
 export default {
   name: 'OperaShopGoodsWindow',
   extends: BaseOpera,
-  components: { GlobalWindow, OperaChangeOrderRecordWindow, OperaChangeIntegralWindow },
+  components: { GlobalWindow, OperaChangeOrderRecordWindow, OperaChangeIntegralWindow,OperaOrderMarkWindow,OperaShipmentsWindow ,OperaOrderCancelWindow},
   data () {
     return {
       title: '',
@@ -95,7 +179,6 @@
       }
     }
   },
-
   created () {
     this.config({
       module: '鐢ㄦ埛淇℃伅琛�',
@@ -106,9 +189,11 @@
   },
   methods: {
     successBiz () {
-      this.handlePageChange()
       this.loadInfo()
       this.$emit('success')
+    },
+    showCouponPrice(){
+
     },
     loadInfo () {
       this.api.detail(this.info.id).then(res => {
@@ -146,11 +231,21 @@
   font-size: 16px;
   font-weight: bold;
 }
+.header-red-btn{
+  display: inline-block;
+  font-size: 12px;
+  background-color:  red;
+  padding: 2px 10px 3px 10px;
+  margin-left: 20px;
+  color: white;
+  cursor: pointer;
+  border-radius: 5px ;
+}
 .header-blue-btn{
   display: inline-block;
   font-size: 12px;
   background-color:  #216EEE;
-  padding: 2px 10px;
+  padding: 2px 10px 3px 10px;
   margin-left: 20px;
   color: white;
   cursor: pointer;

--
Gitblit v1.9.3