Browse Source

deposit chips

Unknown 7 years ago
parent
commit
6ffa6000b2
2 changed files with 86 additions and 2 deletions
  1. 10 0
      src/api/gambleMember.js
  2. 76 2
      src/views/gambleMember/index.vue

+ 10 - 0
src/api/gambleMember.js

10
     }
10
     }
11
   })
11
   })
12
 }
12
 }
13
+
14
+export function updateChips(data) {
15
+  return request({
16
+    url: `/gambleMembers/${data.id}/deposit`,
17
+    method: 'put',
18
+    data: {
19
+      chips: data.depositChips
20
+    }
21
+  })
22
+}

+ 76 - 2
src/views/gambleMember/index.vue

18
       </el-table-column>
18
       </el-table-column>
19
       <el-table-column align="center" label="操作">
19
       <el-table-column align="center" label="操作">
20
         <template slot-scope="scope">
20
         <template slot-scope="scope">
21
-          <!-- <span>{{scope.row.display_time}}</span> -->
21
+            <el-button type="primary" size="mini" @click="handleDeposit(scope.row)">儲值</el-button>
22
         </template>
22
         </template>
23
       </el-table-column>
23
       </el-table-column>
24
     </el-table>
24
     </el-table>
28
         :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
28
         :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
29
       </el-pagination>
29
       </el-pagination>
30
     </div>
30
     </div>
31
+
32
+    <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;'>
34
+        <el-form-item label="ID" prop="id">
35
+          <el-input v-model="temp.id" :disabled="true"></el-input>
36
+        </el-form-item>
37
+        <el-form-item label="名稱" prop="name">
38
+          <el-input v-model="temp.name" :disabled="true"></el-input>
39
+        </el-form-item>
40
+        <el-form-item label="點數" prop="chips">
41
+          <el-input v-model="temp.chips" :disabled="true"></el-input>
42
+        </el-form-item>
43
+        <el-form-item label="加值點數" prop="depositChips">
44
+          <el-input placeholder="請輸入加值金額" v-model="temp.depositChips">
45
+          </el-input>
46
+        </el-form-item>
47
+      </el-form>
48
+      <div slot="footer" class="dialog-footer">
49
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
50
+        <el-button v-if="dialogStatus=='create'" type="primary" @click="createData">確 定</el-button>
51
+        <el-button v-if="dialogStatus=='deposit'" type="primary" @click="depositChips">確 定</el-button>
52
+      </div>
53
+    </el-dialog>
31
   </div>
54
   </div>
32
 </template>
55
 </template>
33
 
56
 
34
 <script>
57
 <script>
35
-import { fetchList } from '@/api/gambleMember'
58
+import { fetchList, updateChips } from '@/api/gambleMember'
36
 
59
 
37
 export default {
60
 export default {
38
   data() {
61
   data() {
47
         title: undefined,
70
         title: undefined,
48
         type: undefined,
71
         type: undefined,
49
         sort: '+id'
72
         sort: '+id'
73
+      },
74
+      temp: {
75
+        id: undefined,
76
+        importance: 1,
77
+        remark: '',
78
+        timestamp: new Date(),
79
+        title: '',
80
+        type: '',
81
+        status: 'published'
82
+      },
83
+      dialogFormVisible: false,
84
+      dialogStatus: '',
85
+      textMap: {
86
+        deposit: '儲值',
87
+        create: '新增'
88
+      },
89
+      rules: {
90
+        depositChips: [{pattern: /^\+?[1-9][0-9]*$/, required: true, message: '只能儲值整數', trigger: 'change' }],
50
       }
91
       }
51
     }
92
     }
52
   },
93
   },
62
         this.listLoading = false
103
         this.listLoading = false
63
       })
104
       })
64
     },
105
     },
106
+    handleDeposit(row) {
107
+      this.temp = Object.assign({}, row) // copy obj
108
+      this.temp.timestamp = new Date(this.temp.timestamp)
109
+      this.dialogStatus = 'deposit'
110
+      this.dialogFormVisible = true
111
+      this.$nextTick(() => {
112
+        this.$refs['dataForm'].clearValidate()
113
+      })
114
+    },
115
+    depositChips() {
116
+      this.$refs['dataForm'].validate((valid) => {
117
+        if (valid) {
118
+          const tempData = Object.assign({}, this.temp)
119
+          updateChips(tempData).then(() => {
120
+            for (const v of this.list) {
121
+              if (v.id === this.temp.id) {
122
+                const index = this.list.indexOf(v)
123
+                this.list.splice(index, 1, this.temp)
124
+                break
125
+              }
126
+            }
127
+            this.dialogFormVisible = false
128
+            this.$notify({
129
+              title: '成功',
130
+              message: '儲值成功',
131
+              type: 'success',
132
+              duration: 2000
133
+            })
134
+            this.getList()
135
+          })
136
+        }
137
+      })
138
+    },
65
     handleSizeChange(val) {
139
     handleSizeChange(val) {
66
       this.listQuery.limit = val
140
       this.listQuery.limit = val
67
       this.getList()
141
       this.getList()