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

---
 admin/src/views/business/goodsorder.vue |  501 +++++++++++++++++++++++-------------------------------
 1 files changed, 214 insertions(+), 287 deletions(-)

diff --git a/admin/src/views/business/goodsorder.vue b/admin/src/views/business/goodsorder.vue
index 9ac3915..ac49b58 100644
--- a/admin/src/views/business/goodsorder.vue
+++ b/admin/src/views/business/goodsorder.vue
@@ -4,148 +4,67 @@
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
       <!-- 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣 -->
       <el-tabs v-model="status" @tab-click="handleClick">
-        <el-tab-pane label="鍏ㄩ儴璁㈠崟" name="10"></el-tab-pane>
-        <el-tab-pane label="寰呮敮浠�" name="0"></el-tab-pane>
-        <el-tab-pane label="寰呭彂璐�" name="1"></el-tab-pane>
-        <el-tab-pane label="寰呮敹璐�" name="2"></el-tab-pane>
-        <el-tab-pane label="浜ゆ槗瀹屾垚" name="3"></el-tab-pane>
-        <el-tab-pane label="浜ゆ槗鍏抽棴" name="4"></el-tab-pane>
-        <el-tab-pane label="鍥炴敹绔�" name="9"></el-tab-pane>
+        <el-tab-pane
+            v-for="tab in statusList"
+            :key="tab.name"
+            :name="tab.name"
+        >
+          <template #label>
+            <span>{{ tab.label }}</span>
+            <el-badge
+                v-if="tab.count > 0"
+                :value="tab.count"
+                class="tab-badge"
+            />
+          </template>
+        </el-tab-pane>
       </el-tabs>
       <el-form-item label="璁㈠崟缂栧彿" prop="code">
-        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
+        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" type="number" clearable @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鐢ㄦ埛淇℃伅" prop="information">
-        <el-input v-model="searchForm.information" placeholder="璇疯緭鍏ユ樀绉�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+      <el-form-item label="鏀惰揣浜�" prop="nickName">
+        <el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" clearable  @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="璁㈠崟鏃堕棿" prop="createDate">
-        <el-date-picker
-          v-model="createDate"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-          @change="selectDate"
-        />
-      </el-form-item>
-      <el-form-item label="鍌彂璐�" prop="isSoon">
-        <el-select
-          v-model="searchForm.isSoon"
-          placeholder="璇烽�夋嫨鏄惁鍌彂璐�"
-          @change="search"
-        >
-          <el-option :key="0" :value="0" label="鍚�"></el-option>
-          <el-option :key="1" :value="1" label="鏄�"></el-option>
+      <el-form-item label="鍙栬揣鏂瑰紡" prop="receiveType">
+        <el-select v-model="searchForm.receiveType"    placeholder="璇烽�夋嫨鍙栬揣鏂瑰紡" clearable   @change="search" >
+          <el-option :key="0" :value="0" label="蹇�掗厤閫�"></el-option>
+          <el-option :key="1" :value="1" label="鑷彁"></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="褰掑睘缁忛攢鍟�" prop="shopName">
+        <el-input v-model="searchForm.shopName" placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�" clearable @keypress.enter.native="search"></el-input>
+      </el-form-item>
       <el-form-item label="鏀粯鍗曞彿" prop="payOrderId">
-        <el-input v-model="searchForm.payOrderId" placeholder="璇疯緭鍏ユ敮浠樺崟鍙�" @keypress.enter.native="search"></el-input>
+        <el-input v-model="searchForm.payOrderId" placeholder="璇疯緭鍏ユ敮浠樺崟鍙�" clearable  @keypress.enter.native="search"></el-input>
       </el-form-item>
