@ibiz-template/vue3-components 0.6.16 → 0.7.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 (120) hide show
  1. package/dist/chart-jfPZ04eU.js +1 -0
  2. package/dist/index-Wk7Kbc7Z.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-94ZSfJEl.js → xlsx-util-keqImqNu.js} +1 -1
  6. package/es/common/pagination/pagination.d.ts +9 -0
  7. package/es/common/pagination/pagination.mjs +12 -2
  8. package/es/common/view-message/view-message.css +1 -1
  9. package/es/common/view-message/view-message.d.ts +27 -1
  10. package/es/common/view-message/view-message.mjs +130 -17
  11. package/es/control/caption-bar/caption-bar.css +1 -1
  12. package/es/control/caption-bar/caption-bar.mjs +3 -1
  13. package/es/control/chart/chart.css +1 -1
  14. package/es/control/chart/chart.d.ts +3 -1
  15. package/es/control/chart/chart.mjs +70 -6
  16. package/es/control/data-view/data-view.mjs +1 -0
  17. package/es/control/drbar/drbar.controller.d.ts +9 -0
  18. package/es/control/drbar/drbar.controller.mjs +31 -17
  19. package/es/control/drtab/drtab.controller.d.ts +9 -0
  20. package/es/control/drtab/drtab.controller.mjs +16 -1
  21. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +2 -1
  23. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +13 -4
  24. package/es/control/form/form-detail/form-mdctrl/index.d.ts +1 -0
  25. package/es/control/form/form-detail/form-rawitem/form-rawitem.d.ts +2 -1
  26. package/es/control/form/form-detail/form-rawitem/form-rawitem.mjs +31 -1
  27. package/es/control/form/form-detail/form-rawitem/index.d.ts +1 -0
  28. package/es/control/grid/grid/grid.mjs +1 -0
  29. package/es/control/grid/grid-column/grid-field-edit-column/cell-edit.mjs +3 -1
  30. package/es/control/list/list.mjs +1 -0
  31. package/es/control/search-bar/filter-tree/filter-tree.d.ts +3 -3
  32. package/es/control/search-bar/filter-tree/filter-tree.mjs +98 -37
  33. package/es/control/search-bar/index.d.ts +1 -0
  34. package/es/control/search-bar/index.mjs +2 -0
  35. package/es/control/search-bar/quick-search-select/quick-search-select.css +1 -0
  36. package/es/control/search-bar/quick-search-select/quick-search-select.d.ts +16 -0
  37. package/es/control/search-bar/quick-search-select/quick-search-select.mjs +72 -0
  38. package/es/control/search-bar/search-bar.css +1 -1
  39. package/es/control/search-bar/search-bar.d.ts +1 -0
  40. package/es/control/search-bar/search-bar.mjs +14 -3
  41. package/es/control/toolbar/index.d.ts +1 -0
  42. package/es/control/toolbar/toolbar.d.ts +1 -0
  43. package/es/control/toolbar/toolbar.mjs +15 -14
  44. package/es/control/tree-grid/tree-grid.mjs +1 -0
  45. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.mjs +3 -1
  46. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +11 -3
  47. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +5 -7
  48. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +5 -7
  49. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +19 -10
  50. package/es/editor/list-box/ibiz-list-box/ibiz-list-box.mjs +13 -5
  51. package/es/editor/raw/ibiz-raw/ibiz-raw.mjs +7 -0
  52. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +6 -8
  53. package/es/editor/text-box/input/input.mjs +7 -9
  54. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +9 -11
  55. package/es/panel-component/index.mjs +2 -0
  56. package/es/panel-component/nav-tabs/nav-tabs.css +1 -1
  57. package/es/panel-component/nav-tabs/nav-tabs.mjs +7 -1
  58. package/es/panel-component/panel-index-view-search/index.d.ts +1 -0
  59. package/es/panel-component/panel-index-view-search/panel-index-view-search.d.ts +1 -0
  60. package/es/panel-component/panel-index-view-search/panel-index-view-search.mjs +22 -2
  61. package/es/panel-component/view-msg-pos/index.d.ts +25 -0
  62. package/es/panel-component/view-msg-pos/index.mjs +16 -0
  63. package/es/panel-component/view-msg-pos/view-msg-pos.controller.d.ts +21 -0
  64. package/es/panel-component/view-msg-pos/view-msg-pos.controller.mjs +48 -0
  65. package/es/panel-component/view-msg-pos/view-msg-pos.d.ts +25 -0
  66. package/es/panel-component/view-msg-pos/view-msg-pos.mjs +47 -0
  67. package/es/panel-component/view-msg-pos/view-msg-pos.provider.d.ts +16 -0
  68. package/es/panel-component/view-msg-pos/view-msg-pos.provider.mjs +21 -0
  69. package/es/view-engine/index.mjs +4 -0
  70. package/es/view-engine/panel-view-engine.d.ts +2 -2
  71. package/es/web-app/App.mjs +9 -1
  72. package/es/web-app/main.mjs +8 -1
  73. package/lib/common/pagination/pagination.cjs +12 -2
  74. package/lib/common/view-message/view-message.cjs +129 -16
  75. package/lib/common/view-message/view-message.css +1 -1
  76. package/lib/control/caption-bar/caption-bar.cjs +3 -1
  77. package/lib/control/caption-bar/caption-bar.css +1 -1
  78. package/lib/control/chart/chart.cjs +69 -5
  79. package/lib/control/chart/chart.css +1 -1
  80. package/lib/control/data-view/data-view.cjs +1 -0
  81. package/lib/control/drbar/drbar.controller.cjs +31 -17
  82. package/lib/control/drtab/drtab.controller.cjs +16 -1
  83. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +13 -4
  84. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
  85. package/lib/control/form/form-detail/form-rawitem/form-rawitem.cjs +30 -0
  86. package/lib/control/grid/grid/grid.cjs +1 -0
  87. package/lib/control/grid/grid-column/grid-field-edit-column/cell-edit.cjs +3 -1
  88. package/lib/control/list/list.cjs +1 -0
  89. package/lib/control/search-bar/filter-tree/filter-tree.cjs +98 -37
  90. package/lib/control/search-bar/index.cjs +2 -0
  91. package/lib/control/search-bar/quick-search-select/quick-search-select.cjs +74 -0
  92. package/lib/control/search-bar/quick-search-select/quick-search-select.css +1 -0
  93. package/lib/control/search-bar/search-bar.cjs +14 -3
  94. package/lib/control/search-bar/search-bar.css +1 -1
  95. package/lib/control/toolbar/toolbar.cjs +15 -14
  96. package/lib/control/tree-grid/tree-grid.cjs +1 -0
  97. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/cell-edit.cjs +3 -1
  98. package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +11 -3
  99. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +5 -7
  100. package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +5 -7
  101. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +19 -10
  102. package/lib/editor/list-box/ibiz-list-box/ibiz-list-box.cjs +13 -5
  103. package/lib/editor/raw/ibiz-raw/ibiz-raw.cjs +7 -0
  104. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +6 -8
  105. package/lib/editor/text-box/input/input.cjs +7 -9
  106. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +8 -10
  107. package/lib/panel-component/index.cjs +2 -0
  108. package/lib/panel-component/nav-tabs/nav-tabs.cjs +7 -1
  109. package/lib/panel-component/nav-tabs/nav-tabs.css +1 -1
  110. package/lib/panel-component/panel-index-view-search/panel-index-view-search.cjs +21 -1
  111. package/lib/panel-component/view-msg-pos/index.cjs +22 -0
  112. package/lib/panel-component/view-msg-pos/view-msg-pos.cjs +49 -0
  113. package/lib/panel-component/view-msg-pos/view-msg-pos.controller.cjs +50 -0
  114. package/lib/panel-component/view-msg-pos/view-msg-pos.provider.cjs +23 -0
  115. package/lib/view-engine/index.cjs +4 -0
  116. package/lib/web-app/App.cjs +8 -0
  117. package/lib/web-app/main.cjs +7 -0
  118. package/package.json +14 -14
  119. package/dist/chart-IsmrW_d0.js +0 -1
  120. package/dist/index-l_9Kqet_.js +0 -4
