@ibiz-template/vue3-components 0.7.30 → 0.7.31-alpha.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 (122) hide show
  1. package/dist/chart-0UV2FAN6.js +1 -0
  2. package/dist/index-maJGu4b8.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{xlsx-util-sKVlHqdj.js → xlsx-util-OUxT4A8O.js} +1 -1
  6. package/es/common/index.mjs +2 -0
  7. package/es/common/pql-editor/components/index.d.ts +1 -0
  8. package/es/common/pql-editor/components/index.mjs +3 -0
  9. package/es/common/pql-editor/components/pql-editor-suggestion/pql-editor-suggestion.css +1 -0
  10. package/es/common/pql-editor/components/pql-editor-suggestion/pql-editor-suggestion.d.ts +28 -0
  11. package/es/common/pql-editor/components/pql-editor-suggestion/pql-editor-suggestion.mjs +49 -0
  12. package/es/common/pql-editor/pql-editor.css +1 -0
  13. package/es/common/pql-editor/pql-editor.d.ts +68 -0
  14. package/es/common/pql-editor/pql-editor.mjs +606 -0
  15. package/es/common/pql-editor/pql-editor.module.d.ts +47 -0
  16. package/es/common/pql-editor/pql-editor.module.mjs +176 -0
  17. package/es/common/pql-editor/utils/index.d.ts +15 -0
  18. package/es/common/pql-editor/utils/index.mjs +270 -0
  19. package/es/control/chart/chart.mjs +32 -19
  20. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -1
  21. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +8 -0
  22. package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +12 -2
  23. package/es/control/dashboard/portlet/report-portlet/index.d.ts +1 -0
  24. package/es/control/dashboard/portlet/report-portlet/report-portlet.d.ts +1 -0
  25. package/es/control/dashboard/portlet/report-portlet/report-portlet.mjs +10 -2
  26. package/es/control/grid/grid/grid.mjs +2 -2
  27. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +4 -2
  28. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +32 -2
  29. package/es/control/grid/grid-column/grid-field-column/index.d.ts +4 -0
  30. package/es/control/search-bar/filter-tree/filter-tree.css +1 -1
  31. package/es/control/search-bar/filter-tree/filter-tree.d.ts +30 -3
  32. package/es/control/search-bar/filter-tree/filter-tree.mjs +83 -9
  33. package/es/control/search-bar/search-bar.mjs +10 -1
  34. package/es/editor/array/ibiz-array/ibiz-array.d.ts +1 -1
  35. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.d.ts +1 -1
  36. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.d.ts +1 -1
  37. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
  38. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.d.ts +1 -1
  39. package/es/editor/check-box-list/checkbox-list-editor.controller.d.ts +7 -0
  40. package/es/editor/check-box-list/checkbox-list-editor.controller.mjs +11 -0
  41. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.css +1 -1
  42. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  43. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +2 -1
  44. package/es/editor/code/monaco-editor/monaco-editor.d.ts +1 -1
  45. package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.d.ts +1 -1
  46. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  47. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
  48. package/es/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.d.ts +1 -1
  49. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +1 -1
  50. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.d.ts +1 -1
  51. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -1
  52. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +1 -1
  53. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +1 -1
  54. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +1 -1
  55. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +1 -1
  56. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -1
  57. package/es/editor/html/wang-editor/wang-editor.d.ts +1 -1
  58. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.d.ts +1 -1
  59. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +1 -1
  60. package/es/editor/preset/preset-rawitem/ibiz-preset-rawitem/ibiz-preset-rawitem.d.ts +1 -1
  61. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.css +1 -1
  62. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.d.ts +1 -1
  63. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.mjs +2 -1
  64. package/es/editor/radio-button-list/radio-button-list.controller.d.ts +8 -0
  65. package/es/editor/radio-button-list/radio-button-list.controller.mjs +23 -0
  66. package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +1 -1
  67. package/es/editor/raw/ibiz-raw/ibiz-raw.d.ts +1 -1
  68. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +1 -1
  69. package/es/editor/span/span/span.css +1 -1
  70. package/es/editor/span/span/span.d.ts +1 -1
  71. package/es/editor/span/span/span.mjs +2 -1
  72. package/es/editor/span/span-link/span-link.d.ts +1 -1
  73. package/es/editor/stepper/ibiz-stepper/ibiz-stepper.d.ts +1 -1
  74. package/es/editor/switch/ibiz-switch/ibiz-switch.d.ts +1 -1
  75. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +1 -1
  76. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +1 -1
  77. package/es/editor/text-box/input/input.d.ts +1 -1
  78. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -1
  79. package/es/editor/upload/ibiz-image-preview/ibiz-image-preview.d.ts +1 -1
  80. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -1
  81. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.d.ts +1 -1
  82. package/es/interface/i-pql-item.d.ts +52 -0
  83. package/es/interface/i-pql-item.mjs +1 -0
  84. package/es/interface/i-pql-node.d.ts +37 -0
  85. package/es/interface/i-pql-node.mjs +1 -0
  86. package/es/interface/i-schema-field.d.ts +51 -0
  87. package/es/interface/i-schema-field.mjs +1 -0
  88. package/es/interface/index.d.ts +3 -0
  89. package/es/interface/index.mjs +5 -0
  90. package/lib/common/index.cjs +2 -0
  91. package/lib/common/pql-editor/components/index.cjs +7 -0
  92. package/lib/common/pql-editor/components/pql-editor-suggestion/pql-editor-suggestion.cjs +51 -0
  93. package/lib/common/pql-editor/components/pql-editor-suggestion/pql-editor-suggestion.css +1 -0
  94. package/lib/common/pql-editor/pql-editor.cjs +608 -0
  95. package/lib/common/pql-editor/pql-editor.css +1 -0
  96. package/lib/common/pql-editor/pql-editor.module.cjs +182 -0
  97. package/lib/common/pql-editor/utils/index.cjs +280 -0
  98. package/lib/control/chart/chart.cjs +31 -18
  99. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +12 -2
  100. package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -1
  101. package/lib/control/dashboard/portlet/report-portlet/report-portlet.cjs +9 -1
  102. package/lib/control/grid/grid/grid.cjs +2 -2
  103. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +32 -2
  104. package/lib/control/search-bar/filter-tree/filter-tree.cjs +82 -8
  105. package/lib/control/search-bar/filter-tree/filter-tree.css +1 -1
  106. package/lib/control/search-bar/search-bar.cjs +10 -1
  107. package/lib/editor/check-box-list/checkbox-list-editor.controller.cjs +11 -0
  108. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +2 -1
  109. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.css +1 -1
  110. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +1 -1
  111. package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.cjs +2 -1
  112. package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.css +1 -1
  113. package/lib/editor/radio-button-list/radio-button-list.controller.cjs +23 -0
  114. package/lib/editor/span/span/span.cjs +2 -1
  115. package/lib/editor/span/span/span.css +1 -1
  116. package/lib/interface/i-pql-item.cjs +3 -0
  117. package/lib/interface/i-pql-node.cjs +3 -0
  118. package/lib/interface/i-schema-field.cjs +3 -0
  119. package/lib/interface/index.cjs +7 -0
  120. package/package.json +6 -6
  121. package/dist/chart-J-0VPQfg.js +0 -1
  122. package/dist/index-5Hb8nfPm.js +0 -4