-
-
-      <!-- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟缂栧彿" prop="code">
-        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟瀹炰粯浠锋牸锛堝厓/鍜栬眴锛�" prop="price">
-        <el-input v-model="searchForm.price" placeholder="璇疯緭鍏ヨ鍗曞疄浠樹环鏍硷紙鍏�/鍜栬眴锛�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍟嗗搧鎬绘暟閲�" prop="goodsNum">
-        <el-input v-model="searchForm.goodsNum" placeholder="璇疯緭鍏ュ晢鍝佹�绘暟閲�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="涓嬪崟浜虹紪鐮侊紙鍏宠仈member琛級" prop="memberId">
-        <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ笅鍗曚汉缂栫爜锛堝叧鑱攎ember琛級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀惰揣鍦板潃缂栫爜锛堝叧鑱攁ddr琛級" prop="addrId">
-        <el-input v-model="searchForm.addrId" placeholder="璇疯緭鍏ユ敹璐у湴鍧�缂栫爜锛堝叧鑱攁ddr琛級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀惰揣浜哄鍚�" prop="linkname">
-        <el-input v-model="searchForm.linkname" placeholder="璇疯緭鍏ユ敹璐т汉濮撳悕" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀惰揣浜虹數璇�" prop="linkphone">
-        <el-input v-model="searchForm.linkphone" placeholder="璇疯緭鍏ユ敹璐т汉鐢佃瘽" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀惰揣鍦板潃" prop="linkaddr">
-        <el-input v-model="searchForm.linkaddr" placeholder="璇疯緭鍏ユ敹璐у湴鍧�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵�� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣" prop="status">
-        <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸茶瘎浠� 0鏈瘎浠� 1宸茶瘎浠�" prop="isComment">
-        <el-input v-model="searchForm.isComment" placeholder="璇疯緭鍏ユ槸鍚﹀凡璇勪环 0鏈瘎浠� 1宸茶瘎浠�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀粯鐘舵�� 0鏈敮浠� 1宸叉敮浠�" prop="payStatus">
-        <el-input v-model="searchForm.payStatus" placeholder="璇疯緭鍏ユ敮浠樼姸鎬� 0鏈敮浠� 1宸叉敮浠�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏀粯鏃堕棿" prop="payDate">
-        <el-date-picker v-model="searchForm.payDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ敮浠樻椂闂�" @change="search"/>
-      </el-form-item>
-      
-      <el-form-item label="鏀粯鏂瑰紡 0寰俊鏀粯 1绾夸笅鏀粯" prop="payMethod">
-        <el-input v-model="searchForm.payMethod" placeholder="璇疯緭鍏ユ敮浠樻柟寮� 0寰俊鏀粯 1绾夸笅鏀粯" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="蹇�掑崟鍙�" prop="kdCode">
-        <el-input v-model="searchForm.kdCode" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="蹇�掑悕绉�" prop="kdName">
-        <el-input v-model="searchForm.kdName" placeholder="璇疯緭鍏ュ揩閫掑悕绉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="蹇�掔紪鐮侊紙鍏宠仈labels琛級" prop="kdId">
-        <el-input v-model="searchForm.kdId" placeholder="璇疯緭鍏ュ揩閫掔紪鐮侊紙鍏宠仈labels琛級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐢ㄦ埛澶囨敞" prop="memberInfo">
-        <el-input v-model="searchForm.memberInfo" placeholder="璇疯緭鍏ョ敤鎴峰娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="骞冲彴澶囨敞" prop="sysInfo">
-        <el-input v-model="searchForm.sysInfo" placeholder="璇疯緭鍏ュ钩鍙板娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍙栨秷鏃堕棿" prop="cancelDate">
-        <el-date-picker v-model="searchForm.cancelDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彇娑堟椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鍙栨秷浜�" prop="cancelUser">
-        <el-input v-model="searchForm.cancelUser" placeholder="璇疯緭鍏ュ彇娑堜汉" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍙栨秷澶囨敞" prop="cancelInfo">
-        <el-input v-model="searchForm.cancelInfo" placeholder="璇疯緭鍏ュ彇娑堝娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍙戣揣鏃堕棿" prop="kdDate">
-        <el-date-picker v-model="searchForm.kdDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彂璐ф椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="鍙戣揣澶囨敞" prop="kdInfo">
-        <el-input v-model="searchForm.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍙戣揣浜虹紪鐮侊紙鍏宠仈system_user琛級" prop="kdUser">
-        <el-input v-model="searchForm.kdUser" placeholder="璇疯緭鍏ュ彂璐т汉缂栫爜锛堝叧鑱攕ystem_user琛級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="瀹屾垚鏃堕棿" prop="doneDate">
-        <el-date-picker v-model="searchForm.doneDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�" @change="search"/>
-      </el-form-item>
-      <el-form-item label="瀹屾垚澶囨敞" prop="doneInfo">
-        <el-input v-model="searchForm.doneInfo" placeholder="璇疯緭鍏ュ畬鎴愬娉�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁宸插敭鍚� 0鍚� 1鏄�" prop="isAftersale">
-        <el-input v-model="searchForm.isAftersale" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍞悗 0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璁㈠崟绫诲瀷 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝缂栫爜" prop="type">
-        <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ヨ鍗曠被鍨� 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝缂栫爜" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="浼樻儬閲戦" prop="couponPrice">
-        <el-input v-model="searchForm.couponPrice" placeholder="璇疯緭鍏ヤ紭鎯犻噾棰�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="浼樻儬鍒哥紪鐮侊紙鍏宠仈MEMBER_COUPON琛級" prop="couponId">
-        <el-input v-model="searchForm.couponId" placeholder="璇疯緭鍏ヤ紭鎯犲埜缂栫爜锛堝叧鑱擬EMBER_COUPON琛級" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鍜栧暋璁″垝璁㈠崟褰㈠紡 0鏂板 1寤堕暱" prop="planOrderType">
-        <el-input v-model="searchForm.planOrderType" placeholder="璇疯緭鍏ュ挅鍟¤鍒掕鍗曞舰寮� 0鏂板 1寤堕暱" @keypress.enter.native="search"></el-input>
-      </el-form-item> -->
+      <div class="date-style" style="display: inline">
+        <el-form-item label="璁㈠崟鏃堕棿" prop="starttime" >
+          <el-date-picker
+              style="width: 160px"
+              clearable
+              @change="search"
+              v-model="searchForm.starttime"
+              type="datetime"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              format="yyyy-MM-dd HH:mm:ss"
+              range-separator="鑷�"
+              placeholder="寮�濮嬫椂闂�"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="-" label-width="10px" prop="endtime" >
+          <el-date-picker
+              style="width: 160px"
+              clearable
+              v-model="searchForm.endtime"
+              type="datetime"
+              @change="search"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              format="yyyy-MM-dd HH:mm:ss"
+              range-separator="鑷�"
+              placeholder="鎴鏃堕棿"
+          ></el-date-picker>
+        </el-form-item>
+      </div>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
         <el-button type="primary" :loading="isWorking.export" v-permissions="['business:goodsorder:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
