Browse Source

create GambleMember

Unknown 7 years ago
parent
commit
d1ca504828
2 changed files with 61 additions and 12 deletions
  1. 11 0
      src/api/gambleMember.js
  2. 50 12
      src/views/gambleMember/index.vue

+ 11 - 0
src/api/gambleMember.js

@@ -20,3 +20,14 @@ export function updateChips(data) {
20 20
     }
21 21
   })
22 22
 }
23
+
24
+export function createGambleMember(data) {
25
+  return request({
26
+    url: '/gambleMembers',
27
+    method: 'post',
28
+    data: {
29
+      name: data.name,
30
+      chips: data.chips
31
+    }
32
+  })
33
+}

+ 50 - 12
src/views/gambleMember/index.vue

@@ -1,5 +1,8 @@
1 1
 <template>
2
-  <div class="app-container">
2
+<div class="app-container calendar-list-container">
3
+    <div class="app-container">
4
+        <el-button class="filter-item" @click="handleCreate" type="primary" icon="el-icon-edit">創建</el-button>
5
+    </div>
3 6
     <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
4 7
       <el-table-column align="center" label='ID' >
5 8
         <template slot-scope="scope">
@@ -31,16 +34,18 @@
31 34
 
32 35
     <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
33 36
       <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="100px" style='width: 400px; margin-left:50px;'>
34
-        <el-form-item label="ID" prop="id">
37
+        <el-form-item v-if="dialogStatus=='deposit'" label="ID" prop="id">
35 38
           <el-input v-model="temp.id" :disabled="true"></el-input>
36 39
         </el-form-item>
37 40
         <el-form-item label="名稱" prop="name">
38
-          <el-input v-model="temp.name" :disabled="true"></el-input>
41
+          <el-input v-if="dialogStatus=='deposit'" v-model="temp.name" :disabled="true"></el-input>
42
+          <el-input v-if="dialogStatus=='create'" v-model="temp.name"></el-input>          
39 43
         </el-form-item>
40 44
         <el-form-item label="點數" prop="chips">
41
-          <el-input v-model="temp.chips" :disabled="true"></el-input>
45
+          <el-input v-if="dialogStatus=='deposit'" v-model="temp.chips" :disabled="true"></el-input>
46
+          <el-input v-if="dialogStatus=='create'" v-model="temp.chips"></el-input>          
42 47
         </el-form-item>
43
-        <el-form-item label="加值點數" prop="depositChips">
48
+        <el-form-item v-if="dialogStatus=='deposit'" label="加值點數" prop="depositChips">
44 49
           <el-input placeholder="請輸入加值金額" v-model="temp.depositChips">
45 50
           </el-input>
46 51
         </el-form-item>
@@ -55,7 +60,7 @@
55 60
 </template>
56 61
 
57 62
 <script>
58
-import { fetchList, updateChips } from '@/api/gambleMember'
63
+import { fetchList, updateChips, createGambleMember } from '@/api/gambleMember'
59 64
 
60 65
 export default {
61 66
   data() {
@@ -74,11 +79,9 @@ export default {
74 79
       temp: {
75 80
         id: undefined,
76 81
         importance: 1,
77
-        remark: '',
78
-        timestamp: new Date(),
79
-        title: '',
80
-        type: '',
81
-        status: 'published'
82
+        name: '',
83
+        chips: '',
84
+        depositChips: '',
82 85
       },
83 86
       dialogFormVisible: false,
84 87
       dialogStatus: '',
@@ -87,7 +90,9 @@ export default {
87 90
         create: '新增'
88 91
       },
89 92
       rules: {
90
-        depositChips: [{pattern: /^\+?[1-9][0-9]*$/, required: true, message: '只能儲值整數', trigger: 'change' }],
93
+        depositChips: [{ pattern: /^\+?[1-9][0-9]*$/, required: true, message: '請輸入整數', trigger: 'change' }],
94
+        chips: [{ pattern: /^\+?[1-9][0-9]*$/, required: true, message: '請輸入整數', trigger: 'change' }],
95
+        name: [{ type: 'string', required: true, message: '必填', trigger: 'change' }]        
91 96
       }
92 97
     }
93 98
   },
@@ -136,6 +141,39 @@ export default {
136 141
         }
137 142
       })
138 143
     },
144
+    resetTemp() {
145
+      this.temp = {
146
+        id: undefined,
147
+        name: '',
148
+        chips: '',
149
+        depositChips: '',
150
+      }
151
+    },
152
+    handleCreate() {
153
+      this.resetTemp()
154
+      this.dialogStatus = 'create'
155
+      this.dialogFormVisible = true
156
+      this.$nextTick(() => {
157
+        this.$refs['dataForm'].clearValidate()
158
+      })
159
+    },
160
+    createData() {
161
+      this.$refs['dataForm'].validate((valid) => {
162
+        if (valid) {
163
+          createGambleMember(this.temp).then(() => {
164
+            this.list.unshift(this.temp)
165
+            this.dialogFormVisible = false
166
+            this.$notify({
167
+              title: '成功',
168
+              message: '創建成功',
169
+              type: 'success',
170
+              duration: 2000
171
+            })
172
+            // this.getList() 
173
+          }) 
174
+        }
175
+      })
176
+    },
139 177
     handleSizeChange(val) {
140 178
       this.listQuery.limit = val
141 179
       this.getList()