htui-yllkbz 1.2.12 → 1.2.16
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/lib/htui.common.js +501 -14
- package/lib/htui.common.js.gz +0 -0
- package/lib/htui.umd.js +501 -14
- package/lib/htui.umd.js.gz +0 -0
- package/lib/htui.umd.min.js +4 -4
- package/lib/htui.umd.min.js.gz +0 -0
- package/package.json +1 -1
- package/src/packages/HtTable/index.ts +16 -0
- package/src/packages/HtTable/index.vue +161 -0
- package/src/packages/PageInfo/index.ts +16 -0
- package/src/packages/PageInfo/index.vue +113 -0
- package/src/packages/SelectTable/CommonTable.vue +2 -1
- package/src/packages/SelectTable/index.vue +1 -2
- package/src/packages/index.ts +8 -3
- package/src/packages/type.ts +20 -2
- package/src/views/About.vue +76 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
|
|
2
|
+
<!--
|
|
3
|
+
* @Descripttion: ht-table
|
|
4
|
+
* @version:
|
|
5
|
+
* @Author: hutao
|
|
6
|
+
* @Date: 2021-11-11 11:23:24
|
|
7
|
+
* @LastEditors: hutao
|
|
8
|
+
* @LastEditTime: 2021-12-09 17:29:45
|
|
9
|
+
-->
|
|
10
|
+
<template>
|
|
11
|
+
<div v-loading="state.loading">
|
|
12
|
+
<article>
|
|
13
|
+
|
|
14
|
+
<el-table ref="comTable"
|
|
15
|
+
:height="height"
|
|
16
|
+
:max-height="maxHeight"
|
|
17
|
+
:border="border"
|
|
18
|
+
:stripe="stripe"
|
|
19
|
+
:size="size"
|
|
20
|
+
:fit="fit"
|
|
21
|
+
:show-header="showHeader"
|
|
22
|
+
:empty-text="emptyText||'暂无数据'"
|
|
23
|
+
:row-style="rowStyle"
|
|
24
|
+
:row-class-name="rowClassName"
|
|
25
|
+
:current-row-key="currentRowKey"
|
|
26
|
+
:highlight-current-row="highlightCurrentRow"
|
|
27
|
+
:row-key="rowKey||'id'"
|
|
28
|
+
:data="data"
|
|
29
|
+
tooltip-effect="dark"
|
|
30
|
+
@row-click="(row, column, event)=>$emit('row-click',row, column, event)"
|
|
31
|
+
@row-contextmenu="(row, column, event)=>$emit('row-contextmenu',row, column, event)"
|
|
32
|
+
@row-dblclick="(row, column, event)=>$emit('row-dblclick',row, column, event)"
|
|
33
|
+
@header-click="( column, event)=>$emit('header-click', column, event)"
|
|
34
|
+
@header-contextmenu="( column, event)=>$emit('header-contextmenu', column, event)"
|
|
35
|
+
@sort-change="({ column, prop, order})=>$emit('sort-change', { column, prop, order})"
|
|
36
|
+
@filter-change="(filter)=>$emit('filter-change', filter)"
|
|
37
|
+
@current-change="(currentRow, oldCurrentRow)=>$emit('current-change', currentRow, oldCurrentRow)"
|
|
38
|
+
@select="(selection, row)=>$emit('select',selection, row)"
|
|
39
|
+
@select-all="(selection)=>$emit('select-all',selection)"
|
|
40
|
+
@selection-change="(selection)=>$emit('selection-change',selection)"
|
|
41
|
+
@cell-mouse-enter="(row, column, cell, event)=>$emit('cell-mouse-enter',row, column, cell, event)"
|
|
42
|
+
@cell-mouse-leave="(row, column, cell, event)=>$emit('cell-mouse-leave',row, column, cell, event)"
|
|
43
|
+
@cell-click="(row, column, cell, event)=>$emit('cell-click',row, column, cell, event)"
|
|
44
|
+
@cell-dblclick="(row, column, cell, event)=>$emit('cell-dblclick',row, column, cell, event)">
|
|
45
|
+
<el-table-column width="55"
|
|
46
|
+
type='selection'>
|
|
47
|
+
</el-table-column>
|
|
48
|
+
<el-table-column v-if="!hideOrder"
|
|
49
|
+
label="序号"
|
|
50
|
+
width="55">
|
|
51
|
+
<template slot="header">
|
|
52
|
+
<slot :name="'header_order'"></slot>
|
|
53
|
+
</template>
|
|
54
|
+
<template slot-scope="scope">
|
|
55
|
+
{{(state.pageInfo.currentPage-1)*state.pageInfo.pageSize+(scope.$index+1)}}
|
|
56
|
+
</template>
|
|
57
|
+
</el-table-column>
|
|
58
|
+
<el-table-column :label="item.title"
|
|
59
|
+
:key='item.key'
|
|
60
|
+
v-for="item in columns"
|
|
61
|
+
:show-overflow-tooltip="true"
|
|
62
|
+
:prop="item.key"
|
|
63
|
+
:width="item.width||120">
|
|
64
|
+
<template slot-scope="{row,column,rowIndex}">
|
|
65
|
+
<slot :name="item.key"
|
|
66
|
+
:row="row"
|
|
67
|
+
:column="column"
|
|
68
|
+
:rowIndex="rowIndex">{{row[item.key]}}</slot>
|
|
69
|
+
{{item.headerSlot}}
|
|
70
|
+
</template>
|
|
71
|
+
<template slot-scope="{column,$index}"
|
|
72
|
+
slot="header">
|
|
73
|
+
<slot :name="'header_'+item.key"
|
|
74
|
+
:column="column"
|
|
75
|
+
:$index="$index">{{item.title}}</slot>
|
|
76
|
+
</template>
|
|
77
|
+
</el-table-column>
|
|
78
|
+
|
|
79
|
+
</el-table>
|
|
80
|
+
</article>
|
|
81
|
+
<footer v-if="!hidePage">
|
|
82
|
+
<el-row>
|
|
83
|
+
<el-col :span="24">
|
|
84
|
+
<!-- <p style="width:90px;float:left">共{{data.length}}条</p> -->
|
|
85
|
+
<PageInfo :hide-on-single-page="pagination&&pagination.hideOnSinglePage"
|
|
86
|
+
:small="pagination&&pagination.small"
|
|
87
|
+
@onchange="(e)=>$emit('onchange',e)"
|
|
88
|
+
:page-sizes="pagination&&pagination.pageSizes"
|
|
89
|
+
:page-info="state.pageInfo"></PageInfo>
|
|
90
|
+
</el-col>
|
|
91
|
+
</el-row>
|
|
92
|
+
</footer>
|
|
93
|
+
</div>
|
|
94
|
+
</template>
|
|
95
|
+
<script lang='ts'>
|
|
96
|
+
import { Component, Prop, Vue, Watch } from "vue-property-decorator";
|
|
97
|
+
import { _axios } from "vue-kst-auth";
|
|
98
|
+
import { Column, PageInfoType } from "@/packages/type";
|
|
99
|
+
import PageInfo from "@/packages/PageInfo/index.vue";
|
|
100
|
+
interface State {
|
|
101
|
+
pageInfo: PageInfoType;
|
|
102
|
+
loading: boolean;
|
|
103
|
+
}
|
|
104
|
+
@Component({
|
|
105
|
+
components: {
|
|
106
|
+
PageInfo,
|
|
107
|
+
},
|
|
108
|
+
})
|
|
109
|
+
export default class HtTable extends Vue {
|
|
110
|
+
/** 默认的table头 */
|
|
111
|
+
@Prop() columns!: Column[];
|
|
112
|
+
@Prop() data!: any[];
|
|
113
|
+
/** 是否隐藏分页 */
|
|
114
|
+
@Prop() hidePage!: boolean;
|
|
115
|
+
@Prop() height?: string | number;
|
|
116
|
+
@Prop() maxHeight?: string | number;
|
|
117
|
+
@Prop() rowKey?: string;
|
|
118
|
+
@Prop() stripe?: boolean;
|
|
119
|
+
@Prop() border?: boolean;
|
|
120
|
+
@Prop() size?: "medium" | "small" | "mini";
|
|
121
|
+
@Prop() fit?: boolean;
|
|
122
|
+
@Prop() showHeader?: boolean;
|
|
123
|
+
@Prop() rowClassName?: any;
|
|
124
|
+
@Prop() currentRowKey?: string | number;
|
|
125
|
+
@Prop() highlightCurrentRow?: boolean;
|
|
126
|
+
@Prop() rowStyle?: any;
|
|
127
|
+
@Prop() hideOrder?: boolean;
|
|
128
|
+
@Prop() pageInfo?: PageInfoType;
|
|
129
|
+
@Prop() emptyText?: string | number;
|
|
130
|
+
/** 分页的所有额外信息通过此参数传递 */
|
|
131
|
+
@Prop() pagination?: any;
|
|
132
|
+
state: State = {
|
|
133
|
+
loading: false,
|
|
134
|
+
pageInfo: {
|
|
135
|
+
currentPage: 1,
|
|
136
|
+
pageSize: 10,
|
|
137
|
+
skipCount: 0,
|
|
138
|
+
totalCount: 0,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
created() {
|
|
142
|
+
// console.log("this", this.$props);
|
|
143
|
+
this.setPageInfo(this.pageInfo);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** 监听 */
|
|
147
|
+
@Watch("pageInfo")
|
|
148
|
+
setPageInfo(val?: PageInfoType) {
|
|
149
|
+
if (val) {
|
|
150
|
+
const pageInfo: PageInfoType = val;
|
|
151
|
+
this.state.pageInfo = {
|
|
152
|
+
currentPage: Number(pageInfo.currentPage),
|
|
153
|
+
pageSize: Number(pageInfo.pageSize),
|
|
154
|
+
skipCount: Number(pageInfo.skipCount),
|
|
155
|
+
totalCount: Number(pageInfo.totalCount),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
</script>
|
|
161
|
+
<style lang='scss' scoped></style>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Descripttion:
|
|
3
|
+
* @version:
|
|
4
|
+
* @Author: hutao
|
|
5
|
+
* @Date: 2021-11-15 15:00:57
|
|
6
|
+
* @LastEditors: hutao
|
|
7
|
+
* @LastEditTime: 2021-12-08 11:39:52
|
|
8
|
+
*/
|
|
9
|
+
import HtPagination from "./index.vue";
|
|
10
|
+
|
|
11
|
+
(HtPagination as any).install = function (Vue: any) {
|
|
12
|
+
|
|
13
|
+
Vue.component("HtPagination", HtPagination);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default HtPagination;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Descripttion: 处理分页封装
|
|
3
|
+
* @version:
|
|
4
|
+
* @Author: hutao
|
|
5
|
+
* @Date: 2021-12-08 11:30:56
|
|
6
|
+
* @LastEditors: hutao
|
|
7
|
+
* @LastEditTime: 2021-12-09 16:20:43
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
* @Descripttion:
|
|
12
|
+
* @version:
|
|
13
|
+
* @Author: hutao
|
|
14
|
+
* @Date: 2021-11-22 10:00:05
|
|
15
|
+
* @LastEditors: hutao
|
|
16
|
+
* @LastEditTime: 2021-11-22 18:07:40
|
|
17
|
+
-->
|
|
18
|
+
<template>
|
|
19
|
+
<el-pagination @current-change="handleCurrentChange"
|
|
20
|
+
:background="background"
|
|
21
|
+
@size-change="handelSizeChange"
|
|
22
|
+
:hide-on-single-page="hideOnSinglePage"
|
|
23
|
+
:disabled="!!disabled"
|
|
24
|
+
:small="!!small"
|
|
25
|
+
:current-page="state.pageInfo.currentPage"
|
|
26
|
+
:page-size="state.pageInfo.maxResultCount"
|
|
27
|
+
:page-sizes="pageSizes||[10, 20, 30, 40, 50, 100]"
|
|
28
|
+
:layout="layout||'total, sizes, prev, pager, next, jumper'"
|
|
29
|
+
:total="state.pageInfo.totalCount">
|
|
30
|
+
</el-pagination>
|
|
31
|
+
</template>
|
|
32
|
+
<script lang='ts'>
|
|
33
|
+
import { Component, Prop, Vue, Watch } from "vue-property-decorator";
|
|
34
|
+
import { PageInfoType } from "../type";
|
|
35
|
+
interface State {
|
|
36
|
+
/** 数据状态 */
|
|
37
|
+
loading: boolean;
|
|
38
|
+
/** 分页信息 */
|
|
39
|
+
pageInfo: {
|
|
40
|
+
currentPage: number;
|
|
41
|
+
maxResultCount: number;
|
|
42
|
+
skipCount: number;
|
|
43
|
+
totalCount: number;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Component
|
|
48
|
+
export default class HtPagination extends Vue {
|
|
49
|
+
/** 通用样式 */
|
|
50
|
+
@Prop() comStyle!: string;
|
|
51
|
+
/** 是否使用小型分页样式 */
|
|
52
|
+
@Prop() small!: string;
|
|
53
|
+
/** 当前页 */
|
|
54
|
+
@Prop() pageInfo!: PageInfoType;
|
|
55
|
+
/** 每页条数 */
|
|
56
|
+
@Prop() pageSize!: string;
|
|
57
|
+
/** 跳过多少条 */
|
|
58
|
+
@Prop() skipCount!: string;
|
|
59
|
+
/** 是否禁用 */
|
|
60
|
+
@Prop() disabled!: boolean;
|
|
61
|
+
/** 是否未分页按钮添加背景色 */
|
|
62
|
+
@Prop() background!: string;
|
|
63
|
+
/** 只有一页时是否隐藏 */
|
|
64
|
+
@Prop() hideOnSinglePage!: boolean;
|
|
65
|
+
/** 每页显示个数选择器的选项设置 */
|
|
66
|
+
@Prop() pageSizes!: number[];
|
|
67
|
+
/** 组件布局 */
|
|
68
|
+
@Prop() layout!: string; //组件布局,子组件名用逗号分隔
|
|
69
|
+
/** 数据 */
|
|
70
|
+
state: State = {
|
|
71
|
+
loading: false,
|
|
72
|
+
pageInfo: {
|
|
73
|
+
currentPage: 1,
|
|
74
|
+
maxResultCount: 10,
|
|
75
|
+
skipCount: 0,
|
|
76
|
+
totalCount: 0,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/** 生命周期 */
|
|
81
|
+
created() {
|
|
82
|
+
if (this.pageInfo) {
|
|
83
|
+
this.setpageInfo(this.pageInfo);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** 方法 */
|
|
87
|
+
/** 翻页 */
|
|
88
|
+
handleCurrentChange(val: number) {
|
|
89
|
+
this.state.pageInfo.currentPage = val || 1;
|
|
90
|
+
const { maxResultCount = 0, currentPage } = this.state.pageInfo;
|
|
91
|
+
this.state.pageInfo.skipCount = (currentPage - 1) * maxResultCount;
|
|
92
|
+
this.$emit("onchange", this.state.pageInfo);
|
|
93
|
+
}
|
|
94
|
+
/** 更新每页条数 */
|
|
95
|
+
handelSizeChange(val: number) {
|
|
96
|
+
this.state.pageInfo.currentPage = 1;
|
|
97
|
+
this.state.pageInfo.maxResultCount = val;
|
|
98
|
+
this.handleCurrentChange(1);
|
|
99
|
+
}
|
|
100
|
+
/** 监听 */
|
|
101
|
+
@Watch("pageInfo")
|
|
102
|
+
setpageInfo(val: PageInfoType) {
|
|
103
|
+
const pageInfo: PageInfoType = val;
|
|
104
|
+
this.state.pageInfo = {
|
|
105
|
+
currentPage: Number(pageInfo.currentPage),
|
|
106
|
+
maxResultCount: Number(pageInfo.pageSize),
|
|
107
|
+
skipCount: Number(pageInfo.skipCount),
|
|
108
|
+
totalCount: Number(pageInfo.totalCount),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/** 计算属性 */
|
|
112
|
+
}
|
|
113
|
+
</script>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-11-15 14:50:56
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2021-
|
|
7
|
+
* @LastEditTime: 2021-12-08 11:42:36
|
|
8
8
|
-->
|
|
9
9
|
<!--
|
|
10
10
|
* @Descripttion:
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
:show-overflow-tooltip="true"
|
|
48
48
|
:prop="item.key"
|
|
49
49
|
:width="item.width||120">
|
|
50
|
+
<slot :name="item.key">{{item.key}}</slot>
|
|
50
51
|
</el-table-column>
|
|
51
52
|
|
|
52
53
|
</el-table>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-11-11 11:06:51
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2021-12-
|
|
7
|
+
* @LastEditTime: 2021-12-08 11:29:19
|
|
8
8
|
-->
|
|
9
9
|
<template>
|
|
10
10
|
<el-popover placement="bottom"
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
class="ht-contnet">
|
|
22
22
|
<el-input readonly
|
|
23
23
|
@blur="blurInput"
|
|
24
|
-
style="width"
|
|
25
24
|
:style="`width:${inputWidth}px`"
|
|
26
25
|
:placeholder="placeholder"
|
|
27
26
|
:disabled="state.config.disabled"
|
package/src/packages/index.ts
CHANGED
|
@@ -4,16 +4,21 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-10-21 10:08:41
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2021-12-
|
|
7
|
+
* @LastEditTime: 2021-12-09 17:27:01
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
// 导入组件
|
|
11
11
|
import { VueConstructor } from 'vue'
|
|
12
|
+
/** 下拉table选择控件 */
|
|
12
13
|
import HtSelectTable from './SelectTable/index'
|
|
14
|
+
/** 分页组装配件 */
|
|
15
|
+
import HtPagination from './PageInfo/index'
|
|
16
|
+
import HtTable from './HtTable/index'
|
|
13
17
|
|
|
14
18
|
// 存储组件列表
|
|
15
19
|
const components = [
|
|
16
|
-
HtSelectTable
|
|
20
|
+
HtSelectTable,
|
|
21
|
+
HtPagination, HtTable
|
|
17
22
|
]
|
|
18
23
|
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
|
|
19
24
|
const install = function (Vue: any) {
|
|
@@ -31,6 +36,6 @@ export default {
|
|
|
31
36
|
// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
|
|
32
37
|
install,
|
|
33
38
|
// 以下是具体的组件列表
|
|
34
|
-
HtSelectTable
|
|
39
|
+
HtSelectTable, HtPagination, HtTable
|
|
35
40
|
}
|
|
36
41
|
|
package/src/packages/type.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @Author: hutao
|
|
5
5
|
* @Date: 2021-10-25 17:05:17
|
|
6
6
|
* @LastEditors: hutao
|
|
7
|
-
* @LastEditTime: 2021-
|
|
7
|
+
* @LastEditTime: 2021-12-09 16:07:41
|
|
8
8
|
*/
|
|
9
9
|
/** 初始的默认条数 */
|
|
10
10
|
export const defalutPageSize = 10
|
|
@@ -48,8 +48,26 @@ export interface ConfigProp {
|
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
}
|
|
51
|
+
/** 参考element Table https://element.eleme.cn/#/zh-CN/component/table */
|
|
51
52
|
export interface Column {
|
|
53
|
+
|
|
52
54
|
key: string;
|
|
53
55
|
title: string;
|
|
54
|
-
width?: number;
|
|
56
|
+
width?: number | string;
|
|
57
|
+
minWidth?: number | string;
|
|
58
|
+
fixed?: 'left' | 'rigth' | boolean;
|
|
59
|
+
sortable?: 'custom' | boolean;
|
|
60
|
+
resizable?: boolean;
|
|
61
|
+
align?: 'left' | 'right' | 'center';
|
|
62
|
+
headerAlign?: 'left' | 'right' | 'center';
|
|
63
|
+
className?: string;
|
|
64
|
+
labelClassName?: string;
|
|
65
|
+
/** table头是否使用slot */
|
|
66
|
+
headerSlot?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface PageInfoType {
|
|
69
|
+
currentPage: number;
|
|
70
|
+
pageSize: number;
|
|
71
|
+
skipCount: number;
|
|
72
|
+
totalCount: number;
|
|
55
73
|
}
|
package/src/views/About.vue
CHANGED
|
@@ -1,3 +1,78 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Descripttion:
|
|
3
|
+
* @version:
|
|
4
|
+
* @Author: hutao
|
|
5
|
+
* @Date: 2021-11-15 14:41:40
|
|
6
|
+
* @LastEditors: hutao
|
|
7
|
+
* @LastEditTime: 2021-12-09 16:47:22
|
|
8
|
+
-->
|
|
1
9
|
<template>
|
|
2
|
-
<div
|
|
10
|
+
<div>
|
|
11
|
+
<HtTable :data="state.data"
|
|
12
|
+
@onchange="test"
|
|
13
|
+
:height="200"
|
|
14
|
+
:columns="state.columns">
|
|
15
|
+
<div slot="sex"
|
|
16
|
+
slot-scope="{row}">{{row.sex?'男':'女'}}</div>
|
|
17
|
+
<div slot="age"
|
|
18
|
+
slot-scope="{row}">
|
|
19
|
+
<el-tag>{{row.age}}</el-tag>
|
|
20
|
+
</div>
|
|
21
|
+
<div slot="header_name">测试名字</div>
|
|
22
|
+
<!-- <div slot="header_age"
|
|
23
|
+
slot-scope="{column,$index}">
|
|
24
|
+
<el-tag>年龄{{$index}}</el-tag>
|
|
25
|
+
</div> -->
|
|
26
|
+
</HtTable>
|
|
27
|
+
</div>
|
|
3
28
|
</template>
|
|
29
|
+
<script lang='ts'>
|
|
30
|
+
import { Component, Vue } from "vue-property-decorator";
|
|
31
|
+
import HtTable from "@/packages/HtTable/index.vue";
|
|
32
|
+
interface State {
|
|
33
|
+
/** 数据状态 */
|
|
34
|
+
loading: boolean;
|
|
35
|
+
columns: any;
|
|
36
|
+
data: any;
|
|
37
|
+
}
|
|
38
|
+
@Component({
|
|
39
|
+
components: {
|
|
40
|
+
HtTable,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
export default class Index extends Vue {
|
|
44
|
+
/** 数据 */
|
|
45
|
+
state: State = {
|
|
46
|
+
loading: false,
|
|
47
|
+
data: [
|
|
48
|
+
{ name: "胡涛", age: 12, sex: 0, id: 1 },
|
|
49
|
+
{ name: "胡涛", age: 12, sex: 1, id: 2 },
|
|
50
|
+
{ name: "胡涛", age: 12, sex: 1, id: 3 },
|
|
51
|
+
{ name: "胡涛", age: 12, sex: 0, id: 4 },
|
|
52
|
+
],
|
|
53
|
+
columns: [
|
|
54
|
+
{
|
|
55
|
+
title: "姓名",
|
|
56
|
+
key: "name",
|
|
57
|
+
width: "300px",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: "age",
|
|
61
|
+
key: "age",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: "性别",
|
|
65
|
+
key: "sex",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
/** 生命周期 */
|
|
70
|
+
/** 方法 */
|
|
71
|
+
test() {
|
|
72
|
+
//console.log("ee", e);
|
|
73
|
+
}
|
|
74
|
+
/** 监听 */
|
|
75
|
+
/** 计算属性 */
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
<style lang='scss' scoped></style>
|