@@ -154,78 +73,72 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <div v-for="item in list" :key="id" class="order-detail">
-        <div class="order-title-message">
-          <div class="base-message">
-            <div class="date">{{ item.createDate }}</div>
-            <div>璁㈠崟缂栧彿锛�<span>{{ item.code }}</span></div>
+      <div v-for="item in tableData.list" :key="'id_'+item.id" class="order-detail">
+        <div class="order-title-message" >
+          <div class="base-message" >
+            <div class="date" >璁㈠崟鏃堕棿锛歿{ item.createDate }}</div>
+            <div class="date" >璁㈠崟缂栧彿锛�<span  @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')" style="cursor: pointer;">{{ item.code }}</span></div>
+            <div v-if="item.distributionShopId">缁忛攢鍟嗭細{{ item.shopName || ''}}</div>
           </div>
-          <div class="soon-style">{{ `鐢ㄦ埛浜�${item.soonTime}鍌彂璐 }}</div>
+          <div>
+            <span v-if="item.status ==0" class="orange">寰呮敮浠�</span>
+            <span  v-if="item.status ==1" class="orange">{{item.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</span>
+            <span  v-if="item.status ==2" class="orange">寰呮敹璐�</span>
+            <span  v-if="item.status ==3" class="grey">浜ゆ槗瀹屾垚</span>
+            <span  v-if="item.status ==4" class="grey">宸插叧闂�</span>
+            <span  v-if="item.status ==6" class="grey">宸查��娆�</span>
+          </div>
         </div>
         <div class="detail-message">
           <div class="goods-message right-border">
-            <div class="goods-base-message">
-              <el-image
-                style="width: 90px; height: 90px; border-radius: 2px;"
-                :src="item.imgurl"
-                :preview-src-list="[item.imgurl]"
-              ></el-image>
-              <div class="message">
-                <div>{{ item.goodsName }}</div>
-                <div class="attr">瑙勬牸锛歿{ item.attr }}</div>
-                <div class="attr">浠锋牸锛歿{ item.price }}</div>
+            <div  class="goods-base-message" :key="item.id+'_'+goods.id" v-for="goods in item.goodsorderDetailList">
+              <div style="width: 60px; height: 60px;">
+                <el-image
+                    style="width: 60px; height: 60px; border-radius: 2px;"
+                    :src="goods.imgurl"
+                    :preview-src-list="[goods.imgurl]"
+                ></el-image>
+              </div>
+              <div class="message" style="">
+                <div class="name">{{ goods.name }}</div>
+                <div class="attr">锟{ goods.goodsNum }}</div>
               </div>
             </div>
-            <div v-if="item.memberInfo" class="mark">鐢ㄦ埛澶囨敞锛歿{ item.memberInfo }}</div>
-            <div v-if="item.sysInfo" class="mark">骞冲彴澶囨敞锛歿{ item.sysInfo }}</div>
+            <div class="mark" v-if="item.sysInfo&& item.sysInfo.length" >澶囨敞锛歿{item.sysInfo}}</div>
           </div>
           <div class="member-message right-border">
-            <div>{{ item.linkname }}</div>
-            <div>{{ item.linkphone }}</div>
+            <div class="el-icon-user" style="padding: 5px 5px;">{{ item.linkname }}</div>
+            <div class="el-icon-phone-outline" style="padding: 10px 5px;color: #777;font-size: 13px;">{{ item.linkphone }}</div>
           </div>
-          <div class="address-message right-border">{{ item.linkaddr }}</div>
-          <div class="price-message right-border">锟{ item.price }}</div>
-          <div class="status-message right-border">
-            <!-- // 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣 -->
-            <div :class="[0,1,2,5].indexOf(item.status) != -1 ? 'underway' : 'complete'">
-              {{ 
-                item.status==0 ? '寰呮敮浠�'
-                  : item.status==1 ? '寰呭彂璐�'
-                    : item.status==2 ? '寰呮敹璐�'
-                      : item.status==3 ? '浜ゆ槗瀹屾垚'
-                        : item.status==4 ? '宸插叧闂�' : '閮ㄥ垎鍙戣揣'
-              }}
-            </div>
-            <el-button style="color: #666; font-size: 16px;"  type="text" @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')">璁㈠崟璇︽儏</el-button>
-            <div></div>
-            <el-button style="color: #666; font-size: 16px;"  type="text" @click="$refs.operaGoodsOrderDetail.open('鐗╂祦璇︽儏', item, 'second')">鐗╂祦璇︽儏</el-button>
+          <div class="address-message right-border right-border" style="padding-top: 15px;" >
+            <div class="underway el-icon-sell" >{{item.receiveType==1?'鍒板簵鑷彁':'蹇�掗厤閫�'}} </div>
+            <div class=" el-icon-add-location" v-if="item.receiveType!=1">{{ item.linkaddr }}</div>
+          </div>
+          <div class="price-message right-border">
+            <div class="underway" >璁㈠崟鎬讳环锛氾骏{{ (item.totalPrice||0).toFixed(2) }}</div>
+            <div class="price-info">鍟嗗搧鎬讳环锛氾骏{{  ((item.totalPrice||0)-(item.price || 0)).toFixed(2)}}</div>
+            <div class="price-info">鐗╂祦杩愯垂锛氾骏{{  (item.mailPrice || 0).toFixed(2)}}</div>
+            <div class="price-info">绉垎鎶垫墸锛�-锟{  (item.integral || 0 ).toFixed(2)}}</div>
+            <div class="price-info">浼樻儬閲戦锛�-锟{  (item.couponPrice).toFixed(2) }}</div>
+            <div class="price-info">瀹炰粯閲戦锛�<span class="red" style="font-weight: 600">锟{  (item.price).toFixed(2) }}</span></div>
           </div>
           <div class="action">
-            <el-button v-if="item.status==1" style="font-size: 16px; width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('鍙戣揣', item)">鍙戣揣</el-button>
+            <el-button v-if="item.status==1 && item.receiveType!=1" style=" width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('鍙戣揣', item)">鍙戣揣</el-button>
             <div></div>
-            <el-button v-if="item.status<2" style="color: #666; font-size: 16px;"  type="text" @click="cancelOrder(item)">鍙栨秷璁㈠崟</el-button>
+            <el-button v-if="item.status == 0" style="color: red; "  type="text" @click="cancelOrder(item)">鍙栨秷璁㈠崟</el-button>
             <div></div>
-            <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo.length?'缂栬緫澶囨敞':'娣诲姞澶囨敞', item)">澶囨敞</el-button>
+            <el-button v-if="item.status == 3" style="color: red "  type="text" @click="cancelOrder(item)">璁㈠崟閫�娆�</el-button>
+            <div></div>
+            <el-button v-if="item.status==2 && item.receiveType!=1" style="color: #666; " type="text"  @click="$refs.operaShipmentsWindow.open('蹇�掍俊鎭彉鏇�', item)">蹇�掑彉鏇�</el-button>
+            <div></div>
+            <el-button style="color: #666; " type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo && item.sysInfo.length?'缂栬緫澶囨敞':'娣诲姞澶囨敞', item)">
+              {{ item.sysInfo && item.sysInfo.length?'淇敼澶囨敞':'娣诲姞澶囨敞' }}</el-button>
+            <div></div>
+            <el-button style="color: #216EEE; "  type="text" @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')">鏌ョ湅璇︽儏</el-button>
           </div>
         </div>
       </div>
-      <!-- <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-      >
-        
-        <el-table-column
-          v-if="containPermissions(['business:goodsorder:update', 'business:goodsorder:delete'])"
-          label="鎿嶄綔"
-          min-width="120"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaGoodsorderWindow.open('缂栬緫鍟嗗搧璁㈠崟淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:goodsorder:update']">缂栬緫</el-button>
-          </template>
-        </el-table-column>
-      </el-table> -->
+      <div style="width: 100%;text-align: center;padding: 50px;color: #999;font-size: 12px;" v-if="!tableData.pagination ||!tableData.pagination.total">鏆傛棤鏁版嵁</div>
       <pagination
         @size-change="handleSizeChange"
         @current-change="handlePageChange"
@@ -234,7 +147,7 @@
       </pagination>
     </template>
     <!-- 鏂板缓/淇敼 -->
-    <OperaShipmentsWindow ref="operaShipmentsWindow" @success="handlePageChange"/>
+    <OperaShipmentsWindow ref="operaShipmentsWindow" @success="search"/>
     <OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="handlePageChange"/>
     <OperaGoodsOrderDetail ref="operaGoodsOrderDetail"/>
   </TableLayout>
@@ -256,76 +169,25 @@
       status: '10',
       createDate: [],
       id: '',
+      statusList: [{ name: '10', label: '鍏ㄩ儴璁㈠崟', count: 0 },
+        { name: '0', label: '寰呮敮浠�', count: 0 },
+        { name: '1', label: '寰呭彂璐�/寰呰嚜鎻�', count: 0 },
+        { name: '2', label: '寰呮敹璐�', count: 0 },
+        { name: '3', label: '浜ゆ槗瀹屾垚', count: 0 },
+        { name: '6', label: '宸查��娆�', count: 0 },
+        { name: '4', label: '浜ゆ槗鍏抽棴', count: 0 }],
       // 鎼滅储
       searchForm: {
         id: '',
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        remark: '',
+        receiveType: '',
+        shopName: '',
+        goodsName: '',
         code: '',
-        price: '',
-        goodsNum: '',
-        memberId: '',
-        addrId: '',
-        linkname: '',
-        linkphone: '',
-        linkaddr: '',
         status: '',
-        isComment: '',
-        payStatus: '',
-        payDate: '',
-        payOrderId: '',
-        payMethod: '',
-        kdCode: '',
-        kdName: '',
-        kdId: '',
-        memberInfo: '',
-        sysInfo: '',
-        cancelDate: '',
-        cancelUser: '',
-        cancelInfo: '',
-        kdDate: '',
-        kdInfo: '',
-        kdUser: '',
-        doneDate: '',
-        doneInfo: '',
-        isAftersale: '',
-        type: '0', // 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝
-        couponPrice: '',
-        couponId: '',
-        planOrderType: ''
+        nickName: '',
+        starttime: null,
+        enttime: null
       },
-      list: [
-        {
-          id: '1',
-          code: '256302564258',
-          payOrderId: '256302564258',
-          createDate: '2022-11-01 22:30:43',
-          payDate: '2022-11-01 22:30:59',
-          soonTime: '2022-11-03 22:30:43',
-          completeDate: '2022-11-05 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',
-          
-        }
-      ]
     }
   },
   created () {
@@ -338,56 +200,87 @@
     this.search()
   },
   methods: {
-    selectDate(v) {
+    handlePageChange (pageIndex) {
+      this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
+      this.isWorking.search = true
+      this.api.fetchList({
+        page: this.tableData.pagination.pageIndex,
+        capacity: this.tableData.pagination.pageSize,
+        model: this.searchForm, // 閿�鍞ā寮忓彉鏇�
+        sorts: this.tableData.sorts
+      })
+        .then(data => {
+          this.tableData.list = data.records || []
+          this.tableData.pagination.total = data.total || 0
+          if (this.tableData.pagination.pageIndex === 1) {
+            var totalData = data.countData || {}
+            this.statusList[1].count = totalData.waitPayNum || 0
+            this.statusList[2].count = totalData.waitKdNum || 0
+            this.statusList[3].count = totalData.waitDoneNum || 0
+          }
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+        .finally(() => {
+          this.isWorking.search = false
+        })
+    },
+    selectDate (v) {
       this.searchForm.startDate = v[0]
       this.searchForm.endDate = v[1]
       this.search()
     },
     reset () {
       this.createDate = []
-      this.searchForm.startDate = ''
-      this.searchForm.endDate = ''
+      this.searchForm.starttime = ''
+      this.searchForm.enttime = ''
       this.$refs.searchForm.resetFields()
       this.search()
     },
-    handleClick(table, val) {
-      this.$refs.searchForm.resetFields()
-      if (this.status==9) {
-        this.searchForm.isdeleted=1
-        this.searchForm.status=''
-      } else if (this.status==10) {
-        this.searchForm.status=''
+    handleClick (table, val) {
+      // this.$refs.searchForm.resetFields()
+      if (this.status == 9) {
+        this.searchForm.isdeleted = 1
+        this.searchForm.status = ''
+      } else if (this.status == 10) {
+        this.searchForm.status = ''
       } else {
-        this.searchForm.isdeleted=0
-        this.searchForm.status=this.status
+        this.searchForm.isdeleted = 0
+        this.searchForm.status = this.status
       }
       this.search()
     },
-    cancelOrder(item) {
+    cancelOrder (item) {
       this.$dialog.cancelOrder(`纭畾鍙栨秷璁㈠崟锛�${item.code}锛焋)
         .then(() => {
 
         })
     }
