From 4eac422e52a4d28fb651b75d0f054697c7a2c0fa Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 09 二月 2026 15:14:13 +0800
Subject: [PATCH] 优化
---
admin/src/views/business/memberCoupon.vue | 164 +++++++++++++++++++++++-------------------------------
1 files changed, 71 insertions(+), 93 deletions(-)
diff --git a/admin/src/views/business/memberCoupon.vue b/admin/src/views/business/memberCoupon.vue
index 702215e..18a6639 100644
--- a/admin/src/views/business/memberCoupon.vue
+++ b/admin/src/views/business/memberCoupon.vue
@@ -2,65 +2,34 @@
<TableLayout :permissions="['business:membercoupon: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="nikeName" >
+ <el-input v-model="searchForm.nikeName" placeholder="璇疯緭鍏ョ敤鎴锋樀绉�/鎵嬫満鍙� " clearable @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
+ <el-form-item label="浼樻儬鍒稿悕绉�" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" clearable @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
+ <el-form-item label="绫诲瀷" prop="couponType">
+ <el-select v-model="searchForm.couponType" placeholder="璇烽�夋嫨绫诲瀷" clearable @change="search" >
+ <el-option :key="0" :value="0" label="婊″噺鍒�"></el-option>
+ <el-option :key="1" :value="1" label="鎶樻墸鍒�"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" placeholder="鐘舵��" clearable @change="search" >
+ <el-option :value="0" label="鏈娇鐢�"></el-option>
+ <el-option :value="1" label="宸蹭娇鐢�"></el-option>
+ <el-option :value="2" label="宸茶繃鏈�"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
+ <el-form-item label="鍙戞斁绫诲瀷" prop="getMethod">
+ <el-select v-model="searchForm.getMethod" placeholder="鍙戞斁绫诲瀷" clearable @change="search" >
+ <el-option :value="0" label="棣栨娉ㄥ唽"></el-option>
+ <el-option :value="1" label="閭�璇峰ソ鍙�"></el-option>
+ <el-option :value="2" label="瀹氬悜鍙戞斁"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </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="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" prop="memberId">
- <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ョ敤鎴风紪鐮侊紙鍏宠仈member琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍟嗗缂栫爜锛堝叧鑱攕hop琛級" prop="shopId">
- <el-input v-model="searchForm.shopId" placeholder="璇疯緭鍏ュ晢瀹剁紪鐮侊紙鍏宠仈shop琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲瀷0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� " prop="type">
- <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨�0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� " @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="婊¢锛堝厓锛�" prop="limitPrice">
- <el-input v-model="searchForm.limitPrice" placeholder="璇疯緭鍏ユ弧棰濓紙鍏冿級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浼樻儬閲戦锛堝厓锛�" prop="price">
- <el-input v-model="searchForm.price" placeholder="璇疯緭鍏ヤ紭鎯犻噾棰濓紙鍏冿級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="寮�濮嬫椂闂�" prop="startDate">
- <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ紑濮嬫椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="缁撴潫鏃堕棿" prop="endDate">
- <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ョ粨鏉熸椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="棰嗗彇鏂瑰紡 0棰嗗彇 1鍏戞崲" prop="getMethod">
- <el-input v-model="searchForm.getMethod" placeholder="璇疯緭鍏ラ鍙栨柟寮� 0棰嗗彇 1鍏戞崲" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍏戞崲鎵�闇�鍜栬眴閲戦" prop="integral">
- <el-input v-model="searchForm.integral" placeholder="璇疯緭鍏ュ厬鎹㈡墍闇�鍜栬眴閲戦" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鏈娇鐢� 1宸蹭娇鐢�" prop="status">
- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鏈娇鐢� 1宸蹭娇鐢�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璇存槑" prop="info">
- <el-input v-model="searchForm.info" placeholder="璇疯緭鍏ヨ鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浣跨敤鏃堕棿" prop="useDate">
- <el-date-picker v-model="searchForm.useDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ヤ娇鐢ㄦ椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="浣跨敤绉垎濂栧姳鏁伴噺" prop="backIntegral">
- <el-input v-model="searchForm.backIntegral" placeholder="璇疯緭鍏ヤ娇鐢ㄧН鍒嗗鍔辨暟閲�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="璁㈠崟鍙�" prop="orderCode">
+ <el-input v-model="searchForm.orderCode" placeholder="璇疯緭鍏ヤ娇鐢ㄨ鍗曞彿" clearable @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
@@ -69,31 +38,51 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:membercoupon:create', 'business:membercoupon:exportExcel']">
+ <li><el-button type="primary" @click="$refs.OperaMemberCouponWindow.open('瀹氬悜鍙戞斁浼樻儬鍒�', null)" v-permissions="['business:membercoupon:create']">瀹氬悜鍙戞斁</el-button></li>
+ <li> <el-button type="primary" :loading="isWorking.export" v-permissions="['business:membercoupon:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+ </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
stripe
>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="memberId" label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" min-width="100px"></el-table-column>
- <el-table-column prop="shopId" label="鍟嗗缂栫爜锛堝叧鑱攕hop琛級" min-width="100px"></el-table-column>
- <el-table-column prop="type" label="绫诲瀷0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� " min-width="100px"></el-table-column>
- <el-table-column prop="limitPrice" label="婊¢锛堝厓锛�" min-width="100px"></el-table-column>
- <el-table-column prop="price" label="浼樻儬閲戦锛堝厓锛�" min-width="100px"></el-table-column>
- <el-table-column prop="startDate" label="寮�濮嬫椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="endDate" label="缁撴潫鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="getMethod" label="棰嗗彇鏂瑰紡 0棰嗗彇 1鍏戞崲" min-width="100px"></el-table-column>
- <el-table-column prop="integral" label="鍏戞崲鎵�闇�鍜栬眴閲戦" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵�� 0鏈娇鐢� 1宸蹭娇鐢�" min-width="100px"></el-table-column>
- <el-table-column prop="info" label="璇存槑" min-width="100px"></el-table-column>
+ <el-table-column prop="nikeName" label="鐢ㄦ埛" min-width="180px"></el-table-column>
+ <el-table-column prop="name" label="浼樻儬鍒稿悕绉�" min-width="100px"></el-table-column>
+ <el-table-column prop="couponType" label="浼樻儬鍒哥被鍨�" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.couponType ===0"> 婊″噺鍒�</span>
+ <span v-if="row.couponType ===1"> 鎶樻墸鍒�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="getMethod" label="鍙戞斁绫诲瀷" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.getMethod ===0"> 棣栨娉ㄥ唽</span>
+ <span v-else-if="row.getMethod ===1"> 閭�璇峰ソ鍙�</span>
+ <span v-else>瀹氬悜鍙戞斁</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="startDate" label="浣跨敤鏈夋晥鏈�" align="center" min-width="210px">
+ <template slot-scope="{row}">
+ <li> 璧凤細{{ row.startDate}}</li> <li>姝細{{row.endDate }}</li>
+ </template>
+ </el-table-column>
+ <el-table-column prop="couponPrice" label="浼樻儬閲戦(鍏�)" min-width="120px">
+ <template slot-scope="{row}">
+ {{row.status==1?(row.couponPrice||0):'-'}}
+ </template>
+ </el-table-column>
+ <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.status ===0" class="green"> 鏈娇鐢�</span>
+ <span v-else-if="row.status ===1" class="blue"> 宸蹭娇鐢�</span>
+ <span v-else class="grey">宸茶繃鏈�</span>
+ </template>
+ </el-table-column>
<el-table-column prop="useDate" label="浣跨敤鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="backIntegral" label="浣跨敤绉垎濂栧姳鏁伴噺" min-width="100px"></el-table-column>
+ <el-table-column prop="orderCode" label="鍏宠仈璁㈠崟" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍙戞斁鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="creatorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
</el-table>
<pagination
@size-change="handleSizeChange"
@@ -102,41 +91,30 @@
>
</pagination>
</template>
+
+ <OperaMemberCouponWindow ref="OperaMemberCouponWindow" @success="handlePageChange"/>
</TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
+import OperaMemberCouponWindow from '@/components/business/OperaMemberCouponWindow'
import Pagination from '@/components/common/Pagination'
export default {
name: 'MemberCoupon',
extends: BaseTable,
- components: { TableLayout, Pagination },
+ components: { TableLayout, Pagination ,OperaMemberCouponWindow},
data () {
return {
// 鎼滅储
searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
- memberId: '',
- shopId: '',
- type: '',
- limitPrice: '',
- price: '',
- startDate: '',
- endDate: '',
- getMethod: '',
- integral: '',
+ nikeName: '',
+ name: '',
+ couponType: '',
status: '',
- info: '',
- useDate: '',
- backIntegral: ''
+ getMethod: '',
+ orderCode: ''
}
}
},
--
Gitblit v1.9.3