From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 04 九月 2025 10:15:09 +0800
Subject: [PATCH] 前端
---
admin/src/views/business/member.vue | 270 +++++++++++++++++++++++------------------------------
1 files changed, 117 insertions(+), 153 deletions(-)
diff --git a/admin/src/views/business/member.vue b/admin/src/views/business/member.vue
index 1de7a6d..6e99eef 100644
--- a/admin/src/views/business/member.vue
+++ b/admin/src/views/business/member.vue
@@ -2,155 +2,99 @@
<TableLayout :permissions="['business:member:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="涓婚敭" prop="id">
- <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鎵嬫満鍙�" prop="telephone">
+ <el-input v-model="searchForm.telephone" clearable placeholder="璇疯緭鍏ユ墜鏈哄彿" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted">
- <el-input v-model="searchForm.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鐪熷疄濮撳悕" prop="name">
+ <el-input v-model="searchForm.name" clearable placeholder="璇疯緭鍏ョ湡瀹炲鍚�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser">
- <el-input v-model="searchForm.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ <el-form-item label="绫诲瀷" prop="type">
+ <el-select v-model="searchForm.type" clearable placeholder="璇烽�夋嫨绫诲瀷" @change="search">
+ <el-option :value="0" label="鍏ㄩ儴"></el-option>
+ <el-option :value="1" label="鎺ュ崟鏂�"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
- <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser">
- <el-input v-model="searchForm.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="updateTime">
- <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="澶村儚" prop="coverImage">
- <el-input v-model="searchForm.coverImage" placeholder="璇疯緭鍏ュご鍍�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="openid" prop="openid">
- <el-input v-model="searchForm.openid" placeholder="璇疯緭鍏penid" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏄电О" prop="nickName">
- <el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏ユ樀绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone">
- <el-input v-model="searchForm.telephone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="濮撳悕" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ鍚�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="workerIdentity">
- <el-input v-model="searchForm.workerIdentity" placeholder="璇疯緭鍏ョ敤宸ヨ韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="driverIdentity">
- <el-input v-model="searchForm.driverIdentity" placeholder="璇疯緭鍏ヨ揣杩愯韩浠�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" prop="chefIdentity">
- <el-input v-model="searchForm.chefIdentity" placeholder="璇疯緭鍏ヤ緵椁愬緢绮�:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="褰撳墠浣欓(鍗曚綅:鍒�)" prop="amount">
- <el-input v-model="searchForm.amount" placeholder="璇疯緭鍏ュ綋鍓嶄綑棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" prop="totalAmount">
- <el-input v-model="searchForm.totalAmount" placeholder="璇疯緭鍏ュ巻鍙叉�婚噾棰�(鍗曚綅:鍒�)" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏈�鍚庣櫥褰曟椂闂�" prop="loginTime">
- <el-date-picker v-model="searchForm.loginTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庣櫥褰曟椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鎬荤櫥褰曟鏁�" prop="loginTimes">
- <el-input v-model="searchForm.loginTimes" placeholder="璇疯緭鍏ユ�荤櫥褰曟鏁�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎬绘帴鍗曢噺" prop="reciveNum">
- <el-input v-model="searchForm.reciveNum" placeholder="璇疯緭鍏ユ�绘帴鍗曢噺" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎬诲彂鍗曢噺" prop="publishNum">
- <el-input v-model="searchForm.publishNum" placeholder="璇疯緭鍏ユ�诲彂鍗曢噺" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璇勫垎" prop="score">
- <el-input v-model="searchForm.score" placeholder="璇疯緭鍏ヨ瘎鍒�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="瀹氫綅鍦板潃" prop="localtion">
- <el-input v-model="searchForm.localtion" placeholder="璇疯緭鍏ュ畾浣嶅湴鍧�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绾害" prop="lat">
- <el-input v-model="searchForm.lat" placeholder="璇疯緭鍏ョ含搴�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="缁忓害" prop="lgt">
- <el-input v-model="searchForm.lgt" placeholder="璇疯緭鍏ョ粡搴�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐪佷唤" prop="province">
- <el-input v-model="searchForm.province" placeholder="璇疯緭鍏ョ渷浠�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍩庡競" prop="city">
- <el-input v-model="searchForm.city" placeholder="璇疯緭鍏ュ煄甯�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍖哄幙" prop="area">
- <el-input v-model="searchForm.area" placeholder="璇疯緭鍏ュ尯鍘�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" prop="autoReciveStatus">
- <el-input v-model="searchForm.autoReciveStatus" placeholder="璇疯緭鍏ユ槸鍚︽帴鍙楄嚜鍔ㄦ淳鍗�:0=鍚︼紱1=鏄紱" @keypress.enter.native="search"></el-input>
+<!-- <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" @keypress.enter.native="search" clearable placeholder="鐘舵��">
+ <el-option label="鍚敤" value="0"></el-option>
+ <el-option label="绂佺敤" value="1"></el-option>
+ </el-select>
+ </el-form-item>-->
+ <el-form-item label="娉ㄥ唽鏃堕棿" prop="eventType">
+ <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: 120px" v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="缁撴潫鏃堕棿" />
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
+ <el-button type="primary" :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']">
+<!-- <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']">
<li><el-button type="primary" @click="$refs.operaMemberWindow.open('鏂板缓浼氬憳淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
- </ul>
+ </ul>-->
<el-table
+ :height="tableHeightNew"
v-loading="isWorking.search"
:data="tableData.list"
stripe
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="deleted" label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" min-width="100px"></el-table-column>
- <el-table-column prop="createUser" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="updateUser" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="coverImage" label="澶村儚" min-width="100px"></el-table-column>
- <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
+ <el-table-column prop="openid" label="openid" min-width="100px">
+ <template slot-scope="{row}">
+ <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.openid}}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="nickName" label="鏄电О" min-width="100px"></el-table-column>
- <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="workerIdentity" label="鐢ㄥ伐韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
- <el-table-column prop="driverIdentity" label="璐ц繍韬唤:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
- <el-table-column prop="chefIdentity" label="渚涢寰堢矇:0=鏈敵璇凤紱1=鐢宠涓紱2=宸查�氳繃锛�3=鏈�氳繃锛�" min-width="100px"></el-table-column>
- <el-table-column prop="amount" label="褰撳墠浣欓(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
- <el-table-column prop="totalAmount" label="鍘嗗彶鎬婚噾棰�(鍗曚綅:鍒�)" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px"></el-table-column>
- <el-table-column prop="loginTime" label="鏈�鍚庣櫥褰曟椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="loginTimes" label="鎬荤櫥褰曟鏁�" min-width="100px"></el-table-column>
- <el-table-column prop="reciveNum" label="鎬绘帴鍗曢噺" min-width="100px"></el-table-column>
- <el-table-column prop="publishNum" label="鎬诲彂鍗曢噺" min-width="100px"></el-table-column>
- <el-table-column prop="score" label="璇勫垎" min-width="100px"></el-table-column>
- <el-table-column prop="localtion" label="瀹氫綅鍦板潃" min-width="100px"></el-table-column>
- <el-table-column prop="lat" label="绾害" min-width="100px"></el-table-column>
- <el-table-column prop="lgt" label="缁忓害" min-width="100px"></el-table-column>
- <el-table-column prop="province" label="鐪佷唤" min-width="100px"></el-table-column>
- <el-table-column prop="city" label="鍩庡競" min-width="100px"></el-table-column>
- <el-table-column prop="area" label="鍖哄幙" min-width="100px"></el-table-column>
- <el-table-column prop="autoReciveStatus" label="鏄惁鎺ュ彈鑷姩娲惧崟:0=鍚︼紱1=鏄紱" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:member:update', 'business:member:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
+ <el-table-column prop="name" label="鐪熷疄濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="telephone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="workerIdentity" label="韬唤" min-width="100px">
+ <template slot-scope="{row}">
+ 鍙戝崟鏂�<span v-if="row.workerIdentity == 2 || row.driverIdentity == 2 || row.chefIdentity == 2">{{' | 鎺ュ崟鏂�'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="workerIdentity" label="鎺ュ崟璁よ瘉韬唤" width="120px">
+ <template slot-scope="{row}">
+ <div v-if="row.workerIdentity == 2" class="renzhen">宸ヤ汉</div>
+ <div v-if=" row.driverIdentity == 2" class="renzhen">鍙告満</div>
+ <div v-if="row.chefIdentity == 2" class="renzhen">渚涢</div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="amount" label="褰撳墠浣欓(鍏�)" min-width="100px">
+ <template slot-scope="{row}">
+ <span class="yellowstate">{{((row.amount || 0)/100).toFixed(2)}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createTime" label="娉ㄥ唽鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="autoReciveStatus" label="鎺ュ彈鑷姩娲惧崟" min-width="100px">
+ <template slot-scope="{row}">
+ {{row.autoReceiveStatus ==1?"鏄�":"鍚�"}}
+ </template>
+ </el-table-column>
+<!-- <el-table-column label="鐘舵��">
+ <template slot-scope="{row}">
+ <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
+ inactive-color="#ff4949" :active-value="0" :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:member:update', 'business:member:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
<template slot-scope="{row}">
<el-button type="text" @click="$refs.operaMemberWindow.open('缂栬緫浼氬憳淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:member:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button>
</template>
- </el-table-column>
+ </el-table-column>-->
</el-table>
<pagination
@size-change="handleSizeChange"
@@ -160,6 +104,7 @@
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
+ <OperaMemberDetailWindow ref="OperaMemberDetailWindow" />
<OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/>
</TableLayout>
</template>
@@ -169,44 +114,21 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+import OperaMemberDetailWindow from '@/components/business/OperaMemberDetailWindow'
export default {
name: 'Member',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaMemberWindow },
+ components: { TableLayout, Pagination, OperaMemberDetailWindow, OperaMemberWindow },
data () {
return {
// 鎼滅储
searchForm: {
- id: '',
- deleted: '',
- createUser: '',
- createTime: '',
- updateUser: '',
- updateTime: '',
- remark: '',
- coverImage: '',
- openid: '',
- nickName: '',
+ type: 0,
+ startTime: '',
+ endTime: '',
telephone: '',
name: '',
- workerIdentity: '',
- driverIdentity: '',
- chefIdentity: '',
- amount: '',
- totalAmount: '',
- status: '',
- loginTime: '',
- loginTimes: '',
- reciveNum: '',
- publishNum: '',
- score: '',
- localtion: '',
- lat: '',
- lgt: '',
- province: '',
- city: '',
- area: '',
- autoReciveStatus: ''
+ status: ''
}
}
},
@@ -218,6 +140,48 @@
'field.main': 'id'
})
this.search()
+ },
+ methods: {
+ reset () {
+ this.searchForm = {
+ type: 0,
+ startTime: '',
+ endTime: '',
+ telephone: '',
+ name: '',
+ status: ''
+ }
+ this.search()
+ },
+ openDetail (row) {
+ this.$refs.OperaMemberDetailWindow.open('鐢ㄦ埛璇︽儏', row.id)
+ },
+ changeStatus (e, row) {
+ this.working = true
+ this.api.updateStatus({ id: row.id, workStatus: e })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鎿嶄綔鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.working = false
+ })
+ .catch(() => { })
+ }
}
}
</script>
+<style scoped lang="scss">
+.renzhen{
+ margin: 5px;
+ line-height: 30px;
+ color:#67c23a;
+ height: 30px;
+ text-align:center;
+ border-color: #e1f3d8;
+ background-color: #f0f9eb;
+}
+</style>
--
Gitblit v1.9.3