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
     }
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
 <template>
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
     <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
6
     <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
4
       <el-table-column align="center" label='ID' >
7
       <el-table-column align="center" label='ID' >
5
         <template slot-scope="scope">
8
         <template slot-scope="scope">
31
 
34
 
32
     <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
35
     <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
33
       <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="100px" style='width: 400px; margin-left:50px;'>
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
           <el-input v-model="temp.id" :disabled="true"></el-input>
38
           <el-input v-model="temp.id" :disabled="true"></el-input>
36
         </el-form-item>
39
         </el-form-item>
37
         <el-form-item label="名稱" prop="name">
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
         </el-form-item>
43
         </el-form-item>
40
         <el-form-item label="點數" prop="chips">
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
         </el-form-item>
47
         </el-form-item>
43
-        <el-form-item label="加值點數" prop="depositChips">
48
+        <el-form-item v-if="dialogStatus=='deposit'" label="加值點數" prop="depositChips">
44
           <el-input placeholder="請輸入加值金額" v-model="temp.depositChips">
49
           <el-input placeholder="請輸入加值金額" v-model="temp.depositChips">
45
           </el-input>
50
           </el-input>
46
         </el-form-item>
51
         </el-form-item>
55
 </template>
60
 </template>
56
 
61
 
57
 <script>
62
 <script>
58
-import { fetchList, updateChips } from '@/api/gambleMember'
63
+import { fetchList, updateChips, createGambleMember } from '@/api/gambleMember'
59
 
64
 
60
 export default {
65
 export default {
61
   data() {
66
   data() {
74
       temp: {
79
       temp: {
75
         id: undefined,
80
         id: undefined,
76
         importance: 1,
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
       dialogFormVisible: false,
86
       dialogFormVisible: false,
84
       dialogStatus: '',
87
       dialogStatus: '',
87
         create: '新增'
90
         create: '新增'
88
       },
91
       },
89
       rules: {
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
         }
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
     handleSizeChange(val) {
177
     handleSizeChange(val) {
140
       this.listQuery.limit = val
178
       this.listQuery.limit = val
141
       this.getList()
179
       this.getList()