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