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