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/OperaMemberDetail.vue | 4
admin/src/components/business/OperaShopInfoWindow.vue | 14 +-
admin/src/components/business/OperaOrderMarkWindow.vue | 4
admin/src/components/business/OperaWithdrawRecordWindow.vue | 12 +-
admin/src/views/business/goodsorder.vue | 22 ++--
admin/src/assets/style/style.scss | 4
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 8 +
admin/src/components/business/OperaChangeOrderRecordWindow.vue | 1
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java | 3
admin/src/components/business/OperaGoodsOrderDetail.vue | 115 +++++++++++++++++++++--
server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java | 15 +-
admin/src/api/business/goodsorder.js | 3
admin/src/components/business/OperaOrderCancelWindow.vue | 85 +++++++++++++++++
admin/src/components/business/OperaShipmentsWindow.vue | 2
14 files changed, 245 insertions(+), 47 deletions(-)
diff --git a/admin/src/api/business/goodsorder.js b/admin/src/api/business/goodsorder.js
index 6cb645f..fc48acd 100644
--- a/admin/src/api/business/goodsorder.js
+++ b/admin/src/api/business/goodsorder.js
@@ -34,6 +34,9 @@
export function orderRemark (data) {
return request.post('/business/goodsorder/orderRemark', data)
}
+export function orderPlanCancelOrder (data) {
+ return request.post('/business/goodsorder/orderPlanCancelOrder', data)
+}
export function orderSendOutGoods (data) {
return request.post('/business/goodsorder/orderSendOutGoods', data)
}
diff --git a/admin/src/assets/style/style.scss b/admin/src/assets/style/style.scss
index b83ba28..686a3d8 100644
--- a/admin/src/assets/style/style.scss
+++ b/admin/src/assets/style/style.scss
@@ -118,3 +118,7 @@
top: 1px;
}
}
+.detail-box{
+ display: block;
+ margin: 20px;
+}
diff --git a/admin/src/components/business/OperaChangeOrderRecordWindow.vue b/admin/src/components/business/OperaChangeOrderRecordWindow.vue
index 0a7a6a4..87ed49d 100644
--- a/admin/src/components/business/OperaChangeOrderRecordWindow.vue
+++ b/admin/src/components/business/OperaChangeOrderRecordWindow.vue
@@ -70,6 +70,7 @@
this.title = title
this.visible = true
this.searchForm.memberId = goods.id
+ this.tableData.list =[]
this.search()
}
}
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;
diff --git a/admin/src/components/business/OperaMemberDetail.vue b/admin/src/components/business/OperaMemberDetail.vue
index 33dbd37..5ce1404 100644
--- a/admin/src/components/business/OperaMemberDetail.vue
+++ b/admin/src/components/business/OperaMemberDetail.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.phone!=null && info.phone!=''" class="header-blue">宸叉巿鏉冩墜鏈哄彿</div>
@@ -21,7 +21,7 @@
</div>
<div class="info-item"></div>
</div>
- <div style="display: block;margin-bottom: 50px;">
+ <div class="detail-box" style="margin-bottom: 50px;">
<div class="header">
<div class="header-b">绉垎鏄庣粏</div>
<div class="header-btn">
diff --git a/admin/src/components/business/OperaOrderCancelWindow.vue b/admin/src/components/business/OperaOrderCancelWindow.vue
new file mode 100644
index 0000000..db44db8
--- /dev/null
+++ b/admin/src/components/business/OperaOrderCancelWindow.vue
@@ -0,0 +1,85 @@
+<template>
+ <GlobalAlertWindow
+ v-loading="isUploading"
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" label-width="120px" label-suffix="锛�" :rules="rules" inline>
+ <p class="tip-warn" style="margin: 30px;">
+ <i class="el-icon-warning"></i>
+ 鎿嶄綔璇存槑锛氭偍姝e湪鍙栨秷璁㈠崟<span class="red">{{ form.code }} </span>锛岃璋ㄦ厧鎿嶄綔锛侊紒</p>
+ <el-form-item label="澶囨敞" prop="cancelInfo">
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows:4 }" v-model="form.cancelInfo" placeholder="璇疯緭鍏ュ彇娑堣鏄�" :maxlength="50" v-trim/>
+ </el-form-item>
+
+ </el-form>
+ </GlobalAlertWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
+export default {
+ name: 'OperaOrderCancelWindow',
+ extends: BaseOpera,
+ components: { GlobalAlertWindow },
+ data () {
+ return {
+ isUploading: false,
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ cancelInfo: '',
+ code: null
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ cancelInfo: [
+ { required: false, message: '璇疯緭鍏ュ娉ㄤ俊鎭�', tigger: 'blur' }
+ ]
+ }
+ }
+ },
+
+ created () {
+ this.config({
+ api: '/business/goodsorder',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.$dialog.messageWaring(`纭畾鍙栨秷璁㈠崟锛�${this.form.code}锛焋)
+ .then(() => {
+ this.isWorking = true
+ this.api.orderPlanCancelOrder(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鍙栨秷鎴愬姛')
+ this.$emit('success')
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+
+ // 璋冪敤鏂板缓鎺ュ彛
+ })
+ }
+ }
+
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/style/alertstyle.scss";
+
+</style>
diff --git a/admin/src/components/business/OperaOrderMarkWindow.vue b/admin/src/components/business/OperaOrderMarkWindow.vue
index 2d5691f..d91aab8 100644
--- a/admin/src/components/business/OperaOrderMarkWindow.vue
+++ b/admin/src/components/business/OperaOrderMarkWindow.vue
@@ -8,7 +8,7 @@
>
<el-form :model="form" ref="form" label-width="120px" label-suffix="锛�" :rules="rules" inline>
<el-form-item label="澶囨敞" prop="sysInfo">
- <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="璇疯緭鍏ュ娉�" :maxlength="50" v-trim/>
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows:4 }" v-model="form.sysInfo" placeholder="璇疯緭鍏ュ娉�" :maxlength="50" v-trim/>
</el-form-item>
</el-form>
@@ -55,7 +55,7 @@
this.api.orderRemark(this.form)
.then(() => {
this.visible = false
- this.$tip.apiSuccess('鍙戣揣鎴愬姛')
+ this.$tip.apiSuccess('娣诲姞鎴愬姛')
this.$emit('success')
}).catch(e => {
this.$tip.apiFailed(e)
diff --git a/admin/src/components/business/OperaShipmentsWindow.vue b/admin/src/components/business/OperaShipmentsWindow.vue
index fa018c0..ff11517 100644
--- a/admin/src/components/business/OperaShipmentsWindow.vue
+++ b/admin/src/components/business/OperaShipmentsWindow.vue
@@ -22,7 +22,7 @@
<el-input v-model="form.kdCode" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" v-trim/>
</el-form-item>
<el-form-item label="鍙戣揣澶囨敞" prop="kdInfo">
- <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" v-trim/>
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 4}" v-model="form.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" v-trim/>
</el-form-item>
</el-form>
diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index 05c8b55..4c37612 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/admin/src/components/business/OperaShopInfoWindow.vue
@@ -4,7 +4,7 @@
width="100%"
:visible.sync="visible"
>
- <div style="display: block;">
+ <div class="detail-box">
<div class="platgroup_tabs">
<div class="tab" :class="{ active: activeGroup === item.id }" @click="groupClick(item)"
v-for="(item, i) in groupList" :key="i">
@@ -13,7 +13,7 @@
</div>
</div>
<template v-if="activeGroup ==0">
- <div style="display: block;">
+ <div class="detail-box">
<div class="header">
<div class="header-b">鍩烘湰淇℃伅</div>
<div v-if="info.status !=1" class="header-green">姝e父</div>
@@ -48,7 +48,7 @@
</div>
<div class="info-item"></div>
</div>
- <div style="display: block">
+ <div class="detail-box">
<div class="header">
<div class="header-b">璧勮川淇℃伅</div>
</div>
@@ -79,7 +79,7 @@
</div>
<div class="info-item"></div>
</div>
- <div style="display: block;margin-bottom: 50px;">
+ <div class="detail-box" style="display: block;margin-bottom: 50px;">
<div class="header">
<div class="header-b">閿�鍞ā寮忓彉鏇磋褰�</div>
</div>
@@ -110,7 +110,7 @@
</div>
</template>
<template v-else-if="activeGroup == 1">
- <div style="display: block;">
+ <div class="detail-box">
<el-form ref="searchForm1" :model="searchForm1" style="display: block;" >
<el-form-item label="" prop="code" style="display: inline-block;margin-right: 30px;">
<el-input v-model="searchForm1.code" placeholder="璇疯緭鍏ヨ鍗曞彿" @keypress.enter.native="handlePageChange1(1)"></el-input>
@@ -221,13 +221,15 @@
</div>
</template>
<template v-else-if="activeGroup == 2">
- <div style="display: block;margin-bottom: 50px;">
+ <div class="detail-box">
<div class="header">
<div class="header-b">绉垎鏄庣粏</div>
<div class="header-btn">
<el-button style="display: inline" type="primary" @click="changeIntegral">绉垎璋冩暣</el-button>
</div>
</div>
+ </div>
+ <div style="display: block;margin-bottom: 50px;">
<TableLayout >
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
diff --git a/admin/src/components/business/OperaWithdrawRecordWindow.vue b/admin/src/components/business/OperaWithdrawRecordWindow.vue
index cbf76e4..508e13e 100644
--- a/admin/src/components/business/OperaWithdrawRecordWindow.vue
+++ b/admin/src/components/business/OperaWithdrawRecordWindow.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="form.status ==0" class="header-orange">寰呭鎵�</div>
@@ -18,7 +18,7 @@
</div>
<div class="info-item"></div>
</div>
- <div style="display: block;">
+ <div class="detail-box">
<div class="header">
<div class="header-b">鎻愮幇淇℃伅</div>
</div>
@@ -28,13 +28,13 @@
<div class="info-item-a"> </div>
</div>
<div class="info-item">
- <div class="info-item-a">鎴峰悕锛�<span class="orange">{{ form.name||'' }}</span> </div>
- <div class="info-item-a">璐﹀彿锛�<span class="orange">{{ form.bankAccount||'' }}</span> </div>
- <div class="info-item-a">閾惰锛�<span class="orange">{{ form.bankName||'' }}</span> </div>
+ <div class="info-item-a">鎴峰悕锛�<span >{{ form.name||'' }}</span> </div>
+ <div class="info-item-a">璐﹀彿锛�<span >{{ form.bankAccount||'' }}</span> </div>
+ <div class="info-item-a">閾惰锛�<span >{{ form.bankName||'' }}</span> </div>
</div>
<div class="info-item"></div>
</div>
- <div style="display: block">
+ <div class="detail-box">
<div class="header">
<div class="header-b">瀹℃牳娴佺▼</div>
</div>
diff --git a/admin/src/views/business/goodsorder.vue b/admin/src/views/business/goodsorder.vue
index ac49b58..3e5f518 100644
--- a/admin/src/views/business/goodsorder.vue
+++ b/admin/src/views/business/goodsorder.vue
@@ -107,8 +107,8 @@
<div class="mark" v-if="item.sysInfo&& item.sysInfo.length" >澶囨敞锛歿{item.sysInfo}}</div>
</div>
<div class="member-message right-border">
- <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 class="el-icon-user" style="padding: 5px 5px;width: 100%;">{{ item.linkname }}</div>
+ <div class="el-icon-phone-outline" style="padding: 10px 5px;width: 100%;color: #777;font-size: 13px;">{{ item.linkphone }}</div>
</div>
<div class="address-message right-border right-border" style="padding-top: 15px;" >
<div class="underway el-icon-sell" >{{item.receiveType==1?'鍒板簵鑷彁':'蹇�掗厤閫�'}} </div>
@@ -116,7 +116,7 @@
</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.totalPrice||0)-(item.mailPrice || 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>
@@ -125,7 +125,7 @@
<div class="action">
<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 == 0" style="color: red; " type="text" @click="cancelOrder(item)">鍙栨秷璁㈠崟</el-button>
+ <el-button v-if="item.status == 0" style="color: red; " type="text" @click="$refs.OperaOrderCancelWindow.open('鍙栨秷璁㈠崟', item)">鍙栨秷璁㈠崟</el-button>
<div></div>
<el-button v-if="item.status == 3" style="color: red " type="text" @click="cancelOrder(item)">璁㈠崟閫�娆�</el-button>
<div></div>
@@ -149,7 +149,8 @@
<!-- 鏂板缓/淇敼 -->
<OperaShipmentsWindow ref="operaShipmentsWindow" @success="search"/>
<OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="handlePageChange"/>
- <OperaGoodsOrderDetail ref="operaGoodsOrderDetail"/>
+ <OperaOrderCancelWindow ref="OperaOrderCancelWindow" @success="handlePageChange"/>
+ <OperaGoodsOrderDetail ref="operaGoodsOrderDetail" @success="handlePageChange"/>
</TableLayout>
</template>
@@ -159,11 +160,12 @@
import Pagination from '@/components/common/Pagination'
import OperaShipmentsWindow from '@/components/business/OperaShipmentsWindow'
import OperaOrderMarkWindow from '@/components/business/OperaOrderMarkWindow'
+import OperaOrderCancelWindow from '@/components/business/OperaOrderCancelWindow'
import OperaGoodsOrderDetail from '@/components/business/OperaGoodsOrderDetail'
export default {
name: 'Goodsorder',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaShipmentsWindow, OperaOrderMarkWindow, OperaGoodsOrderDetail },
+ components: { TableLayout, Pagination, OperaShipmentsWindow, OperaOrderMarkWindow, OperaGoodsOrderDetail,OperaOrderCancelWindow },
data () {
return {
status: '10',
@@ -187,7 +189,7 @@
nickName: '',
starttime: null,
enttime: null
- },
+ }
}
},
created () {
@@ -252,7 +254,7 @@
this.search()
},
cancelOrder (item) {
- this.$dialog.cancelOrder(`纭畾鍙栨秷璁㈠崟锛�${item.code}锛焋)
+ this.$dialog.messageWaring(`纭畾鍙栨秷璁㈠崟锛�${item.code}锛焋)
.then(() => {
})
@@ -339,7 +341,7 @@
flex: 0.4;
}
.address-message {
- flex: 0.6;
+ flex: 0.7;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
@@ -382,7 +384,7 @@
}
}
.action {
- flex: 0.5;
+ flex: 0.4;
box-sizing: border-box;
padding: 10px;
text-align: center;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index c39dc11..b1afc85 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -236,6 +236,12 @@
@ApiModelProperty(value = "鐢ㄦ埛濮撳悕")
@TableField(exist = false)
private String memberName;
+ @ApiModelProperty(value = "鍙栨秷浜哄憳濮撳悕")
+ @TableField(exist = false)
+ private String cancelUserName;
+ @ApiModelProperty(value = "閫�娆句汉濮撳悕")
+ @TableField(exist = false)
+ private String refundUserName;
@ApiModelProperty(value = "鍙戣揣浜哄鍚�")
@TableField(exist = false)
private String kdUserName;
@@ -249,8 +255,6 @@
@ApiModelProperty(value = "鏀惰揣鍦板潃")
@TableField(exist = false)
private String addr;
-
-
@ApiModelProperty(value = "寮�濮嬫椂闂� ")
@TableField(exist = false)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
index 1501568..cc066a4 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
@@ -123,5 +123,8 @@
@ApiModelProperty(value = "缁熻閲�")
@TableField(exist = false)
private BigDecimal totalNum;
+ @ApiModelProperty(value = "灏忚")
+ @TableField(exist = false)
+ private BigDecimal totalPrice;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
index 4ee7ed1..58dfdfc 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
@@ -113,34 +113,33 @@
QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
return userActionMapper.selectOne(wrapper);
}
-
@Override
public List<UserAction> findList(UserAction userAction) {
QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
return userActionMapper.selectList(wrapper);
}
-
@Override
public PageData<UserAction> findPage(PageWrap<UserAction> pageWrap) {
IPage<UserAction> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<UserAction> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
- UserAction queryModel = pageWrap.getModel();
+ UserAction queryModel = pageWrap.getModel();
queryWrapper.selectAll(UserAction.class)
- .leftJoin(Member.class,Member::getId,UserAction::getMemberId)
+// .leftJoin(Member.class,Member::getId,UserAction::getMemberId)
.leftJoin(SystemUser.class,SystemUser::getId,UserAction::getCreator)
.selectAs(SystemUser::getRealname,UserAction::getCreateName)
- .selectAs(Member::getName,UserAction::getMemberName)
- .selectAs(Member::getPhone,UserAction::getMobile)
+// .selectAs(Member::getName,UserAction::getMemberName)
+// .selectAs(Member::getPhone,UserAction::getMobile)
.like(StringUtils.isNotBlank(queryModel.getCreateName()),SystemUser::getRealname,queryModel.getCreateName())
.like(StringUtils.isNotBlank(queryModel.getMemberName()),Member::getName,queryModel.getMemberName())
.like(StringUtils.isNotBlank(queryModel.getMobile()),Member::getPhone,queryModel.getMobile())
.like(StringUtils.isNotBlank(queryModel.getRemark()),Member::getPhone,queryModel.getRemark())
.eq(!Objects.isNull(queryModel.getMemberType()),Member::getType,queryModel.getMemberType())
.eq(!Objects.isNull(queryModel.getBeforeStatus()),UserAction::getBeforeStatus,queryModel.getBeforeStatus())
+ .eq(!Objects.isNull(queryModel.getMemberId()),UserAction::getMemberId,queryModel.getMemberId())
.eq(!Objects.isNull(queryModel.getType()),UserAction::getType,queryModel.getType())
- .orderByDesc(UserAction::getCreateDate)
- ;
+ .eq(!Objects.isNull(queryModel.getId()),UserAction::getId,queryModel.getId())
+ .orderByDesc(UserAction::getCreateDate);
IPage<UserAction> result = userActionMapper.selectJoinPage(page,UserAction.class,queryWrapper);
if(result!=null &&result.getRecords()!=null){
for(UserAction model :result.getRecords()){
--
Gitblit v1.9.3