@ibiz-template/vue3-components 0.5.7-alpha.4 → 0.5.7-alpha.6

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 (102) hide show
  1. package/dist/index-CzVC8rhd.js +1 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-kzUgnbtt.js → xlsx-util-TVsJdNUI.js} +1 -1
  5. package/es/common/grid-setting/grid-setting.css +1 -1
  6. package/es/common/grid-setting/grid-setting.mjs +23 -4
  7. package/es/control/calendar/calendar.mjs +1 -1
  8. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +236 -0
  9. package/es/control/dashboard/dashboard-design/dashboard-design.d.ts +2 -0
  10. package/es/control/data-view/data-view.mjs +3 -2
  11. package/es/control/drtab/drtab.css +1 -1
  12. package/es/control/form/form-detail/form-button/form-button.mjs +2 -1
  13. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +2124 -0
  14. package/es/control/grid/grid/grid-control.util.mjs +4 -0
  15. package/es/control/search-bar/filter-tree/filter-tree.d.ts +45 -14
  16. package/es/control/search-bar/filter-tree/filter-tree.mjs +42 -21
  17. package/es/control/search-bar/search-bar.mjs +8 -2
  18. package/es/control/tab-exp-panel/tab-exp-panel.mjs +32 -1
  19. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  20. package/es/editor/index.mjs +8 -0
  21. package/es/editor/span/span/span.d.ts +2 -0
  22. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +2 -2
  23. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.controller.d.ts +46 -0
  24. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.controller.mjs +93 -0
  25. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.css +1 -0
  26. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.d.ts +81 -0
  27. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +187 -0
  28. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.provider.d.ts +17 -0
  29. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.provider.mjs +22 -0
  30. package/es/editor/user/ibiz-searchcond-edit/index.d.ts +3 -0
  31. package/es/editor/user/ibiz-searchcond-edit/index.mjs +5 -0
  32. package/es/editor/user/index.d.ts +1 -0
  33. package/es/editor/user/index.mjs +6 -0
  34. package/es/index.d.ts +0 -1
  35. package/es/index.mjs +0 -1
  36. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  37. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.css +1 -1
  38. package/es/panel-component/user-message/internal-message/internal-message-json/internal-message-json.css +1 -1
  39. package/es/util/app-drawer/app-drawer-component.mjs +3 -2
  40. package/es/util/app-modal/app-modal-component.mjs +11 -2
  41. package/es/util/app-popover/app-popover-component.mjs +25 -2
  42. package/es/util/notification-util/notification-util.mjs +1 -0
  43. package/es/util/open-view-util/open-view-util.mjs +8 -1
  44. package/es/view-engine/report-view.engine.d.ts +19 -0
  45. package/es/view-engine/report-view.engine.mjs +37 -10
  46. package/es/view-engine/tab-exp-view.engine.mjs +3 -3
  47. package/lib/common/grid-setting/grid-setting.cjs +23 -4
  48. package/lib/common/grid-setting/grid-setting.css +1 -1
  49. package/lib/control/calendar/calendar.cjs +1 -1
  50. package/lib/control/data-view/data-view.cjs +3 -2
  51. package/lib/control/drtab/drtab.css +1 -1
  52. package/lib/control/form/form-detail/form-button/form-button.cjs +2 -1
  53. package/lib/control/grid/grid/grid-control.util.cjs +4 -0
  54. package/lib/control/search-bar/filter-tree/filter-tree.cjs +41 -20
  55. package/lib/control/search-bar/search-bar.cjs +8 -2
  56. package/lib/control/search-bar/search-groups/search-groups.cjs +2 -2
  57. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +31 -0
  58. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  59. package/lib/editor/html/wang-editor/wang-editor.cjs +2 -2
  60. package/lib/editor/index.cjs +8 -0
  61. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +2 -2
  62. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +189 -0
  63. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.controller.cjs +95 -0
  64. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.css +1 -0
  65. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.provider.cjs +24 -0
  66. package/lib/editor/user/ibiz-searchcond-edit/index.cjs +11 -0
  67. package/lib/editor/user/index.cjs +12 -0
  68. package/lib/index.cjs +181 -183
  69. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  70. package/lib/panel-component/searchform-buttons/searchform-buttons.cjs +2 -2
  71. package/lib/panel-component/user-message/internal-message/internal-message-default/internal-message-default.css +1 -1
  72. package/lib/panel-component/user-message/internal-message/internal-message-json/internal-message-json.css +1 -1
  73. package/lib/util/app-drawer/app-drawer-component.cjs +3 -2
  74. package/lib/util/app-modal/app-modal-component.cjs +11 -2
  75. package/lib/util/app-popover/app-popover-component.cjs +24 -1
  76. package/lib/util/confirm-util/confirm-util.cjs +5 -5
  77. package/lib/util/loading-util/loading-util.cjs +2 -2
  78. package/lib/util/message-util/message-util.cjs +5 -5
  79. package/lib/util/modal-util/modal-util.cjs +6 -6
  80. package/lib/util/notice-util/notice-util.cjs +3 -3
  81. package/lib/util/notification-util/notification-util.cjs +3 -2
  82. package/lib/util/open-view-util/open-view-util.cjs +8 -1
  83. package/lib/view-engine/report-view.engine.cjs +36 -9
  84. package/lib/view-engine/tab-exp-view.engine.cjs +2 -2
  85. package/package.json +6 -6
  86. package/dist/index-knHzHtox.js +0 -2
  87. package/es/devtool/devtool-action.css +0 -1
  88. package/es/devtool/devtool-action.d.ts +0 -26
  89. package/es/devtool/devtool-action.mjs +0 -219
  90. package/es/devtool/index.d.ts +0 -50
  91. package/es/devtool/index.mjs +0 -81
  92. package/es/devtool/interface/devtool-event.d.ts +0 -12
  93. package/es/devtool/interface/devtool-event.mjs +0 -1
  94. package/es/devtool/interface/devtool-view.d.ts +0 -15
  95. package/es/devtool/interface/devtool-view.mjs +0 -1
  96. package/es/node_modules/.pnpm/element-plus@2.4.2_vue@3.3.8/node_modules/element-plus/dist/locale/zh-cn.mjs +0 -131
  97. package/lib/devtool/devtool-action.cjs +0 -221
  98. package/lib/devtool/devtool-action.css +0 -1
  99. package/lib/devtool/index.cjs +0 -84
  100. package/lib/devtool/interface/devtool-event.cjs +0 -3
  101. package/lib/devtool/interface/devtool-view.cjs +0 -3
  102. package/lib/node_modules/.pnpm/element-plus@2.4.2_vue@3.3.8/node_modules/element-plus/dist/locale/zh-cn.cjs +0 -135