-  },
+  }
 }
 </script>
 
 <style lang="scss" scoped>
+.tab-badge{
+  color: green;
+}
 .order-detail {
+  font-size: 14px;
+  color: #666;
+  margin-bottom: 10px;
   .order-title-message {
     display: flex;
     justify-content: space-between;
-    padding: 8px;
+    padding: 10px 20px;
     font-weight: 500;
     box-sizing: border-box;
     background-color: #f2f2f2;
     .base-message {
       display: flex;
-      font-size: 14px;
-      color: #999;
+      color: #333;
       .date {
-        width: 150px;
+        width: auto;
         margin-right: 100px;
       }
       span {
@@ -412,50 +305,84 @@
       .goods-base-message {
         display: flex;
         margin-bottom: 10px;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #f2f2f2;
         .message {
+          flex-basis: content-box;
+          display: flex;width: 100%;
           margin-left: 10px;
-          font-size: 16px;
-          .attr {
-            font-size: 13px;
+          .name {
+            flex: 3;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
+            overflow: hidden;
+            max-height: 40px;
+          }
+          .attr{
+            padding-top: 10px;
+            text-align: right;
+            flex: 1;
+            padding-right: 30px;
+            font-size: 12px;
+            color: #666;
           }
         }
       }
       .mark {
         margin-bottom: 5px;
-        color: rgb(235, 80, 50);
         font-size: 13px;
+        color: rgb(235, 80, 50);
       }
     }
     .member-message {
       flex: 0.4;
-     
-      font-size: 14px;
-      :last-child {
-        margin-top: 5px;
-        font-size: 13px;
-      }
     }
     .address-message {
       flex: 0.6;
+      display: -webkit-box;
+      -webkit-box-orient: vertical;
+      overflow: hidden;
+      .underway {
+        display: block;
+        padding-bottom: 10px;
+        border-bottom: 1px solid #f2f2f2;
+        color: #71b247;
+        margin-bottom: 10px;
+      }
     }
     .price-message {
-      flex: 0.5;
-      font-size: 18px;
+      flex: 0.6;
       font-weight: 600;
-      text-align: center;
+      .underway {
+        padding-bottom: 10px;
+        border-bottom: 1px solid #f2f2f2;
+        color: rgb(233, 165, 80);
+        margin-bottom: 10px;
+      }
+      .price-info {
+        text-align: left;
+        width: 100%;
+        font-weight: normal;
+        color: #777;
+        font-size: 13px;
+      }
     }
     .status-message {
       flex: 0.4;
       text-align: center;
       .underway {
+        padding-bottom: 10px;
+        border-bottom: 1px solid #f2f2f2;
         color: rgb(233, 165, 80)
       }
+
       .complete {
         color: #ccc;
       }
     }
     .action {
-      flex: 0.6;
+      flex: 0.5;
       box-sizing: border-box;
       padding: 10px;
       text-align: center;

--
Gitblit v1.9.3