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

---
 admin/src/components/business/OperaGoodsOrderDetail.vue |  352 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 168 insertions(+), 184 deletions(-)

diff --git a/admin/src/components/business/OperaGoodsOrderDetail.vue b/admin/src/components/business/OperaGoodsOrderDetail.vue
index 2ab5591..d5580ef 100644
--- a/admin/src/components/business/OperaGoodsOrderDetail.vue
+++ b/admin/src/components/business/OperaGoodsOrderDetail.vue
@@ -1,216 +1,200 @@
 <template>
   <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
+      :title="title"
+      width="100%"
+      :visible.sync="visible"
   >
-    <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="璁㈠崟淇℃伅" name="first">
-        <el-descriptions title="璁㈠崟淇℃伅" size="medium" direction="horizontal" :column="4">
-          <el-descriptions-item label="璁㈠崟缂栧彿">{{ form.code }}</el-descriptions-item>
-          <el-descriptions-item label="璁㈠崟鐘舵��">
-            <span :class="[0,1,2,5].indexOf(form.status) != -1 ? 'underway' : 'complete'">
-              {{ 
-                form.status==0 ? '寰呮敮浠�'
-                  : form.status==1 ? '寰呭彂璐�'
-                    : form.status==2 ? '寰呮敹璐�'
-                      : form.status==3 ? '浜ゆ槗瀹屾垚'
-                        : form.status==4 ? '宸插叧闂�' : '閮ㄥ垎鍙戣揣'
-              }}
-            </span>
-          </el-descriptions-item>
-          <el-descriptions-item label="涓嬪崟鏃堕棿">{{ form.createDate }}</el-descriptions-item>
-          <el-descriptions-item label="鏀粯鏃堕棿">{{ form.payDate }}</el-descriptions-item>
-          <el-descriptions-item label="璁㈠崟閲戦">
-            <span v-if="isPlatform">锟�</span>{{ form.price }}<span v-if="!isPlatform">鍜栬眴</span></el-descriptions-item>
-          <el-descriptions-item label="鏀粯璁㈠崟鍙�">{{ form.payOrderId }}</el-descriptions-item>
-          <el-descriptions-item label="瀹屾垚鏃堕棿" :span="2">{{ form.completeDate }}</el-descriptions-item>
-         
-          <el-descriptions-item label="鐢ㄦ埛澶囨敞" :span="4">{{ form.memberInfo }}</el-descriptions-item>
-          <el-descriptions-item label="骞冲彴澶囨敞" :span="4">{{ form.sysInfo }}</el-descriptions-item>
-          
-        </el-descriptions>
-        <div style="height: 20px;"></div>
-        <el-descriptions title="璁㈠崟淇℃伅" size="medium" direction="horizontal" :column="4">
-          <el-descriptions-item label="鏀朵欢濮撳悕">{{ form.linkname }}</el-descriptions-item>
-          <el-descriptions-item label="鑱旂郴鐢佃瘽">{{ form.linkphone }}</el-descriptions-item>
-          <el-descriptions-item label="鏀惰幏鍦板潃">{{ form.linkaddr }}</el-descriptions-item>
-        </el-descriptions>
-        <div style="height: 20px;"></div>
-        <el-descriptions title="鍟嗗搧淇℃伅" size="medium" direction="horizontal" :column="4">
-          
-        </el-descriptions>
-        <el-table
-          :data="list"
-          stripe
-          border
-        >
-          <el-table-column prop="name" label="鍟嗗搧ID" align="center" min-width="100px"></el-table-column>
-          <el-table-column prop="name" label="鍟嗗搧淇℃伅" align="center" min-width="100px"></el-table-column>
-          <el-table-column prop="name" label="鍒嗙被" align="center" width="100px"></el-table-column>
-          <el-table-column prop="name" label="瑙勬牸" align="center" min-width="100px"></el-table-column>
-          <el-table-column prop="name" :label="isPlatform?'浠锋牸(鍏�)':'浠锋牸(鍜栬眴)'" align="center" width="100px"></el-table-column>
-        </el-table>
-        <div v-if="isPlatform" class="statistics">
-          <div>璁㈠崟鍟嗗搧閲戦锛歿{ form.price }}鍏�</div>
-          <div>璁㈠崟浼樻儬閲戦锛�-{{ form.price }}鍏�</div>
-          <div>瀹炴敹娆撅細{{ form.price }}鍏�</div>
+    <div style="display: block">
+      <div class="header">
+        <div  class="header-b">璁㈠崟璇︽儏</div>
+          <div v-if="info.status ==0"  class="header-orange">寰呮敮浠�</div>
+          <div  v-if="info.status ==1"  class="header-orange">{{info.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</div>
+          <div  v-if="info.status ==2" class="header-orange">寰呮敹璐�</div>
+          <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>
+      <div class="info-item">
+        <div class="info-item-a">璁㈠崟缂栧彿锛�<span>{{info.code}}</span></div>
+        <div class="info-item-a">鍒涘缓鏃堕棿锛�<span>{{info.createDate}}</span></div>
+        <div class="info-item-a">鏀粯鏃堕棿锛�<span>{{info.payDate }}</span></div>
+      </div>
+      <div class="info-item">
+        <div class="info-item-a">瀹炰粯閲戦锛�<span class="orange">锟{(info.price||0).toFixed(2)}}</span></div>
+        <div class="info-item-a">鏀粯鏂瑰紡锛�<span>{{info.payMethod==0?'寰俊鏀粯':'绉垎鎶垫墸'}}</span></div>
+        <div class="info-item-a">鍙栬揣鏂瑰紡锛�<span>{{info.receiveType==1?'闂ㄥ簵鑷彁':'蹇�掗厤閫�'}}</span>
+         </div>
+      </div>
+      <div class="info-item">
+        <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>
+      <div class="info-item"></div>
+      <div class="header">
+        <div  class="header-b">浼氬憳淇℃伅</div>
+      </div>
+      <div class="info-item">
+        <div class="info-item-a">濮撳悕锛�<span class="el-icon-user">{{info.memberName}}</span></div>
+        <div class="info-item-a">鎵嬫満鍙凤細<span class="el-icon-phone-outline">{{info.phone}}</span></div>
+        <div class="info-item-a">鐢ㄦ埛鏄电О锛�<span>{{info.nickName }}</span></div>
+      </div>
+      <div class="info-item"></div>
+      <template  v-if="info.receiveType!=1">
+        <div class="header">
+          <div  class="header-b">蹇�掍俊鎭�</div>
         </div>
-      </el-tab-pane>
-      <el-tab-pane label="鐗╂祦淇℃伅" name="second">
-        <el-descriptions title="蹇�掍俊鎭�" size="medium" direction="horizontal" :column="4">
-          <el-descriptions-item label="杩愬崟鍙�">{{ form.createDate }}</el-descriptions-item>
-          <el-descriptions-item label="鐗╂祦鍏徃" :span="3">{{ form.kdName }}</el-descriptions-item>
-          <el-descriptions-item label="鏀惰揣鍦板潃" :span="4">{{ form.linkaddr }}</el-descriptions-item>
-          <el-descriptions-item label="鍙戣揣鏃堕棿" :span="4">{{ form.kdDate }}</el-descriptions-item>
-        </el-descriptions>
-        <div class="kd-detail">
-          <div class="kd-status">宸茬鏀�</div>
-          <el-timeline>
-            <el-timeline-item
-              v-for="(item, index) in kdDetail"
-              :key="index"
-              hide-timestamp
-              :class="index==0&&'first'"
-              :size="index==0?'large':'normal'"
-              :timestamp="item.date"
-            >
-              <h4>{{ item.date }}</h4>
-              <p>{{ item.message }}</p>
-            </el-timeline-item>
-          </el-timeline>
+        <div class="info-item"  >
+          <div class="info-item-a">鏀惰揣浜猴細<span class="el-icon-user">{{info.linkname}}</span></div>
+          <div class="info-item-a">鑱旂郴鐢佃瘽锛�<span class="el-icon-phone-outline">{{info.linkphone}}</span></div>
+          <div class="info-item-a">鎵�鍦ㄤ綅缃細<span class="el-icon-location-outline">{{info.linkaddr }}</span></div>
         </div>
-      </el-tab-pane>
-    </el-tabs>
-    <div slot="footer"></div>
+        <div class="info-item"  >
+          <div class="info-item-a">蹇�掑叕鍙革細<span >{{info.kdName}}</span></div>
+          <div class="info-item-a">蹇�掑崟鍙凤細<span >{{info.kdCode}}</span></div>
+          <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>
+        <div class="info-item"></div>
+      </template>
+
+    </div>
+    <template  v-slot:footer>
+      <el-button @click="visible=false">杩斿洖</el-button>
+    </template>
+    <OperaChangeOrderRecordWindow ref="OperaChangeOrderRecordWindow"/>
+    <OperaChangeIntegralWindow ref="OperaChangeIntegralWindow" @success="successBiz"/>
   </GlobalWindow>
 </template>
 
 <script>
-import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import BaseOpera from '@/components/base/BaseOpera'
+import OperaChangeOrderRecordWindow from '@/components/business/OperaChangeOrderRecordWindow'
+import OperaChangeIntegralWindow from '@/components/business/OperaChangeIntegralWindow'
 export default {
-  name: 'OperaGoodsOrderDetail',
+  name: 'OperaShopGoodsWindow',
   extends: BaseOpera,
-  components: { GlobalWindow },
+  components: { GlobalWindow, OperaChangeOrderRecordWindow, OperaChangeIntegralWindow },
   data () {
-    
     return {
-      activeName: '0',
-      isPlatform: true,
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: '1',
-        code: '256302564258',
-        payOrderId: '256302564258',
-        createDate: '2022-11-01 22:30:43',
-        payDate: '2022-11-01 22:30:43',
-        soonTime: '2022-11-03 22:30:43',
-        completeDate: '2022-11-03 22:30:43',
-        imgurl: '',
-        goodsName: '鍜栧暋鏉�',
-        attr: '鐧借壊锛涘叾瀹冭鏍煎唴瀹癸紱 10L',
-        memberInfo: '杩欓噷鏄敤鎴峰娉�',
-        sysInfo: '杩欓噷鏄钩鍙板娉�',
-        linkname: '鏉庢��鑻�',
-        linkphone: '18055151023',
-        linkaddr: '鍥涘窛鐪佹垚閮藉競閲戠墰鍖猴紝閲戞硥琛楅亾涓捣鍥介檯绀惧尯钃濆哺琛�98鍙锋閮′竴鏈�5-2-504',
-        price: '2333',
-        status: 1, 
-        kdCode: 'SF01021213',
-        kdDate: '2022-11-03 23:30:43',
-        kdId: 'KD21312',
-        kdInfo: '杩欐槸鍙戣揣澶囨敞',
-        kdName: '椤轰赴蹇��',
-        kdUser: '00190',
-      },
-      list: [],
-      kdDetail: [
-        { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
-        { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
-        { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
-        { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
-        { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
-      ]
+      title: '',
+      visible: false,
+      tabelHeight: null,
+      info: {},
+      // 鎼滅储
+      searchForm: {
+        memberId: '',
+        userType: 0,
+        type: null
+      }
     }
   },
+
   created () {
     this.config({
-      api: '/business/coupon',
-      'field.id': 'id'
+      module: '鐢ㄦ埛淇℃伅琛�',
+      api: '/business/goodsorder',
+      'field.id': 'id',
+      'field.main': 'id'
     })
   },
   methods: {
-    open(title, target, active, isPlatform=true) {
-      this.title = title
-      this.visible = true
-      this.activeName = active
-      this.isPlatform = isPlatform
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.type = '0'
-          this.$refs.form.resetFields()
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        if (this.form.shopId) {
-          this.type = 0
-          this.shops = [{ label: target.shopName, id: this.form.shopId }]
-        } else {
-          this.type = 1
-          this.orgs = [{ label: target.orgName, id: this.form.orgId }]
-        }
+    successBiz () {
+      this.handlePageChange()
+      this.loadInfo()
+      this.$emit('success')
+    },
+    loadInfo () {
+      this.api.detail(this.info.id).then(res => {
+        this.info = res || this.info
       })
     },
-    handleClick() {}
-  },
+    showChangeRecord () {
+      if (this.info) {
+        this.$refs.OperaChangeOrderRecordWindow.open('璁㈠崟鍙樻洿璁板綍', this.info)
+      }
+    },
+    changeIntegral () {
+      if (this.info) {
+        this.$refs.OperaChangeIntegralWindow.open('瀹㈡埛绉垎璋冩暣', this.info, 0)
+      }
+    },
+    open (title, info) {
+      this.title = title
+      this.visible = true
+      this.info = info || {}
+      this.loadInfo()
+    },
+    handleClick (val) {
+    }
+  }
 }
 </script>
-
-<style lang="scss" scoped>
-.underway {
-  color: rgb(233, 165, 80)
+<style scoped  lang="scss">
+.table-pagination{
+  position: fixed !important;
+  bottom: 50px;
 }
-.complete {
-  color: #ccc;
+.header-b{
+  display: inline-block;
+  font-size: 16px;
+  font-weight: bold;
 }
-
-.first {
-  ::v-deep .el-timeline-item__node {
-    background-color: #fff !important;
-    width: 8px !important;
-    height: 8px !important;
-    transform: translateX(-3px);
-    border: #216EEE solid 6px !important;
-  }
+.header-blue-btn{
+  display: inline-block;
+  font-size: 12px;
+  background-color:  #216EEE;
+  padding: 2px 10px;
+  margin-left: 20px;
+  color: white;
+  cursor: pointer;
+  border-radius: 5px ;
 }
-.kd-detail {
-  padding: 30px;
-  background-color: #f2f2f2;
-  .kd-status {
-    height: 30px;
-    line-height: 30px;
-    font-size: 20px;
-    font-weight: 500;
-    border-bottom: 1px solid #000;
-    margin-bottom: 20px;
-  }
+.header-grey{
+  display: inline-block;
+  font-size: 12px;
+  border: 1px solid grey;
+  padding: 2px 10px;
+  margin-left: 20px;
+  color: grey;
+  border-radius: 5px ;
 }
-.statistics {
-  text-align: right;
-  padding: 10px 5px;
+.header-orange{
+  display: inline-block;
+  font-size: 12px;
+  border: 1px solid orange;
+  padding: 2px 10px;
+  margin-left: 20px;
+  color: orange;
+  border-radius: 5px ;
+}
+.header-btn{
+  display: inline-block;
+  border: none;
+  padding: 2px 10px;
+  margin-left: 20px;
+}
+.info-item{
+  display: flex;
+  width: 100%;
+  margin: 15px;
+}
+.info-item-a{
+  flex: 1;
   font-size: 14px;
-  line-height: 24px;
-  :last-child {
-    color: rgb(232, 60,45);
-  }
+
+}
+.info-item-a span{
+  font-weight: 600;
+}
+.info-item-a  .btn{
+  font-size: 12px !important;
+  cursor: pointer !important;
 }
 </style>

--
Gitblit v1.9.3