doum
9 小时以前 1382e80f33270e77e06414ce8ad3f085fde6142a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<template>
  <TableLayout :permissions="['business:membercoupon:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <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="name">
        <el-input v-model="searchForm.name" placeholder="请输入优惠券名称" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <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="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="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="订单号" 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>
        <el-button @click="reset">重置</el-button>
      </section>
    </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="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="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"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </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 ,OperaMemberCouponWindow},
  data () {
    return {
      // 搜索
      searchForm: {
        nikeName: '',
        name: '',
        couponType: '',
        status: '',
        getMethod: '',
        orderCode: ''
      }
    }
  },
  created () {
    this.config({
      module: '用户优惠券关联表',
      api: '/business/memberCoupon',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  }
}
</script>