@@ -56,6 +56,10 @@ function useITableEvent(c) {
56
56
  } else if (order === "descending") {
57
57
  order1 = "desc";
58
58
  }
59
+ const sortQuery = "".concat(fieldName, ",").concat(order1);
60
+ if (sortQuery === c.state.sortQuery) {
61
+ return;
62
+ }
59
63
  c.setSort(fieldName, order1);
60
64
  c.load();
61
65
  }
@@ -1,29 +1,60 @@
1
- import { IControlProvider, IFilterBranchNode, IFilterLeafNode, SearchBarController } from '@ibiz-template/runtime';
1
+ import { IFilterBranchNode, IFilterLeafNode, IFilterNode, SearchBarFilterController } from '@ibiz-template/runtime';
2
2
  import { PropType } from 'vue';
3
3
  import './filter-tree.scss';
4
4
  export declare const FilterTreeControl: import("vue").DefineComponent<{
5
- controller: {
6
- type: PropType<SearchBarController>;
5
+ /**
6
+ * 过滤项控制器集合
7
+ */
8
+ filterControllers: {
9
+ type: PropType<SearchBarFilterController[]>;
7
10
  required: true;
8
11
  };
9
- provider: {
10
- type: PropType<IControlProvider>;
12
+ /**
13
+ * 过滤项树节点数据集合
14
+ */
15
+ filterNodes: {
16
+ type: PropType<IFilterNode[]>;
17
+ required: true;
18
+ };
19
+ /**
20
+ * 父容器
21
+ */
22
+ parent: {
23
+ type: StringConstructor;
24
+ required: true;
11
25
  };
12
26
  }, {
13
27
  ns: import("@ibiz-template/core").Namespace;
14
28
  renderFilterGroup: (node: IFilterBranchNode) => JSX.Element;
15
29
  renderFilterItem: (node: IFilterLeafNode) => JSX.Element;
16
- onClose: () => void;
17
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
- close: () => true;
19
- }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
- controller: {
21
- type: PropType<SearchBarController>;
30
+ onConfirm: () => void;
31
+ onCancel: () => void;
32
+ isInSearchBar: import("vue").ComputedRef<boolean>;
33
+ UiFilterNodes: import("vue").ComputedRef<IFilterNode[]>;
34
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "change" | "confirm")[], "cancel" | "change" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
35
+ /**
36
+ * 过滤项控制器集合
37
+ */
38
+ filterControllers: {
39
+ type: PropType<SearchBarFilterController[]>;
22
40
  required: true;
23
41
  };
24
- provider: {
25
- type: PropType<IControlProvider>;
42
+ /**
43
+ * 过滤项树节点数据集合
44
+ */
45
+ filterNodes: {
46
+ type: PropType<IFilterNode[]>;
47
+ required: true;
48
+ };
49
+ /**
50
+ * 父容器
51
+ */
52
+ parent: {
53
+ type: StringConstructor;
54
+ required: true;
26
55
  };
27
56
  }>> & {
28
- onClose?: (() => any) | undefined;
57
+ onChange?: ((...args: any[]) => any) | undefined;
58
+ onCancel?: ((...args: any[]) => any) | undefined;
59
+ onConfirm?: ((...args: any[]) => any) | undefined;
29
60
  }, {}, {}>;
@@ -1,4 +1,4 @@
1
- import { isVNode, resolveComponent, h, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, computed, resolveComponent, h, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { ValueOP } from '@ibiz-template/runtime';
3
3
  import { useNamespace } from '@ibiz-template/vue3-util';
4
4
  import './filter-tree.css';
@@ -50,23 +50,41 @@ const FilterModes = [{
50
50
  const FilterTreeControl = /* @__PURE__ */ defineComponent({
51
51
  name: "IBizFilterTreeControl",
52
52
  props: {
53
- controller: {
54
- type: Object,
53
+ /**
54
+ * 过滤项控制器集合
55
+ */
56
+ filterControllers: {
57
+ type: Array,
55
58
  required: true
56
59
  },
57
- provider: {
58
- type: Object
60
+ /**
61
+ * 过滤项树节点数据集合
62
+ */
63
+ filterNodes: {
64
+ type: Array,
65
+ required: true
66
+ },
67
+ /**
68
+ * 父容器
69
+ */
70
+ parent: {
71
+ type: String,
72
+ required: true
59
73
  }
60
74
  },
61
- emits: {
62
- close: () => true
63
- },
75
+ emits: ["confirm", "cancel", "change"],
64
76
  setup(props, {
65
77
  emit
66
78
  }) {
67
79
  const ns = useNamespace("filter-tree");
80
+ const isInSearchBar = computed(() => {
81
+ return props.parent === "search-bar";
82
+ });
83
+ const UiFilterNodes = computed(() => {
84
+ return props.filterNodes;
85
+ });
68
86
  const findFilterController = (fieldName, valueOP) => {
69
- return props.controller.filterControllers.find((item) => {
87
+ return props.filterControllers.find((item) => {
70
88
  if (item.fieldName === fieldName) {
71
89
  return item.valueOP ? item.valueOP === valueOP : true;
72
90
  }
@@ -84,7 +102,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
84
102
  }
85
103
  return field.valueOPs;
86
104
  };
87
- props.controller.filterControllers.forEach((filterC) => {
105
+ props.filterControllers.forEach((filterC) => {
88
106
  let find = allFields.find((x) => x.name === filterC.fieldName);
89
107
  if (find === void 0) {
90
108
  find = {
@@ -139,6 +157,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
139
157
  editor = h(component, {
140
158
  value: node.value,
141
159
  controller: filterC.editor,
160
+ data: {},
142
161
  onChange: (val) => {
143
162
  node.value = val;
144
163
  }
@@ -238,23 +257,26 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
238
257
  }, null)]);
239
258
  })])]);
240
259
  };
241
- const onClose = () => {
242
- emit("close");
260
+ const onConfirm = () => {
261
+ emit("confirm");
262
+ };
263
+ const onCancel = () => {
264
+ emit("cancel");
243
265
  };
244
266
  return {
245
267
  ns,
246
268
  renderFilterGroup,
247
269
  renderFilterItem,
248
- onClose
270
+ onConfirm,
271
+ onCancel,
272
+ isInSearchBar,
273
+ UiFilterNodes
249
274
  };
250
275
  },
251
276
  render() {
252
- const {
253
- state
254
- } = this.controller;
255
277
  return createVNode("div", {
256
278
  "class": [this.ns.b()]
257
- }, [state.filterNodes.length > 0 && state.filterNodes.map((node) => {
279
+ }, [this.UiFilterNodes.length > 0 && this.UiFilterNodes.map((node) => {
258
280
  if (node.leaf) {
259
281
  return this.renderFilterItem(node);
260
282
  }
@@ -263,14 +285,13 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
263
285
  "class": this.ns.b("footer")
264
286
  }, [createVNode(resolveComponent("el-button"), {
265
287
  "onClick": () => {
266
- this.controller.onSearch();
267
- this.onClose();
288
+ this.onConfirm();
268
289
  }
269
290
  }, {
270
- default: () => [createTextVNode("\u641C\u7D22")]
291
+ default: () => [this.isInSearchBar ? "\u641C\u7D22" : "\u786E\u5B9A"]
271
292
  }), createVNode(resolveComponent("el-button"), {
272
293
  "onClick": () => {
273
- this.controller.resetFilter();
294
+ this.onCancel();
274
295
  }
275
296
  }, {
276
297
  default: () => [createTextVNode("\u91CD\u7F6E")]
@@ -55,12 +55,18 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
55
55
  const showFilter = async () => {
56
56
  popover = ibiz.overlay.createPopover(() => {
57
57
  return createVNode(resolveComponent("iBizFilterTreeControl"), {
58
- "onClose": () => {
58
+ "filterControllers": c.filterControllers,
59
+ "filterNodes": c.state.filterNodes,
60
+ "parent": "search-bar",
61
+ "onConfirm": () => {
62
+ c.onSearch();
59
63
  if (popover) {
60
64
  popover.dismiss();
61
65
  }
62
66
  },
63
- "controller": c
67
+ "onCancel": () => {
68
+ c.resetFilter();
69
+ }
64
70
  }, null);
65
71
  }, void 0, {
66
72
  placement: "bottom-end",
@@ -1,7 +1,8 @@
1
- import { isVNode, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, watch, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './tab-exp-panel.css';
4
4
  import { TabExpPanelController } from '@ibiz-template/runtime';
5
+ import { useRoute } from 'vue-router';
5
6
 
6
7
  "use strict";
7
8
  function _isSlot(s) {
@@ -38,6 +39,36 @@ const TabExpPanelControl = /* @__PURE__ */ defineComponent({
38
39
  c.handleTabChange();
39
40
  };
40
41
  const tabPosition = ((_a = c.view.model.tabLayout) == null ? void 0 : _a.toLowerCase()) || "top";
42
+ const route = useRoute();
43
+ watch(() => route.fullPath, (newVal, oldVal) => {
44
+ if (newVal !== oldVal) {
45
+ const viewCodeName = c.view.model.codeName.toLowerCase();
46
+ const viewRouteKey = Object.keys(route.params).find((key) => {
47
+ return route.params[key] === viewCodeName;
48
+ });
49
+ if (!viewRouteKey) {
50
+ return;
51
+ }
52
+ const nextKeyNumber = (parseInt(viewRouteKey[viewRouteKey.length - 1], 10) + 2) * 2;
53
+ const tempFullPath = route.fullPath.split("/").slice(0, nextKeyNumber).join("/");
54
+ c.state.tabPages.forEach((page) => {
55
+ if (page.fullPath === tempFullPath) {
56
+ c.state.activeName = page.tabTag;
57
+ c.handleTabChange();
58
+ }
59
+ });
60
+ if (c.state.activeName) {
61
+ const currentPage = c.state.tabPages.find((page) => {
62
+ return page.tabTag === c.state.activeName;
63
+ });
64
+ if (currentPage) {
65
+ currentPage.fullPath = tempFullPath;
66
+ }
67
+ }
68
+ }
69
+ }, {
70
+ immediate: true
71
+ });
41
72
  return {
42
73
  c,
43
74
  ns,
@@ -1 +1 @@
1
- .ibiz-date-range-picker .el-date-editor{width:100%;line-height:var(--ibiz-editor-default-line-height);display:flex;align-items:center;justify-content:flex-start}.ibiz-date-range-picker .el-date-editor .el-range-input{color:var(--ibiz-form-item-text-color)}.ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default:hover .ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default:hover .ibiz-date-range-picker-input{display:flex}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-form-default-content{display:flex;align-items:center;width:100%;font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-form-default-content .ibiz-date-range-picker-default-input{box-shadow:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-form-default-content .ibiz-date-range-picker-default-input .el-icon{opacity:0}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-input{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default.is-editable .ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default.is-editable .ibiz-date-range-picker-input{display:flex}
1
+ .ibiz-date-range-picker .el-date-editor{width:100%;line-height:var(--ibiz-editor-default-line-height);display:flex;align-items:center;justify-content:flex-start}.ibiz-date-range-picker .el-date-editor .el-range-input{color:var(--ibiz-form-item-text-color)}.ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default:hover .ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default:hover .ibiz-date-range-picker-input{display:flex}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-form-default-content{display:flex;align-items:center;width:100%;font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-form-default-content .ibiz-date-range-picker-default-input{box-shadow:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default .ibiz-date-range-picker-input{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default.is-editable .ibiz-date-range-picker-form-default-content{display:none}.ibiz-form-item .ibiz-date-range-picker.is-show-default.is-editable .ibiz-date-range-picker-input{display:flex}
@@ -26,6 +26,7 @@ import './array/index.mjs';
26
26
  import './cascader/index.mjs';
27
27
  import './color-picker/index.mjs';
28
28
  import './preset/index.mjs';
29
+ import './user/ibiz-searchcond-edit/index.mjs';
29
30
  import { IBizSpan } from './span/span/span.mjs';
30
31
  import { IBizSpanLink } from './span/span-link/span-link.mjs';
31
32
  import { IBizInput } from './text-box/input/input.mjs';
@@ -59,6 +60,7 @@ import { IBizArray } from './array/ibiz-array/ibiz-array.mjs';
59
60
  import { IBizCascader } from './cascader/ibiz-cascader/ibiz-cascader.mjs';
60
61
  import { IBizColorPicker } from './color-picker/ibiz-color-picker/ibiz-color-picker.mjs';
61
62
  import { IBizPresetRawitem } from './preset/preset-rawitem/ibiz-preset-rawitem/ibiz-preset-rawitem.mjs';
63
+ import { IBizSearchCondEdit } from './user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs';
62
64
  import { SpanEditorProvider } from './span/span-editor.provider.mjs';
63
65
  import { TextBoxEditorProvider } from './text-box/text-box-editor.provider.mjs';
64
66
  import { DropDownListEditorProvider } from './dropdown-list/dropdown-list-editor.provider.mjs';
@@ -83,6 +85,7 @@ import { MarkDownEditorProvider } from './markdown/markdown-editor.provider.mjs'
83
85
  import { ArrayEditorProvider } from './array/array-editor.provider.mjs';
84
86
  import { CascaderEditorProvider } from './cascader/cascader-editor.provider.mjs';
85
87
  import { ColorPickerEditorProvider } from './color-picker/color-picker-editor.provider.mjs';
88
+ import { SearchCondEditEditorProvider } from './user/ibiz-searchcond-edit/ibiz-searchcond-edit.provider.mjs';
86
89
 
87
90
  "use strict";
88
91
  const IBizEditor = {
@@ -121,6 +124,7 @@ const IBizEditor = {
121
124
  v.component(IBizCascader.name, IBizCascader);
122
125
  v.component(IBizColorPicker.name, IBizColorPicker);
123
126
  v.component(IBizPresetRawitem.name, IBizPresetRawitem);
127
+ v.component(IBizSearchCondEdit.name, IBizSearchCondEdit);
124
128
  v.component(
125
129
  "IBizHtml",
126
130
  defineAsyncComponent(() => import('./html/wang-editor/wang-editor.mjs'))
@@ -285,6 +289,10 @@ const IBizEditor = {
285
289
  "COLORPICKER",
286
290
  () => new ColorPickerEditorProvider()
287
291
  );
292
+ registerEditorProvider(
293
+ "PICKER_searchCondEdit",
294
+ () => new SearchCondEditEditorProvider()
295
+ );
288
296
  registerEditorProvider(
289
297
  "FIELD_IMAGE_PICTURE_ONE",
290
298
  () => new FileUploaderEditorProvider("PICTURE_ONE")
@@ -50,6 +50,8 @@ export declare const IBizSpan: import("vue").DefineComponent<{
50
50
  id?: string | undefined;
51
51
  name?: string | undefined;
52
52
  userParam?: Record<string, string> | undefined;
53
+ modelId?: string | undefined;
54
+ modelType?: string | undefined;
53
55
  } | undefined;
54
56
  data?: IData | undefined;
55
57
  tooltip?: string | undefined;
@@ -36,8 +36,8 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
36
36
  });
37
37
  watch(() => props.value, (newVal, oldVal) => {
38
38
  if (newVal !== oldVal) {
39
- const number = newVal != null && !Object.is(newVal, "") ? Number(newVal) : "";
40
- currentVal.value = Number.isNaN(number) ? "" : number;
39
+ const number = newVal != null && !Object.is(newVal, "") ? Number(newVal) : null;
40
+ currentVal.value = Number.isNaN(number) ? null : number;
41
41
  }
42
42
  }, {
43
43
  immediate: true
@@ -0,0 +1,46 @@
1
+ import { EditorController, SearchBarFilterController } from '@ibiz-template/runtime';
2
+ import { IAppDataEntity, IPicker, ISearchBarFilter } from '@ibiz/model-core';
3
+ /**
4
+ * 搜索过滤项编辑器控制器
5
+ *
6
+ * @author lxm
7
+ * @date 2022-08-24 20:08:25
8
+ * @export
9
+ * @class SearchCondEditEditorController
10
+ * @extends {EditorController}
11
+ */
12
+ export declare class SearchCondEditEditorController extends EditorController<IPicker> {
13
+ protected onInit(): Promise<void>;
14
+ /**
15
+ * 过滤项集合
16
+ *
17
+ */
18
+ searchBarFilters: ISearchBarFilter[];
19
+ /**
20
+ * 过滤项控制器集合
21
+ *
22
+ */
23
+ filterControllers: SearchBarFilterController[];
24
+ /**
25
+ * 实体模型
26
+ * @author lxm
27
+ * @date 2023-10-13 02:49:59
28
+ * @type {IAppDataEntity}
29
+ */
30
+ appDataEntity: IAppDataEntity | null;
31
+ /**
32
+ * 根据实体jsonschema初始化
33
+ * @author lxm
34
+ * @date 2023-12-29 04:21:31
35
+ * @return {*} {Promise<void>}
36
+ */
37
+ initByEntitySchema(): Promise<void>;
38
+ /**
39
+ * 初始化过滤项控制器
40
+ * @author lxm
41
+ * @date 2023-10-13 03:33:17
42
+ * @protected
43
+ * @return {*} {Promise<void>}
44
+ */
45
+ protected initSearchBarFilters(): Promise<void>;
46
+ }
@@ -0,0 +1,93 @@
1
+ import { EditorController, getEntitySchema, calcFilterModelBySchema, SearchBarFilterController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class SearchCondEditEditorController extends EditorController {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * 过滤项集合
15
+ *
16
+ */
17
+ __publicField(this, "searchBarFilters", []);
18
+ /**
19
+ * 过滤项控制器集合
20
+ *
21
+ */
22
+ __publicField(this, "filterControllers", []);
23
+ /**
24
+ * 实体模型
25
+ * @author lxm
26
+ * @date 2023-10-13 02:49:59
27
+ * @type {IAppDataEntity}
28
+ */
29
+ __publicField(this, "appDataEntity", null);
30
+ }
31
+ async onInit() {
32
+ await super.onInit();
33
+ await this.initByEntitySchema();
34
+ await this.initSearchBarFilters();
35
+ }
36
+ /**
37
+ * 根据实体jsonschema初始化
38
+ * @author lxm
39
+ * @date 2023-12-29 04:21:31
40
+ * @return {*} {Promise<void>}
41
+ */
42
+ async initByEntitySchema() {
43
+ if (!this.model.appDataEntityId) {
44
+ return;
45
+ }
46
+ const appDataEntity = await ibiz.hub.getAppDataEntity(
47
+ this.model.appDataEntityId,
48
+ this.context.srfappid
49
+ );
50
+ if (appDataEntity) {
51
+ this.appDataEntity = appDataEntity;
52
+ }
53
+ const json = await getEntitySchema(
54
+ this.model.appDataEntityId,
55
+ this.context
56
+ );
57
+ if (!json) {
58
+ return;
59
+ }
60
+ const addSearchBarFilters = await calcFilterModelBySchema(
61
+ json,
62
+ this.model.appDataEntityId,
63
+ this.model.appId
64
+ );
65
+ this.searchBarFilters = addSearchBarFilters;
66
+ }
67
+ /**
68
+ * 初始化过滤项控制器
69
+ * @author lxm
70
+ * @date 2023-10-13 03:33:17
71
+ * @protected
72
+ * @return {*} {Promise<void>}
73
+ */
74
+ async initSearchBarFilters() {
75
+ var _a;
76
+ if (((_a = this.searchBarFilters) == null ? void 0 : _a.length) && this.appDataEntity) {
77
+ this.searchBarFilters.forEach((item) => {
78
+ const filterController = new SearchBarFilterController(
79
+ item,
80
+ this.appDataEntity,
81
+ this.context,
82
+ this.params
83
+ );
84
+ this.filterControllers.push(filterController);
85
+ });
86
+ await Promise.all(
87
+ this.filterControllers.map((controller) => controller.init())
88
+ );
89
+ }
90
+ }
91
+ }
92
+
93
+ export { SearchCondEditEditorController };
@@ -0,0 +1 @@
1
+ .ibiz-searchcond-edit{position:relative;width:100%;height:100%;font-size:var(--ibiz-form-item-font-size);font-weight:var(--ibiz-form-item-regular)}.ibiz-searchcond-edit .ibiz-searchcond-edit-filter{position:absolute;top:var(--ibiz-spacing-tight);right:var(--ibiz-spacing-tight)}
@@ -0,0 +1,81 @@
1
+ import { Ref } from 'vue';
2
+ import './ibiz-searchcond-edit.scss';
3
+ import { IFilterNode } from '@ibiz-template/runtime';
4
+ import { SearchCondEditEditorController } from './ibiz-searchcond-edit.controller';
5
+ export declare const IBizSearchCondEdit: import("vue").DefineComponent<{
6
+ value: (StringConstructor | NumberConstructor)[];
7
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<SearchCondEditEditorController>, undefined, undefined>;
8
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
9
+ disabled: {
10
+ type: BooleanConstructor;
11
+ };
12
+ readonly: {
13
+ type: BooleanConstructor;
14
+ default: boolean;
15
+ };
16
+ autoFocus: {
17
+ type: BooleanConstructor;
18
+ default: boolean;
19
+ };
20
+ overflowMode: {
21
+ type: StringConstructor;
22
+ };
23
+ controlParams: {
24
+ type: ObjectConstructor;
25
+ required: boolean;
26
+ };
27
+ }, {
28
+ ns: import("@ibiz-template/core").Namespace;
29
+ c: SearchCondEditEditorController;
30
+ currentVal: Ref<string | null>;
31
+ handleChange: (e: number | null) => void;
32
+ onFocus: (e: IData) => void;
33
+ onBlur: (e: IData) => void;
34
+ editorRef: Ref<any>;
35
+ handleKeyUp: (e: KeyboardEvent) => void;
36
+ isEditable: Ref<boolean>;
37
+ setEditable: (flag: boolean) => void;
38
+ showFormDefaultContent: import("vue").ComputedRef<boolean>;
39
+ filterNodes: Ref<IFilterNode[]>;
40
+ triggerFilter: () => void;
41
+ filterButtonRef: Ref<any>;
42
+ resetFilter: () => void;
43
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
44
+ change: (_value: unknown, _name?: string | undefined) => boolean;
45
+ blur: (_event?: IData | undefined) => boolean;
46
+ focus: (_event?: IData | undefined) => boolean;
47
+ enter: (_event?: IData | undefined) => boolean;
48
+ infoTextChange: (_text: string) => boolean;
49
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
50
+ value: (StringConstructor | NumberConstructor)[];
51
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<SearchCondEditEditorController>, undefined, undefined>;
52
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
53
+ disabled: {
54
+ type: BooleanConstructor;
55
+ };
56
+ readonly: {
57
+ type: BooleanConstructor;
58
+ default: boolean;
59
+ };
60
+ autoFocus: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
64
+ overflowMode: {
65
+ type: StringConstructor;
66
+ };
67
+ controlParams: {
68
+ type: ObjectConstructor;
69
+ required: boolean;
70
+ };
71
+ }>> & {
72
+ onFocus?: ((_event?: IData | undefined) => any) | undefined;
73
+ onBlur?: ((_event?: IData | undefined) => any) | undefined;
74
+ onChange?: ((_value: unknown, _name?: string | undefined) => any) | undefined;
75
+ onInfoTextChange?: ((_text: string) => any) | undefined;
76
+ onEnter?: ((_event?: IData | undefined) => any) | undefined;
77
+ }, {
78
+ disabled: boolean;
79
+ autoFocus: boolean;
80
+ readonly: boolean;
81
+ }, {}>;