@@ -1,4 +1,4 @@
1
- import { isVNode, onMounted, onBeforeUnmount, resolveComponent, h, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, computed, onMounted, onBeforeUnmount, resolveComponent, h, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { ReportPortletController, ControlType } from '@ibiz-template/runtime';
4
4
 
@@ -24,6 +24,12 @@ const ReportPortlet = /* @__PURE__ */ defineComponent({
24
24
  const report = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
25
25
  return item.controlType === ControlType.REPORT_PANEL;
26
26
  });
27
+ const linkAction = computed(() => {
28
+ const {
29
+ uiactionGroupDetails = []
30
+ } = props.controller.model.uiactionGroup || {};
31
+ return uiactionGroupDetails.find((x) => x.uiactionId && x.uiactionId.startsWith("bi_report_view"));
32
+ });
27
33
  let timerTag;
28
34
  onMounted(() => {
29
35
  const timer = props.controller.model.timer;
@@ -38,7 +44,8 @@ const ReportPortlet = /* @__PURE__ */ defineComponent({
38
44
  });
39
45
  return {
40
46
  ns,
41
- report
47
+ report,
48
+ linkAction
42
49
  };
43
50
  },
44
51
  render() {
@@ -50,6 +57,7 @@ const ReportPortlet = /* @__PURE__ */ defineComponent({
50
57
  } = this.controller;
51
58
  return createVNode(resolveComponent("iBizPortletLayout"), {
52
59
  "controller": this.controller,
60
+ "linkAction": this.linkAction,
53
61
  "class": classArr
54
62
  }, _isSlot(_slot = h(resolveComponent("IBizControlShell"), {
55
63
  context,
@@ -334,7 +334,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
334
334
  "controller": this.c,
335
335
  "style": this.headerCssVars
336
336
  }, {
337
- default: () => [createVNode(resolveComponent("el-table"), {
337
+ default: () => [createVNode(resolveComponent("el-table"), mergeProps({
338
338
  "ref": "tableRef",
339
339
  "class": this.ns.e("table"),
340
340
  "default-sort": this.defaultSort,
@@ -355,7 +355,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
355
355
  "onHeaderDragend": this.headerDragend,
356
356
  "tooltip-effect": "light",
357
357
  "scrollbar-always-on": true
358
- }, {
358
+ }, this.$attrs), {
359
359
  empty: this.renderNoData,
360
360
  default: () => {
361
361
  return [this.c.enableRowEditOrder && this.renderDragIconColumn(), !state.singleSelect && createVNode(resolveComponent("el-table-column"), {
@@ -1,5 +1,5 @@
1
- import { IUIActionGroupDetail } from '@ibiz/model-core';
2
- import { Ref } from 'vue';
1
+ import { ILayoutPanel, IPanel, IUIActionGroupDetail } from '@ibiz/model-core';
2
+ import { Ref, VNode } from 'vue';
3
3
  import './grid-field-column.scss';
4
4
  import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
5
5
  export declare const GridFieldColumn: import("vue").DefineComponent<{
@@ -25,6 +25,8 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
25
25
  tooltip: import("vue").ComputedRef<string | undefined>;
26
26
  zIndex: number | undefined;
27
27
  codeListItems: Ref<readonly IData[]>;
28
+ findLayoutPanel: () => IPanel | undefined;
29
+ renderPanelItemLayout: (item: IData, modelData: ILayoutPanel) => VNode;
28
30
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
31
  controller: {
30
32
  type: typeof GridFieldColumnController;
@@ -37,7 +37,8 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
37
37
  watch(() => props.row, async () => {
38
38
  CustomHtml.value = await props.controller.getCustomHtml(props.row);
39
39
  }, {
40
- deep: true
40
+ deep: true,
41
+ immediate: true
41
42
  });
42
43
  const fieldValue = computed(() => props.row.data[props.controller.fieldName]);
43
44
  const formatValue = computed(() => props.controller.formatValue(fieldValue.value));
@@ -85,6 +86,25 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
85
86
  }
86
87
  };
87
88
  useCodeListListen(props.controller.model.appCodeListId, props.controller.context.srfappid, fn);
89
+ const findLayoutPanel = () => {
90
+ var _a;
91
+ const {
92
+ controlRenders = []
93
+ } = props.controller.model;
94
+ return (_a = controlRenders.find((renderItem) => renderItem.renderType === "LAYOUTPANEL")) == null ? void 0 : _a.layoutPanel;
95
+ };
96
+ const renderPanelItemLayout = (item, modelData) => {
97
+ const {
98
+ context,
99
+ params
100
+ } = props.controller;
101
+ return createVNode(resolveComponent("iBizControlShell"), {
102
+ "data": item,
103
+ "modelData": modelData,
104
+ "context": context,
105
+ "params": params
106
+ }, null);
107
+ };
88
108
  return {
89
109
  ns,
90
110
  onCellClick,
@@ -98,7 +118,9 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
98
118
  codeListValue,
99
119
  tooltip,
100
120
  zIndex,
101
- codeListItems
121
+ codeListItems,
122
+ findLayoutPanel,
123
+ renderPanelItemLayout
102
124
  };
103
125
  },
104
126
  render() {
@@ -113,11 +135,19 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
113
135
  "zIndex": this.zIndex
114
136
  }, null) : null;
115
137
  let content = null;
138
+ const panel = this.findLayoutPanel();
116
139
  if (c.isCustomCode) {
117
140
  content = createVNode("span", {
118
141
  "class": this.ns.e("script"),
119
142
  "innerHTML": this.CustomHtml
120
143
  }, null);
144
+ } else if (panel) {
145
+ content = createVNode(resolveComponent("iBizControlShell"), {
146
+ "data": this.row.data,
147
+ "modelData": panel,
148
+ "context": c.context,
149
+ "params": c.params
150
+ }, null);
121
151
  } else if (c.codeList) {
122
152
  content = createVNode(resolveComponent("iBizCodeList"), {
123
153
  "class": this.ns.e("text"),
@@ -21,6 +21,10 @@ export declare const IBizGridFieldColumn: import("@ibiz-template/vue3-util").Typ
21
21
  tooltip: import("vue").ComputedRef<string | undefined>;
22
22
  zIndex: number | undefined;
23
23
  codeListItems: import("vue").Ref<readonly IData[]>;
24
+ findLayoutPanel: () => import("@ibiz/model-core").IPanel | undefined;
25
+ renderPanelItemLayout: (item: IData, modelData: import("@ibiz/model-core").IPanel) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
26
+ [key: string]: any;
27
+ }>;
24
28
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
25
29
  controller: {
26
30
  type: typeof import("@ibiz-template/runtime").GridFieldColumnController;
@@ -1 +1 @@
1
- .ibiz-filter-tree{padding:var(--ibiz-spacing-base)}.ibiz-filter-tree__editor{display:inline-block;width:180px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree__field-select{width:185px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree__mode-select{width:185px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree-group{padding:var(--ibiz-spacing-tight);border:1px solid var(--ibiz-color-border)}.ibiz-filter-tree-group__actions{padding-bottom:var(--ibiz-spacing-base)}.ibiz-filter-tree-group__logic-type{width:80px;margin-left:var(--ibiz-spacing-tight)}.ibiz-filter-tree-group__list-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding-right:var(--ibiz-spacing-base);padding-bottom:var(--ibiz-spacing-base)}.ibiz-filter-tree-group__list-item-left{align-self:flex-start;width:32px;margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-editor-default-text-color)}.ibiz-filter-tree-group__list-item-right{position:absolute;top:8px;right:0;color:var(--ibiz-color-danger);cursor:pointer}.ibiz-filter-tree-group__list-item-right:hover{color:var(--ibiz-color-danger-hover)}.ibiz-filter-tree-group--items>.ibiz-filter-tree-group__actions{display:flex}.ibiz-filter-tree-group--items>.ibiz-filter-tree-group__actions>.ibiz-filter-tree-item{width:auto}.ibiz-filter-tree-item{display:flex;align-items:center;justify-content:flex-start;width:574px}.ibiz-filter-tree-footer{margin-top:var(--ibiz-spacing-tight);text-align:right}
1
+ .ibiz-filter-tree{padding:var(--ibiz-spacing-base)}.ibiz-filter-tree__editor{display:inline-block;width:180px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree__field-select{width:185px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree__mode-select{width:185px;margin-right:var(--ibiz-spacing-tight)}.ibiz-filter-tree-group{padding:var(--ibiz-spacing-tight);border:1px solid var(--ibiz-color-border)}.ibiz-filter-tree-group__editor{width:600px;height:270px}.ibiz-filter-tree-group__actions{padding-bottom:var(--ibiz-spacing-base)}.ibiz-filter-tree-group__logic-type{width:80px;margin-left:var(--ibiz-spacing-tight)}.ibiz-filter-tree-group__list-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding-right:var(--ibiz-spacing-base);padding-bottom:var(--ibiz-spacing-base)}.ibiz-filter-tree-group__list-item-left{align-self:flex-start;width:32px;margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-editor-default-text-color)}.ibiz-filter-tree-group__list-item-right{position:absolute;top:8px;right:0;color:var(--ibiz-color-danger);cursor:pointer}.ibiz-filter-tree-group__list-item-right:hover{color:var(--ibiz-color-danger-hover)}.ibiz-filter-tree-group--items>.ibiz-filter-tree-group__actions{display:flex}.ibiz-filter-tree-group--items>.ibiz-filter-tree-group__actions>.ibiz-filter-tree-item{width:auto}.ibiz-filter-tree-item{display:flex;align-items:center;justify-content:flex-start;width:574px}.ibiz-filter-tree-footer{margin-top:var(--ibiz-spacing-tight);text-align:right}
@@ -25,15 +25,27 @@ export declare const FilterTreeControl: import("vue").DefineComponent<{
25
25
  type: StringConstructor;
26
26
  required: true;
27
27
  };
28
+ filterMode: {
29
+ type: PropType<"default" | "pql">;
30
+ default: string;
31
+ };
32
+ customCond: {
33
+ type: StringConstructor;
34
+ default: string;
35
+ };
36
+ context: {
37
+ type: PropType<IContext>;
38
+ };
28
39
  }, {
29
40
  ns: import("@ibiz-template/core").Namespace;
30
- renderFilterGroup: (node: IFilterNodeGroup | IFilterNodeItems, itemsC?: SearchBarFilterItemsController) => any;
41
+ renderFilterGroup: (node: IFilterNodeGroup | IFilterNodeItems, itemsC?: SearchBarFilterItemsController, root?: boolean) => any;
31
42
  renderFilterItem: (node: IFilterNodeField, itemsC?: SearchBarFilterItemsController) => JSX.Element | undefined;
32
43
  onConfirm: () => void;
33
44
  onCancel: () => void;
34
45
  isInSearchBar: import("vue").ComputedRef<boolean>;
35
46
  UiFilterNodes: import("vue").ComputedRef<IFilterNode[]>;
36
- }, 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<{
47
+ pqlEditor: import("vue").Ref<any>;
48
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "change" | "confirm" | "customCondChange")[], "cancel" | "change" | "confirm" | "customCondChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
37
49
  /**
38
50
  * 过滤项控制器集合
39
51
  */
@@ -55,8 +67,23 @@ export declare const FilterTreeControl: import("vue").DefineComponent<{
55
67
  type: StringConstructor;
56
68
  required: true;
57
69
  };
70
+ filterMode: {
71
+ type: PropType<"default" | "pql">;
72
+ default: string;
73
+ };
74
+ customCond: {
75
+ type: StringConstructor;
76
+ default: string;
77
+ };
78
+ context: {
79
+ type: PropType<IContext>;
80
+ };
58
81
  }>> & {
59
82
  onChange?: ((...args: any[]) => any) | undefined;
60
83
  onConfirm?: ((...args: any[]) => any) | undefined;
61
84
  onCancel?: ((...args: any[]) => any) | undefined;
62
- }, {}, {}>;
85
+ onCustomCondChange?: ((...args: any[]) => any) | undefined;
86
+ }, {
87
+ customCond: string;
88
+ filterMode: "default" | "pql";
89
+ }, {}>;
@@ -1,4 +1,4 @@
1
- import { isVNode, computed, resolveComponent, h, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { isVNode, computed, ref, watch, 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';
@@ -78,9 +78,20 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
78
78
  parent: {
79
79
  type: String,
80
80
  required: true
81
+ },
82
+ filterMode: {
83
+ type: String,
84
+ default: "default"
85
+ },
86
+ customCond: {
87
+ type: String,
88
+ default: ""
89
+ },
90
+ context: {
91
+ type: Object
81
92
  }
82
93
  },
83
- emits: ["confirm", "cancel", "change"],
94
+ emits: ["confirm", "cancel", "change", "customCondChange"],
84
95
  setup(props, {
85
96
  emit
86
97
  }) {
@@ -142,6 +153,34 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
142
153
  find.valueOPs.push(filterC.valueOP);
143
154
  }
144
155
  });
156
+ const schemaFields = ref([]);
157
+ allFields.forEach(async (field) => {
158
+ var _a, _b, _c;
159
+ const filterController = props.filterControllers.find((item) => item.key === field.name);
160
+ if (!filterController) {
161
+ return;
162
+ }
163
+ schemaFields.value.push({
164
+ appDEFieldId: field.fieldName,
165
+ caption: field.label,
166
+ valueOPs: field.valueOPs,
167
+ appDataEntity: (_a = filterController.appDataEntity) == null ? void 0 : _a.id,
168
+ appDataEntityFullTag: (_b = filterController.appDataEntity) == null ? void 0 : _b.defullTag,
169
+ appCodeListId: (_c = filterController.model.editor) == null ? void 0 : _c.appCodeListId
170
+ });
171
+ });
172
+ const pqlEditor = ref();
173
+ const mode = ref(props.filterMode || "default");
174
+ const currentCustomCond = ref("");
175
+ const handleCustomCondChange = (value) => {
176
+ currentCustomCond.value = value;
177
+ emit("customCondChange", currentCustomCond.value);
178
+ };
179
+ watch(() => props.customCond, () => {
180
+ currentCustomCond.value = props.customCond;
181
+ }, {
182
+ immediate: true
183
+ });
145
184
  const getFilterModes = (fieldName, fieldInfos = allFields) => {
146
185
  if (!fieldName) {
147
186
  return;
@@ -289,7 +328,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
289
328
  }, null), editor]);
290
329
  };
291
330
  let renderFilterItems = (_node) => createVNode("div", null, null);
292
- const renderFilterGroup = (node, itemsC) => {
331
+ const renderFilterGroup = (node, itemsC, root) => {
293
332
  if (node.hidden) {
294
333
  return;
295
334
  }
@@ -304,22 +343,38 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
304
343
  "text": true,
305
344
  "type": "primary",
306
345
  "onClick": () => {
346
+ if (mode.value === "pql") {
347
+ mode.value = "default";
348
+ return;
349
+ }
307
350
  addGroup(node);
308
351
  }
309
352
  }, {
310
- default: () => [createTextVNode("\u6DFB\u52A0\u7EC4")]
353
+ default: () => [mode.value === "pql" ? "\u5207\u6362\u7EC4" : "\u6DFB\u52A0\u7EC4"]
311
354
  }), createVNode(resolveComponent("el-button"), {
312
355
  "text": true,
313
356
  "onClick": () => {
357
+ if (mode.value === "pql") {
358
+ mode.value = "default";
359
+ return;
360
+ }
314
361
  addItem(node);
315
362
  }
316
363
  }, {
317
- default: () => [createTextVNode("\u6DFB\u52A0\u9879")]
364
+ default: () => [mode.value === "pql" ? "\u5207\u6362\u9879" : "\u6DFB\u52A0\u9879"]
365
+ }), root && isInSearchBar.value && createVNode(resolveComponent("el-button"), {
366
+ "text": true,
367
+ "onClick": () => {
368
+ mode.value = "pql";
369
+ }
370
+ }, {
371
+ default: () => [createTextVNode("\u6DFB\u52A0PQL")]
318
372
  }), createVNode(resolveComponent("el-select"), {
319
373
  "model-value": node.logicType,
320
374
  "teleported": false,
321
375
  "class": ns.be("group", "logic-type"),
322
376
  "onChange": (logicType) => {
377
+ mode.value = "default";
323
378
  onGroupLogicTypeChange(node, logicType);
324
379
  }
325
380
  }, {
@@ -332,7 +387,15 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
332
387
  "value": "OR",
333
388
  "label": "OR"
334
389
  }, null)]
335
- })]), createVNode("div", {
390
+ })]), mode.value === "pql" && createVNode("div", {
391
+ "class": ns.be("group", "editor")
392
+ }, [createVNode(resolveComponent("iBizPqlEditor"), {
393
+ "ref": "pqlEditor",
394
+ "value": currentCustomCond.value,
395
+ "fields": schemaFields.value,
396
+ "context": props.context,
397
+ "onChange": handleCustomCondChange
398
+ }, null)]), mode.value !== "pql" && createVNode("div", {
336
399
  "class": ns.be("group", "list")
337
400
  }, [node.children.length > 0 && node.children.map((child, index) => {
338
401
  const childContent = child.nodeType === "FIELD" ? renderFilterItem(child, itemsC) : renderFilterGroup(child, itemsC);
@@ -416,7 +479,17 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
416
479
  })])]);
417
480
  };
418
481
  const onConfirm = () => {
419
- emit("confirm");
482
+ var _a, _b;
483
+ if (mode.value === "pql") {
484
+ if (pqlEditor.value) {
485
+ const result = (_b = (_a = pqlEditor.value).verify) == null ? void 0 : _b.call(_a);
486
+ if (result) {
487
+ emit("confirm", mode.value, currentCustomCond.value);
488
+ }
489
+ }
490
+ return;
491
+ }
492
+ emit("confirm", mode.value, currentCustomCond.value);
420
493
  };
421
494
  const onCancel = () => {
422
495
  emit("cancel");
@@ -428,7 +501,8 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
428
501
  onConfirm,
429
502
  onCancel,
430
503
  isInSearchBar,
431
- UiFilterNodes
504
+ UiFilterNodes,
505
+ pqlEditor
432
506
  };
433
507
  },
434
508
  render() {
@@ -439,7 +513,7 @@ const FilterTreeControl = /* @__PURE__ */ defineComponent({
439
513
  if (node.nodeType === "FIELD") {
440
514
  return this.renderFilterItem(node);
441
515
  }
442
- return this.renderFilterGroup(node);
516
+ return this.renderFilterGroup(node, void 0, true);
443
517
  }), createVNode("div", {
444
518
  "class": this.ns.b("footer")
445
519
  }, [createVNode(resolveComponent("el-button"), {
@@ -68,7 +68,15 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
68
68
  "filterControllers": c.filterControllers,
69
69
  "filterNodes": c.state.filterNodes,
70
70
  "parent": "search-bar",
71
- "onConfirm": () => {
71
+ "filterMode": c.state.filterMode,
72
+ "customCond": c.state.customCond,
73
+ "context": c.context,
74
+ "onCustomCondChange": (customCond) => {
75
+ c.state.customCond = customCond;
76
+ },
77
+ "onConfirm": (mode, customCond) => {
78
+ c.state.filterMode = mode;
79
+ c.state.customCond = customCond;
72
80
  c.onSearch();
73
81
  if (popover) {
74
82
  popover.dismiss();
@@ -76,6 +84,7 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
76
84
  },
77
85
  "onCancel": () => {
78
86
  c.resetFilter();
87
+ c.state.customCond = "";
79
88
  }
80
89
  }, null);
81
90
  }, void 0, {
@@ -133,6 +133,6 @@ export declare const IBizArray: import("vue").DefineComponent<{
133
133
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
134
134
  }, {
135
135
  disabled: boolean;
136
- autoFocus: boolean;
137
136
  readonly: boolean;
137
+ autoFocus: boolean;
138
138
  }, {}>;
@@ -78,6 +78,6 @@ export declare const IBizAutoComplete: import("vue").DefineComponent<{
78
78
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
79
79
  }, {
80
80
  disabled: boolean;
81
- autoFocus: boolean;
82
81
  readonly: boolean;
82
+ autoFocus: boolean;
83
83
  }, {}>;
@@ -71,6 +71,6 @@ export declare const IBizCarousel: import("vue").DefineComponent<{
71
71
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
72
72
  }, {
73
73
  disabled: boolean;
74
- autoFocus: boolean;
75
74
  readonly: boolean;
75
+ autoFocus: boolean;
76
76
  }, {}>;
@@ -91,6 +91,6 @@ export declare const IBizCascader: import("vue").DefineComponent<{
91
91
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
92
92
  }, {
93
93
  disabled: boolean;
94
- autoFocus: boolean;
95
94
  readonly: boolean;
95
+ autoFocus: boolean;
96
96
  }, {}>;
@@ -64,6 +64,6 @@ export declare const IBizCheckbox: import("vue").DefineComponent<{
64
64
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
65
65
  }, {
66
66
  disabled: boolean;
67
- autoFocus: boolean;
68
67
  readonly: boolean;
68
+ autoFocus: boolean;
69
69
  }, {}>;
@@ -14,5 +14,12 @@ export declare class CheckBoxListEditorController extends CodeListEditorControll
14
14
  * @Date: 2023-05-24 10:55:50
15
15
  */
16
16
  codeList: IAppCodeList | undefined;
17
+ /**
18
+ * 多选一行展示几个
19
+ * @author fangZhiHao
20
+ * @date 2024-07-17 10:07:40
21
+ * @type {(number | undefined)}
22
+ */
23
+ rowNumber: number | undefined;
17
24
  protected onInit(): Promise<void>;
18
25
  }
@@ -17,13 +17,24 @@ class CheckBoxListEditorController extends CodeListEditorController {
17
17
  * @Date: 2023-05-24 10:55:50
18
18
  */
19
19
  __publicField(this, "codeList");
20
+ /**
21
+ * 多选一行展示几个
22
+ * @author fangZhiHao
23
+ * @date 2024-07-17 10:07:40
24
+ * @type {(number | undefined)}
25
+ */
26
+ __publicField(this, "rowNumber");
20
27
  }
21
28
  async onInit() {
29
+ var _a;
22
30
  super.onInit();
23
31
  if (this.model.appCodeListId) {
24
32
  const app = await ibiz.hub.getApp(this.context.srfappid);
25
33
  this.codeList = app.codeList.getCodeList(this.model.appCodeListId);
26
34
  }
35
+ if ((_a = this.editorParams) == null ? void 0 : _a.rowNumber) {
36
+ this.rowNumber = Number(this.editorParams.rowNumber);
37
+ }
27
38
  }
28
39
  }
29
40
 
@@ -1 +1 @@
1
- .ibiz-checkbox-list__text{font-size:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-text-color)}.ibiz-checkbox-list--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-form-item .ibiz-checkbox-list.is-show-default{padding:var(--ibiz-form-item-hover-edit-padding)}
1
+ .ibiz-checkbox-list{--ibiz-checkbox-list-group-row-number:0}.ibiz-checkbox-list__text{font-size:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-text-color)}.ibiz-checkbox-list--readonly{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-checkbox-list.is-grid-layout .el-checkbox-group{display:grid;grid-template-columns:repeat(var(--ibiz-checkbox-list-group-row-number),1fr)}.ibiz-form-item .ibiz-checkbox-list.is-show-default{padding:var(--ibiz-form-item-hover-edit-padding)}
@@ -66,6 +66,6 @@ export declare const IBizCheckboxList: import("vue").DefineComponent<{
66
66
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
67
67
  }, {
68
68
  disabled: boolean;
69
- autoFocus: boolean;
70
69
  readonly: boolean;
70
+ autoFocus: boolean;
71
71
  }, {}>;
@@ -156,7 +156,8 @@ const IBizCheckboxList = /* @__PURE__ */ defineComponent({
156
156
  let _slot;
157
157
  return createVNode("div", {
158
158
  "ref": "editorRef",
159
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("show-default", this.showFormDefaultContent)]
159
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("show-default", this.showFormDefaultContent), this.ns.is("grid-layout", !!this.controller.rowNumber)],
160
+ "style": this.controller.rowNumber ? "--ibiz-checkbox-list-group-row-number:".concat(this.controller.rowNumber) : ""
160
161
  }, [this.readonly ? this.valueText : createVNode(resolveComponent("el-checkbox-group"), mergeProps({
161
162
  "model-value": this.selectArray,
162
163
  "onChange": this.onSelectArrayChange
@@ -81,6 +81,6 @@ export declare const IBizCode: import("vue").DefineComponent<{
81
81
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
82
82
  }, {
83
83
  disabled: boolean;
84
- autoFocus: boolean;
85
84
  readonly: boolean;
85
+ autoFocus: boolean;
86
86
  }, {}>;
@@ -71,6 +71,6 @@ export declare const IBizColorPicker: import("vue").DefineComponent<{
71
71
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
72
72
  }, {
73
73
  disabled: boolean;
74
- autoFocus: boolean;
75
74
  readonly: boolean;
75
+ autoFocus: boolean;
76
76
  }, {}>;
@@ -79,6 +79,6 @@ export declare const IBizMPicker: import("vue").DefineComponent<{
79
79
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
80
80
  }, {
81
81
  disabled: boolean;
82
- autoFocus: boolean;
83
82
  readonly: boolean;
83
+ autoFocus: boolean;
84
84
  }, {}>;
@@ -78,6 +78,6 @@ export declare const IBizPicker: import("vue").DefineComponent<{
78
78
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
79
79
  }, {
80
80
  disabled: boolean;
81
- autoFocus: boolean;
82
81
  readonly: boolean;
82
+ autoFocus: boolean;
83
83
  }, {}>;
@@ -79,6 +79,6 @@ export declare const IBizPickerDropDown: import("vue").DefineComponent<{
79
79
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
80
80
  }, {
81
81
  disabled: boolean;
82
- autoFocus: boolean;
83
82
  readonly: boolean;
83
+ autoFocus: boolean;
84
84
  }, {}>;
@@ -78,6 +78,6 @@ export declare const IBizPickerEmbedView: import("vue").DefineComponent<{
78
78
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
79
79
  }, {
80
80
  disabled: boolean;
81
- autoFocus: boolean;
82
81
  readonly: boolean;
82
+ autoFocus: boolean;
83
83
  }, {}>;
@@ -65,6 +65,6 @@ export declare const IBizPickerLink: import("vue").DefineComponent<{
65
65
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
66
66
  }, {
67
67
  disabled: boolean;
68
- autoFocus: boolean;
69
68
  readonly: boolean;
69
+ autoFocus: boolean;
70
70
  }, {}>;
@@ -93,6 +93,6 @@ export declare const IBizPickerSelectView: import("vue").DefineComponent<{
93
93
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
94
94
  }, {
95
95
  disabled: boolean;
96
- autoFocus: boolean;
97
96
  readonly: boolean;
97
+ autoFocus: boolean;
98
98
  }, {}>;
@@ -74,6 +74,6 @@ export declare const IBizDatePicker: import("vue").DefineComponent<{
74
74
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
75
75
  }, {
76
76
  disabled: boolean;
77
- autoFocus: boolean;
78
77
  readonly: boolean;
78
+ autoFocus: boolean;
79
79
  }, {}>;
@@ -80,6 +80,6 @@ export declare const IBizDateRangePicker: import("vue").DefineComponent<{
80
80
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
81
81
  }, {
82
82
  disabled: boolean;
83
- autoFocus: boolean;
84
83
  readonly: boolean;
84
+ autoFocus: boolean;
85
85
  }, {}>;
@@ -79,6 +79,6 @@ export declare const IBizDropdown: import("vue").DefineComponent<{
79
79
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
80
80
  }, {
81
81
  disabled: boolean;
82
- autoFocus: boolean;
83
82
  readonly: boolean;
83
+ autoFocus: boolean;
84
84
  }, {}>;
@@ -310,7 +310,7 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
310
310
  "disabled": this.disabled,
311
311
  "loading": this.isLoading,
312
312
  "fit-input-width": isEllipsis,
313
- "popper-class": "".concat(this.ns.b("popper"), " ").concat(this.c.editorParams.type === "round" ? this.ns.bm("popper", "round") : ""),
313
+ "popper-class": "".concat(this.ns.b("popper"), " ").concat(this.c.editorParams.type === "round" ? this.ns.bm("popper", "round") : "", " ").concat(this.ns.bm("popper", "".concat(this.c.model.id))),
314
314
  "onBlur": this.onBlur,
315
315
  "onFocus": this.onFocus,
316
316
  "onKeyup": this.handleKeyUp,
@@ -69,6 +69,6 @@ export declare const IBizEmojiPicker: import("vue").DefineComponent<{
69
69
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
70
70
  }, {
71
71
  disabled: boolean;
72
- autoFocus: boolean;
73
72
  readonly: boolean;
73
+ autoFocus: boolean;
74
74
  }, {}>;
@@ -89,7 +89,7 @@ declare const IBizHtml: import("vue").DefineComponent<{
89
89
  onEnter?: ((_event?: IData | undefined) => any) | undefined;
90
90
  }, {
91
91
  disabled: boolean;
92
- autoFocus: boolean;
93
92
  readonly: boolean;
93
+ autoFocus: boolean;
94
94
  }, {}>;
95
95
  export default IBizHtml;