@@ -50,9 +50,11 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
50
50
  }
51
51
  },
52
52
  setup() {
53
+ var _a;
53
54
  const c = useControlController((...args) => new ToolbarController(...args));
54
55
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
55
56
  const btnSize = ref("default");
57
+ const toolbarStyle = (_a = c.model.toolbarStyle) == null ? void 0 : _a.toLowerCase();
56
58
  const handleClick = async (item, event, params) => {
57
59
  await c.onItemClick(item, event, params);
58
60
  };
@@ -78,13 +80,13 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
78
80
  "class": ns.b("submenu"),
79
81
  "index": item.id,
80
82
  "title": item.tooltip,
81
- "popper-class": ns.b("submenu-popper")
83
+ "popper-class": [ns.b("submenu-popper"), ns.bm("submenu-popper", toolbarStyle)]
82
84
  }, {
83
85
  default: () => {
84
86
  return detoolbarItems.map((item2) => {
85
- var _a;
87
+ var _a2;
86
88
  const actionId = item2.uiactionId;
87
- const visible = (_a = c.state.buttonsState[item2.id]) == null ? void 0 : _a.visible;
89
+ const visible = (_a2 = c.state.buttonsState[item2.id]) == null ? void 0 : _a2.visible;
88
90
  if (!visible) {
89
91
  return null;
90
92
  }
@@ -148,9 +150,9 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
148
150
  });
149
151
  };
150
152
  const renderToolbarItem = (item) => {
151
- var _a, _b;
153
+ var _a2, _b;
152
154
  const itemId = item.id;
153
- const visible = (_a = c.state.buttonsState[itemId]) == null ? void 0 : _a.visible;
155
+ const visible = (_a2 = c.state.buttonsState[itemId]) == null ? void 0 : _a2.visible;
154
156
  if (!visible) {
155
157
  return null;
156
158
  }
@@ -190,7 +192,7 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
190
192
  }, [createVNode(resolveComponent("el-button"), {
191
193
  "title": item.tooltip,
192
194
  "size": btnSize.value,
193
- "text": Object.is(buttonType, "INVERSE"),
195
+ "text": Object.is(buttonType, "inverse"),
194
196
  "type": buttonType,
195
197
  "loading": c.state.buttonsState[itemId].loading,
196
198
  "disabled": c.state.buttonsState[itemId].disabled,
@@ -216,24 +218,23 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
216
218
  c,
217
219
  btnSize,
218
220
  ns,
221
+ toolbarStyle,
219
222
  handleClick,
220
223
  renderExtraButtons,
221
224
  renderToolbarItem
222
225
  };
223
226
  },
224
227
  render() {
225
- var _a, _b, _c, _d;
228
+ var _a, _b, _c;
226
229
  const {
227
- state,
228
- model
230
+ state
229
231
  } = this.c;
230
- const toolbarStyle = (_a = model.toolbarStyle) == null ? void 0 : _a.toLowerCase();
231
232
  let content = null;
232
233
  if (state.isCreated) {
233
234
  content = [
234
235
  // 绘制最前方的额外按钮
235
- ((_b = state.extraButtons.before) == null ? void 0 : _b.length) > 0 && this.renderExtraButtons(state.extraButtons.before),
236
- (_c = this.modelData.detoolbarItems) == null ? void 0 : _c.map((item, index) => {
236
+ ((_a = state.extraButtons.before) == null ? void 0 : _a.length) > 0 && this.renderExtraButtons(state.extraButtons.before),
237
+ (_b = this.modelData.detoolbarItems) == null ? void 0 : _b.map((item, index) => {
237
238
  var _a2;
238
239
  const toolbarItemNode = this.renderToolbarItem(item);
239
240
  if ((_a2 = state.extraButtons[index]) == null ? void 0 : _a2.length) {
@@ -242,12 +243,12 @@ const ToolbarControl = /* @__PURE__ */ defineComponent({
242
243
  return toolbarItemNode;
243
244
  }),
244
245
  // 绘制最后方的额外按钮
245
- ((_d = state.extraButtons.after) == null ? void 0 : _d.length) > 0 && this.renderExtraButtons(state.extraButtons.after)
246
+ ((_c = state.extraButtons.after) == null ? void 0 : _c.length) > 0 && this.renderExtraButtons(state.extraButtons.after)
246
247
  ];
247
248
  }
248
249
  return createVNode(resolveComponent("iBizControlBase"), {
249
250
  "controller": this.c,
250
- "class": [this.ns.m(state.viewMode.toLowerCase()), this.ns.m(toolbarStyle)]
251
+ "class": [this.ns.m(state.viewMode.toLowerCase()), this.ns.m(this.toolbarStyle)]
251
252
  }, _isSlot(content) ? content : {
252
253
  default: () => [content]
253
254
  });
@@ -237,6 +237,7 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
237
237
  "total": state.total,
238
238
  "curPage": state.curPage,
239
239
  "size": state.size,
240
+ "totalPages": state.totalPages,
240
241
  "onChange": this.onPageChange,
241
242
  "onPageSizeChange": this.onPageSizeChange,
242
243
  "onPageRefresh": this.onPageRefresh
@@ -25,7 +25,9 @@ function useCellEdit(props, componentRef) {
25
25
  return !editorShowEdit.value;
26
26
  });
27
27
  const editorDisabled = false;
28
- const isAutoFocus = true;
28
+ const isAutoFocus = computed(() => {
29
+ return !hasError.value;
30
+ });
29
31
  const showEditMask = computed(() => {
30
32
  return cellEditable.value && !editable.value;
31
33
  });
@@ -59,7 +59,7 @@ const IBizCheckboxList = /* @__PURE__ */ defineComponent({
59
59
  const strVal = props.value;
60
60
  if (strVal !== "") {
61
61
  if (codeList) {
62
- const selects = strVal.split(valueSeparator);
62
+ const selects = c.model.valueType === "SIMPLES" ? strVal : strVal.split(valueSeparator);
63
63
  if (codeList.codeItemValueNumber) {
64
64
  for (let i = 0, len = selects.length; i < len; i++) {
65
65
  selects[i] = Number(selects[i]);
@@ -81,7 +81,11 @@ const IBizCheckboxList = /* @__PURE__ */ defineComponent({
81
81
  const numVal = typeof item === "string" ? parseInt(item, 10) : item;
82
82
  temp |= numVal;
83
83
  });
84
- value = temp;
84
+ if (c.model.valueType === "SIMPLES") {
85
+ value = [temp];
86
+ } else if (c.model.valueType === "SIMPLE") {
87
+ value = temp;
88
+ }
85
89
  } else if (Object.is(currentMode.value, "str")) {
86
90
  const _datas = [];
87
91
  if (items.value.length > 0) {
@@ -92,7 +96,11 @@ const IBizCheckboxList = /* @__PURE__ */ defineComponent({
92
96
  }
93
97
  _datas.push(_item.value);
94
98
  });
95
- value = _datas.join(valueSeparator);
99
+ if (c.model.valueType === "SIMPLES") {
100
+ value = _datas;
101
+ } else if (c.model.valueType === "SIMPLE") {
102
+ value = _datas.join(valueSeparator);
103
+ }
96
104
  }
97
105
  }
98
106
  emit("change", value);
@@ -128,13 +128,11 @@ const IBizPicker = /* @__PURE__ */ defineComponent({
128
128
  emit("change", null);
129
129
  };
130
130
  const closeCircle = (c.linkView ? 1 : 0) + (c.pickupView ? 1 : 0);
131
- if (props.autoFocus) {
132
- watch(editorRef, (newVal) => {
133
- if (newVal) {
134
- newVal.focus();
135
- }
136
- });
137
- }
131
+ watch(editorRef, (newVal) => {
132
+ if (props.autoFocus && newVal && newVal.focus) {
133
+ newVal.focus();
134
+ }
135
+ });
138
136
  const onFocus = (e) => {
139
137
  emit("focus", e);
140
138
  setEditable(true);
@@ -75,13 +75,11 @@ const IBizDatePicker = /* @__PURE__ */ defineComponent({
75
75
  emit("change", date);
76
76
  setEditable(false);
77
77
  };
78
- if (props.autoFocus) {
79
- watch(editorRef, (newVal) => {
80
- if (newVal && newVal.focus) {
81
- newVal.focus();
82
- }
83
- });
84
- }
78
+ watch(editorRef, (newVal) => {
79
+ if (props.autoFocus && newVal && newVal.focus) {
80
+ newVal.focus();
81
+ }
82
+ });
85
83
  const onFocus = (e) => {
86
84
  emit("focus", e);
87
85
  setEditable(true);
@@ -79,7 +79,7 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
79
79
  isLoading.value = false;
80
80
  };
81
81
  watch(() => props.value, async (newVal, oldVal) => {
82
- if (newVal || newVal === null) {
82
+ if (newVal || newVal === null || newVal === 0) {
83
83
  if (!isLoadedCodeList.value && oldVal === void 0) {
84
84
  await loadCodeList();
85
85
  }
@@ -109,14 +109,25 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
109
109
  if (editorItems && editorItems.length > 0 && !c.multiple) {
110
110
  return props.data[editorItems[0].id];
111
111
  }
112
- if (props.value) {
112
+ if (props.value && typeof props.value === "string") {
113
113
  return c.multiple ? (_a = props.value) == null ? void 0 : _a.toString().split(",") : props.value.toString();
114
114
  }
115
+ if (props.value && Array.isArray(props.value)) {
116
+ return c.multiple ? props.value : props.value.toString();
117
+ }
115
118
  return (_b = props.value) == null ? void 0 : _b.toString();
116
119
  },
117
120
  set(select) {
118
121
  if (Array.isArray(select)) {
119
- emit("change", select.length === 0 ? null : select.join(","));
122
+ let selectArr = null;
123
+ if (select.length === 0) {
124
+ selectArr = null;
125
+ } else if (c.model.valueType === "SIMPLES") {
126
+ selectArr = select;
127
+ } else {
128
+ selectArr = select.join(",");
129
+ }
130
+ emit("change", selectArr);
120
131
  } else if (editorItems && editorItems.length > 0) {
121
132
  emit("change", select, editorItems[0].id);
122
133
  const selectItem = getCodeListItemByValue(select);
@@ -149,13 +160,11 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
149
160
  }, {
150
161
  immediate: true
151
162
  });
152
- if (props.autoFocus) {
153
- watch(editorRef, (newVal) => {
154
- if (newVal) {
155
- newVal.focus();
156
- }
157
- });
158
- }
163
+ watch(editorRef, (newVal) => {
164
+ if (props.autoFocus && newVal && newVal.focus) {
165
+ newVal.focus();
166
+ }
167
+ });
159
168
  const onFocus = (e) => {
160
169
  editorState = "focus";
161
170
  emit("focus", e);
@@ -77,8 +77,8 @@ const IBizListBox = /* @__PURE__ */ defineComponent({
77
77
  });
78
78
  } else if (Object.is(currentMode.value, "str")) {
79
79
  if (newVal !== "") {
80
- if (codeList && typeof newVal === "string") {
81
- selectsArray = newVal.split(valueSeparator);
80
+ if (codeList && (typeof newVal === "string" || Array.isArray(newVal))) {
81
+ selectsArray = Array.isArray(newVal) ? newVal : newVal.split(valueSeparator);
82
82
  if (codeList.codeItemValueNumber) {
83
83
  for (let i = 0, len = selectsArray.length; i < len; i++) {
84
84
  selectsArray[i] = Number(selectsArray[i]);
@@ -89,7 +89,7 @@ const IBizListBox = /* @__PURE__ */ defineComponent({
89
89
  }
90
90
  } else if (editorType === "LISTBOXPICKUP") {
91
91
  if (newVal !== "") {
92
- selectsArray = newVal.split(valueSeparator);
92
+ selectsArray = c.model.valueType === "SIMPLES" && Array.isArray(newVal) ? newVal : newVal.split(valueSeparator);
93
93
  }
94
94
  }
95
95
  selectArray.value = selectsArray;
@@ -115,10 +115,18 @@ const IBizListBox = /* @__PURE__ */ defineComponent({
115
115
  });
116
116
  _value = temp;
117
117
  } else if (Object.is(currentMode, "str")) {
118
- _value = values.join(valueSeparator);
118
+ if (c.model.valueType === "SIMPLES") {
119
+ _value = values;
120
+ } else if (c.model.valueType === "SIMPLE") {
121
+ _value = values.join(valueSeparator);
122
+ }
119
123
  }
120
124
  } else if (Object.is("LISTBOXPICKUP", editorType)) {
121
- _value = values.join(valueSeparator);
125
+ if (c.model.valueType === "SIMPLES") {
126
+ _value = values;
127
+ } else if (c.model.valueType === "SIMPLE") {
128
+ _value = values.join(valueSeparator);
129
+ }
122
130
  }
123
131
  } else {
124
132
  _value = value;
@@ -47,6 +47,13 @@ const IBizRaw = /* @__PURE__ */ defineComponent({
47
47
  ibiz.log.error("JSON\u5B57\u7B26\u4E32\u8F6C\u6362\u9519\u8BEF");
48
48
  }
49
49
  }
50
+ if (!Array.isArray(obj)) {
51
+ Object.assign(obj, {
52
+ data: {
53
+ ...props.data
54
+ }
55
+ });
56
+ }
50
57
  content.value = await ibiz.util.hbs.render(template, obj || newVal);
51
58
  }
52
59
  }
@@ -54,14 +54,12 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
54
54
  const handleChange = (e) => {
55
55
  emit("change", e);
56
56
  };
57
- if (props.autoFocus) {
58
- watch(editorRef, (newVal) => {
59
- if (newVal) {
60
- const input = newVal.$el.getElementsByTagName("input")[0];
61
- input.focus();
62
- }
63
- });
64
- }
57
+ watch(editorRef, (newVal) => {
58
+ if (props.autoFocus && newVal) {
59
+ const input = newVal.$el.getElementsByTagName("input")[0];
60
+ input.focus();
61
+ }
62
+ });
65
63
  const onFocus = (e) => {
66
64
  emit("focus", e);
67
65
  setEditable(true);
@@ -94,15 +94,13 @@ const IBizInput = /* @__PURE__ */ defineComponent({
94
94
  emit("blur", event);
95
95
  setEditable(false);
96
96
  };
97
- if (props.autoFocus) {
98
- watch(editorRef, (newVal) => {
99
- if (newVal) {
100
- const inputTag = type.value === "textarea" ? "textarea" : "input";
101
- const input = newVal.$el.getElementsByTagName(inputTag)[0];
102
- input.focus();
103
- }
104
- });
105
- }
97
+ watch(editorRef, (newVal) => {
98
+ if (props.autoFocus && newVal) {
99
+ const inputTag = type.value === "textarea" ? "textarea" : "input";
100
+ const input = newVal.$el.getElementsByTagName(inputTag)[0];
101
+ input.focus();
102
+ }
103
+ });
106
104
  const onFocus = (e) => {
107
105
  emit("focus", e);
108
106
  setEditable(true);
@@ -2,7 +2,7 @@ import { ref, computed, watch, resolveComponent, createVNode, mergeProps, define
2
2
  import { getInputProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-searchcond-edit.css';
4
4
  import { isNilOrEmpty } from 'qx-util';
5
- import { getOriginFilterNodes, parseFilters, calcSearchConds } from '@ibiz-template/runtime';
5
+ import { getOriginFilterNodes, SearchCondEx2filterNode, calcSearchCondExs } from '@ibiz-template/runtime';
6
6
 
7
7
  "use strict";
8
8
  const IBizSearchCondEdit = /* @__PURE__ */ defineComponent({
@@ -36,7 +36,7 @@ const IBizSearchCondEdit = /* @__PURE__ */ defineComponent({
36
36
  if (newVal) {
37
37
  try {
38
38
  const searchconds = JSON.parse(newVal);
39
- filterNodes.value = searchconds.map((item) => parseFilters(item));
39
+ filterNodes.value = searchconds.map((item) => SearchCondEx2filterNode(item));
40
40
  } catch (error) {
41
41
  ibiz.log.error("".concat(newVal, "\u503C\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4E3Ajson\u5B57\u7B26\u4E32"));
42
42
  }
@@ -62,14 +62,12 @@ const IBizSearchCondEdit = /* @__PURE__ */ defineComponent({
62
62
  const handleChange = (e) => {
63
63
  emit("change", e);
64
64
  };
65
- if (props.autoFocus) {
66
- watch(editorRef, (newVal) => {
67
- if (newVal) {
68
- const input = newVal.$el.getElementsByTagName("input")[0];
69
- input.focus();
70
- }
71
- });
72
- }
65
+ watch(editorRef, (newVal) => {
66
+ if (props.autoFocus && newVal) {
67
+ const input = newVal.$el.getElementsByTagName("input")[0];
68
+ input.focus();
69
+ }
70
+ });
73
71
  const onFocus = (e) => {
74
72
  emit("focus", e);
75
73
  setEditable(true);
@@ -84,7 +82,7 @@ const IBizSearchCondEdit = /* @__PURE__ */ defineComponent({
84
82
  }
85
83
  };
86
84
  const getCurrentValByFilterNodes = () => {
87
- const searchconds = calcSearchConds(filterNodes.value);
85
+ const searchconds = calcSearchCondExs(filterNodes.value);
88
86
  if (searchconds) {
89
87
  currentVal.value = JSON.stringify(searchconds, null, 2);
90
88
  }
@@ -19,6 +19,7 @@ import { IBizSearchFormButtons } from './searchform-buttons/index.mjs';
19
19
  import { IBizViewMessage } from './view-message/index.mjs';
20
20
  import { IBizPanelStaticCarousel } from './panel-static-carousel/index.mjs';
21
21
  import { IBizCoopPos } from './coop-pos/index.mjs';
22
+ import { IBizViewMsgPos } from './view-msg-pos/index.mjs';
22
23
  export { NavPosIndexState } from './nav-pos-index/nav-pos-index.state.mjs';
23
24
  export { NavPosIndexController } from './nav-pos-index/nav-pos-index.controller.mjs';
24
25
  export { PanelButtonController } from './panel-button/panel-button.controller.mjs';
@@ -63,6 +64,7 @@ const IBizPanelComponents = {
63
64
  v.use(IBizTeleportPlaceholder);
64
65
  v.use(IBizPanelContainerTabs);
65
66
  v.use(IBizCoopPos);
67
+ v.use(IBizViewMsgPos);
66
68
  }
67
69
  };
68
70
 
@@ -1 +1 @@
1
- .ibiz-nav-tabs{--ibiz-nav-tabs-padding:var(--ibiz-spacing-base-loose);--ibiz-nav-tabs-left-width:calc(100% - 60px);--ibiz-nav-tabs-right-width:60px;--ibiz-nav-tabs-right-height:30px;--ibiz-nav-tabs-item-height:40px;--ibiz-nav-tabs-item-padding:0 var(--ibiz-spacing-base-loose);--ibiz-nav-tabs-item-margin:0 var(--ibiz-spacing-base) 0 0;--ibiz-nav-tabs-item-font-size:var(--ibiz-font-size-regular);--ibiz-nav-tabs-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-nav-tabs-item-border-radius:var(--ibiz-border-radius-medium);--ibiz-nav-tabs-item-bg-color:transparent;--ibiz-nav-tabs-item-color:var(--ibiz-color-text-0);--ibiz-nav-tabs-item-hover-color:var(--ibiz-color-primary-hover);--ibiz-nav-tabs-item-active-color:var(--ibiz-color-primary);display:flex;align-items:center;justify-content:flex-start;position:relative;padding:var(--ibiz-nav-tabs-padding)}.ibiz-nav-tabs__left{display:flex;align-items:center;width:var(--ibiz-nav-tabs-left-width)}.ibiz-nav-tabs__left .el-tabs{width:100%;--el-tabs-header-height:40px}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav{border:none}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item{display:flex;align-items:center;height:var(--ibiz-nav-tabs-item-height);padding:var(--ibiz-nav-tabs-item-padding);margin:var(--ibiz-nav-tabs-item-margin);overflow:hidden;font-size:var(--ibiz-nav-tabs-item-font-size);font-weight:var(--ibiz-nav-tabs-item-font-weight);color:var(--ibiz-nav-tabs-item-color);vertical-align:middle;background-color:var(--ibiz-nav-tabs-item-bg-color);border:1px solid var(--ibiz-color-border);border-radius:var(--ibiz-nav-tabs-item-border-radius);box-shadow:0 1px 2px 0 var(--ibiz-color-border);opacity:1}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item:hover{padding:var(--ibiz-nav-tabs-item-padding);color:var(--ibiz-nav-tabs-item-hover-color);box-shadow:0 1px 4px 0 rgba(0,0,0,.25)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item:hover .is-icon-close{color:var(--ibiz-nav-tabs-item-hover-color)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-active{padding:var(--ibiz-nav-tabs-item-padding);color:var(--ibiz-color-white);background-color:var(--ibiz-nav-tabs-item-active-color);box-shadow:none}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-active .is-icon-close{color:var(--ibiz-color-white)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-closable{padding:var(--ibiz-nav-tabs-item-padding)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-closable.hover{padding:var(--ibiz-nav-tabs-item-padding)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item .is-icon-close{position:relative;top:1px}.ibiz-nav-tabs__left .el-tabs .el-tabs__header{margin-bottom:0;border-bottom:none}.ibiz-nav-tabs__right{width:var(--ibiz-nav-tabs-right-width)}.ibiz-nav-tabs__right .el-dropdown button{height:var(--ibiz-nav-tabs-right-height)}
1
+ .ibiz-nav-tabs{--ibiz-nav-tabs-padding:var(--ibiz-spacing-base-loose);--ibiz-nav-tabs-left-width:calc(100% - 60px);--ibiz-nav-tabs-right-width:60px;--ibiz-nav-tabs-right-height:30px;--ibiz-nav-tabs-item-height:40px;--ibiz-nav-tabs-item-padding:0 var(--ibiz-spacing-base-loose);--ibiz-nav-tabs-item-margin:0 var(--ibiz-spacing-base) 0 0;--ibiz-nav-tabs-item-font-size:var(--ibiz-font-size-regular);--ibiz-nav-tabs-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-nav-tabs-item-border-radius:var(--ibiz-border-radius-medium);--ibiz-nav-tabs-item-bg-color:transparent;--ibiz-nav-tabs-item-color:var(--ibiz-color-text-0);--ibiz-nav-tabs-item-hover-color:var(--ibiz-color-primary-hover);--ibiz-nav-tabs-item-active-color:var(--ibiz-color-primary);display:flex;align-items:center;justify-content:flex-start;position:relative;padding:var(--ibiz-nav-tabs-padding)}.ibiz-nav-tabs__left{display:flex;align-items:center;width:var(--ibiz-nav-tabs-left-width)}.ibiz-nav-tabs__left--caption{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-nav-tabs__left .el-tabs{width:100%;--el-tabs-header-height:40px}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav{border:none}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item{display:flex;align-items:center;height:var(--ibiz-nav-tabs-item-height);padding:var(--ibiz-nav-tabs-item-padding);margin:var(--ibiz-nav-tabs-item-margin);overflow:hidden;font-size:var(--ibiz-nav-tabs-item-font-size);font-weight:var(--ibiz-nav-tabs-item-font-weight);color:var(--ibiz-nav-tabs-item-color);vertical-align:middle;background-color:var(--ibiz-nav-tabs-item-bg-color);border:1px solid var(--ibiz-color-border);border-radius:var(--ibiz-nav-tabs-item-border-radius);box-shadow:0 1px 2px 0 var(--ibiz-color-border);opacity:1}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item:hover{padding:var(--ibiz-nav-tabs-item-padding);color:var(--ibiz-nav-tabs-item-hover-color);box-shadow:0 1px 4px 0 rgba(0,0,0,.25)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item:hover .is-icon-close{color:var(--ibiz-nav-tabs-item-hover-color)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-active{padding:var(--ibiz-nav-tabs-item-padding);color:var(--ibiz-color-white);background-color:var(--ibiz-nav-tabs-item-active-color);box-shadow:none}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-active .is-icon-close{color:var(--ibiz-color-white)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-closable{padding:var(--ibiz-nav-tabs-item-padding)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item.is-closable.hover{padding:var(--ibiz-nav-tabs-item-padding)}.ibiz-nav-tabs__left .el-tabs .el-tabs__nav .el-tabs__item .is-icon-close{position:relative;top:1px}.ibiz-nav-tabs__left .el-tabs .el-tabs__header{margin-bottom:0;border-bottom:none}.ibiz-nav-tabs__right{width:var(--ibiz-nav-tabs-right-width)}.ibiz-nav-tabs__right .el-dropdown button{height:var(--ibiz-nav-tabs-right-height)}
@@ -88,7 +88,13 @@ const NavTabs = /* @__PURE__ */ defineComponent({
88
88
  "name": msg.key,
89
89
  "key": msg.key,
90
90
  "label": label
91
- }, null);
91
+ }, {
92
+ label: () => {
93
+ return createVNode("div", {
94
+ "class": this.ns.em("left", "caption")
95
+ }, [label]);
96
+ }
97
+ });
92
98
  })) ? _slot : {
93
99
  default: () => [_slot]
94
100
  })]), createVNode("div", {
@@ -12,6 +12,7 @@ export declare const IBizPanelIndexViewSearch: import("@ibiz-template/vue3-util"
12
12
  classArr: import("vue").ComputedRef<(string | false)[]>;
13
13
  isCollapse: import("vue").ComputedRef<any>;
14
14
  onInput: (value: string) => void;
15
+ onSearch: () => Promise<void>;
15
16
  c: import("@ibiz-template/runtime").PanelItemController<import("@ibiz/model-core").IPanelItem>;
16
17
  query: import("vue").Ref<string>;
17
18
  menuAlign: import("vue").ComputedRef<string>;
@@ -16,6 +16,7 @@ export declare const PanelIndexViewSearch: import("vue").DefineComponent<{
16
16
  classArr: import("vue").ComputedRef<(string | false)[]>;
17
17
  isCollapse: import("vue").ComputedRef<any>;
18
18
  onInput: (value: string) => void;
19
+ onSearch: () => Promise<void>;
19
20
  c: PanelItemController<import("@ibiz/model-core").IPanelItem>;
20
21
  query: import("vue").Ref<string>;
21
22
  menuAlign: import("vue").ComputedRef<string>;
@@ -1,6 +1,6 @@
1
1
  import { ref, inject, computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
- import { PanelItemController } from '@ibiz-template/runtime';
3
+ import { PanelItemController, AppFuncCommand } from '@ibiz-template/runtime';
4
4
  import { debounce } from 'lodash-es';
5
5
  import './panel-index-view-search.css';
6
6
 
@@ -45,11 +45,30 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
45
45
  result.push(...props.controller.containerClass);
46
46
  return result;
47
47
  });
48
+ const onSearch = async () => {
49
+ const id = props.modelData.id;
50
+ const menuC = c.panel.view.getController("appmenu");
51
+ if (menuC) {
52
+ const targetMenu = menuC.allAppMenuItems.find((item) => {
53
+ return item.id === id;
54
+ });
55
+ if (targetMenu) {
56
+ const tempContext = c.panel.context.clone();
57
+ const tempParam = c.panel.params;
58
+ tempContext.srfappid = targetMenu.appId || ibiz.env.appId;
59
+ await ibiz.commands.execute(AppFuncCommand.TAG, targetMenu.appFuncId, tempContext, {
60
+ ...tempParam,
61
+ query: query.value
62
+ }, {});
63
+ }
64
+ }
65
+ };
48
66
  return {
49
67
  ns,
50
68
  classArr,
51
69
  isCollapse,
52
70
  onInput,
71
+ onSearch,
53
72
  c,
54
73
  query,
55
74
  menuAlign
@@ -65,7 +84,8 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
65
84
  "model-value": this.query,
66
85
  "class": this.ns.b("search"),
67
86
  "placeholder": ibiz.i18n.t("component.indexSearch.placeholder"),
68
- "onInput": this.onInput
87
+ "onInput": this.onInput,
88
+ "onChange": this.onSearch
69
89
  }, {
70
90
  prefix: () => {
71
91
  return createVNode("ion-icon", {
@@ -0,0 +1,25 @@
1
+ import { ViewMsgPosController } from './view-msg-pos.controller';
2
+ export { ViewMsgPosController };
3
+ export declare const IBizViewMsgPos: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
4
+ modelData: {
5
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
6
+ required: true;
7
+ };
8
+ controller: {
9
+ type: typeof ViewMsgPosController;
10
+ required: true;
11
+ };
12
+ }, {
13
+ ns: import("@ibiz-template/core").Namespace;
14
+ view: import("@ibiz-template/runtime").IViewController<import("@ibiz/model-core").IAppView, import("@ibiz-template/runtime").IViewState, import("@ibiz-template/runtime").IViewEvent>;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ modelData: {
17
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
18
+ required: true;
19
+ };
20
+ controller: {
21
+ type: typeof ViewMsgPosController;
22
+ required: true;
23
+ };
24
+ }>>, {}, {}>>;
25
+ export default IBizViewMsgPos;
@@ -0,0 +1,16 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
3
+ import { ViewMsgPos } from './view-msg-pos.mjs';
4
+ import { ViewMsgPosProvider } from './view-msg-pos.provider.mjs';
5
+ export { ViewMsgPosController } from './view-msg-pos.controller.mjs';
6
+
7
+ "use strict";
8
+ const IBizViewMsgPos = withInstall(ViewMsgPos, function(v) {
9
+ v.component(ViewMsgPos.name, ViewMsgPos);
10
+ registerPanelItemProvider(
11
+ "RAWITEM_VIEWMSG_POS",
12
+ () => new ViewMsgPosProvider()
13
+ );
14
+ });
15
+
16
+ export { IBizViewMsgPos, IBizViewMsgPos as default };
@@ -0,0 +1,21 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ export declare class ViewMsgPosController extends PanelItemController<IPanelRawItem> {
4
+ /**
5
+ * 直接内容项参数
6
+ *
7
+ * @author zhanghengfeng
8
+ * @date 2024-04-08 19:04:15
9
+ * @type {IData}
10
+ */
11
+ rawItemParams: IData;
12
+ protected onInit(): Promise<void>;
13
+ /**
14
+ * 处理直接内容项参数
15
+ *
16
+ * @author zhanghengfeng
17
+ * @date 2024-04-08 19:04:59
18
+ * @protected
19
+ */
20
+ protected handleRawItemParams(): void;
21
+ }
@@ -0,0 +1,48 @@
1
+ import { PanelItemController } 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 ViewMsgPosController extends PanelItemController {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * 直接内容项参数
15
+ *
16
+ * @author zhanghengfeng
17
+ * @date 2024-04-08 19:04:15
18
+ * @type {IData}
19
+ */
20
+ __publicField(this, "rawItemParams", {});
21
+ }
22
+ async onInit() {
23
+ await super.onInit();
24
+ this.handleRawItemParams();
25
+ }
26
+ /**
27
+ * 处理直接内容项参数
28
+ *
29
+ * @author zhanghengfeng
30
+ * @date 2024-04-08 19:04:59
31
+ * @protected
32
+ */
33
+ handleRawItemParams() {
34
+ var _a;
35
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
36
+ if (Array.isArray(rawItemParams)) {
37
+ rawItemParams.forEach((item) => {
38
+ const key = item.key;
39
+ const value = item.value;
40
+ if (key && value) {
41
+ this.rawItemParams[key.toLowerCase()] = value;
42
+ }
43
+ });
44
+ }
45
+ }
46
+ }
47
+
48
+ export { ViewMsgPosController };
@@ -0,0 +1,25 @@
1
+ import { PropType } from 'vue';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ import { ViewMsgPosController } from './view-msg-pos.controller';
4
+ export declare const ViewMsgPos: import("vue").DefineComponent<{
5
+ modelData: {
6
+ type: PropType<IPanelRawItem>;
7
+ required: true;
8
+ };
9
+ controller: {
10
+ type: typeof ViewMsgPosController;
11
+ required: true;
12
+ };
13
+ }, {
14
+ ns: import("@ibiz-template/core").Namespace;
15
+ view: import("@ibiz-template/runtime").IViewController<import("@ibiz/model-core").IAppView, import("@ibiz-template/runtime").IViewState, import("@ibiz-template/runtime").IViewEvent>;
16
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
+ modelData: {
18
+ type: PropType<IPanelRawItem>;
19
+ required: true;
20
+ };
21
+ controller: {
22
+ type: typeof ViewMsgPosController;
23
+ required: true;
24
+ };
25
+ }>>, {}, {}>;