@ibiz-template/vue3-components 0.6.17 → 0.7.1
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/dist/chart-jfPZ04eU.js +1 -0
- package/dist/index-XRnHM6lw.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{xlsx-util-tKOH6BvT.js → xlsx-util-X-Qzwu1f.js} +1 -1
- package/es/common/pagination/pagination.d.ts +9 -0
- package/es/common/pagination/pagination.mjs +12 -2
- package/es/common/view-message/view-message.css +1 -1
- package/es/common/view-message/view-message.d.ts +27 -1
- package/es/common/view-message/view-message.mjs +133 -17
- package/es/control/chart/chart.css +1 -1
- package/es/control/chart/chart.d.ts +3 -1
- package/es/control/chart/chart.mjs +70 -6
- package/es/control/data-view/data-view.mjs +1 -0
- package/es/control/drbar/drbar.controller.d.ts +9 -0
- package/es/control/drbar/drbar.controller.mjs +16 -1
- package/es/control/drtab/drtab.controller.d.ts +9 -0
- package/es/control/drtab/drtab.controller.mjs +16 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +2 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +13 -4
- package/es/control/form/form-detail/form-mdctrl/index.d.ts +1 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.d.ts +2 -1
- package/es/control/form/form-detail/form-rawitem/form-rawitem.mjs +32 -1
- package/es/control/form/form-detail/form-rawitem/index.d.ts +1 -0
- package/es/control/grid/grid/grid.mjs +1 -0
- package/es/control/list/list.mjs +1 -0
- package/es/control/search-bar/filter-tree/filter-tree.d.ts +3 -3
- package/es/control/search-bar/filter-tree/filter-tree.mjs +98 -37
- package/es/control/search-bar/index.d.ts +1 -0
- package/es/control/search-bar/index.mjs +2 -0
- package/es/control/search-bar/quick-search-select/quick-search-select.css +1 -0
- package/es/control/search-bar/quick-search-select/quick-search-select.d.ts +16 -0
- package/es/control/search-bar/quick-search-select/quick-search-select.mjs +72 -0
- package/es/control/search-bar/search-bar.css +1 -1
- package/es/control/search-bar/search-bar.d.ts +1 -0
- package/es/control/search-bar/search-bar.mjs +14 -3
- package/es/control/tree-grid/tree-grid.mjs +1 -0
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +11 -3
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +13 -2
- package/es/editor/list-box/ibiz-list-box/ibiz-list-box.mjs +13 -5
- package/es/editor/raw/ibiz-raw/ibiz-raw.mjs +7 -0
- package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +3 -3
- package/es/panel-component/index.mjs +2 -0
- package/es/panel-component/panel-index-view-search/index.d.ts +2 -0
- package/es/panel-component/panel-index-view-search/panel-index-view-search.d.ts +2 -0
- package/es/panel-component/panel-index-view-search/panel-index-view-search.mjs +30 -3
- package/es/panel-component/view-msg-pos/index.d.ts +25 -0
- package/es/panel-component/view-msg-pos/index.mjs +16 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.controller.d.ts +21 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.controller.mjs +48 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.d.ts +25 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.mjs +47 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.provider.d.ts +16 -0
- package/es/panel-component/view-msg-pos/view-msg-pos.provider.mjs +21 -0
- package/es/view-engine/index.mjs +4 -0
- package/es/view-engine/panel-view-engine.d.ts +2 -2
- package/es/view-engine/tab-search-view.engine.mjs +5 -0
- package/es/web-app/App.mjs +9 -1
- package/lib/common/pagination/pagination.cjs +12 -2
- package/lib/common/view-message/view-message.cjs +132 -16
- package/lib/common/view-message/view-message.css +1 -1
- package/lib/control/chart/chart.cjs +69 -5
- package/lib/control/chart/chart.css +1 -1
- package/lib/control/data-view/data-view.cjs +1 -0
- package/lib/control/drbar/drbar.controller.cjs +16 -1
- package/lib/control/drtab/drtab.controller.cjs +16 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +13 -4
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
- package/lib/control/form/form-detail/form-rawitem/form-rawitem.cjs +31 -0
- package/lib/control/grid/grid/grid.cjs +1 -0
- package/lib/control/list/list.cjs +1 -0
- package/lib/control/search-bar/filter-tree/filter-tree.cjs +98 -37
- package/lib/control/search-bar/index.cjs +2 -0
- package/lib/control/search-bar/quick-search-select/quick-search-select.cjs +74 -0
- package/lib/control/search-bar/quick-search-select/quick-search-select.css +1 -0
- package/lib/control/search-bar/search-bar.cjs +14 -3
- package/lib/control/search-bar/search-bar.css +1 -1
- package/lib/control/tree-grid/tree-grid.cjs +1 -0
- package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +11 -3
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +13 -2
- package/lib/editor/list-box/ibiz-list-box/ibiz-list-box.cjs +13 -5
- package/lib/editor/raw/ibiz-raw/ibiz-raw.cjs +7 -0
- package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +2 -2
- package/lib/panel-component/index.cjs +2 -0
- package/lib/panel-component/panel-index-view-search/panel-index-view-search.cjs +29 -2
- package/lib/panel-component/view-msg-pos/index.cjs +22 -0
- package/lib/panel-component/view-msg-pos/view-msg-pos.cjs +49 -0
- package/lib/panel-component/view-msg-pos/view-msg-pos.controller.cjs +50 -0
- package/lib/panel-component/view-msg-pos/view-msg-pos.provider.cjs +23 -0
- package/lib/view-engine/index.cjs +4 -0
- package/lib/view-engine/tab-search-view.engine.cjs +5 -0
- package/lib/web-app/App.cjs +8 -0
- package/package.json +12 -12
- package/dist/chart-IsmrW_d0.js +0 -1
- package/dist/index-fN8w56IX.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-view-
|
|
1
|
+
.ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none)}.ibiz-view-message--hidden{display:none}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert__title{height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{height:var(--ibiz-spacing-base);overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
|
|
@@ -5,10 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var vue3Util = require('@ibiz-template/vue3-util');
|
|
7
7
|
var echarts = require('echarts');
|
|
8
|
-
require('
|
|
8
|
+
var qxUtil = require('qx-util');
|
|
9
9
|
var runtime = require('@ibiz-template/runtime');
|
|
10
|
+
require('./chart.css');
|
|
10
11
|
|
|
11
12
|
"use strict";
|
|
13
|
+
function _isSlot(s) {
|
|
14
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
15
|
+
}
|
|
12
16
|
const ChartControl = /* @__PURE__ */ vue.defineComponent({
|
|
13
17
|
name: "IBizChartControl",
|
|
14
18
|
props: {
|
|
@@ -40,27 +44,87 @@ const ChartControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
40
44
|
const c = vue3Util.useControlController((...args) => new runtime.ChartController(...args));
|
|
41
45
|
const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
|
|
42
46
|
const chartRef = vue.ref();
|
|
47
|
+
const maxHeight = vue.ref(0);
|
|
48
|
+
const uuid = qxUtil.createUUID();
|
|
49
|
+
const setHeight = async () => {
|
|
50
|
+
await vue.nextTick();
|
|
51
|
+
const el = document.getElementById(uuid);
|
|
52
|
+
if (el) {
|
|
53
|
+
if (c.state.gridPosition === "bottom" || c.state.gridPosition === "top") {
|
|
54
|
+
maxHeight.value = el.offsetHeight / 2 - 8;
|
|
55
|
+
} else {
|
|
56
|
+
maxHeight.value = el.offsetHeight - 16;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const getGridData = () => {
|
|
61
|
+
return c.state.gridData || [];
|
|
62
|
+
};
|
|
43
63
|
vue.onMounted(() => {
|
|
44
64
|
const chart = echarts.init(chartRef.value);
|
|
45
65
|
c.initChart(chart);
|
|
66
|
+
window.addEventListener("resize", setHeight);
|
|
67
|
+
setHeight();
|
|
68
|
+
});
|
|
69
|
+
vue.watch(() => c.state.showGrid, () => {
|
|
70
|
+
setHeight();
|
|
71
|
+
}, {
|
|
72
|
+
immediate: true
|
|
73
|
+
});
|
|
74
|
+
const renderGrid = () => {
|
|
75
|
+
let _slot;
|
|
76
|
+
return vue.createVNode(vue.resolveComponent("el-table"), {
|
|
77
|
+
"ref": "tableRef",
|
|
78
|
+
"data": getGridData(),
|
|
79
|
+
"border": true,
|
|
80
|
+
"style": {
|
|
81
|
+
width: "100%"
|
|
82
|
+
},
|
|
83
|
+
"max-height": maxHeight.value,
|
|
84
|
+
"header-row-class-name": ns.e("grid-header")
|
|
85
|
+
}, _isSlot(_slot = c.state.gridHeaders.map((column) => {
|
|
86
|
+
return vue.createVNode(vue.resolveComponent("el-table-column"), {
|
|
87
|
+
"prop": column.id,
|
|
88
|
+
"align": "center",
|
|
89
|
+
"label": column.name
|
|
90
|
+
}, null);
|
|
91
|
+
})) ? _slot : {
|
|
92
|
+
default: () => [_slot]
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
vue.onBeforeUnmount(() => {
|
|
96
|
+
window.removeEventListener("resize", setHeight);
|
|
46
97
|
});
|
|
47
98
|
return {
|
|
48
99
|
c,
|
|
49
100
|
ns,
|
|
50
|
-
chartRef
|
|
101
|
+
chartRef,
|
|
102
|
+
uuid,
|
|
103
|
+
renderGrid
|
|
51
104
|
};
|
|
52
105
|
},
|
|
53
106
|
render() {
|
|
54
107
|
return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
|
|
55
108
|
"controller": this.c
|
|
56
109
|
}, {
|
|
57
|
-
default: () => [vue.createVNode(
|
|
110
|
+
default: () => [vue.createVNode("div", {
|
|
111
|
+
"id": this.uuid,
|
|
112
|
+
"class": this.ns.b("chart-container")
|
|
113
|
+
}, [vue.createVNode(vue.resolveComponent("el-empty"), {
|
|
58
114
|
"class": [this.ns.e("empty"), this.ns.is("no-data", this.c.state.items.length === 0)],
|
|
59
115
|
"description": "\u6682\u65E0\u6570\u636E"
|
|
60
116
|
}, null), vue.createVNode("div", {
|
|
117
|
+
"class": [this.ns.e("chart-grid"), this.ns.is("no-data", this.c.state.items.length === 0), this.ns.is("show-grid", this.c.state.showGrid), {
|
|
118
|
+
[this.ns.em("chart-grid", this.c.state.gridPosition)]: this.c.state.showGrid
|
|
119
|
+
}]
|
|
120
|
+
}, [vue.createVNode("div", {
|
|
121
|
+
"class": [this.ns.e("chart-grid-container"), this.ns.is(this.c.state.gridPosition, this.c.state.showGrid), this.ns.is("no-grid", !this.c.state.showGrid)]
|
|
122
|
+
}, [vue.createVNode("div", {
|
|
61
123
|
"ref": "chartRef",
|
|
62
|
-
"class": [this.ns.e("chart")
|
|
63
|
-
}, [ibiz.i18n.t("control.chart.chartPlaceholder")])]
|
|
124
|
+
"class": [this.ns.e("chart")]
|
|
125
|
+
}, [ibiz.i18n.t("control.chart.chartPlaceholder")])]), this.c.state.showGrid ? vue.createVNode("div", {
|
|
126
|
+
"class": this.ns.e("grid")
|
|
127
|
+
}, [this.renderGrid()]) : null])])]
|
|
64
128
|
});
|
|
65
129
|
}
|
|
66
130
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-control-chart{width:100%;height:100%}.ibiz-control-chart__chart{width:100%;height:100%}.ibiz-control-chart__chart.is-no-data{display:none}.ibiz-control-chart__empty{display:none;height:100%}.ibiz-control-chart__empty.is-no-data{display:flex}
|
|
1
|
+
.ibiz-control-chart{width:100%;height:100%}.ibiz-control-chart__chart-grid{width:100%;height:100%}.ibiz-control-chart__chart-grid.is-show-grid{display:flex;height:calc(100% - 16px)}.ibiz-control-chart__chart-grid--bottom{flex-direction:column}.ibiz-control-chart__chart-grid--top{flex-direction:column-reverse}.ibiz-control-chart__chart-grid--left{flex-direction:row-reverse}.ibiz-control-chart__chart-grid--right{flex-direction:row}.ibiz-control-chart__chart-grid.is-no-data{display:none}.ibiz-control-chart__chart-grid-container{flex:1;height:50%}.ibiz-control-chart__chart-grid-container.is-bottom{width:100%;height:50%;min-height:50%}.ibiz-control-chart__chart-grid-container.is-top{width:100%;height:50%;min-height:50%}.ibiz-control-chart__chart-grid-container.is-left{width:50%;min-width:50%;height:100%}.ibiz-control-chart__chart-grid-container.is-right{width:50%;min-width:50%;height:100%}.ibiz-control-chart__chart-grid-container.is-no-grid{flex:unset;width:100%;height:100%}.ibiz-control-chart__chart{width:100%;height:100%}.ibiz-control-chart__grid{flex:1;height:auto}.ibiz-control-chart__grid .cell{text-overflow:ellipsis;white-space:nowrap}.ibiz-control-chart__grid .el-table__body-wrapper{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-control-chart__empty{display:none;height:100%}.ibiz-control-chart__empty.is-no-data{display:flex}.ibiz-control-chart-chart-container{width:100%;height:100%}
|
|
@@ -283,6 +283,7 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
283
283
|
"total": this.c.state.total,
|
|
284
284
|
"curPage": this.c.state.curPage,
|
|
285
285
|
"size": this.c.state.size,
|
|
286
|
+
"totalPages": this.c.state.totalPages,
|
|
286
287
|
"onChange": this.onPageChange,
|
|
287
288
|
"onPageSizeChange": this.onPageSizeChange,
|
|
288
289
|
"onPageRefresh": this.onPageRefresh
|
|
@@ -54,7 +54,8 @@ class DRBarController extends runtime.ControlController {
|
|
|
54
54
|
* @memberof DRBarController
|
|
55
55
|
*/
|
|
56
56
|
get form() {
|
|
57
|
-
|
|
57
|
+
var _a;
|
|
58
|
+
return (_a = this.view) == null ? void 0 : _a.getController("form");
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* 是否是新建
|
|
@@ -443,6 +444,20 @@ class DRBarController extends runtime.ControlController {
|
|
|
443
444
|
);
|
|
444
445
|
}
|
|
445
446
|
}
|
|
447
|
+
/**
|
|
448
|
+
* 监听组件销毁
|
|
449
|
+
*
|
|
450
|
+
* @author zhanghengfeng
|
|
451
|
+
* @date 2024-04-10 19:04:43
|
|
452
|
+
* @protected
|
|
453
|
+
* @return {*} {Promise<void>}
|
|
454
|
+
*/
|
|
455
|
+
async onDestroyed() {
|
|
456
|
+
await super.onDestroyed();
|
|
457
|
+
if (this.counter) {
|
|
458
|
+
this.counter.destroy();
|
|
459
|
+
}
|
|
460
|
+
}
|
|
446
461
|
}
|
|
447
462
|
|
|
448
463
|
exports.DRBarController = DRBarController;
|
|
@@ -45,7 +45,8 @@ class DRTabController extends runtime.ControlController {
|
|
|
45
45
|
* @memberof DRTabController
|
|
46
46
|
*/
|
|
47
47
|
get form() {
|
|
48
|
-
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = this.view) == null ? void 0 : _a.getController("form");
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
52
|
* 路由层级
|
|
@@ -307,6 +308,20 @@ class DRTabController extends runtime.ControlController {
|
|
|
307
308
|
);
|
|
308
309
|
}
|
|
309
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* 监听组件销毁
|
|
313
|
+
*
|
|
314
|
+
* @author zhanghengfeng
|
|
315
|
+
* @date 2024-04-10 19:04:40
|
|
316
|
+
* @protected
|
|
317
|
+
* @return {*} {Promise<void>}
|
|
318
|
+
*/
|
|
319
|
+
async onDestroyed() {
|
|
320
|
+
await super.onDestroyed();
|
|
321
|
+
if (this.counter) {
|
|
322
|
+
this.counter.destroy();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
310
325
|
}
|
|
311
326
|
|
|
312
327
|
exports.DRTabController = DRTabController;
|
|
@@ -25,10 +25,14 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
|
|
|
25
25
|
vue3Util.useController(props.controller);
|
|
26
26
|
const c = props.controller;
|
|
27
27
|
const hasCaption = c.model.showCaption && !!c.model.caption;
|
|
28
|
+
const onActionClick = async (detail, event) => {
|
|
29
|
+
await props.controller.onActionClick(detail, event);
|
|
30
|
+
};
|
|
28
31
|
return {
|
|
29
32
|
c,
|
|
30
33
|
ns,
|
|
31
|
-
hasCaption
|
|
34
|
+
hasCaption,
|
|
35
|
+
onActionClick
|
|
32
36
|
};
|
|
33
37
|
},
|
|
34
38
|
render() {
|
|
@@ -60,11 +64,16 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
|
|
|
60
64
|
}
|
|
61
65
|
return vue.createVNode("div", {
|
|
62
66
|
"class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : ""]
|
|
63
|
-
}, [
|
|
67
|
+
}, [vue.createVNode("div", {
|
|
64
68
|
"class": this.ns.b("header")
|
|
65
|
-
}, [vue.createVNode("
|
|
69
|
+
}, [vue.createVNode("div", {
|
|
66
70
|
"class": this.ns.e("title")
|
|
67
|
-
}, [this.c.model.caption])
|
|
71
|
+
}, [this.hasCaption ? this.c.model.caption : ""]), model.uiactionGroup && vue.createVNode(vue.resolveComponent("iBizActionToolbar"), {
|
|
72
|
+
"class": this.ns.e("toolbar"),
|
|
73
|
+
"action-details": model.uiactionGroup.uiactionGroupDetails,
|
|
74
|
+
"actions-state": this.controller.state.actionGroupState,
|
|
75
|
+
"onActionClick": this.onActionClick
|
|
76
|
+
}, null)]), content]);
|
|
68
77
|
}
|
|
69
78
|
});
|
|
70
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:
|
|
1
|
+
.ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:49px}.ibiz-form-mdctrl__toolbar{display:flex;justify-content:flex-end;width:50%}.ibiz-form-mdctrl__title{width:50%;font-size:var(--ibiz-font-size-header-5);font-weight:var(--ibiz-font-weight-bold)}.ibiz-form-mdctrl-header{display:flex;place-content:center space-between;align-items:center;height:var(--ibiz-form-mdctrl-header-height);padding:var(--ibiz-spacing-base-tight) 0;margin:6px var(--ibiz-spacing-base-tight);line-height:var(--ibiz-form-mdctrl-header-height);border-bottom:1px solid var(--ibiz-color-border)}
|
|
@@ -22,14 +22,44 @@ const FormRawItem = /* @__PURE__ */ vue.defineComponent({
|
|
|
22
22
|
},
|
|
23
23
|
setup(props) {
|
|
24
24
|
const ns = vue3Util.useNamespace("form-raw-item");
|
|
25
|
+
const c = props.controller;
|
|
26
|
+
const content = vue.ref("");
|
|
25
27
|
const showFormDefaultContent = vue.computed(() => {
|
|
26
28
|
if (props.controller.form.controlParams && props.controller.form.controlParams.editmode === "hover") {
|
|
27
29
|
return true;
|
|
28
30
|
}
|
|
29
31
|
return false;
|
|
30
32
|
});
|
|
33
|
+
vue.watch(() => c.data, async (newVal) => {
|
|
34
|
+
if (newVal) {
|
|
35
|
+
const rawItemModel = c.model.rawItem;
|
|
36
|
+
if (!rawItemModel) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
let rawItemContent = "";
|
|
40
|
+
const obj = {
|
|
41
|
+
...newVal
|
|
42
|
+
};
|
|
43
|
+
if (rawItemModel.contentType === "RAW") {
|
|
44
|
+
rawItemContent = rawItemModel.caption;
|
|
45
|
+
} else if (rawItemModel.contentType === "HTML") {
|
|
46
|
+
rawItemContent = rawItemModel.content;
|
|
47
|
+
}
|
|
48
|
+
if (rawItemContent && rawItemModel.templateMode) {
|
|
49
|
+
rawItemContent = await ibiz.util.hbs.render(rawItemContent.replaceAll("//n", "\n"), Object.assign(obj, {
|
|
50
|
+
data: {
|
|
51
|
+
...newVal
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
content.value = rawItemContent;
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
immediate: true
|
|
59
|
+
});
|
|
31
60
|
return {
|
|
32
61
|
ns,
|
|
62
|
+
content,
|
|
33
63
|
showFormDefaultContent
|
|
34
64
|
};
|
|
35
65
|
},
|
|
@@ -40,6 +70,7 @@ const FormRawItem = /* @__PURE__ */ vue.defineComponent({
|
|
|
40
70
|
return vue.createVNode(vue.resolveComponent("iBizRawItem"), {
|
|
41
71
|
"class": [this.ns.b(), ...this.controller.containerClass, this.ns.is("show-default", this.showFormDefaultContent)],
|
|
42
72
|
"rawItem": this.modelData,
|
|
73
|
+
"content": this.content,
|
|
43
74
|
"onClick": (event) => this.controller.onClick(event)
|
|
44
75
|
}, null);
|
|
45
76
|
}
|
|
@@ -294,6 +294,7 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
294
294
|
"total": state.total,
|
|
295
295
|
"curPage": state.curPage,
|
|
296
296
|
"size": state.size,
|
|
297
|
+
"totalPages": state.totalPages,
|
|
297
298
|
"onChange": this.onPageChange,
|
|
298
299
|
"onPageSizeChange": this.onPageSizeChange,
|
|
299
300
|
"onPageRefresh": this.onPageRefresh
|
|
@@ -214,6 +214,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
214
214
|
"total": this.c.state.total,
|
|
215
215
|
"curPage": this.c.state.curPage,
|
|
216
216
|
"size": this.c.state.size,
|
|
217
|
+
"totalPages": this.c.state.totalPages,
|
|
217
218
|
"onChange": this.onPageChange,
|
|
218
219
|
"onPageSizeChange": this.onPageSizeChange,
|
|
219
220
|
"onPageRefresh": this.onPageRefresh
|
|
@@ -4,6 +4,7 @@ var vue = require('vue');
|
|
|
4
4
|
var runtime = require('@ibiz-template/runtime');
|
|
5
5
|
var vue3Util = require('@ibiz-template/vue3-util');
|
|
6
6
|
require('./filter-tree.css');
|
|
7
|
+
var qxUtil = require('qx-util');
|
|
7
8
|
|
|
8
9
|
"use strict";
|
|
9
10
|
function _isSlot(s) {
|
|
@@ -92,33 +93,49 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
92
93
|
const UiFilterNodes = vue.computed(() => {
|
|
93
94
|
return props.filterNodes;
|
|
94
95
|
});
|
|
95
|
-
const findFilterController = (
|
|
96
|
+
const findFilterController = (node) => {
|
|
97
|
+
if (node.nodeType === "ITEMS" && node.simple) {
|
|
98
|
+
const subNode = node.children[0];
|
|
99
|
+
return props.filterControllers.find((item) => {
|
|
100
|
+
if (item.type === "SIMPLE_ITEMS") {
|
|
101
|
+
const simpleC = item;
|
|
102
|
+
if (simpleC.fieldName === node.field && simpleC.valueOP === node.valueOP && simpleC.subFieldName === subNode.field && simpleC.subValueOP === subNode.valueOP) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const {
|
|
110
|
+
field,
|
|
111
|
+
valueOP
|
|
112
|
+
} = node;
|
|
96
113
|
return props.filterControllers.find((item) => {
|
|
97
|
-
if (item.
|
|
114
|
+
if (item.type === "SIMPLE_ITEMS") {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
if (item.fieldName === field) {
|
|
98
118
|
return item.valueOP ? item.valueOP === valueOP : true;
|
|
99
119
|
}
|
|
100
120
|
return false;
|
|
101
121
|
});
|
|
102
122
|
};
|
|
103
123
|
const allFields = [];
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
const field = fieldInfos.find((item) => item.name === fieldName);
|
|
109
|
-
if (!field) {
|
|
124
|
+
props.filterControllers.forEach((filterC) => {
|
|
125
|
+
let find = allFields.find((x) => x.name === filterC.key);
|
|
126
|
+
if (filterC.hidden) {
|
|
110
127
|
return;
|
|
111
128
|
}
|
|
112
|
-
return field.valueOPs;
|
|
113
|
-
};
|
|
114
|
-
props.filterControllers.forEach((filterC) => {
|
|
115
|
-
let find = allFields.find((x) => x.name === filterC.fieldName);
|
|
116
129
|
if (find === void 0) {
|
|
117
130
|
find = {
|
|
118
|
-
name: filterC.
|
|
131
|
+
name: filterC.key,
|
|
132
|
+
fieldName: filterC.fieldName,
|
|
119
133
|
label: filterC.label,
|
|
120
134
|
valueOPs: []
|
|
121
135
|
};
|
|
136
|
+
if (filterC.type === "SIMPLE_ITEMS") {
|
|
137
|
+
find.simpleFilterC = filterC;
|
|
138
|
+
}
|
|
122
139
|
allFields.push(find);
|
|
123
140
|
}
|
|
124
141
|
if (!filterC.valueOP) {
|
|
@@ -127,25 +144,38 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
127
144
|
find.valueOPs.push(filterC.valueOP);
|
|
128
145
|
}
|
|
129
146
|
});
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
147
|
+
const getFilterModes = (fieldName, fieldInfos = allFields) => {
|
|
148
|
+
if (!fieldName) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const field = fieldInfos.find((item) => item.name === fieldName);
|
|
152
|
+
if (!field) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
return field.valueOPs;
|
|
156
|
+
};
|
|
157
|
+
const onFieldSelect = (node, key, fields = allFields) => {
|
|
158
|
+
const fieldInfo = fields.find((item) => item.name === key);
|
|
159
|
+
if (!fieldInfo) {
|
|
160
|
+
ibiz.log.error("allFields\u627E\u4E0D\u5230\u5C5E\u6027\u6807\u8BC6\u4E3A".concat(key, "\u7684"));
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
qxUtil.clearAll(node);
|
|
164
|
+
if (fieldInfo.simpleFilterC) {
|
|
165
|
+
fieldInfo.simpleFilterC.addSimpleFilterNode(node);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
node.nodeType = "FIELD";
|
|
169
|
+
node.field = fieldInfo.fieldName;
|
|
139
170
|
};
|
|
140
171
|
const onValueOPSelect = (node, valueOP) => {
|
|
141
172
|
node.valueOP = valueOP;
|
|
142
173
|
node.value = null;
|
|
143
174
|
if (["EXISTS", "NOTEXISTS"].includes(valueOP)) {
|
|
144
175
|
Object.assign(node, {
|
|
145
|
-
|
|
146
|
-
logicType: "ITEMS",
|
|
176
|
+
nodeType: "ITEMS",
|
|
147
177
|
children: [{
|
|
148
|
-
|
|
178
|
+
nodeType: "FIELD",
|
|
149
179
|
field: null,
|
|
150
180
|
valueOP: null,
|
|
151
181
|
value: null
|
|
@@ -153,8 +183,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
153
183
|
});
|
|
154
184
|
} else {
|
|
155
185
|
Object.assign(node, {
|
|
156
|
-
|
|
157
|
-
logicType: void 0,
|
|
186
|
+
nodeType: "FIELD",
|
|
158
187
|
children: void 0
|
|
159
188
|
});
|
|
160
189
|
}
|
|
@@ -164,10 +193,10 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
164
193
|
};
|
|
165
194
|
const addGroup = (node) => {
|
|
166
195
|
node.children.push({
|
|
167
|
-
|
|
196
|
+
nodeType: "GROUP",
|
|
168
197
|
logicType: "AND",
|
|
169
198
|
children: [{
|
|
170
|
-
|
|
199
|
+
nodeType: "FIELD",
|
|
171
200
|
field: null,
|
|
172
201
|
valueOP: null,
|
|
173
202
|
value: null
|
|
@@ -176,7 +205,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
176
205
|
};
|
|
177
206
|
const addItem = (node) => {
|
|
178
207
|
node.children.push({
|
|
179
|
-
|
|
208
|
+
nodeType: "FIELD",
|
|
180
209
|
field: null,
|
|
181
210
|
valueOP: null,
|
|
182
211
|
value: null
|
|
@@ -214,6 +243,9 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
214
243
|
};
|
|
215
244
|
const renderFilterItem = (node, itemsC) => {
|
|
216
245
|
let _slot;
|
|
246
|
+
if (node.hidden) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
217
249
|
let fieldInfos = allFields;
|
|
218
250
|
if (itemsC) {
|
|
219
251
|
fieldInfos = itemsC.allFields;
|
|
@@ -225,7 +257,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
225
257
|
const subFilterC = itemsC.getSubFilterController(node.field, node.valueOP);
|
|
226
258
|
editor = renderEditor(node, subFilterC);
|
|
227
259
|
} else {
|
|
228
|
-
const filterC = findFilterController(node
|
|
260
|
+
const filterC = findFilterController(node);
|
|
229
261
|
if (filterC && !["EXISTS", "NOTEXISTS"].includes(filterC.valueOP)) {
|
|
230
262
|
editor = renderEditor(node, filterC);
|
|
231
263
|
}
|
|
@@ -239,7 +271,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
239
271
|
"teleported": false,
|
|
240
272
|
"class": ns.e("field-select"),
|
|
241
273
|
"onChange": (field) => {
|
|
242
|
-
onFieldSelect(node, field);
|
|
274
|
+
onFieldSelect(node, field, fieldInfos);
|
|
243
275
|
}
|
|
244
276
|
}, _isSlot(_slot = fieldInfos.map((field) => {
|
|
245
277
|
return vue.createVNode(vue.resolveComponent("el-option"), {
|
|
@@ -261,7 +293,10 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
261
293
|
};
|
|
262
294
|
let renderFilterItems = (_node) => vue.createVNode("div", null, null);
|
|
263
295
|
const renderFilterGroup = (node, itemsC) => {
|
|
264
|
-
if (node.
|
|
296
|
+
if (node.hidden) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
if (node.nodeType === "ITEMS") {
|
|
265
300
|
return renderFilterItems(node);
|
|
266
301
|
}
|
|
267
302
|
return vue.createVNode("div", {
|
|
@@ -303,7 +338,10 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
303
338
|
})]), vue.createVNode("div", {
|
|
304
339
|
"class": ns.be("group", "list")
|
|
305
340
|
}, [node.children.length > 0 && node.children.map((child, index) => {
|
|
306
|
-
const childContent = child.
|
|
341
|
+
const childContent = child.nodeType === "FIELD" ? renderFilterItem(child, itemsC) : renderFilterGroup(child, itemsC);
|
|
342
|
+
if (!childContent) {
|
|
343
|
+
return null;
|
|
344
|
+
}
|
|
307
345
|
return vue.createVNode("div", {
|
|
308
346
|
"class": ns.be("group", "list-item")
|
|
309
347
|
}, [vue.createVNode("div", {
|
|
@@ -320,7 +358,30 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
320
358
|
})])]);
|
|
321
359
|
};
|
|
322
360
|
renderFilterItems = (node) => {
|
|
323
|
-
const itemsC = findFilterController(node
|
|
361
|
+
const itemsC = findFilterController(node);
|
|
362
|
+
if (node.simple) {
|
|
363
|
+
let _slot2;
|
|
364
|
+
const child = node.children[0];
|
|
365
|
+
if (!child) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
return [vue.createVNode(vue.resolveComponent("el-select"), {
|
|
369
|
+
"model-value": itemsC.key,
|
|
370
|
+
"teleported": false,
|
|
371
|
+
"class": ns.e("field-select"),
|
|
372
|
+
"onChange": (field) => {
|
|
373
|
+
onFieldSelect(node, field);
|
|
374
|
+
}
|
|
375
|
+
}, _isSlot(_slot2 = allFields.map((field) => {
|
|
376
|
+
return vue.createVNode(vue.resolveComponent("el-option"), {
|
|
377
|
+
"key": field.name,
|
|
378
|
+
"value": field.name,
|
|
379
|
+
"label": field.label
|
|
380
|
+
}, null);
|
|
381
|
+
})) ? _slot2 : {
|
|
382
|
+
default: () => [_slot2]
|
|
383
|
+
}), renderEditor(child, itemsC)];
|
|
384
|
+
}
|
|
324
385
|
return vue.createVNode("div", {
|
|
325
386
|
"class": (ns.b("group"), ns.bm("group", "items"))
|
|
326
387
|
}, [vue.createVNode("div", {
|
|
@@ -335,7 +396,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
335
396
|
})]), vue.createVNode("div", {
|
|
336
397
|
"class": ns.be("group", "list")
|
|
337
398
|
}, [node.children.length > 0 && node.children.map((child, index) => {
|
|
338
|
-
const childContent = child.
|
|
399
|
+
const childContent = child.nodeType === "FIELD" ? renderFilterItem(child, itemsC) : renderFilterGroup(child, itemsC);
|
|
339
400
|
return vue.createVNode("div", {
|
|
340
401
|
"class": ns.be("group", "list-item")
|
|
341
402
|
}, [vue.createVNode("div", {
|
|
@@ -371,7 +432,7 @@ const FilterTreeControl = /* @__PURE__ */ vue.defineComponent({
|
|
|
371
432
|
return vue.createVNode("div", {
|
|
372
433
|
"class": [this.ns.b()]
|
|
373
434
|
}, [this.UiFilterNodes.length > 0 && this.UiFilterNodes.map((node) => {
|
|
374
|
-
if (node.
|
|
435
|
+
if (node.nodeType === "FIELD") {
|
|
375
436
|
return this.renderFilterItem(node);
|
|
376
437
|
}
|
|
377
438
|
return this.renderFilterGroup(node);
|
|
@@ -9,6 +9,7 @@ var searchBar_provider = require('./search-bar.provider.cjs');
|
|
|
9
9
|
var filterTree = require('./filter-tree/filter-tree.cjs');
|
|
10
10
|
var filterModeSelect = require('./filter-mode-select/filter-mode-select.cjs');
|
|
11
11
|
var searchGroups = require('./search-groups/search-groups.cjs');
|
|
12
|
+
var quickSearchSelect = require('./quick-search-select/quick-search-select.cjs');
|
|
12
13
|
|
|
13
14
|
"use strict";
|
|
14
15
|
const IBizSearchBarControl = vue3Util.withInstall(
|
|
@@ -18,6 +19,7 @@ const IBizSearchBarControl = vue3Util.withInstall(
|
|
|
18
19
|
v.component(filterTree.FilterTreeControl.name, filterTree.FilterTreeControl);
|
|
19
20
|
v.component(filterModeSelect.FilterModeSelect.name, filterModeSelect.FilterModeSelect);
|
|
20
21
|
v.component(searchGroups.SearchGroups.name, searchGroups.SearchGroups);
|
|
22
|
+
v.component(quickSearchSelect.QuickSearchSelect.name, quickSearchSelect.QuickSearchSelect);
|
|
21
23
|
runtime.registerControlProvider(
|
|
22
24
|
runtime.ControlType.SEARCHBAR,
|
|
23
25
|
() => new searchBar_provider.SearchBarProvider()
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
var runtime = require('@ibiz-template/runtime');
|
|
5
|
+
var vue3Util = require('@ibiz-template/vue3-util');
|
|
6
|
+
require('./quick-search-select.css');
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
function _isSlot(s) {
|
|
10
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
11
|
+
}
|
|
12
|
+
const QuickSearchSelect = /* @__PURE__ */ vue.defineComponent({
|
|
13
|
+
name: "IBizQuickSearchSelect",
|
|
14
|
+
props: {
|
|
15
|
+
controller: {
|
|
16
|
+
type: runtime.SearchBarController,
|
|
17
|
+
required: true
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
setup(props) {
|
|
21
|
+
const ns = vue3Util.useNamespace("quick-search-select");
|
|
22
|
+
const onItemClick = (item) => {
|
|
23
|
+
const key = item.fieldName;
|
|
24
|
+
const {
|
|
25
|
+
quickSearchFieldNames
|
|
26
|
+
} = props.controller.state;
|
|
27
|
+
const index = quickSearchFieldNames.indexOf(key);
|
|
28
|
+
if (index === -1) {
|
|
29
|
+
quickSearchFieldNames.push(key);
|
|
30
|
+
} else {
|
|
31
|
+
quickSearchFieldNames.splice(index, 1);
|
|
32
|
+
}
|
|
33
|
+
props.controller.calcQuickSearchPlaceHolder();
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
ns,
|
|
37
|
+
onItemClick
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
render() {
|
|
41
|
+
const {
|
|
42
|
+
state
|
|
43
|
+
} = this.controller;
|
|
44
|
+
return vue.createVNode(vue.resolveComponent("el-dropdown"), {
|
|
45
|
+
"onCommand": this.onItemClick,
|
|
46
|
+
"trigger": "click",
|
|
47
|
+
"hide-on-click": false,
|
|
48
|
+
"class": [this.ns.b()],
|
|
49
|
+
"popper-class": [this.ns.b("popover")]
|
|
50
|
+
}, {
|
|
51
|
+
default: () => vue.createVNode("div", {
|
|
52
|
+
"class": this.ns.e("icon")
|
|
53
|
+
}, [vue.createVNode("ion-icon", {
|
|
54
|
+
"name": "settings-outline"
|
|
55
|
+
}, null)]),
|
|
56
|
+
dropdown: () => {
|
|
57
|
+
let _slot;
|
|
58
|
+
return vue.createVNode(vue.resolveComponent("el-dropdown-menu"), null, _isSlot(_slot = state.quickSearchItems.map((item) => {
|
|
59
|
+
const isSelected = state.quickSearchFieldNames.includes(item.fieldName);
|
|
60
|
+
return vue.createVNode(vue.resolveComponent("el-dropdown-item"), {
|
|
61
|
+
"class": [this.ns.be("popover", "item"), isSelected && this.ns.bem("popover", "item", "selected")],
|
|
62
|
+
"command": item
|
|
63
|
+
}, {
|
|
64
|
+
default: () => [item.label]
|
|
65
|
+
});
|
|
66
|
+
})) ? _slot : {
|
|
67
|
+
default: () => [_slot]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
exports.QuickSearchSelect = QuickSearchSelect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ibiz-quick-search-select{width:40px;height:100%;color:var(--ibiz-color-white);cursor:pointer;background-color:var(--ibiz-color-primary);border-top-left-radius:var(--el-input-border-radius);border-bottom-left-radius:var(--el-input-border-radius)}.ibiz-quick-search-select:hover{background-color:var(--ibiz-color-primary-hover)}.ibiz-quick-search-select__icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ibiz-quick-search-select-popover{--ibiz-quick-search-select-item-text-color:var(--ibiz-color-text-2);--ibiz-quick-search-select-item-bg-color:var(--ibiz-color-bg-1);--ibiz-quick-search-select-item-hover-text-color:var(--ibiz-color-text-0);--ibiz-quick-search-select-item-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-quick-search-select-item-selected-text-color:var(--ibiz-color-primary);--ibiz-quick-search-select-item-selected-bg-color:var(--ibiz-color-bg-1)}.ibiz-quick-search-select-popover.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list{background-color:var(--ibiz-color-bg-1)}.ibiz-quick-search-select-popover.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu{background-color:var(--ibiz-color-bg-1)}.ibiz-quick-search-select-popover.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu__item{color:var(--ibiz-quick-search-select-item-text-color);background-color:var(--ibiz-quick-search-select-item-bg-color)}.ibiz-quick-search-select-popover.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu__item:hover{color:var(--ibiz-quick-search-select-item-hover-text-color);background-color:var(--ibiz-quick-search-select-item-hover-bg-color)}.ibiz-quick-search-select-popover__item--selected{font-weight:700;--ibiz-quick-search-select-item-text-color:var(--ibiz-quick-search-select-item-selected-text-color);--ibiz-quick-search-select-item-bg-color:var(--ibiz-quick-search-select-item-selected-bg-color)}
|