From f45bcaf01cd2c96e66b08d3f9b7287aa5b4cdab2 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 17 四月 2026 19:19:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/components/business/OperaShopInfoWindow.vue | 121 ++++++++++++++++++++++++----------------
1 files changed, 73 insertions(+), 48 deletions(-)
diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index 55322fc..f272d7d 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/admin/src/components/business/OperaShopInfoWindow.vue
@@ -1,16 +1,18 @@
<template>
<GlobalWindow
:title="title"
+ :withFooter="false"
:visible.sync="visible"
width="80%"
>
<div class="store-header" v-if="storeInfo">
<div class="store-header-left">
- <!-- <el-image :src="storeInfo.headImage || defaultAvatar" fit="cover" class="store-avatar">
+ <el-image v-if="storeInfo.payMemberCoverImage" :src="storeInfo.payMemberCoverImage ? storeInfo.imgPrefix + storeInfo.payMemberCoverImage : ''" fit="cover" class="store-avatar">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
- </el-image> -->
+ </el-image>
+ <img v-if="! storeInfo.payMemberCoverImage" src="@/assets/avatar/man.png" fit="cover" class="store-avatar" />
</div>
<div class="store-header-right">
<div class="store-name">{{ storeInfo.name }}</div>
@@ -38,14 +40,14 @@
<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="transactionId">
- <el-input v-model="searchForm.transactionId" clearable placeholder="璇疯緭鍏ヤ氦鏄撳彿"></el-input>
+ <el-form-item label="浜ゆ槗鍙�" prop="orderNo">
+ <el-input v-model="searchForm.orderNo" clearable placeholder="璇疯緭鍏ヤ氦鏄撳彿"></el-input>
</el-form-item>
- <el-form-item label="鏀舵敮绫诲瀷" prop="type">
- <el-select v-model="searchForm.type" clearable placeholder="璇烽�夋嫨绫诲瀷">
- <el-option label="鍏ㄩ儴" :value="0"></el-option>
+ <el-form-item label="鏀舵敮绫诲瀷" prop="optType">
+ <el-select v-model="searchForm.optType" clearable placeholder="璇烽�夋嫨绫诲瀷">
+ <el-option label="鍏ㄩ儴" value=""></el-option>
<el-option label="鏀跺叆" :value="1"></el-option>
- <el-option label="鏀嚭" :value="2"></el-option>
+ <el-option label="鏀嚭" :value="-1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鏀舵敮鏃堕棿" prop="createTime">
@@ -62,26 +64,32 @@
<el-table :data="tableData.list" border stripe v-loading="isWorking.search" class="performance-table">
<el-table-column label="鏀跺叆/鏀嚭" min-width="100px">
<template slot-scope="{row}">
- <span :class="row.type === 1 ? 'income' : 'expense'">{{ row.type === 1 ? '鏀跺叆' : '鏀嚭' }}</span>
+ <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.optType === 1 ? '鏀跺叆' : '鏀嚭' }}</span>
</template>
</el-table-column>
<el-table-column prop="amount" label="閲戦锛堝厓锛�" min-width="100px">
<template slot-scope="{row}">
- <span :class="row.type === 1 ? 'income' : 'expense'">{{ row.amount }}</span>
+ <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.amount }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="鏀舵敮鏃堕棿" min-width="160px"></el-table-column>
- <el-table-column prop="businessType" label="涓氬姟绫诲瀷" min-width="100px"></el-table-column>
- <el-table-column prop="transactionId" label="浜ゆ槗鍙�" min-width="180px"></el-table-column>
+ <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>
+ </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.status === 1 ? 'status-success' : 'status-pending'">
- {{ row.status === 1 ? '宸插埌璐�' : '鎻愮幇涓�' }}
+ <span :class="row.vaildStatus === 1 ? 'status-success' : 'status-pending'">
+ {{ row.vaildStatus === 1 ? '宸插埌璐�' : '鎻愮幇涓�' }}
</span>
</template>
</el-table-column>
</el-table>
-
<pagination
@size-change="handleSizeChange"
@current-change="handlePageChange"
@@ -133,19 +141,19 @@
<div class="image-section">
<div class="image-item">
<span class="label">娉曚汉韬唤璇佹闈細</span>
- <el-image :src="storeInfo.idcardImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImg]">
+ <el-image :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>
<div class="image-item">
<span class="label">娉曚汉韬唤璇佸弽闈細</span>
- <el-image :src="storeInfo.idcardImgBack" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBack]">
+ <el-image :src="storeInfo.idcardImgBackUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBackUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item">
<span class="label">钀ヤ笟鎵х収锛�</span>
- <el-image :src="storeInfo.businessImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.businessImg]">
+ <el-image :src="storeInfo.businessImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.businessImgUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -160,14 +168,14 @@
</div>
<div class="image-item-row">
<span class="label">韬唤璇佸弽闈細</span>
- <el-image :src="storeInfo.idcardImgBack" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBack]">
+ <el-image :src="storeInfo.idcardImgBackUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBackUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item-row">
<span class="label">鏈夋晥鍔冲姩鍚堝悓锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.laborContractImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.laborContractImgs">
+ <el-image v-for="(img, index) in storeInfo.laborContractImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.laborContractImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -175,7 +183,7 @@
<div class="image-item-row">
<span class="label">绀句繚缂寸撼璇佹槑锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.socialSecurityImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.socialSecurityImgs">
+ <el-image v-for="(img, index) in storeInfo.socialSecurityImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.socialSecurityImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -188,7 +196,7 @@
<div class="image-item-row">
<span class="label">闂ㄥ簵闂ㄥご鐓э細</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.storeFrontImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeFrontImgs">
+ <el-image v-for="(img, index) in storeInfo.storeFrontImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeFrontImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -196,7 +204,7 @@
<div class="image-item-row">
<span class="label">闂ㄥ簵鍐呴儴鐓х墖锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.storeInteriorImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeInteriorImgs">
+ <el-image v-for="(img, index) in storeInfo.storeInteriorImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeInteriorImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -204,7 +212,7 @@
<div class="image-item-row">
<span class="label">鍏跺畠鏉愭枡锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.otherMaterialImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.otherMaterialImgs">
+ <el-image v-for="(img, index) in storeInfo.otherMaterialImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.otherMaterialImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -221,6 +229,7 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import Pagination from '@/components/common/Pagination'
import { detail } from '@/api/business/shopInfo'
+import { fetchList, exportExcel } from '@/api/business/revenue'
export default {
name: 'OperaShopInfoWindow',
extends: BaseOpera,
@@ -230,9 +239,11 @@
activeTab: 'performance',
storeInfo: null,
searchForm: {
- transactionId: '',
- type: 0,
- createTime: ''
+ orderNo: '',
+ optType: 0,
+ createTime: '',
+ memberId: '',
+ memberType: 2
},
tableData: {
list: [],
@@ -257,14 +268,17 @@
},
methods: {
open (title, row) {
+ this.searchForm.memberId = row.id
detail(row.id)
.then(res => {
this.storeInfo = res
this.activeTab = 'performance'
this.searchForm = {
- transactionId: '',
- type: 0,
- createTime: ''
+ orderNo: '',
+ optType: '',
+ createTime: '',
+ memberId: '',
+ memberType: 2
}
this.title = title
this.visible = true
@@ -277,15 +291,18 @@
search () {
this.isWorking.search = true
const data = {
- pageIndex: this.tableData.pagination.pageIndex,
- pageSize: this.tableData.pagination.pageSize,
- shopId: this.storeInfo?.id,
- transactionId: this.searchForm.transactionId,
- type: this.searchForm.type,
- startTime: this.searchForm.createTime?.[0] || '',
- endTime: this.searchForm.createTime?.[1] || ''
+ 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 || ''
+ }
}
- this.api.fetchPerformance(data)
+ fetchList(data)
.then(res => {
this.tableData.list = res.list || []
this.tableData.pagination.total = res.total || 0
@@ -299,9 +316,11 @@
},
reset () {
this.searchForm = {
- transactionId: '',
- type: 0,
- createTime: ''
+ orderNo: '',
+ optType: '',
+ createTime: '',
+ memberId: '',
+ memberType: 2
}
this.search()
},
@@ -316,14 +335,20 @@
exportExcel () {
this.isWorking.export = true
const data = {
- shopId: this.storeInfo?.id,
- transactionId: this.searchForm.transactionId,
- type: this.searchForm.type,
- startTime: this.searchForm.createTime?.[0] || '',
- endTime: this.searchForm.createTime?.[1] || ''
+ 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 || ''
+ }
}
- this.api.exportPerformance(data)
+ exportExcel(data)
.then(res => {
+ this.download(res)
this.$tip.apiSuccess('瀵煎嚭鎴愬姛')
})
.catch(e => {
@@ -470,4 +495,4 @@
color: #909399;
font-size: 20px;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3