bi-element-ui 1.1.8 → 1.1.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +3 -3
- package/.eslintignore +1 -1
- package/.prettierrc +8 -8
- package/.prettierrc.json +8 -8
- package/.vscode/extensions.json +3 -3
- package/.vscode/settings.json +2 -2
- package/README.md +148 -148
- package/cypress.json +3 -3
- package/dist/css/about.734427a8.css +1 -0
- package/dist/css/chunk-vendors.8b3b4be2.css +22 -0
- package/dist/css/index.9e71d803.css +1 -0
- package/dist/index.html +1 -1
- package/dist/js/about.4ff3d4f9.js +2 -0
- package/dist/js/chunk-vendors.d907e1f2.js +387 -0
- package/dist/js/index.66b4892a.js +11 -0
- package/lib/{bi-element-ui.common.js → Bi-element-ui.common.js} +190 -61
- package/lib/{bi-element-ui.umd.js → Bi-element-ui.umd.js} +190 -61
- package/lib/{bi-element-ui.umd.min.js → Bi-element-ui.umd.min.js} +5 -5
- package/lib/demo.html +10 -10
- package/package-lock2.json +17309 -17309
- package/package.json +1 -1
- package/src/components/BiDatePicker/datePickerOption.js +163 -163
- package/src/components/BiDatePicker/index.vue +59 -59
- package/src/components/BiTable/columu.vue +81 -81
- package/src/components/BiTable/forced.js +63 -63
- package/src/components/BiTable/index.js +6 -6
- package/src/components/BiTable/render.vue +13 -13
- package/src/components/BiTable/table.vue +179 -179
- package/src/components/BiTableColumn/Group.vue +275 -275
- package/src/components/BiTableColumn/api.js +16 -16
- package/src/components/BiTooltipIcon/index.vue +63 -63
- package/src/components/EditBtn.vue +15 -15
- package/src/components/FreeButton/index.vue +50 -50
- package/src/components/Pagination/index.vue +91 -91
- package/src/components/Pagination/scrollTo.js +65 -65
- package/src/router/index.js +44 -44
- package/src/store/index.js +11 -11
- package/src/table.js +86 -0
- package/src/views/Date.vue +96 -96
- package/src/views/Home.vue +11 -0
- package/src/views/Layout.vue +34 -34
- package/src/views/Scene.vue +111 -111
- package/src/views/Table.vue +190 -173
- package/src/views/showData.vue +2 -2
- package/tests/e2e/.eslintrc.js +10 -10
- package/tests/e2e/plugins/index.js +25 -25
- package/tests/e2e/specs/test.js +8 -8
- package/tests/e2e/support/commands.js +25 -25
- package/tests/e2e/support/index.js +20 -20
- package/tests/unit/example.spec.js +13 -13
- package//345/211/215/347/253/257ui/346/240/267/345/274/217/350/247/204/350/214/203.md +101 -101
- package/dist/css/about.f927ac1d.css +0 -1
- package/dist/css/chunk-vendors.bce393fb.css +0 -1
- package/dist/css/index.9da9fdde.css +0 -1
- package/dist/js/about.49a721d0.js +0 -2
- package/dist/js/chunk-vendors.008a0caf.js +0 -313
- package/dist/js/index.e9532c02.js +0 -11
- package/pnpm-lock.yaml +0 -13329
- /package/lib/{bi-element-ui.css → Bi-element-ui.css} +0 -0
package/src/store/index.js
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
import Vue from 'vue'
|
2
|
-
import Vuex from 'vuex'
|
3
|
-
|
4
|
-
Vue.use(Vuex)
|
5
|
-
|
6
|
-
export default new Vuex.Store({
|
7
|
-
state: {},
|
8
|
-
mutations: {},
|
9
|
-
actions: {},
|
10
|
-
modules: {}
|
11
|
-
})
|
1
|
+
import Vue from 'vue'
|
2
|
+
import Vuex from 'vuex'
|
3
|
+
|
4
|
+
Vue.use(Vuex)
|
5
|
+
|
6
|
+
export default new Vuex.Store({
|
7
|
+
state: {},
|
8
|
+
mutations: {},
|
9
|
+
actions: {},
|
10
|
+
modules: {}
|
11
|
+
})
|
package/src/table.js
CHANGED
@@ -91,6 +91,92 @@ export default {
|
|
91
91
|
}
|
92
92
|
}
|
93
93
|
],
|
94
|
+
duojibiaotou: [
|
95
|
+
{
|
96
|
+
label: '日期',
|
97
|
+
prop: 'date',
|
98
|
+
fixed: 'left',
|
99
|
+
minWidth: '100px',
|
100
|
+
renderHeader: (h) => {
|
101
|
+
return <span>日期456</span>
|
102
|
+
}
|
103
|
+
},
|
104
|
+
{
|
105
|
+
label: '组',
|
106
|
+
fixed: 'left',
|
107
|
+
children: [
|
108
|
+
{
|
109
|
+
label: '组2',
|
110
|
+
fixed: 'left',
|
111
|
+
children: [
|
112
|
+
{
|
113
|
+
label: '姓名',
|
114
|
+
prop: 'name',
|
115
|
+
fixed: 'left',
|
116
|
+
renderHeader: (h) => {
|
117
|
+
return <span>姓名456</span>
|
118
|
+
},
|
119
|
+
render: (h, scope) => {
|
120
|
+
const { row } = scope
|
121
|
+
return <span>{row.name}123</span>
|
122
|
+
}
|
123
|
+
},
|
124
|
+
{
|
125
|
+
label: '省份',
|
126
|
+
prop: 'province',
|
127
|
+
fixed: 'left',
|
128
|
+
renderHeader: (h) => {
|
129
|
+
return <span>省份456</span>
|
130
|
+
}
|
131
|
+
}
|
132
|
+
]
|
133
|
+
},
|
134
|
+
{
|
135
|
+
label: '省份3',
|
136
|
+
fixed: 'left',
|
137
|
+
prop: 'province3',
|
138
|
+
renderHeader: (h) => {
|
139
|
+
return <span>省份456</span>
|
140
|
+
},
|
141
|
+
render: (h, { row }) => {
|
142
|
+
return <span>{row.province}123</span>
|
143
|
+
}
|
144
|
+
}
|
145
|
+
]
|
146
|
+
},
|
147
|
+
{ label: '市区', prop: 'city', minWidth: '100px' },
|
148
|
+
{ label: '地址', prop: 'address', minWidth: '100px' },
|
149
|
+
{ label: '邮编', prop: 'zip', minWidth: '200px' },
|
150
|
+
{
|
151
|
+
label: '组件',
|
152
|
+
prop: 'cmp',
|
153
|
+
minWidth: '400px',
|
154
|
+
component: EditBtn,
|
155
|
+
listeners: {
|
156
|
+
'row-edit'(row) {
|
157
|
+
console.log('row-edit', row)
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
],
|
162
|
+
duojibiaotou2: [
|
163
|
+
{ label: '日期', prop: 'date' },
|
164
|
+
{ label: '姓名', prop: 'name' },
|
165
|
+
{ label: '省份', prop: 'province' },
|
166
|
+
{ label: '市区', prop: 'city' },
|
167
|
+
{ label: '地址', prop: 'address' },
|
168
|
+
{ label: '邮编', prop: 'zip' },
|
169
|
+
{
|
170
|
+
label: '组件',
|
171
|
+
prop: 'cmp',
|
172
|
+
component: EditBtn,
|
173
|
+
listeners: {
|
174
|
+
'row-edit'(row) {
|
175
|
+
console.log('row-edit', row)
|
176
|
+
}
|
177
|
+
}
|
178
|
+
}
|
179
|
+
],
|
94
180
|
|
95
181
|
typesColumn: [
|
96
182
|
{ label: '序号', prop: 'index', type: 'index' },
|
package/src/views/Date.vue
CHANGED
@@ -1,96 +1,96 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="free-table">
|
3
|
-
<div class="example-table-box">
|
4
|
-
<p>基础日期-{{ date }}</p>
|
5
|
-
<BiDatePicker v-model="date" type="date" placeholder="选择日期"></BiDatePicker>
|
6
|
-
</div>
|
7
|
-
<div class="example-table-box">
|
8
|
-
<p>基础周-{{ date1 }}</p>
|
9
|
-
<BiDatePicker v-model="date1" type="week" placeholder="选择周"></BiDatePicker>
|
10
|
-
</div>
|
11
|
-
<div class="example-table-box">
|
12
|
-
<p>基础月-{{ date2 }}</p>
|
13
|
-
<BiDatePicker v-model="date2" type="month" placeholder="选择周"></BiDatePicker>
|
14
|
-
</div>
|
15
|
-
<div class="example-table-box">
|
16
|
-
<p>范围日期-{{ date3 }}</p>
|
17
|
-
<BiDatePicker v-model="date3" type="daterange" placeholder="选择日期1" :picker-option="pickerOptions1"></BiDatePicker>
|
18
|
-
<p>范围日期-{{ date7 }}</p>
|
19
|
-
<BiDatePicker v-model="date7" type="daterange" placeholder="选择日期2" :picker-option="pickerOptions2"></BiDatePicker>
|
20
|
-
</div>
|
21
|
-
<div class="example-table-box">
|
22
|
-
<p>范围月-{{ date5 }}</p>
|
23
|
-
<BiDatePicker v-model="date5" type="monthrange" placeholder="选择日期" format="yyyy-MM"></BiDatePicker>
|
24
|
-
</div>
|
25
|
-
<div class="example-table-box">
|
26
|
-
<p>范围日期时间-{{ date6 }}</p>
|
27
|
-
<BiDatePicker v-model="date6" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></BiDatePicker>
|
28
|
-
</div>
|
29
|
-
</div>
|
30
|
-
</template>
|
31
|
-
|
32
|
-
<script>
|
33
|
-
// import BiDatepicker from '@/components/BiDatePicker'
|
34
|
-
import moment from 'moment'
|
35
|
-
|
36
|
-
export default {
|
37
|
-
components: {
|
38
|
-
// BiDatepicker
|
39
|
-
},
|
40
|
-
data() {
|
41
|
-
return {
|
42
|
-
date: '',
|
43
|
-
date1: '',
|
44
|
-
date2: '',
|
45
|
-
date3: [],
|
46
|
-
date4: [],
|
47
|
-
date5: [],
|
48
|
-
date6: [],
|
49
|
-
date7: [],
|
50
|
-
columnsProps: {
|
51
|
-
width: 'auto'
|
52
|
-
},
|
53
|
-
total: 0,
|
54
|
-
listQuery: {
|
55
|
-
page: 2,
|
56
|
-
limit: 20
|
57
|
-
},
|
58
|
-
editForm: {},
|
59
|
-
dialogVisible: false,
|
60
|
-
pickerOptions1: {
|
61
|
-
firstDayOfWeek: 1,
|
62
|
-
onPick: ({ minDate, maxDate }) => {
|
63
|
-
console.log(1, moment(minDate).format('YYYY-MM-DD'))
|
64
|
-
}
|
65
|
-
},
|
66
|
-
pickerOptions2: {
|
67
|
-
firstDayOfWeek: 1,
|
68
|
-
onPick: ({ minDate, maxDate }) => {
|
69
|
-
console.log(2, moment(minDate).format('YYYY-MM-DD'))
|
70
|
-
}
|
71
|
-
}
|
72
|
-
}
|
73
|
-
},
|
74
|
-
methods: {
|
75
|
-
selectionChange(rows) {
|
76
|
-
console.log('selected', rows)
|
77
|
-
},
|
78
|
-
getList() {},
|
79
|
-
openDialog({ row }) {
|
80
|
-
this.editForm = Object.assign({}, row)
|
81
|
-
this.dialogVisible = true
|
82
|
-
}
|
83
|
-
}
|
84
|
-
}
|
85
|
-
</script>
|
86
|
-
|
87
|
-
<style lang="scss" scoped>
|
88
|
-
.example-table-box {
|
89
|
-
margin: 25px 50px;
|
90
|
-
|
91
|
-
p {
|
92
|
-
text-align: left;
|
93
|
-
font-weight: 700;
|
94
|
-
}
|
95
|
-
}
|
96
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div class="free-table">
|
3
|
+
<div class="example-table-box">
|
4
|
+
<p>基础日期-{{ date }}</p>
|
5
|
+
<BiDatePicker v-model="date" type="date" placeholder="选择日期"></BiDatePicker>
|
6
|
+
</div>
|
7
|
+
<div class="example-table-box">
|
8
|
+
<p>基础周-{{ date1 }}</p>
|
9
|
+
<BiDatePicker v-model="date1" type="week" placeholder="选择周"></BiDatePicker>
|
10
|
+
</div>
|
11
|
+
<div class="example-table-box">
|
12
|
+
<p>基础月-{{ date2 }}</p>
|
13
|
+
<BiDatePicker v-model="date2" type="month" placeholder="选择周"></BiDatePicker>
|
14
|
+
</div>
|
15
|
+
<div class="example-table-box">
|
16
|
+
<p>范围日期-{{ date3 }}</p>
|
17
|
+
<BiDatePicker v-model="date3" type="daterange" placeholder="选择日期1" :picker-option="pickerOptions1"></BiDatePicker>
|
18
|
+
<p>范围日期-{{ date7 }}</p>
|
19
|
+
<BiDatePicker v-model="date7" type="daterange" placeholder="选择日期2" :picker-option="pickerOptions2"></BiDatePicker>
|
20
|
+
</div>
|
21
|
+
<div class="example-table-box">
|
22
|
+
<p>范围月-{{ date5 }}</p>
|
23
|
+
<BiDatePicker v-model="date5" type="monthrange" placeholder="选择日期" format="yyyy-MM"></BiDatePicker>
|
24
|
+
</div>
|
25
|
+
<div class="example-table-box">
|
26
|
+
<p>范围日期时间-{{ date6 }}</p>
|
27
|
+
<BiDatePicker v-model="date6" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></BiDatePicker>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</template>
|
31
|
+
|
32
|
+
<script>
|
33
|
+
// import BiDatepicker from '@/components/BiDatePicker'
|
34
|
+
import moment from 'moment'
|
35
|
+
|
36
|
+
export default {
|
37
|
+
components: {
|
38
|
+
// BiDatepicker
|
39
|
+
},
|
40
|
+
data() {
|
41
|
+
return {
|
42
|
+
date: '',
|
43
|
+
date1: '',
|
44
|
+
date2: '',
|
45
|
+
date3: [],
|
46
|
+
date4: [],
|
47
|
+
date5: [],
|
48
|
+
date6: [],
|
49
|
+
date7: [],
|
50
|
+
columnsProps: {
|
51
|
+
width: 'auto'
|
52
|
+
},
|
53
|
+
total: 0,
|
54
|
+
listQuery: {
|
55
|
+
page: 2,
|
56
|
+
limit: 20
|
57
|
+
},
|
58
|
+
editForm: {},
|
59
|
+
dialogVisible: false,
|
60
|
+
pickerOptions1: {
|
61
|
+
firstDayOfWeek: 1,
|
62
|
+
onPick: ({ minDate, maxDate }) => {
|
63
|
+
console.log(1, moment(minDate).format('YYYY-MM-DD'))
|
64
|
+
}
|
65
|
+
},
|
66
|
+
pickerOptions2: {
|
67
|
+
firstDayOfWeek: 1,
|
68
|
+
onPick: ({ minDate, maxDate }) => {
|
69
|
+
console.log(2, moment(minDate).format('YYYY-MM-DD'))
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
},
|
74
|
+
methods: {
|
75
|
+
selectionChange(rows) {
|
76
|
+
console.log('selected', rows)
|
77
|
+
},
|
78
|
+
getList() {},
|
79
|
+
openDialog({ row }) {
|
80
|
+
this.editForm = Object.assign({}, row)
|
81
|
+
this.dialogVisible = true
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
</script>
|
86
|
+
|
87
|
+
<style lang="scss" scoped>
|
88
|
+
.example-table-box {
|
89
|
+
margin: 25px 50px;
|
90
|
+
|
91
|
+
p {
|
92
|
+
text-align: left;
|
93
|
+
font-weight: 700;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
</style>
|
package/src/views/Home.vue
CHANGED
@@ -384,6 +384,17 @@ export default {
|
|
384
384
|
label: 'v-model',
|
385
385
|
prop: 'other',
|
386
386
|
fixed: 'right',
|
387
|
+
|
388
|
+
renderHeader: (h) => {
|
389
|
+
return (
|
390
|
+
<div>
|
391
|
+
<el-input />
|
392
|
+
<el-tooltip effect={'dark'} content={'首日付费金额/消耗2222'} placement={'top'}>
|
393
|
+
<span style={{ textAlign: 'right', width: '100%', display: 'inline-block' }}>ROI</span>
|
394
|
+
</el-tooltip>
|
395
|
+
</div>
|
396
|
+
)
|
397
|
+
},
|
387
398
|
render: (h, scope) => {
|
388
399
|
return h('input', {
|
389
400
|
on: {
|
package/src/views/Layout.vue
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="box">
|
3
|
-
<header>
|
4
|
-
|
5
|
-
<BiNavbarTool
|
6
|
-
:token="token"
|
7
|
-
:avatar="avatar"
|
8
|
-
/>
|
9
|
-
</header>
|
10
|
-
</div>
|
11
|
-
</template>
|
12
|
-
|
13
|
-
<script>
|
14
|
-
export default {
|
15
|
-
data() {
|
16
|
-
return {
|
17
|
-
token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIxNTc1NzE4NTMyMiIsImxvZ2luX2VudiI6IiIsImlhdCI6MTcwODMzNTUyNywiZXhwIjoxNzA4OTQwMzI3LCJuYmYiOjE3MDgzMzU1MjcsInN1YiI6InRva2Vu6K6k6K-BIiwianRpIjoiOWEzYWNkYTBkZDhlYmRjNzM3NTAwYzc2MGU0MWQ5N2YifQ.5XzkjXWgiNpA0yUYbNTT8TjPttdlnPWQzggcDNZEB20',
|
18
|
-
avatar: 'https://static-legacy.dingtalk.com/media/lADPBbCc1SE7SD7NAuzNAug_744_748.jpg?imageView2/1/w/80/h/80'
|
19
|
-
}
|
20
|
-
},
|
21
|
-
methods: {}
|
22
|
-
}
|
23
|
-
</script>
|
24
|
-
|
25
|
-
<style scoped>
|
26
|
-
.box {
|
27
|
-
background: #ccc;
|
28
|
-
height: 200px;
|
29
|
-
padding: 10px 50px;
|
30
|
-
}
|
31
|
-
header {
|
32
|
-
height: 50px;
|
33
|
-
background: #fff;
|
34
|
-
}
|
1
|
+
<template>
|
2
|
+
<div class="box">
|
3
|
+
<header>
|
4
|
+
|
5
|
+
<BiNavbarTool
|
6
|
+
:token="token"
|
7
|
+
:avatar="avatar"
|
8
|
+
/>
|
9
|
+
</header>
|
10
|
+
</div>
|
11
|
+
</template>
|
12
|
+
|
13
|
+
<script>
|
14
|
+
export default {
|
15
|
+
data() {
|
16
|
+
return {
|
17
|
+
token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIxNTc1NzE4NTMyMiIsImxvZ2luX2VudiI6IiIsImlhdCI6MTcwODMzNTUyNywiZXhwIjoxNzA4OTQwMzI3LCJuYmYiOjE3MDgzMzU1MjcsInN1YiI6InRva2Vu6K6k6K-BIiwianRpIjoiOWEzYWNkYTBkZDhlYmRjNzM3NTAwYzc2MGU0MWQ5N2YifQ.5XzkjXWgiNpA0yUYbNTT8TjPttdlnPWQzggcDNZEB20',
|
18
|
+
avatar: 'https://static-legacy.dingtalk.com/media/lADPBbCc1SE7SD7NAuzNAug_744_748.jpg?imageView2/1/w/80/h/80'
|
19
|
+
}
|
20
|
+
},
|
21
|
+
methods: {}
|
22
|
+
}
|
23
|
+
</script>
|
24
|
+
|
25
|
+
<style scoped>
|
26
|
+
.box {
|
27
|
+
background: #ccc;
|
28
|
+
height: 200px;
|
29
|
+
padding: 10px 50px;
|
30
|
+
}
|
31
|
+
header {
|
32
|
+
height: 50px;
|
33
|
+
background: #fff;
|
34
|
+
}
|
35
35
|
</style>
|
package/src/views/Scene.vue
CHANGED
@@ -1,111 +1,111 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="free-table-container">
|
3
|
-
<free-button @search="search"></free-button>
|
4
|
-
|
5
|
-
<free-table v-loading="loading" style="min-height: 50vh" border pagination :data="data" :column="column" :total="total" :page.sync="params.page" :limit.sync="params.limit" @pagination="getList"></free-table>
|
6
|
-
|
7
|
-
<el-dialog title="收货地址" :visible.sync="dialogVisible">
|
8
|
-
<el-form :model="editForm" label-width="100px">
|
9
|
-
<el-form-item label="名称">
|
10
|
-
<el-input v-model="editForm.title" autocomplete="off"></el-input>
|
11
|
-
</el-form-item>
|
12
|
-
<el-form-item v-if="editForm.author" label="作者">
|
13
|
-
<el-input v-model="editForm.author.loginname"></el-input>
|
14
|
-
</el-form-item>
|
15
|
-
</el-form>
|
16
|
-
<div slot="footer" class="dialog-footer">
|
17
|
-
<el-button @click="dialogVisible = false">取 消</el-button>
|
18
|
-
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
19
|
-
</div>
|
20
|
-
</el-dialog>
|
21
|
-
</div>
|
22
|
-
</template>
|
23
|
-
|
24
|
-
<script>
|
25
|
-
import FreeButton from '@/components/FreeButton'
|
26
|
-
import FreeTable from '@/components/FreeTable'
|
27
|
-
import axios from 'axios'
|
28
|
-
|
29
|
-
export default {
|
30
|
-
components: {
|
31
|
-
FreeButton,
|
32
|
-
FreeTable
|
33
|
-
},
|
34
|
-
data() {
|
35
|
-
return {
|
36
|
-
column: [
|
37
|
-
{ prop: 'title', label: '名称', minWidth: 200 },
|
38
|
-
{
|
39
|
-
prop: 'author',
|
40
|
-
label: '作者',
|
41
|
-
render: (h, scope) => {
|
42
|
-
return <span>{scope.row.author.loginname}</span>
|
43
|
-
}
|
44
|
-
},
|
45
|
-
{ prop: 'tab', label: '类目' },
|
46
|
-
{ prop: 'reply_count', label: '回复数', width: 100 },
|
47
|
-
{ prop: 'visit_count', label: '预览量', width: 100 },
|
48
|
-
{
|
49
|
-
prop: 'action',
|
50
|
-
label: '操作',
|
51
|
-
render: (h, scope) => {
|
52
|
-
return (
|
53
|
-
<div>
|
54
|
-
<el-button type="text" size="small" class="el-icon-edit" onClick={() => this.openDialog(scope)}>
|
55
|
-
编辑
|
56
|
-
</el-button>
|
57
|
-
<el-button type="text" size="small" class="el-icon-delete" onClick={() => this.delHandle(scope)}>
|
58
|
-
删除
|
59
|
-
</el-button>
|
60
|
-
</div>
|
61
|
-
)
|
62
|
-
}
|
63
|
-
}
|
64
|
-
],
|
65
|
-
loading: false,
|
66
|
-
data: [],
|
67
|
-
total: 0,
|
68
|
-
params: {
|
69
|
-
tab: 'share',
|
70
|
-
page: 1,
|
71
|
-
limit: 10
|
72
|
-
},
|
73
|
-
editForm: {},
|
74
|
-
dialogVisible: false
|
75
|
-
}
|
76
|
-
},
|
77
|
-
mounted() {
|
78
|
-
this.getList()
|
79
|
-
},
|
80
|
-
methods: {
|
81
|
-
async getList() {
|
82
|
-
this.loading = true
|
83
|
-
const { params } = this
|
84
|
-
const url = 'https://cnodejs.org/api/v1/topics'
|
85
|
-
const { data } = await axios({ method: 'get', url, params })
|
86
|
-
this.data = data.data || []
|
87
|
-
this.total = 500
|
88
|
-
this.loading = false
|
89
|
-
},
|
90
|
-
|
91
|
-
async delHandle({ row }) {
|
92
|
-
console.log(row)
|
93
|
-
await this.$message.success('这是一条删除成功提示')
|
94
|
-
},
|
95
|
-
|
96
|
-
openDialog({ row }) {
|
97
|
-
this.editForm = Object.assign({}, row)
|
98
|
-
this.dialogVisible = true
|
99
|
-
},
|
100
|
-
search() {
|
101
|
-
alert(12)
|
102
|
-
}
|
103
|
-
}
|
104
|
-
}
|
105
|
-
</script>
|
106
|
-
|
107
|
-
<style>
|
108
|
-
.free-table-container {
|
109
|
-
margin: 20px 50px;
|
110
|
-
}
|
111
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div class="free-table-container">
|
3
|
+
<free-button @search="search"></free-button>
|
4
|
+
|
5
|
+
<free-table v-loading="loading" style="min-height: 50vh" border pagination :data="data" :column="column" :total="total" :page.sync="params.page" :limit.sync="params.limit" @pagination="getList"></free-table>
|
6
|
+
|
7
|
+
<el-dialog title="收货地址" :visible.sync="dialogVisible">
|
8
|
+
<el-form :model="editForm" label-width="100px">
|
9
|
+
<el-form-item label="名称">
|
10
|
+
<el-input v-model="editForm.title" autocomplete="off"></el-input>
|
11
|
+
</el-form-item>
|
12
|
+
<el-form-item v-if="editForm.author" label="作者">
|
13
|
+
<el-input v-model="editForm.author.loginname"></el-input>
|
14
|
+
</el-form-item>
|
15
|
+
</el-form>
|
16
|
+
<div slot="footer" class="dialog-footer">
|
17
|
+
<el-button @click="dialogVisible = false">取 消</el-button>
|
18
|
+
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
19
|
+
</div>
|
20
|
+
</el-dialog>
|
21
|
+
</div>
|
22
|
+
</template>
|
23
|
+
|
24
|
+
<script>
|
25
|
+
import FreeButton from '@/components/FreeButton'
|
26
|
+
import FreeTable from '@/components/FreeTable'
|
27
|
+
import axios from 'axios'
|
28
|
+
|
29
|
+
export default {
|
30
|
+
components: {
|
31
|
+
FreeButton,
|
32
|
+
FreeTable
|
33
|
+
},
|
34
|
+
data() {
|
35
|
+
return {
|
36
|
+
column: [
|
37
|
+
{ prop: 'title', label: '名称', minWidth: 200 },
|
38
|
+
{
|
39
|
+
prop: 'author',
|
40
|
+
label: '作者',
|
41
|
+
render: (h, scope) => {
|
42
|
+
return <span>{scope.row.author.loginname}</span>
|
43
|
+
}
|
44
|
+
},
|
45
|
+
{ prop: 'tab', label: '类目' },
|
46
|
+
{ prop: 'reply_count', label: '回复数', width: 100 },
|
47
|
+
{ prop: 'visit_count', label: '预览量', width: 100 },
|
48
|
+
{
|
49
|
+
prop: 'action',
|
50
|
+
label: '操作',
|
51
|
+
render: (h, scope) => {
|
52
|
+
return (
|
53
|
+
<div>
|
54
|
+
<el-button type="text" size="small" class="el-icon-edit" onClick={() => this.openDialog(scope)}>
|
55
|
+
编辑
|
56
|
+
</el-button>
|
57
|
+
<el-button type="text" size="small" class="el-icon-delete" onClick={() => this.delHandle(scope)}>
|
58
|
+
删除
|
59
|
+
</el-button>
|
60
|
+
</div>
|
61
|
+
)
|
62
|
+
}
|
63
|
+
}
|
64
|
+
],
|
65
|
+
loading: false,
|
66
|
+
data: [],
|
67
|
+
total: 0,
|
68
|
+
params: {
|
69
|
+
tab: 'share',
|
70
|
+
page: 1,
|
71
|
+
limit: 10
|
72
|
+
},
|
73
|
+
editForm: {},
|
74
|
+
dialogVisible: false
|
75
|
+
}
|
76
|
+
},
|
77
|
+
mounted() {
|
78
|
+
this.getList()
|
79
|
+
},
|
80
|
+
methods: {
|
81
|
+
async getList() {
|
82
|
+
this.loading = true
|
83
|
+
const { params } = this
|
84
|
+
const url = 'https://cnodejs.org/api/v1/topics'
|
85
|
+
const { data } = await axios({ method: 'get', url, params })
|
86
|
+
this.data = data.data || []
|
87
|
+
this.total = 500
|
88
|
+
this.loading = false
|
89
|
+
},
|
90
|
+
|
91
|
+
async delHandle({ row }) {
|
92
|
+
console.log(row)
|
93
|
+
await this.$message.success('这是一条删除成功提示')
|
94
|
+
},
|
95
|
+
|
96
|
+
openDialog({ row }) {
|
97
|
+
this.editForm = Object.assign({}, row)
|
98
|
+
this.dialogVisible = true
|
99
|
+
},
|
100
|
+
search() {
|
101
|
+
alert(12)
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
</script>
|
106
|
+
|
107
|
+
<style>
|
108
|
+
.free-table-container {
|
109
|
+
margin: 20px 50px;
|
110
|
+
}
|
111
|
+
</style>
|