11<template >
22 <div class =" app-container" >
3- <el-row ><el-button @click =" generate " type =" primary" plain >->生成邀请码< - </el-button ></el-row >
3+ <el-row ><el-button @click =" dialogVisible = true " type =" primary" plain >->生成邀请码 </el-button ></el-row >
44 <el-table v-loading =" listLoading" :data =" list" border fit highlight-current-row style =" width : 100% " >
55 <el-table-column align =" center" label =" 邀请码" >
66 <template slot-scope="scope">
77 <span >{{ scope.row.inviteCode }}</span >
88 </template >
99 </el-table-column >
1010
11- <!-- <el-table-column width="150px" align="center" label="注册用户ID ">
11+ <el-table-column align =" center" label =" 使用用户 " >
1212 <template slot-scope="scope">
13- <span>{{ scope.row.regUserId }}</span>
13+ <span >{{ scope.row.userName }}</span >
1414 </template >
15- </el-table-column> -->
16-
15+ </el-table-column >
16+ <el-table-column align =" center" label =" 有效时间" >
17+ <template slot-scope="scope">
18+ <div v-if =" scope.row.effectiveTime !=null" >
19+ <font v-if =" scope.row.effectiveTime<new Date().getTime()" color =" red" >
20+ {{ scope.row.effectiveTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}
21+ </font >
22+ <font v-else > {{ scope.row.effectiveTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</font >
23+ </div >
24+ </template >
25+ </el-table-column >
26+
1727 <el-table-column align =" center" label =" 状态" >
1828 <template slot-scope="{row}">
1929 <el-tag :type =" row.status | statusFilter" >
2030 {{ row.status |statusFilter2 }}
2131 </el-tag >
22-
2332 </template >
2433 </el-table-column >
34+ <el-table-column align =" center" label =" 操作" >
35+ <template slot-scope="{row}">
36+
37+ <el-button @click =" handleDelete(row.id)" >删除</el-button >
2538
39+ </template >
40+ </el-table-column >
2641 <!-- <el-table-column align="center" label="Actions" width="241">
2742 <template slot-scope="scope">
2843 <el-button type="danger" size="small" @click="handleDelete(scope.row.id)">Delete</el-button>
3146 </el-table >
3247
3348 <pagination v-show =" total>0" :total =" total" :page.sync =" listQuery.page" :limit.sync =" listQuery.pageSize" @pagination =" getList" />
49+
50+ <el-dialog
51+ title =" 生成邀请码"
52+ :visible.sync =" dialogVisible" >
53+ <!-- :before-close="handleClose"-->
54+
55+
56+ <el-form ref =" postForm" :model =" postForm" :rules =" rules" class =" form-container" label-width =" 100px" >
57+
58+ <el-form-item label =" 数量" prop =" quantity" >
59+ <el-input-number :min =" 1" :max =" 100" label =" 数量" v-model =" postForm.quantity" />
60+ </el-form-item >
61+
62+ <el-form-item label =" 有效时间" prop =" effectiveTime" >
63+ <el-date-picker
64+ v-model =" postForm.effectiveTime"
65+ type =" date"
66+ value-format =" timestamp"
67+ placeholder =" 选择日期" >
68+ </el-date-picker >
69+ </el-form-item >
70+ </el-form >
71+
72+ <span slot =" footer" class =" dialog-footer" >
73+ <el-button @click =" dialogVisible = false" >取 消</el-button >
74+ <el-button type =" primary" @click =" handlerGenerate()" >确 定</el-button >
75+ </span >
76+ </el-dialog >
3477 </div >
3578</template >
3679
3780<script >
3881import { list , generate , del } from ' @/api/inviteCode'
3982import Pagination from ' @/components/Pagination' // Secondary package based on el-pagination
83+ import { date } from ' jszip/lib/defaults'
4084
85+ var checkDate = (rule , value , callback ) => {
86+ if (value){
87+ console .log (" value:" + value)
88+ if (value< new Date ().getTime ()){
89+ callback (new Error (" 请选择大于当前时间的的日期" ))
90+ return
91+ }
92+ callback ()
93+ }else {
94+ callback (new Error (" 请选择日期" ))
95+ }
96+ };
97+ const defaultRules = {
98+ quantity: { required: true , trigger: ' blur' },
99+ effectiveTime: { validator: checkDate, trigger: ' blur' },
100+ }
101+ const defaultForm = {
102+ quantity: 1 ,
103+ effectiveTime: null
104+ }
41105export default {
42106 name: ' inviteCodeList' ,
43107 components: { Pagination },
@@ -58,28 +122,44 @@ export default {
58122 }
59123 },
60124 data () {
125+
61126 return {
127+ postForm: Object .assign ({}, defaultForm),
128+ rules: Object .assign ({}, defaultRules),
129+ dialogVisible: false ,
62130 list: null ,
63131 total: 0 ,
64132 listLoading: true ,
65133 listQuery: {
66134 page: 1 ,
67135 pageSize: 10
68136 }
137+
69138 }
70139 },
71140 created () {
72141 this .getList ()
73142 },
74143 methods: {
75- generate () {
76- generate ().then (() => {
144+ handlerGenerate () {
145+ this .$refs .postForm .validate (valid => {
146+
147+ if (valid) {
148+
149+ generate (this .postForm ).then (() => {
77150 this .$message ({
78151 type: ' success' ,
79152 message: ' 生成成功!'
80153 })
81- this .getList ()
154+ this .dialogVisible = false ;
155+ this .getList ();
82156 } )
157+
158+ }else {
159+ return false ;
160+ }
161+ })
162+
83163
84164 },
85165 handleDelete (id ) {
0 commit comments