fl-web-component 0.1.0 → 1.0.0

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.
Files changed (85) hide show
  1. package/README.md +35 -24
  2. package/dist/fl-web-component.common.js +27308 -65
  3. package/dist/fl-web-component.common.js.map +1 -1
  4. package/dist/fl-web-component.css +1 -1
  5. package/dist/fl-web-component.umd.js +27308 -65
  6. package/dist/fl-web-component.umd.js.map +1 -1
  7. package/dist/fl-web-component.umd.min.js +13 -1
  8. package/dist/fl-web-component.umd.min.js.map +1 -1
  9. package/package.json +80 -47
  10. package/packages/components/button/index.vue +16 -12
  11. package/packages/components/com-card/card-page.vue +102 -0
  12. package/packages/components/com-card/index.vue +53 -0
  13. package/packages/components/com-dialogWrapper/Readme.md +53 -0
  14. package/packages/components/com-dialogWrapper/index.vue +98 -0
  15. package/packages/components/com-flcanvas/components/bspline.js +91 -0
  16. package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
  17. package/packages/components/com-flcanvas/components/round10.js +24 -0
  18. package/packages/components/com-flcanvas/index.vue +259 -0
  19. package/packages/components/com-formDialog/Readme.md +409 -0
  20. package/packages/components/com-formDialog/index.vue +471 -0
  21. package/packages/components/com-graphics/index.vue +1073 -0
  22. package/packages/components/com-graphics/per-control.vue +109 -0
  23. package/packages/components/com-graphics/pid.vue +168 -0
  24. package/packages/components/com-page/index.vue +101 -0
  25. package/packages/components/com-selectTree/Readme.md +17 -0
  26. package/packages/components/com-selectTree/index.vue +236 -0
  27. package/packages/components/com-table/column-default.vue +71 -0
  28. package/packages/components/com-table/column-dynamic.vue +36 -0
  29. package/packages/components/com-table/column-menu.vue +71 -0
  30. package/packages/components/com-table/column-slot.vue +53 -0
  31. package/packages/components/com-table/column.vue +41 -0
  32. package/packages/components/com-table/config.js +21 -0
  33. package/packages/components/com-table/index.vue +281 -0
  34. package/packages/components/com-table/table-page.vue +106 -0
  35. package/packages/components/com-tabs/index.vue +50 -0
  36. package/packages/components/com-treeDynamic/Readme.md +271 -0
  37. package/packages/components/com-treeDynamic/index.vue +207 -0
  38. package/packages/components/model/api/index.js +59 -67
  39. package/packages/components/model/api/mock/detecttree.js +38 -38
  40. package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
  41. package/packages/components/model/api/mock/init.js +1 -1
  42. package/packages/components/model/api/mock/pbstree.js +486 -495
  43. package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
  44. package/packages/components/model/components/annotation-toolbar.vue +4 -19
  45. package/packages/components/model/components/check-proofing-model.vue +26 -29
  46. package/packages/components/model/components/clipping-type.vue +22 -14
  47. package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
  48. package/packages/components/model/components/detect-panel.vue +38 -26
  49. package/packages/components/model/components/detect-tree.vue +9 -24
  50. package/packages/components/model/components/firstPer-panel.vue +23 -25
  51. package/packages/components/model/components/header-button.vue +31 -107
  52. package/packages/components/model/components/imageViewer/index.vue +34 -35
  53. package/packages/components/model/components/import-model.vue +127 -127
  54. package/packages/components/model/components/location-panel.vue +25 -29
  55. package/packages/components/model/components/measure-type.vue +15 -15
  56. package/packages/components/model/components/pbs-tree.vue +139 -144
  57. package/packages/components/model/components/proof-config.vue +2 -10
  58. package/packages/components/model/components/proof-for-pc.vue +35 -32
  59. package/packages/components/model/components/proof-history.vue +136 -154
  60. package/packages/components/model/components/proof-panel-detail.vue +166 -165
  61. package/packages/components/model/components/proof-panel.vue +281 -205
  62. package/packages/components/model/components/proof-project-user.vue +13 -50
  63. package/packages/components/model/components/proof-publish.vue +130 -130
  64. package/packages/components/model/components/proof-role.vue +93 -124
  65. package/packages/components/model/components/props-panel.vue +63 -54
  66. package/packages/components/model/index.vue +3225 -3213
  67. package/packages/components/model/utils/annotation-tool.js +75 -82
  68. package/packages/components/model/utils/cursor.js +15 -10
  69. package/packages/components/model/utils/detect-v1.js +23 -35
  70. package/packages/components/model/utils/index.js +25 -25
  71. package/packages/components/model/utils/threejs/measure-angle.js +180 -180
  72. package/packages/components/model/utils/threejs/measure-area.js +196 -184
  73. package/packages/components/model/utils/threejs/measure-distance.js +154 -152
  74. package/packages/components/model/utils/threejs/measure-volume.js +64 -61
  75. package/patches/camera-controls+2.9.0.patch +63 -0
  76. package/src/assets/test.png +0 -0
  77. package/src/assets/worker.glb +0 -0
  78. package/src/main.js +27 -0
  79. package/src/utils/flgltf-parser.js +141 -0
  80. package/src/utils/instance-parser.js +402 -0
  81. package/src/utils/mock.js +84746 -0
  82. package/src/utils/threejs/measure-angle.js +240 -0
  83. package/src/utils/threejs/measure-area.js +249 -0
  84. package/src/utils/threejs/measure-distance.js +195 -0
  85. package/packages/index.js +0 -24
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <component
3
+ :is="comTable.tableColumnName"
4
+ :prop="columnOption.prop"
5
+ :key="columnOption.prop"
6
+ :label="columnOption.label"
7
+ :show-overflow-tooltip="columnOption.overHidden"
8
+ :align="columnOption.align || comTable.tableOption.align"
9
+ >
10
+ <template v-for="column in columnOption.children">
11
+ <column-dynamic
12
+ v-if="column.children && column.children.length > 0"
13
+ :key="column.label"
14
+ :columnOption="column"
15
+ >
16
+ </column-dynamic>
17
+ <column-slot v-else :column="column" :column-option="columnOption.children" :key="column.id">
18
+ </column-slot>
19
+ </template>
20
+ </component>
21
+ </template>
22
+
23
+ <script>
24
+ import columnSlot from './column-slot';
25
+ export default {
26
+ name: 'column-dynamic',
27
+ components: {
28
+ columnSlot,
29
+ },
30
+ inject: ['comTable'],
31
+ props: {
32
+ columnOption: Object,
33
+ },
34
+ created() {},
35
+ };
36
+ </script>
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <!-- 操作栏 -->
3
+ <component
4
+ :is="comTable.tableColumnName"
5
+ prop="menu"
6
+ key="menu"
7
+ :fixed="vaildData(comTable.tableOption.menuFixed, config.menuFixed)"
8
+ v-if="vaildData(comTable.tableOption.menu, config.menu)"
9
+ :label="comTable.tableOption.menuTitle || '操作'"
10
+ :align="comTable.tableOption.menuAlign || config.menuAlign"
11
+ :header-align="comTable.tableOption.menuHeaderAlign || config.menuHeaderAlign"
12
+ :width="comTable.tableOption.menuWidth || config.menuWidth"
13
+ >
14
+ <template slot="header">
15
+ <span>{{ comTable.tableOption.menuTitle || '操作' }}</span>
16
+ </template>
17
+ <template slot-scope="{ row, column: tableColumn, $index }">
18
+ <div>
19
+ <template>
20
+ <el-button
21
+ :type="`text`"
22
+ :icon="`el-icon-edit`"
23
+ :size="comTable.isMediumSize"
24
+ :disabled="comTable.btnDisabled"
25
+ @click.stop="comTable.rowEdit(row, $index)"
26
+ v-if="vaildData(comTable.tableOption.editBtn, config.editBtn)"
27
+ >
28
+ {{ '编 辑' }}
29
+ </el-button>
30
+ <el-button
31
+ :type="`text`"
32
+ :icon="`el-icon-delete`"
33
+ :size="comTable.isMediumSize"
34
+ :disabled="comTable.btnDisabled"
35
+ @click.stop="comTable.rowDel(row, $index)"
36
+ v-if="vaildData(comTable.tableOption.delBtn, config.delBtn)"
37
+ >
38
+ {{ '删 除' }}
39
+ </el-button>
40
+ </template>
41
+ <slot
42
+ name="menu"
43
+ :row="row"
44
+ :column="tableColumn"
45
+ :type="`text`"
46
+ :disabled="comTable.btnDisabled"
47
+ :size="comTable.isMediumSize"
48
+ :index="$index"
49
+ ></slot>
50
+ </div>
51
+ </template>
52
+ </component>
53
+ </template>
54
+
55
+ <script>
56
+ import config from './config.js';
57
+ import base from '../../utils/base.js';
58
+
59
+ export default {
60
+ name: 'comTable',
61
+ mixins: [base()],
62
+ components: {},
63
+ data() {
64
+ return {
65
+ config: config,
66
+ };
67
+ },
68
+ inject: ['comTable'],
69
+ mounted: function () {},
70
+ };
71
+ </script>
@@ -0,0 +1,53 @@
1
+ <template>
2
+ <component
3
+ :is="comTable.tableColumnName"
4
+ :key="column.prop"
5
+ :prop="column.prop"
6
+ :label="column.label"
7
+ :column-key="column.prop"
8
+ :show-overflow-tooltip="column.showOverflowTooltip || column.overHidden"
9
+ :align="column.align || comTable.tableOption.align"
10
+ :header-align="column.headerAlign || comTable.tableOption.headerAlign"
11
+ :fixed="vaildData(column.fixed, config.columnFixed)"
12
+ >
13
+ <template slot-scope="{ row, column: tableColumn, $index }">
14
+ <slot
15
+ :row="row"
16
+ :tableColumn="tableColumn"
17
+ :column="column"
18
+ :index="$index"
19
+ :size="comTable.isMediumSize"
20
+ :label="row[column.prop]"
21
+ :name="column.prop"
22
+ v-if="comTable.$scopedSlots[column.prop]"
23
+ ></slot>
24
+ <template v-else>
25
+ <span v-text="row[column.prop]"></span>
26
+ </template>
27
+ </template>
28
+ </component>
29
+ </template>
30
+
31
+ <script>
32
+ import base from '../../utils/base.js';
33
+ import config from './config.js';
34
+
35
+ export default {
36
+ name: 'column-slot',
37
+ mixins: [base()],
38
+ inject: ['comTable'],
39
+ data: function () {
40
+ return {
41
+ config: config,
42
+ };
43
+ },
44
+ components: {},
45
+ props: {
46
+ column: Object,
47
+ },
48
+ created() {},
49
+ methods: {},
50
+ };
51
+ </script>
52
+
53
+ <style></style>
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div>
3
+ <slot name="header"></slot>
4
+ <!-- 动态列 -->
5
+ <template v-for="column in columnOption">
6
+ <column-dynamic
7
+ v-if="column.children && column.children.length > 0"
8
+ :columnOption="column"
9
+ :key="column.label"
10
+ >
11
+ </column-dynamic>
12
+ <column-slot v-else :column="column" :column-option="columnOption" :key="column.id">
13
+ <template v-for="item in comTable.mainSlot" slot-scope="scope" :slot="item">
14
+ <slot v-bind="scope" :name="item"></slot>
15
+ </template>
16
+ </column-slot>
17
+ </template>
18
+ <slot name="footer"></slot>
19
+ </div>
20
+ </template>
21
+
22
+ <script>
23
+ import columnDynamic from './column-dynamic';
24
+ import columnSlot from './column-slot';
25
+ export default {
26
+ name: 'comTable',
27
+ data() {
28
+ return {};
29
+ },
30
+ components: {
31
+ columnSlot,
32
+ columnDynamic,
33
+ },
34
+ inject: ['comTable'],
35
+ props: {
36
+ columnOption: Array,
37
+ },
38
+ computed: {},
39
+ methods: {},
40
+ };
41
+ </script>
@@ -0,0 +1,21 @@
1
+ // 配置文件
2
+ export default {
3
+ menuWidth: 220,
4
+ menuFixed: 'right',
5
+ menuAlign: 'center',
6
+ menuHeaderAlign: 'center',
7
+ // 显隐
8
+ editBtn: true,
9
+ delBtn: true,
10
+ selectClearBtn: true,
11
+ tip: true,
12
+ menu: true,
13
+ indexLabel: '#',
14
+ indexFixed: 'left',
15
+ selectionFixed: 'left',
16
+ columnFixed: null,
17
+ width: '100%',
18
+ dropRowClass: '.el-table__body-wrapper > table > tbody',
19
+ showOverflowTooltip: true,
20
+ rowKey: 'id',
21
+ };
@@ -0,0 +1,281 @@
1
+ <template>
2
+ <div>
3
+ <!-- 统计 -->
4
+ <el-tag
5
+ class="com-table__tip"
6
+ v-if="vaildData(tableOption.tip, config.tip) && tableOption.selection"
7
+ >
8
+ <span class="com-table__tip-name">
9
+ {{ '当前表格已选择' }}
10
+ <span class="com-table__tip-count">{{ selectLen }}</span>
11
+ {{ '项' }}
12
+ </span>
13
+ <el-button
14
+ type="text"
15
+ size="small"
16
+ @click="clearSelection"
17
+ v-if="vaildData(tableOption.selectClearBtn, config.selectClearBtn) && tableOption.selection"
18
+ >{{ '清 空' }}</el-button
19
+ >
20
+ </el-tag>
21
+ <!-- 表格主体 -->
22
+ <el-table
23
+ :key="reload"
24
+ :data="list"
25
+ :row-key="vaildData(tableOption.rowKey, config.rowKey)"
26
+ @current-change="currentRowChange"
27
+ @row-click="rowClick"
28
+ :height="tableHeight"
29
+ ref="table"
30
+ v-loading="tableLoading"
31
+ @selection-change="selectionChange"
32
+ @select="select"
33
+ @select-all="selectAll"
34
+ >
35
+ <template slot="empty">
36
+ <slot name="empty" v-if="$slots.empty"></slot>
37
+ <el-empty
38
+ v-else
39
+ :image-size="100"
40
+ :description="tableOption.emptyText || '暂无数据'"
41
+ ></el-empty>
42
+ </template>
43
+ <column :columnOption="columnOption">
44
+ <column-default ref="columnDefault" slot="header">
45
+ <template slot-scope="{ row, index }" slot="expand">
46
+ <slot :row="row" :index="index" name="expand"></slot>
47
+ </template>
48
+ </column-default>
49
+ <template v-for="item in mainSlot" slot-scope="scope" :slot="item">
50
+ <slot v-bind="scope" :name="item"></slot>
51
+ </template>
52
+ <column-menu slot="footer">
53
+ <template slot="menu" slot-scope="scope">
54
+ <slot name="menu" v-bind="scope"></slot>
55
+ </template>
56
+ </column-menu>
57
+ </column>
58
+ </el-table>
59
+ <!-- 分页 -->
60
+ <table-page ref="tablePage"> </table-page>
61
+ </div>
62
+ </template>
63
+ <script>
64
+ import init from '../../utils/init.js';
65
+ import tablePage from './table-page';
66
+ import column from './column';
67
+ import columnMenu from './column-menu';
68
+ import columnDefault from './column-default';
69
+ import config from './config.js';
70
+ import { getColumn } from '../../utils/util.js';
71
+ import sortable from 'sortablejs';
72
+
73
+ export default {
74
+ name: 'comTable',
75
+ mixins: [init()],
76
+ provide() {
77
+ return {
78
+ comTable: this,
79
+ };
80
+ },
81
+ components: {
82
+ column, // 数据列
83
+ columnDefault, // 其它列,
84
+ columnMenu, // 操作栏,
85
+ tablePage, // 分页
86
+ },
87
+ data() {
88
+ return {
89
+ reload: Math.random(),
90
+ config: config,
91
+ list: [],
92
+ listError: {},
93
+ tableHeight: undefined,
94
+ tableIndex: -1,
95
+ tableSelect: [],
96
+ sumsList: {},
97
+ btnDisabledList: {},
98
+ btnDisabled: false,
99
+ default: {},
100
+ };
101
+ },
102
+ created() {},
103
+ mounted() {
104
+ this.dataInit();
105
+ // this.getTableHeight();
106
+ this.refreshTable();
107
+ },
108
+ computed: {
109
+ rowKey() {
110
+ return this.tableOption.rowKey;
111
+ },
112
+ tableColumnName() {
113
+ return 'elTableColumn';
114
+ },
115
+ isRowSort() {
116
+ return this.tableOption.rowSort;
117
+ },
118
+ isAutoHeight() {
119
+ return this.tableOption.height === 'auto';
120
+ },
121
+ mainSlot() {
122
+ let result = [];
123
+
124
+ this.propOption.forEach((item) => {
125
+ if (this.$scopedSlots[item.prop]) result.push(item.prop);
126
+ });
127
+
128
+ return result;
129
+ },
130
+ calcHeight() {
131
+ return this.tableOption.calcHeight || 0;
132
+ },
133
+ propOption() {
134
+ let result = [];
135
+ function findProp(list = []) {
136
+ if (!Array.isArray(list)) return;
137
+ list.forEach((ele) => {
138
+ if (Array.isArray(ele.children)) findProp(ele.children);
139
+ else result.push(ele);
140
+ });
141
+ }
142
+ findProp(this.columnOption);
143
+ return result;
144
+ },
145
+ columnOption() {
146
+ let tableOption = this.deepClone(this.tableOption);
147
+ return getColumn(tableOption.column);
148
+ },
149
+ selectLen() {
150
+ return this.tableSelect ? this.tableSelect.length : 0;
151
+ },
152
+ },
153
+ watch: {
154
+ data: {
155
+ handler() {
156
+ this.dataInit();
157
+ },
158
+ deep: true,
159
+ },
160
+ },
161
+ props: {
162
+ value: {
163
+ type: Object,
164
+ default: () => {
165
+ return {};
166
+ },
167
+ },
168
+ page: {
169
+ type: Object,
170
+ default() {
171
+ return {};
172
+ },
173
+ },
174
+ tableLoading: {
175
+ type: Boolean,
176
+ default: false,
177
+ },
178
+ data: {
179
+ type: Array,
180
+ required: true,
181
+ default: () => {
182
+ return [];
183
+ },
184
+ },
185
+ },
186
+ methods: {
187
+ // 计算表格高度
188
+ getTableHeight() {
189
+ if (this.isAutoHeight) {
190
+ this.$nextTick(() => {
191
+ const tableRef = this.$refs.table;
192
+ const tablePageRef = this.$refs.tablePage;
193
+ if (!tableRef) return;
194
+ const tableStyle = tableRef.$el;
195
+ const pageStyle = tablePageRef.$el.offsetHeight || 20;
196
+ this.tableHeight =
197
+ document.documentElement.clientHeight -
198
+ tableStyle.offsetTop -
199
+ pageStyle -
200
+ this.calcHeight;
201
+ });
202
+ } else {
203
+ this.tableHeight = this.tableOption.height;
204
+ }
205
+ },
206
+ // 刷新表格
207
+ refreshTable(callback) {
208
+ console.log('refreshTable');
209
+ this.reload = Math.random();
210
+ this.$nextTick(() => {
211
+ callback && callback();
212
+ });
213
+ },
214
+ // 清除多选
215
+ clearSelection() {
216
+ console.log('clearSelection');
217
+ this.$emit('selection-clear', this.deepClone(this.tableSelect));
218
+ this.$refs.table.clearSelection();
219
+ },
220
+ // 初始化
221
+ dataInit() {
222
+ console.log('dataInit');
223
+ this.list = this.data;
224
+ this.list.forEach((ele, index) => {
225
+ this.$set(ele, '$index', index);
226
+ });
227
+ },
228
+ //设置单选
229
+ currentRowChange(currentRow, oldCurrentRow) {
230
+ console.log('currentRowChange');
231
+ this.$emit('current-row-change', currentRow, oldCurrentRow);
232
+ },
233
+ // 选择回调
234
+ selectionChange(val) {
235
+ console.log('selectionChange');
236
+ this.tableSelect = val;
237
+ this.$emit('selection-change', this.tableSelect);
238
+ },
239
+ // 单个选择回调
240
+ select(selection, row) {
241
+ console.log('select');
242
+ this.$emit('select', selection, row);
243
+ },
244
+ // 点击勾选全选 Checkbox
245
+ selectAll(selection) {
246
+ console.log('selectAll');
247
+ this.$emit('select-all', selection);
248
+ },
249
+ // 行点击
250
+ rowClick(row, event, column) {
251
+ console.log('rowClick');
252
+ this.$emit('row-click', row, event, column);
253
+ },
254
+ // 编辑
255
+ rowEdit(row, index) {
256
+ console.log('rowEdit', row, index);
257
+ this.$emit('row-edit', row, index, () => {});
258
+ },
259
+ // 删除
260
+ rowDel(row, index) {
261
+ console.log('rowDel', row, index);
262
+ this.$emit('row-del', row, index, () => {});
263
+ },
264
+ // 拖拽
265
+ tableDrop(type, el, callback) {
266
+ console.log('tableDrop');
267
+ if (this.isSortable !== true) {
268
+ if (type == 'row' && !this.isRowSort) {
269
+ return;
270
+ }
271
+ }
272
+ sortable &&
273
+ sortable.create(el, {
274
+ animation: 500,
275
+ delay: 0,
276
+ onEnd: (evt) => callback(evt),
277
+ });
278
+ },
279
+ },
280
+ };
281
+ </script>
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <el-card v-if="pageFlag && vaildData(comTable.tableOption.page, true)">
3
+ <el-pagination
4
+ :small="comTable.size == 'mini'"
5
+ :disabled="defaultPage.disabled"
6
+ :hide-on-single-page="defaultPage.single"
7
+ :pager-count="defaultPage.pagerCount"
8
+ :current-page.sync="defaultPage.currentPage"
9
+ :background="defaultPage.background"
10
+ :page-size="defaultPage.pageSize"
11
+ :page-sizes="defaultPage.pageSizes"
12
+ @size-change="sizeChange"
13
+ @prev-click="prevClick"
14
+ @next-click="nextClick"
15
+ @current-change="currentChange"
16
+ :layout="defaultPage.layout"
17
+ :total="defaultPage.total"
18
+ ></el-pagination>
19
+ </el-card>
20
+ </template>
21
+
22
+ <script>
23
+ import base from '../../utils/base.js';
24
+
25
+ export default {
26
+ name: 'comTable',
27
+ inject: ['comTable'],
28
+ mixins: [base()],
29
+ data() {
30
+ return {
31
+ defaultPage: {
32
+ single: false,
33
+ total: 0, // 总页数
34
+ pagerCount: 7, //超过多少条隐藏
35
+ currentPage: 1, // 当前页数
36
+ pageSize: 10, // 每页显示多少条
37
+ pageSizes: [10, 20, 30, 40, 50, 100],
38
+ layout: 'total, sizes, prev, pager, next, jumper',
39
+ background: true, // 背景颜色
40
+ },
41
+ };
42
+ },
43
+ created() {
44
+ this.pageInit();
45
+ this.comTable.$emit('on-load', this.defaultPage);
46
+ },
47
+ watch: {
48
+ 'comTable.page': {
49
+ handler() {
50
+ this.pageInit();
51
+ },
52
+ deep: true,
53
+ },
54
+ pageFlag() {
55
+ this.comTable.getTableHeight();
56
+ },
57
+ },
58
+ computed: {
59
+ pageFlag() {
60
+ return this.defaultPage.total != 0;
61
+ },
62
+ },
63
+ methods: {
64
+ pageInit() {
65
+ this.defaultPage = Object.assign(this.defaultPage, this.comTable.page);
66
+ this.updateValue();
67
+ },
68
+ updateValue() {
69
+ console.log('updateValue defaultPage', this.defaultPage);
70
+ this.comTable.$emit('update:page', this.defaultPage);
71
+ },
72
+ //下一页事件
73
+ nextClick(val) {
74
+ console.log('nextClick', val);
75
+ this.comTable.$emit('next-click', val);
76
+ },
77
+ //上一页事件
78
+ prevClick(val) {
79
+ console.log('prevClick', val);
80
+ this.comTable.$emit('prev-click', val);
81
+ },
82
+ // 页大小回调
83
+ sizeChange(val) {
84
+ this.defaultPage.currentPage = 1;
85
+ this.defaultPage.pageSize = val;
86
+ this.updateValue();
87
+ console.log('sizeChange', val);
88
+ this.comTable.$emit('on-load', this.defaultPage);
89
+ this.comTable.$emit('size-change', val);
90
+ },
91
+ // 页码回调
92
+ currentChange(val) {
93
+ this.updateValue();
94
+ this.comTable.$emit('on-load', this.defaultPage);
95
+ this.comTable.$emit('current-change', val);
96
+ },
97
+ },
98
+ };
99
+ </script>
100
+
101
+ <style lang="scss" scoped>
102
+ .el-pagination {
103
+ text-align: right;
104
+ padding: 15px 10px 15px 20px !important;
105
+ }
106
+ </style>
@@ -0,0 +1,50 @@
1
+ <template>
2
+ <el-tabs
3
+ v-model="active"
4
+ :before-leave="option.beforeLeave"
5
+ :tab-position="option.position"
6
+ :type="option.type"
7
+ >
8
+ <el-tab-pane
9
+ :name="index + ''"
10
+ :disabled="column.disabled"
11
+ :label="column.label"
12
+ v-for="(column, index) in columnOption"
13
+ :key="index"
14
+ >
15
+ </el-tab-pane>
16
+ </el-tabs>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'comTabs',
22
+ props: {
23
+ option: {
24
+ type: Object,
25
+ required: true,
26
+ default: () => {
27
+ return {};
28
+ },
29
+ },
30
+ },
31
+ data() {
32
+ return {
33
+ active: '0',
34
+ };
35
+ },
36
+ watch: {
37
+ active() {
38
+ this.$emit('change', this.tabsObj);
39
+ },
40
+ },
41
+ computed: {
42
+ tabsObj() {
43
+ return this.columnOption[this.active];
44
+ },
45
+ columnOption() {
46
+ return this.option.column || [];
47
+ },
48
+ },
49
+ };
50
+ </script>