From a59ff44b2eaa7020f0529632d9ec064c4dc38e27 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 28 四月 2026 22:08:46 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
admin/src/components/business/OperaShopInfoWindow.vue | 269 ++++++++++++++++++++++++-----------------------------
1 files changed, 122 insertions(+), 147 deletions(-)
diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index f272d7d..78edb32 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/admin/src/components/business/OperaShopInfoWindow.vue
@@ -1,9 +1,9 @@
<template>
<GlobalWindow
- :title="title"
- :withFooter="false"
- :visible.sync="visible"
- width="80%"
+ :title="title"
+ :withFooter="false"
+ :visible.sync="visible"
+ width="calc(100% - 255px )"
>
<div class="store-header" v-if="storeInfo">
<div class="store-header-left">
@@ -39,61 +39,109 @@
<el-tabs v-model="activeTab" class="store-tabs">
<el-tab-pane label="闂ㄥ簵涓氱哗" name="performance">
- <el-form ref="searchForm" :model="searchForm" inline>
- <el-form-item label="浜ゆ槗鍙�" prop="orderNo">
- <el-input v-model="searchForm.orderNo" clearable placeholder="璇疯緭鍏ヤ氦鏄撳彿"></el-input>
+ <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="璁㈠崟缂栧彿" prop="code">
+ <el-input v-model="searchForm.code" style="width: 150px;" clearable placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鏀舵敮绫诲瀷" prop="optType">
- <el-select v-model="searchForm.optType" clearable placeholder="璇烽�夋嫨绫诲瀷">
+ <el-form-item label="鐗╁搧淇℃伅" prop="goodsInfo">
+ <el-input v-model="searchForm.goodsInfo" style="width: 150px;" clearable placeholder="璇疯緭鍏ョ墿鍝佷俊鎭�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" clearable style="width: 150px;" placeholder="璇烽�夋嫨璁㈠崟鐘舵��" @change="search">
<el-option label="鍏ㄩ儴" value=""></el-option>
- <el-option label="鏀跺叆" :value="1"></el-option>
- <el-option label="鏀嚭" :value="-1"></el-option>
+ <el-option label="寰呮敮浠�" :value="0"></el-option>
+ <el-option label="寰呭瘎瀛�" :value="1"></el-option>
+ <el-option label="宸插瘎瀛�" :value="2"></el-option>
+ <el-option label="宸叉帴鍗�" :value="3"></el-option>
+ <el-option label="娲鹃�佷腑" :value="4"></el-option>
+ <el-option label="宸插埌搴�/宸查�佽揪" :value="5"></el-option>
+ <el-option label="宸插畬鎴�" :value="7"></el-option>
+ <el-option label="宸插彇娑�" :value="99"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鏀舵敮鏃堕棿" prop="createTime">
- <el-date-picker type="daterange" v-model="searchForm.createTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
- range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" />
+ <el-form-item label="缁撶畻鐘舵��" prop="settlementStatus">
+ <el-select v-model="searchForm.settlementStatus" style="width: 150px;" clearable placeholder="璇烽�夋嫨缁撶畻鐘舵��" @change="search">
+ <el-option label="寰呯粨绠�" :value="0"></el-option>
+ <el-option label="宸茬粨绠�" :value="1"></el-option>
+ </el-select>
</el-form-item>
- <section>
- <el-button type="primary" @click="search">鏌ヨ</el-button>
+ <el-form-item label="鍒涘缓鏃堕棿" prop="createTime1">
+ <el-date-picker type="daterange" v-model="searchForm.createTime1" clearable value-format="yyyy-MM-dd"
+ range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" @change="handleDateChange" />
+ </el-form-item>
+ <section style="display: inline-block">
+ <el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
<el-button :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
</section>
</el-form>
- <el-table :data="tableData.list" border stripe v-loading="isWorking.search" class="performance-table">
- <el-table-column label="鏀跺叆/鏀嚭" min-width="100px">
+ <!--
+ <div class="statistics">
+ <span>璁㈠崟鏁帮細{{ statistics.orderCount }}</span>
+ <span>璁㈠崟鎬讳环锛毬{ (statistics.orderAmount / 100).toFixed(2) }}</span>
+ <span>缁撶畻鎬讳环锛毬{ (statistics.settleAmount / 100).toFixed(2) }}</span>
+ </div>
+ -->
+
+ <el-table :data="tableData.list" stripe>
+ <el-table-column prop="code" label="璁㈠崟缂栧彿" min-width="160px">
<template slot-scope="{row}">
- <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.optType === 1 ? '鏀跺叆' : '鏀嚭' }}</span>
+ <span class="bluestate" @click="$refs.operaOrderDetail.open(row)">{{ row.code }}</span>
</template>
</el-table-column>
- <el-table-column prop="amount" label="閲戦锛堝厓锛�" min-width="100px">
+ <el-table-column prop="goodsInfo" label="鐗╁搧淇℃伅" min-width="180px" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="isUrgent" label="璁㈠崟绾у埆" min-width="80px">
+ <template slot-scope="{row}"><span v-if="row.type ===1">{{ row.isUrgent === 1?'鏋侀�熻揪':'鏍囬�熻揪' }}</span></template>
+ </el-table-column>
+ <el-table-column label="鐗╁搧淇濊垂锛堝厓锛�" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.declaredFee / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="鐗╁搧淇濊垂锛堝厓锛�" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.declaredFee / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="鍩虹鏈嶅姟璐癸紙鍏冿級" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.price / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="璁㈠崟鎬讳环锛堝厓锛�" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.totalAmount / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="瀹炰粯鐜伴噾锛堝厓锛�" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.payAmount / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="鍔犳�ヨ垂锛堝厓锛�" min-width="120px">
+ <template slot-scope="{row}"><span v-if="row.type ===1 ">楼{{ (row.urgentAmount / 100).toFixed(2) }}</span></template>
+ </el-table-column>
+ <el-table-column label="閫�娆鹃噾棰濓紙鍏冿級" min-width="120px">
+ <template slot-scope="{row}">楼{{ (row.refundAmount / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="瓒呮椂閲戦" min-width="100px">
+ <template slot-scope="{row}">楼{{ (row.overdueAmount / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column label="寮傚父閲戦" min-width="100px">
+ <template slot-scope="{row}">楼{{ (row.exceptionAmount / 100).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column prop="statusDesc" label="璁㈠崟鐘舵��" min-width="100px">
<template slot-scope="{row}">
- <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.amount }}</span>
+ <span :style="{ color: row.status <7 ? '#e6a23c' : (row.status ===7 ? '#67c23a' : 'grey' )}">
+ {{ row.statusDesc }}
+ </span>
</template>
</el-table-column>
- <el-table-column prop="createTime" label="鏀舵敮鏃堕棿" min-width="160px"></el-table-column>
- <el-table-column label="涓氬姟绫诲瀷" min-width="100px">
+ <el-table-column label="缁撶畻鐘舵��" min-width="100px">
<template slot-scope="{row}">
- <span v-if="row.type === 0">瀹屾垚璁㈠崟</span>
- <span v-if="row.type === 1">鎻愮幇鏀嚭</span>
- <span v-if="row.type === 2">鎻愮幇閫�鍥�</span>
- <span v-if="row.type === 3">骞冲彴濂栧姳</span>
+ <span :style="{ color: row.settlementStatus === 1 ? '#67c23a' : '#e6a23c' }">
+ {{ row.settlementStatus === 1 ? '宸茬粨绠�' : '鏈粨绠�' }}
+ </span>
</template>
</el-table-column>
- <el-table-column prop="orderNo" label="浜ゆ槗鍙�" min-width="180px"></el-table-column>
- <el-table-column label="鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span :class="row.vaildStatus === 1 ? 'status-success' : 'status-pending'">
- {{ row.vaildStatus === 1 ? '宸插埌璐�' : '鎻愮幇涓�' }}
- </span>
- </template>
- </el-table-column>
+ <el-table-column prop="payTime" label="鏀粯鏃堕棿" min-width="150px"> </el-table-column>
+ <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="150px"> </el-table-column>
</el-table>
<pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
></pagination>
</el-tab-pane>
@@ -112,6 +160,10 @@
</div>
<div class="info-row">
<span class="label">闂ㄥ簵鐘舵�侊細</span>
+ <span class="value">{{ storeInfo.status === 1 ? '绂佺敤' : '鍚敤' }}</span>
+ </div>
+ <div class="info-row">
+ <span class="label">瀹℃壒鐘舵�侊細</span>
<span class="value">{{ storeInfo.auditStatus === 0 ? '寰呭鎵�' : storeInfo.auditStatus === 1 ? '瀹℃壒閫氳繃' : '瀹℃壒鏈�氳繃' }}</span>
</div>
<div class="info-row">
@@ -162,7 +214,7 @@
<template v-else>
<div class="image-item-row">
<span class="label">韬唤璇佹闈細</span>
- <el-image :src="storeInfo.idcardImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImg]">
+ <el-image v-if="storeInfo.idcardImgUrl" :src="storeInfo.idcardImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -221,142 +273,65 @@
</div>
</el-tab-pane>
</el-tabs>
+ <OperaOrderDetail ref="operaOrderDetail" @success="handlePageChange" />
</GlobalWindow>
</template>
<script>
-import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import Pagination from '@/components/common/Pagination'
import { detail } from '@/api/business/shopInfo'
+import BaseTable from '@/components/base/BaseTable'
+import OperaOrderDetail from '@/components/business/OperaOrderDetail'
import { fetchList, exportExcel } from '@/api/business/revenue'
export default {
name: 'OperaShopInfoWindow',
- extends: BaseOpera,
- components: { GlobalWindow, Pagination },
+ extends: BaseTable,
+ components: { GlobalWindow, Pagination,OperaOrderDetail },
data () {
return {
activeTab: 'performance',
- storeInfo: null,
+ storeInfo: {},
+ visible:false,
searchForm: {
orderNo: '',
- optType: 0,
- createTime: '',
- memberId: '',
- memberType: 2
- },
- tableData: {
- list: [],
- pagination: {
- pageIndex: 1,
- pageSize: 10,
- total: 0
- }
- },
- isWorking: {
- search: false,
- export: false
+ goodsInfo: '',
+ createTime1: '',
+ startTime: '',
+ endTime: '',
+ orderStatus: '',
+ shopId: null,
+ settleStatus: ''
},
defaultAvatar: 'https://cube.elemecdn.com/3/c7/9d47156420e4e9c6e2c1f6d6e6e6e6e6.jpeg'
}
},
created () {
this.config({
- api: '/business/shopInfo',
+ api: '/business/orderManagement',
'field.id': 'id'
})
},
methods: {
+ handleDateChange (val) {
+ this.searchForm.createStartTime = val ? val[0] : ''
+ this.searchForm.createEndTime = val ? val[1] : ''
+ this.search()
+ },
open (title, row) {
this.searchForm.memberId = row.id
detail(row.id)
- .then(res => {
- this.storeInfo = res
- this.activeTab = 'performance'
- this.searchForm = {
- orderNo: '',
- optType: '',
- createTime: '',
- memberId: '',
- memberType: 2
- }
- this.title = title
- this.visible = true
- this.search()
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- },
- search () {
- this.isWorking.search = true
- const data = {
- capacity: this.tableData.pagination.pageSize,
- page: this.tableData.pagination.pageIndex,
- model: {
- orderNo: this.searchForm.orderNo,
- optType: this.searchForm.optType,
- startTime: this.searchForm.createTime?.[0] || '',
- endTime: this.searchForm.createTime?.[1] || '',
- memberId: this.searchForm.memberId,
- memberType: this.searchForm.memberType || ''
- }
- }
- fetchList(data)
- .then(res => {
- this.tableData.list = res.list || []
- this.tableData.pagination.total = res.total || 0
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.search = false
- })
- },
- reset () {
- this.searchForm = {
- orderNo: '',
- optType: '',
- createTime: '',
- memberId: '',
- memberType: 2
- }
- this.search()
- },
- handleSizeChange (pageSize) {
- this.tableData.pagination.pageSize = pageSize
- this.search()
- },
- handlePageChange (pageIndex) {
- this.tableData.pagination.pageIndex = pageIndex
- this.search()
- },
- exportExcel () {
- this.isWorking.export = true
- const data = {
- capacity: 999999,
- page: this.tableData.pagination.pageIndex,
- model: {
- orderNo: this.searchForm.orderNo,
- optType: this.searchForm.optType,
- startTime: this.searchForm.createTime?.[0] || '',
- endTime: this.searchForm.createTime?.[1] || '',
- memberId: this.searchForm.memberId,
- memberType: this.searchForm.memberType || ''
- }
- }
- exportExcel(data)
- .then(res => {
- this.download(res)
- this.$tip.apiSuccess('瀵煎嚭鎴愬姛')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking.export = false
- })
+ .then(res => {
+ this.storeInfo = res
+ this.activeTab = 'performance'
+ this.title = title
+ this.visible = true
+ this.searchForm.shopId = row.id
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
}
}
}
--
Gitblit v1.9.3