From 77b52c06afdb843ee67c6e938afab0458143d76f Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 05 九月 2025 10:48:48 +0800
Subject: [PATCH] 前端
---
admin/src/components/business/OperaMemberDetailWindow.vue | 365 ++++++++++++++++++++++++++++-----------------------
1 files changed, 198 insertions(+), 167 deletions(-)
diff --git a/admin/src/components/business/OperaMemberDetailWindow.vue b/admin/src/components/business/OperaMemberDetailWindow.vue
index 09b4047..3fe7341 100644
--- a/admin/src/components/business/OperaMemberDetailWindow.vue
+++ b/admin/src/components/business/OperaMemberDetailWindow.vue
@@ -7,12 +7,12 @@
:confirm-working="isWorking"
@close="close"
@confirm="confirm">
- <div style="width: 100%; position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
+ <div style="width: calc(100% - 32px); position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
<div style="display: flex;background: #e4ecfe;padding: 20px">
<div style="width: 60px;">
<div class="home_title" v-if="info">
- <el-image v-if="info.imgurlFull" style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" :src="info.imgurlFull"
- :preview-src-list="[info.imgurlFull]">
+ <el-image v-if="info.fullCoverImage" style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" :src="info.fullCoverImage"
+ :preview-src-list="[info.fullCoverImage]">
</el-image>
<el-image v-else style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" src="avatar/man.png" >
</el-image>
@@ -21,8 +21,7 @@
<div style="width: calc(100% - 60px);">
<div class="home_title" v-if="info">
<div class="left">
- <span class="m10">鏄电О锛歿{info.nickName }}</span>
- <span class="mr10 bluebtn" :title="'濮撳悕锛�'+(info.name||'鏈缃鍚�')" >({{(info.name||'鏈缃鍚�') }})</span>
+ <span class="m10">鏄电О锛歿{info.nickName }} <span class="ml10 bluebtn" :title="'濮撳悕锛�'+(info.name||'鏈缃鍚�')" >({{(info.name||'鏈缃鍚�') }})</span></span>
<el-tag type="primary" class="mr10 tag1">鍙戝崟鏂�</el-tag>
<el-tag type="success" class="mr10 tag1" v-if="info.workerIdentity == 2 || info.driverIdentity == 2 || info.chefIdentity == 2">鎺ュ崟鏂�</el-tag>
</div>
@@ -43,8 +42,8 @@
<div class="main" v-if="activeTabs === 0 && info">
<div class="title" >
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浜ゆ槗娴佹按鍙�" style="width: 200px;" label-width="100px" prop="telephone">
- <el-input v-model="searchForm.telephone" style="width: 100px" clearable placeholder="璇疯緭鍏�" ></el-input>
+ <el-form-item label="浜ゆ槗娴佹按鍙�" style="width: 200px;" label-width="100px" prop="transactionNo">
+ <el-input v-model="searchForm.transactionNo" style="width: 100px" clearable placeholder="璇疯緭鍏�" ></el-input>
</el-form-item>
<el-form-item label="鏀舵敮绫诲瀷" prop="type" style="width: 200px;" label-width="100px" >
<el-select v-model="searchForm.optType" style="width: 100px" clearable placeholder="璇烽�夋嫨绫诲瀷" >
@@ -52,16 +51,16 @@
<el-option :value="-1" label="鏀嚭"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鏀舵敮鏃堕棿" prop="eventType" style="width: 330px;" label-width="100px" >
- <el-date-picker type="datetime" style="width: 100px" v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ <el-form-item label="鏀舵敮鏃堕棿" prop="eventType" style="width: 380px;" label-width="100px" >
+ <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
placeholder="寮�濮嬫椂闂�" />-
- <el-date-picker type="datetime" style="width: 100px" v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
placeholder="缁撴潫鏃堕棿" />
</el-form-item>
- <section style="width: 200px;display: inline-block" >
+ <section style="width: 280px;display: inline-block" >
<el-button type="primary" @click="handleCurrentChange0(0)">鎼滅储</el-button>
<el-button @click="reset0">閲嶇疆</el-button>
- <el-button @click="exportExcel0">閲嶇疆</el-button>
+ <el-button type="primary" @click="exportExcel0" :loading="export0">瀵煎嚭</el-button>
</section>
</el-form>
</div>
@@ -76,14 +75,18 @@
<span style="cursor: pointer;color: #a10e0e" v-else>鏀嚭</span>
</template>
</el-table-column>
- <el-table-column prop="telephone" label="閲戦锛堝厓锛�" width="120px" align="center">
+ <el-table-column prop="amountInfo" label="閲戦锛堝厓锛�" width="120px" align="center">
<template slot-scope="{row}">
- <span class="yellowbtn">{{ ((row.amount || 0)/100).toFixed(2) }}</span>
+ <span class="yellowbtn">{{ row.amountInfo || 0 }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="鏀舵敮鏃堕棿" min-width="150px" align="center"></el-table-column>
<el-table-column prop="typeName" label="涓氬姟绫诲瀷" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="transactionNo" label="璁㈠崟/浜ゆ槗鍙�" min-width="100px" align="center"> </el-table-column>
+ <el-table-column prop="transactionNo" label="璁㈠崟/浜ゆ槗鍙�" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ <span >{{ row.transactionNo }}</span>
+ </template>
+ </el-table-column>
</el-table>
<el-pagination
@current-change="handleCurrentChange0"
@@ -93,122 +96,93 @@
:total="tableData.total">
</el-pagination>
</div>
- <div class="main" v-if="activeTabs === 1 && info">
+ <div class="main" v-if="activeTabs === 1 && info">
<el-radio-group v-model="type" @change="changeType" style="margin-bottom: 20px;">
<el-radio-button :label="0">鏀跺埌鐨勮瘎浠�</el-radio-button>
<el-radio-button :label="1">鍙戝竷鐨勮瘎浠�</el-radio-button>
</el-radio-group>
<el-table
- :data="tableData"
- border
- v-loading="loading"
- style="width: 100%">
- <el-table-column
- width="150"
- label="璐﹀崟缂栧彿">
- </el-table-column>
- <el-table-column
- label="璐圭敤绫诲瀷">
- </el-table-column>
- <el-table-column
- prop="totleFee"
- label="璐﹀崟閲戦">
- </el-table-column>
- <el-table-column
- :key="Date.now()"
- prop="receivableFee"
- :label="`搴�${type === 0 ? '鏀�' : '浠�'}閲戦`">
- </el-table-column>
- <el-table-column
- prop="actReceivableFee"
- :label="`瀹�${type === 0 ? '鏀�' : '浠�'}閲戦`">
- </el-table-column>
- <el-table-column
- :label="`闇�${type === 0 ? '鏀�' : '浠�'}閲戦`">
+ v-loading="isWorking.search"
+ :data="tableData1.records"
+ stripe
+ >
+ <el-table-column prop="commentTime" label="璇勪环鏃堕棿" min-width="150px" align="center">
<template slot-scope="{row}">
- <template v-if="type === 0">
- <el-tag type="success" v-if="row.needReceivableFee > 0">鏀�</el-tag>
- <el-tag type="warning" v-else-if="row.needReceivableFee < 0">浠�</el-tag>
- </template>
- <template v-else>
- <el-tag type="warning" v-if="row.needReceivableFee !== 0">浠�</el-tag>
- </template>
- <span style="margin-left: 10px;">{{Math.abs(row.needReceivableFee)}}</span>
+ <span >{{ row.commentTime }}</span>
</template>
</el-table-column>
- <el-table-column
- label="璐﹀崟鏉ユ簮">
+ <el-table-column prop="commentLevel" label="璇勫垎" width="120px" align="center">
<template slot-scope="{row}">
- <span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
- <span v-else>鑷缓璐﹀崟</span>
+ <span class="yellowbtn">{{ row.commentLevel || 0 }}鍒�</span>
</template>
</el-table-column>
- <el-table-column
- width="200"
- label="璁¤垂鍛ㄦ湡">
+ <el-table-column prop="commentInfo" label="璇勪环鍐呭" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="code" label="璁㈠崟鍙�" min-width="100px" align="center"> </el-table-column>
+ <el-table-column prop="type" label="璁㈠崟绫诲瀷" min-width="100px" align="center">
<template slot-scope="{row}">
- {{ row.startDate }} ~ {{ row.endDate }}
+ <span v-if="row.type ==0" >鐢ㄥ伐鍗�
+ <span v-if="row.workType ==0">/閲囨憳宸�</span>
+ <span v-if="row.workType ==1">/鍒嗘嫞宸�</span>
+ <span v-if="row.workType ==2">/鍖呰宸�</span>
+ </span>
+ <span v-if="row.type ==1" >杩愯揣鍗�</span>
+ <span v-if="row.type ==2" >璁㈤鍗�</span>
</template>
- </el-table-column>
- <el-table-column
- prop="planPayDate"
- label="搴旀敹鏃ユ湡">
- </el-table-column>
- <el-table-column
- label="鏄惁閫炬湡">
- </el-table-column>
- <el-table-column
- fixed="right"
- label="鐘舵��">
</el-table-column>
</el-table>
<el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="page"
- :page-sizes="[10, 15, 20, 25]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
+ @current-change="handleCurrentChange0"
+ :current-page="page1"
+ :page-size="pageSize"
+ layout="total, prev, pager, next, jumper"
+ :total="tableData1.total">
</el-pagination>
</div>
<div class="main" v-if="activeTabs === 2 && info">
- <div class="title">鎿嶄綔璁板綍</div>
- <el-table
- :data="info.logList"
- border
- style="width: 100%">
- <el-table-column
- :key="Date.now()"
- width="200"
- prop="param1"
- label="鎿嶄綔浜�">
- </el-table-column>
- <el-table-column
- :key="Date.now()"
- width="200"
- prop="createDate"
- label="鎿嶄綔鏃堕棿">
- </el-table-column>
- <el-table-column
- :key="Date.now()"
- width="150"
- label="鎿嶄綔">
- <template slot-scope="{row}">
- <span v-if="row.objType === 0">宸ュ崟鍒涘缓</span>
- <span v-if="row.objType === 1">鎸囨淳</span>
- <span v-if="row.objType === 2">澶勭悊</span>
- <span v-if="row.objType === 3">鍚堝悓鍒涘缓</span>
- <span v-if="row.objType === 4">鍚堝悓鍙樻洿</span>
- <span v-if="row.objType === 5">鍚堝悓閫�绉�</span>
- </template>
- </el-table-column>
- <el-table-column
- :key="Date.now()"
- prop="content"
- label="鎿嶄綔鍐呭">
- </el-table-column>
- </el-table>
+ <div class="renzheng" v-for="item in tableData2">
+ <div class="info" >
+ <span class="m10" v-if="item.type ==0">鐢ㄥ伐璁よ瘉</span>
+ <span class="m10" v-if="item.type ==1">璐ц繍璁よ瘉</span>
+ <span class="m10" v-if="item.type ==2">渚涢璁よ瘉</span>
+ <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">鐢宠涓�</el-tag>
+ <el-tag type="success" class="ml10 tag2" v-if="item.auditStatus == 2">璁よ瘉閫氳繃</el-tag>
+ <el-tag type="danger" class="ml10 tag2" v-if="item.auditStatus == 3">璁よ瘉澶辫触</el-tag>
+ </div>
+ <div class="detail" >
+ <div class="line">
+ <span class="label"> 璁よ瘉绫诲瀷锛�</span> <span class="txt">{{item.authType == 0? '涓汉':'浼佷笟' }}</span>
+ <span class="label"> 鑱旂郴浜猴細</span> <span class="txt">{{item.linkName || '' }}</span>
+ <span class="label"> 鑱旂郴鏂瑰紡锛�</span> <span class="txt">{{item.telephone || '' }}</span>
+ <span class="label"> 鐢宠鏃堕棿锛�</span> <span class="txt">{{item.createTime || '' }}</span>
+ </div>
+ <template v-if="item.authType ==1">
+ <div class="line">
+ <span class="label">鎺ュ崟浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
+ <span class="label">鍗曚綅鍚嶇О锛�</span><span class="txt">{{item.companyName || '' }}</span>
+ </div>
+ <div class="line"> <span class="label">璁よ瘉璧勬枡锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span> </div>
+ </template>
+ <template v-else>
+ <div class="line">
+ <span class="label">鎺ュ崟浣嶇疆锛�</span><span class="txt">{{item.location || '' }}</span>
+ </div>
+ <div class="line">
+ <span class="label">韬唤淇℃伅锛�</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">鏃�</span>
+ </div>
+ </template>
+ <div class="line" v-if="item.imgList && item.imgList.length>0">
+ <div v-for="info in item.imgList" style="display: inline-block">
+ <el-image v-if="info" style="width: 50px; height: 50px; margin-right: 10px" :src="info"
+ :preview-src-list="[info]">
+ </el-image>
+ </div>
+ </div>
+ <div class="line" v-if="item.auditStatus == 3 || item.auditStatus == 2" :style="'background-color: '+(item.auditStatus==2?'#eff8ea':'rgb(253 226 226)')+';padding: 20px'">
+ <span class="label"> 瀹℃牳浜猴細</span> <span class="txt">{{item.editorName}} </span><span class="label">{{item.auditTime || '' }} </span>
+ <div style="margin-top: 20px"> <span class="label"> 瀹℃牳淇℃伅锛�</span> <span class="txt">{{item.auditRemark || '' }}</span></div>
+ </div>
+ </div>
+ </div>
</div>
</GlobalWindow>
</template>
@@ -217,9 +191,9 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
import { getById } from '@/api/business/member'
-import { fetchList as yueList } from '@/api/business/memberRevenue'
-import { commentList } from '@/api/business/orders'
-import { fetchList as renzhengList } from '@/api/business/identityInfo'
+import { fetchList as yueList, exportExcel as yueExportExcel } from '@/api/business/memberRevenue'
+import { fetchList as commentList } from '@/api/business/orders'
+import { allList as renzhengList} from '@/api/business/identityInfo'
export default {
components: {
GlobalWindow
@@ -236,15 +210,19 @@
page: 1,
total: 0,
tableData: {},
+ tableData1: {},
+ tableData2: [],
page0: 1,
- totalPage0: 0,
- total0: 0,
+ page1: 1,
loading: false,
+ export0: false,
searchForm: {
type: 0,
startTime: null,
endTime: null,
optType: null,
+ acceptMemberId: -1,
+ releaseMemberId: -1,
transactionNo: null
}
}
@@ -256,11 +234,20 @@
this.activeTabs = 0
this.type = 0
this.page0 = 1
- this.totalPage0 = 0
- this.total0 = 0
this.pageSize = 10
this.tableData = {}
+ this.tableData1 = {}
+ this.tableData2 = []
this.id = id
+ this.searchForm = {
+ type: 0,
+ startTime: null,
+ endTime: null,
+ optType: null,
+ acceptMemberId: -1,
+ releaseMemberId: -1,
+ transactionNo: null
+ }
this.getData()
},
getData () {
@@ -268,12 +255,36 @@
.then(res => {
this.info = res
this.visible = true
- this.handleCurrentChange0(0)
+ this.handleCurrentChange0(1)
+ this.changeType(0)
+ this.getRenzhengList()
})
},
- exportExcel0 (page) {
- this.page0 = page
- this.getYueList()
+ exportExcel0 () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ this.export0 = true
+ yueExportExcel({
+ page: 1,
+ capacity: 1000000,
+ model: {
+ memberId: this.info.id || -1,
+ startTime: this.searchForm.startTime,
+ endTime: this.searchForm.endTime,
+ optType: this.searchForm.optType,
+ transactionNo: this.searchForm.transactionNo
+ }
+ }).then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.export0 = false
+ })
+ })
+ .catch(() => {})
},
reset0 () {
this.searchForm.startTime = null
@@ -286,6 +297,10 @@
handleCurrentChange0 (page) {
this.page0 = page
this.getYueList()
+ },
+ handleCurrentChange1 (page) {
+ this.page1 = page
+ this.getCommentList()
},
getYueList () {
this.loading = true
@@ -302,9 +317,27 @@
}).then(res => {
this.loading = false
this.tableData = res
- this.total0 = res.total
- this.totalPage0 = res.total
console.log(this.tableData)
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ getCommentList () {
+ this.loading = true
+ commentList({
+ capacity: this.pageSize,
+ page: this.page1,
+ model: {
+ acceptMemberId: this.searchForm.acceptMemberId,
+ releaseMemberId: this.searchForm.releaseMemberId,
+ commentStatus: 1
+ }
+ }).then(res => {
+ this.loading = false
+ this.tableData1 = res
+ console.log(this.tableData1)
}).catch(e => {
this.$tip.apiFailed(e)
}).finally(() => {
@@ -317,60 +350,32 @@
getRenzhengList () {
this.loading = true
renzhengList({
- capacity: this.pageSize,
- page: this.page,
- model: {
- startTime: this.searchForm.startTime,
- endTime: this.searchForm.endTime,
- optType: this.searchForm.optType,
- transactionNo: this.searchForm.transactionNo
- }
+ memberId: this.id || -1
}).then(res => {
this.loading = false
- this.tableData = res.records
- this.total = res.total
+ this.tableData2 = res
}).catch(e => {
this.$tip.apiFailed(e)
}).finally(() => {
this.loading = false
})
},
- getCommentList () {
- this.loading = true
- commentList({
- capacity: this.pageSize,
- page: this.page,
- model: {
- status: 0,
- billType: this.type,
- contractId: this.info.id
- }
- }).then(res => {
- this.loading = false
- this.tableData = res.records
- this.total = res.total
- })
- },
changeType (e) {
- this.type = e
- this.page = 1
- this.pageSize = 10
- this.tableData = []
- this.getList()
+ this.searchForm.acceptMemberId = -1
+ this.searchForm.releaseMemberId = -1
+ if (e == 1) {
+ this.searchForm.releaseMemberId = this.info.id || -1
+ this.searchForm.acceptMemberId = null
+ } else {
+ this.searchForm.acceptMemberId = this.info.id || -1
+ this.searchForm.releaseMemberId =null
+ }
+ this.page1 = 1
+ this.tableData1 = {}
+ this.handleCurrentChange1(0)
},
tabsClick (val) {
this.activeTabs = val
- },
- getDetail () {
-
- },
- handleSizeChange (e) {
- this.pageSize = e
- this.getList()
- },
- handleCurrentChange (e) {
- this.page = e
- this.getList()
}
}
}
@@ -378,6 +383,32 @@
<style lang="scss" scoped>
@import '@/assets/style/variables.scss';
+.renzheng{
+ margin: 0px 0px 30px 20px;
+ width: calc(100% - 60px);
+ .detail{
+ font-size: 14px;
+ .label{
+ color: #8c939d;
+ }
+ .txt{
+ margin-right: 30px;
+ }
+ .line{
+ margin-top: 15px;
+ }
+ }
+ .ml10{
+ margin-left: 10px;
+ }
+ .info{
+ font-size: 14px;
+ font-weight: bold;
+ }
+ .tag2{
+ font-size: 12px;
+ }
+}
.home_title {
.mr10{
margin-right: 10px;
--
Gitblit v1.9.3