-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinlineEdit.vue
119 lines (115 loc) · 2.6 KB
/
inlineEdit.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<template>
<div>
<el-table
border
:width="600"
:data="tableData">
<el-table-column
label="id"
:width="90"
heade-align=center
align=center
prop="id">
</el-table-column>
<el-table-column
label="type1"
:width="150"
header-align="center"
align="center"
prop="type1"
></el-table-column>
<el-table-column
label="type2"
:width="150"
header-align="center"
align="center"
prop="type2"
></el-table-column>
<el-table-column
label="type3"
:width="150"
header-align="center"
align="center"
prop="type3"
></el-table-column>
<el-table-column
label="type4"
:width="150"
header-align="center"
align="center"
prop="type4"
></el-table-column>
<el-table-column
label="type5"
:width="200"
prop="type5"
>
<template scope="scope">
<span v-if="scope.row.edit" @click="scope.row.edit=!scope.row.edit">{{scope.row.type5}}</span>
<el-input v-else="scope.row.edit" @keyup.native="handleKeyup($event, scope.row)" v-model="scope.row.type5" style="text-align:center;"></el-input>
</template>
</el-table-column>
<el-table-column
:width="200"
header-align="center"
align="center"
prop="edit"
label="operate">
<template scope="scope">
<el-button v-if="scope.row.edit"type="primary" icon="edit" size="small" @click="scope.row.edit=!scope.row.edit">编辑</el-button>
<el-button v-else="scope.row.edit" type="success" icon="check" size="small" @click="scope.row.edit=!scope.row.edit">完成</el-button>
<el-button type="danger" @click="deleteRow(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script type="text/ecmascript-6">
import Mock from 'mockjs'
import api from './api'
export default {
data () {
return {
tableData: [],
}
},
created () {
api.getCate({})
.then(res => {
if (res.success) {
this.tableData = res.rows;
}
})
.catch(() => {
this.$message.error('get list data error!');
});
},
methods: {
handleKeyup(row) {
if (e.keyCode === 13) {
row.edit = true
this.tableData.some((item, index) => {
if (item.id === row.id) {
this.tableData.splice(index, 1, {...row});
return true;
} else {
return false;
}
});
}
},
deleteRow(row) {
this.tableData.some((item, index) => {
if (item.id === row.id) {
this.tableData.splice(index, 1);
return true;
} else {
return false;
}
});
},
},
}
</script>
<style rel="stylesheet/css">
</style>