mooho-base-admin-plus 2.2.13 → 2.2.14
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/history.md +1 -0
- package/package/mooho-base-admin-plus.min.esm.js +80 -69
- package/package/mooho-base-admin-plus.min.js +8 -8
- package/package.json +1 -1
- package/src/components/view/modal-table.vue +7 -0
- package/src/components/view/table-filter.vue +17 -4
- package/src/components/view/view-form-draggable.vue +3 -3
- package/src/components/view/view-form.vue +3 -3
- package/src/components/view/view-table.vue +18 -12
package/package.json
CHANGED
|
@@ -338,12 +338,19 @@
|
|
|
338
338
|
}
|
|
339
339
|
},
|
|
340
340
|
computed: {
|
|
341
|
+
// 表格数据
|
|
341
342
|
data() {
|
|
342
343
|
return this.$refs.table.data;
|
|
343
344
|
},
|
|
345
|
+
// 表格
|
|
344
346
|
table() {
|
|
345
347
|
return this.$refs.table;
|
|
346
348
|
},
|
|
349
|
+
// 筛选条件数据
|
|
350
|
+
filterData() {
|
|
351
|
+
return this.$refs.tableFilter.data;
|
|
352
|
+
},
|
|
353
|
+
// 屏幕宽度
|
|
347
354
|
screenWidth() {
|
|
348
355
|
return document.body.clientWidth * 0.8;
|
|
349
356
|
}
|
|
@@ -239,12 +239,15 @@
|
|
|
239
239
|
import customModelApi from '../../api/customModel';
|
|
240
240
|
import DialogSelect from '../input/dialog-select.vue';
|
|
241
241
|
import dateFormat from 'date-fns/format';
|
|
242
|
+
import { assign, defaultsDeep } from 'lodash';
|
|
242
243
|
|
|
243
244
|
export default {
|
|
244
245
|
mixins: [mixin, mixinPage],
|
|
245
246
|
components: { DialogSelect },
|
|
246
247
|
data() {
|
|
247
|
-
return {
|
|
248
|
+
return {
|
|
249
|
+
data: {}
|
|
250
|
+
};
|
|
248
251
|
},
|
|
249
252
|
async created() {
|
|
250
253
|
this.init();
|
|
@@ -255,7 +258,7 @@
|
|
|
255
258
|
type: Object
|
|
256
259
|
},
|
|
257
260
|
// 筛选项数据
|
|
258
|
-
|
|
261
|
+
filter: {
|
|
259
262
|
type: Object
|
|
260
263
|
},
|
|
261
264
|
// 字段
|
|
@@ -272,6 +275,13 @@
|
|
|
272
275
|
methods: {
|
|
273
276
|
init() {
|
|
274
277
|
let data = this.data;
|
|
278
|
+
|
|
279
|
+
// 默认值
|
|
280
|
+
if (this.filter) {
|
|
281
|
+
defaultsDeep(data, this.filter);
|
|
282
|
+
assign(this.filter, data);
|
|
283
|
+
}
|
|
284
|
+
|
|
275
285
|
this.columns.forEach(item => {
|
|
276
286
|
if (item.defaultValue) {
|
|
277
287
|
if (item.defaultValue == '{today}') {
|
|
@@ -299,6 +309,8 @@
|
|
|
299
309
|
} else if (item.dataType === 'Boolean' && item.defaultValue.toUpperCase == 'FALSE') {
|
|
300
310
|
this.setFilterData(data, item, false);
|
|
301
311
|
} else {
|
|
312
|
+
console.log('this.setFilterData', data, item, item.defaultValue);
|
|
313
|
+
|
|
302
314
|
this.setFilterData(data, item, item.defaultValue);
|
|
303
315
|
}
|
|
304
316
|
}
|
|
@@ -380,7 +392,7 @@
|
|
|
380
392
|
|
|
381
393
|
this.columns
|
|
382
394
|
.filter(column => {
|
|
383
|
-
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !column.dataType.startsWith('Enum:');
|
|
395
|
+
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'));
|
|
384
396
|
})
|
|
385
397
|
.forEach(column => {
|
|
386
398
|
let param = JSON.parse(column.param);
|
|
@@ -501,6 +513,7 @@
|
|
|
501
513
|
// },
|
|
502
514
|
// 选项变化事件
|
|
503
515
|
onSelectDataChange(sender, selected) {
|
|
516
|
+
console.log('onSelectDataChange', sender, selected);
|
|
504
517
|
let code;
|
|
505
518
|
if (sender.code.endsWith('ID')) {
|
|
506
519
|
code = sender.code.substr(0, sender.code.length - 2);
|
|
@@ -556,7 +569,7 @@
|
|
|
556
569
|
if (
|
|
557
570
|
!column.isStaticItem &&
|
|
558
571
|
!!(column.source || '').trim() &&
|
|
559
|
-
!column.dataType.startsWith('Enum:') &&
|
|
572
|
+
!(column.dataType && column.dataType.startsWith('Enum:')) &&
|
|
560
573
|
(sender == null ||
|
|
561
574
|
sender.triggers.some(item => {
|
|
562
575
|
return item.id === column.id;
|
|
@@ -610,7 +610,7 @@
|
|
|
610
610
|
// 数据源中包含变量需要刷新
|
|
611
611
|
this.columns
|
|
612
612
|
.filter(column => {
|
|
613
|
-
return !!(column.source || '').trim() && !!(column.param || '').trim() && !column.dataType.startsWith('Enum:');
|
|
613
|
+
return !!(column.source || '').trim() && !!(column.param || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'));
|
|
614
614
|
})
|
|
615
615
|
.forEach(column => {
|
|
616
616
|
let param = JSON.parse(column.param);
|
|
@@ -756,7 +756,7 @@
|
|
|
756
756
|
this.columns.forEach(function (column) {
|
|
757
757
|
if (
|
|
758
758
|
!!(column.source || '').trim() &&
|
|
759
|
-
!column.dataType.startsWith('Enum:') &&
|
|
759
|
+
!(column.dataType && column.dataType.startsWith('Enum:')) &&
|
|
760
760
|
(sender == null ||
|
|
761
761
|
sender.triggers.some(item => {
|
|
762
762
|
return item.id === column.id;
|
|
@@ -785,7 +785,7 @@
|
|
|
785
785
|
column.triggers.forEach(item => {
|
|
786
786
|
item.needClear = true;
|
|
787
787
|
});
|
|
788
|
-
} else if (column.needRefresh && !!(column.source || '').trim() && !column.dataType.startsWith('Enum:')) {
|
|
788
|
+
} else if (column.needRefresh && !!(column.source || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'))) {
|
|
789
789
|
let param = this.getParam(this.data, column);
|
|
790
790
|
|
|
791
791
|
if (
|
|
@@ -1011,7 +1011,7 @@
|
|
|
1011
1011
|
// 数据源中包含变量需要刷新
|
|
1012
1012
|
this.columns
|
|
1013
1013
|
.filter(column => {
|
|
1014
|
-
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !column.dataType.startsWith('Enum:');
|
|
1014
|
+
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'));
|
|
1015
1015
|
})
|
|
1016
1016
|
.forEach(column => {
|
|
1017
1017
|
let param = JSON.parse(column.param);
|
|
@@ -1333,7 +1333,7 @@
|
|
|
1333
1333
|
if (
|
|
1334
1334
|
!column.isStaticItem &&
|
|
1335
1335
|
!!(column.source || '').trim() &&
|
|
1336
|
-
!column.dataType.startsWith('Enum:') &&
|
|
1336
|
+
!(column.dataType && column.dataType.startsWith('Enum:')) &&
|
|
1337
1337
|
(sender == null ||
|
|
1338
1338
|
sender.triggers.some(item => {
|
|
1339
1339
|
return item.code == column.code;
|
|
@@ -1366,7 +1366,7 @@
|
|
|
1366
1366
|
column.triggers.forEach(item => {
|
|
1367
1367
|
item.needClear = true;
|
|
1368
1368
|
});
|
|
1369
|
-
} else if (column.needRefresh && !!(column.source || '').trim() && !column.dataType.startsWith('Enum:')) {
|
|
1369
|
+
} else if (column.needRefresh && !!(column.source || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'))) {
|
|
1370
1370
|
let param = this.getParam(this.data, column);
|
|
1371
1371
|
|
|
1372
1372
|
if (
|
|
@@ -23,20 +23,20 @@
|
|
|
23
23
|
@binding {object} table 表格对象
|
|
24
24
|
@binding {object} filter 筛选对象
|
|
25
25
|
-->
|
|
26
|
-
<slot name="filter" :table="this"
|
|
26
|
+
<slot name="filter" :table="this">
|
|
27
27
|
<!--
|
|
28
28
|
@slot 自定义筛选栏
|
|
29
29
|
-->
|
|
30
30
|
<slot name="customFilter"></slot>
|
|
31
|
-
<table-filter ref="tableFilter" :
|
|
32
|
-
<template #column="{
|
|
31
|
+
<table-filter ref="tableFilter" :filter="filter" :columns="filterColumns" :table-view="tableView" @on-keyup="onKeyup">
|
|
32
|
+
<template #column="{ column }">
|
|
33
33
|
<!--
|
|
34
34
|
@slot 筛选栏自定义列
|
|
35
35
|
@binding {object} filter 筛选条件对象
|
|
36
36
|
@binding {object} column 列对象
|
|
37
37
|
@binding {string} code 列代码
|
|
38
38
|
-->
|
|
39
|
-
<slot name="filterColumn" :
|
|
39
|
+
<slot name="filterColumn" :column="column" :code="column.code"></slot>
|
|
40
40
|
</template>
|
|
41
41
|
</table-filter>
|
|
42
42
|
<Col v-bind="getGrid(tableView.filterWidth)" :style="{ 'text-align': tableView.filterAlign == null ? 'left' : tableView.filterAlign.toLowerCase() }">
|
|
@@ -902,6 +902,10 @@
|
|
|
902
902
|
} else {
|
|
903
903
|
return this.height;
|
|
904
904
|
}
|
|
905
|
+
},
|
|
906
|
+
// 筛选条件数据
|
|
907
|
+
filterData() {
|
|
908
|
+
return this.$refs.tableFilter.data;
|
|
905
909
|
}
|
|
906
910
|
},
|
|
907
911
|
watch: {
|
|
@@ -1501,8 +1505,8 @@
|
|
|
1501
1505
|
* @public
|
|
1502
1506
|
*/
|
|
1503
1507
|
resetFilter() {
|
|
1504
|
-
for (let key in this.
|
|
1505
|
-
delete this.
|
|
1508
|
+
for (let key in this.filterData) {
|
|
1509
|
+
delete this.filterData[key];
|
|
1506
1510
|
}
|
|
1507
1511
|
|
|
1508
1512
|
//this.$forceUpdate();
|
|
@@ -1668,7 +1672,7 @@
|
|
|
1668
1672
|
|
|
1669
1673
|
//this.$forceUpdate();
|
|
1670
1674
|
} else {
|
|
1671
|
-
if (!!(column.source || '').trim() && !column.dataType.startsWith('Enum:')) {
|
|
1675
|
+
if (!!(column.source || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'))) {
|
|
1672
1676
|
this.data.forEach(row => {
|
|
1673
1677
|
if (row._dataSource && row._dataSource[column.code]) {
|
|
1674
1678
|
return;
|
|
@@ -1696,7 +1700,7 @@
|
|
|
1696
1700
|
// 数据源中包含变量需要刷新
|
|
1697
1701
|
this.columns
|
|
1698
1702
|
.filter(column => {
|
|
1699
|
-
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !column.dataType.startsWith('Enum:');
|
|
1703
|
+
return !column.isStaticItem && !!(column.source || '').trim() && !!(column.param || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'));
|
|
1700
1704
|
})
|
|
1701
1705
|
.forEach(column => {
|
|
1702
1706
|
let param = JSON.parse(column.param);
|
|
@@ -1910,7 +1914,7 @@
|
|
|
1910
1914
|
if (
|
|
1911
1915
|
!column.isStaticItem &&
|
|
1912
1916
|
!!(column.source || '').trim() &&
|
|
1913
|
-
!column.dataType.startsWith('Enum:') &&
|
|
1917
|
+
!(column.dataType && column.dataType.startsWith('Enum:')) &&
|
|
1914
1918
|
(sender == null ||
|
|
1915
1919
|
sender.triggers.some(item => {
|
|
1916
1920
|
return item.code == column.code;
|
|
@@ -1941,7 +1945,7 @@
|
|
|
1941
1945
|
column.triggers.forEach(item => {
|
|
1942
1946
|
data._needClear[item.code] = true;
|
|
1943
1947
|
});
|
|
1944
|
-
} else if (data._needRefresh[column.code] && !!(column.source || '').trim() && !column.dataType.startsWith('Enum:')) {
|
|
1948
|
+
} else if (data._needRefresh[column.code] && !!(column.source || '').trim() && !(column.dataType && column.dataType.startsWith('Enum:'))) {
|
|
1945
1949
|
let param = this.getParam(data, column, this.parentData);
|
|
1946
1950
|
|
|
1947
1951
|
if (
|
|
@@ -2083,9 +2087,11 @@
|
|
|
2083
2087
|
},
|
|
2084
2088
|
// 合并后最终的筛选项
|
|
2085
2089
|
getAllFilter() {
|
|
2090
|
+
console.log('getAllFilter');
|
|
2091
|
+
|
|
2086
2092
|
let filter = {
|
|
2087
2093
|
...this.viewFilter,
|
|
2088
|
-
...this.
|
|
2094
|
+
...this.filterData
|
|
2089
2095
|
};
|
|
2090
2096
|
|
|
2091
2097
|
for (let key in filter) {
|
|
@@ -2101,7 +2107,7 @@
|
|
|
2101
2107
|
let data = this.staticData;
|
|
2102
2108
|
|
|
2103
2109
|
if (!this.filterDisable) {
|
|
2104
|
-
let filter = this.
|
|
2110
|
+
let filter = this.filterData;
|
|
2105
2111
|
|
|
2106
2112
|
for (let key in filter) {
|
|
2107
2113
|
let column = key;
|