diff --git a/mock/article.js b/mock/article.js index bc236eb9..7980ac1b 100644 --- a/mock/article.js +++ b/mock/article.js @@ -18,7 +18,7 @@ for (let i = 0; i < count; i++) { forecast: '@float(0, 100, 2, 2)', importance: '@integer(1, 3)', 'type|1': ['CN', 'US', 'JP', 'EU'], - 'status|1': ['published', 'draft', 'deleted'], + 'status|1': ['published', 'draft'], display_time: '@datetime', comment_disabled: true, pageviews: '@integer(300, 5000)', diff --git a/src/views/table/complex-table.vue b/src/views/table/complex-table.vue index d35bf184..295c5fc4 100644 --- a/src/views/table/complex-table.vue +++ b/src/views/table/complex-table.vue @@ -80,7 +80,7 @@ </template> </el-table-column> <el-table-column label="Actions" align="center" width="230" class-name="small-padding fixed-width"> - <template slot-scope="{row}"> + <template slot-scope="{row,$index}"> <el-button type="primary" size="mini" @click="handleUpdate(row)"> Edit </el-button> @@ -90,7 +90,7 @@ <el-button v-if="row.status!='draft'" size="mini" @click="handleModifyStatus(row,'draft')"> Draft </el-button> - <el-button v-if="row.status!='deleted'" size="mini" type="danger" @click="handleModifyStatus(row,'deleted')"> + <el-button v-if="row.status!='deleted'" size="mini" type="danger" @click="handleDelete(row,$index)"> Delete </el-button> </template> @@ -319,13 +319,8 @@ export default { const tempData = Object.assign({}, this.temp) tempData.timestamp = +new Date(tempData.timestamp) // change Thu Nov 30 2017 16:41:05 GMT+0800 (CST) to 1512031311464 updateArticle(tempData).then(() => { - for (const v of this.list) { - if (v.id === this.temp.id) { - const index = this.list.indexOf(v) - this.list.splice(index, 1, this.temp) - break - } - } + const index = this.list.findIndex(v => v.id === this.temp.id) + this.list.splice(index, 1, this.temp) this.dialogFormVisible = false this.$notify({ title: 'Success', @@ -337,14 +332,13 @@ export default { } }) }, - handleDelete(row) { + handleDelete(row, index) { this.$notify({ title: 'Success', message: 'Delete Successfully', type: 'success', duration: 2000 }) - const index = this.list.indexOf(row) this.list.splice(index, 1) }, handleFetchPv(pv) { @@ -358,7 +352,7 @@ export default { import('@/vendor/Export2Excel').then(excel => { const tHeader = ['timestamp', 'title', 'type', 'importance', 'status'] const filterVal = ['timestamp', 'title', 'type', 'importance', 'status'] - const data = this.formatJson(filterVal, this.list) + const data = this.formatJson(filterVal) excel.export_json_to_excel({ header: tHeader, data, @@ -367,8 +361,8 @@ export default { this.downloadLoading = false }) }, - formatJson(filterVal, jsonData) { - return jsonData.map(v => filterVal.map(j => { + formatJson(filterVal) { + return this.list.map(v => filterVal.map(j => { if (j === 'timestamp') { return parseTime(v[j]) } else { @@ -378,11 +372,7 @@ export default { }, getSortClass: function(key) { const sort = this.listQuery.sort - return sort === `+${key}` - ? 'ascending' - : sort === `-${key}` - ? 'descending' - : '' + return sort === `+${key}` ? 'ascending' : 'descending' } } }