@ibiz-template/vue3-components 0.7.19-alpha.0 → 0.7.19

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 (39) hide show
  1. package/dist/index-oK641mi0.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-OC1lZ9lp.js → xlsx-util-rzoYhEen.js} +1 -1
  5. package/es/common/no-data/no-data.css +1 -1
  6. package/es/common/no-data/no-data.d.ts +9 -0
  7. package/es/common/no-data/no-data.mjs +5 -1
  8. package/es/common/view-message/view-message.css +1 -1
  9. package/es/control/app-menu/app-menu.mjs +2 -2
  10. package/es/control/drbar/drbar.controller.mjs +3 -2
  11. package/es/control/drbar/drbar.mjs +3 -2
  12. package/es/control/drtab/drtab.controller.mjs +9 -2
  13. package/es/control/drtab/drtab.mjs +2 -1
  14. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +3 -2
  15. package/es/control/gantt/gantt.mjs +3 -3
  16. package/es/control/grid/grid/grid.mjs +6 -9
  17. package/es/control/search-bar/search-bar.mjs +2 -1
  18. package/es/control/tree/tree.mjs +4 -1
  19. package/es/locale/en/index.d.ts +1 -1
  20. package/es/locale/zh-CN/index.d.ts +1 -1
  21. package/es/panel-component/user-action/user-action.mjs +7 -3
  22. package/es/view-engine/mpickup-view-engine.mjs +4 -0
  23. package/lib/common/no-data/no-data.cjs +5 -1
  24. package/lib/common/no-data/no-data.css +1 -1
  25. package/lib/common/view-message/view-message.css +1 -1
  26. package/lib/control/app-menu/app-menu.cjs +2 -2
  27. package/lib/control/drbar/drbar.cjs +3 -2
  28. package/lib/control/drbar/drbar.controller.cjs +3 -2
  29. package/lib/control/drtab/drtab.cjs +2 -1
  30. package/lib/control/drtab/drtab.controller.cjs +9 -2
  31. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +3 -2
  32. package/lib/control/gantt/gantt.cjs +3 -3
  33. package/lib/control/grid/grid/grid.cjs +6 -9
  34. package/lib/control/search-bar/search-bar.cjs +1 -0
  35. package/lib/control/tree/tree.cjs +4 -1
  36. package/lib/panel-component/user-action/user-action.cjs +7 -3
  37. package/lib/view-engine/mpickup-view-engine.cjs +4 -0
  38. package/package.json +7 -7
  39. package/dist/index-DSuPqXOB.js +0 -4
@@ -1 +1 @@
1
- .ibiz-no-data{width:100%;height:100%}.ibiz-no-data .el-empty__description p{color:var(--ibiz-color-text-3)}.ibiz-no-data .el-empty__image{width:100%;max-width:var(--el-empty-image-width)}
1
+ .ibiz-no-data{width:100%;height:100%}.ibiz-no-data .el-empty__description p{color:var(--ibiz-color-text-3)}.ibiz-no-data .el-empty__image{width:100%;max-width:var(--el-empty-image-width)}.ibiz-no-data.hideImage{padding:0}.ibiz-no-data.hideImage .el-table__empty-text{line-height:30px}.ibiz-no-data.hideImage .el-empty__image{display:none}
@@ -10,6 +10,10 @@ export declare const IBizNoData: import("vue").DefineComponent<{
10
10
  type: PropType<ILanguageRes>;
11
11
  default: undefined;
12
12
  };
13
+ enableShowImage: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
13
17
  }, {
14
18
  ns: import("@ibiz-template/core").Namespace;
15
19
  label: import("vue").Ref<string>;
@@ -22,7 +26,12 @@ export declare const IBizNoData: import("vue").DefineComponent<{
22
26
  type: PropType<ILanguageRes>;
23
27
  default: undefined;
24
28
  };
29
+ enableShowImage: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
25
33
  }>>, {
26
34
  text: string;
27
35
  emptyTextLanguageRes: ILanguageRes;
36
+ enableShowImage: boolean;
28
37
  }, {}>;
@@ -13,6 +13,10 @@ const IBizNoData = /* @__PURE__ */ defineComponent({
13
13
  emptyTextLanguageRes: {
14
14
  type: Object,
15
15
  default: void 0
16
+ },
17
+ enableShowImage: {
18
+ type: Boolean,
19
+ default: false
16
20
  }
17
21
  },
18
22
  setup(props) {
@@ -28,7 +32,7 @@ const IBizNoData = /* @__PURE__ */ defineComponent({
28
32
  },
29
33
  render() {
30
34
  return createVNode(resolveComponent("el-empty"), {
31
- "class": this.ns.b(),
35
+ "class": [this.ns.b(), this.enableShowImage ? "hideImage" : ""],
32
36
  "description": this.label
33
37
  }, {
34
38
  default: () => {
@@ -1 +1 @@
1
- .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);--ibiz-view-message-carousel-alert-height:64px;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none)}.ibiz-view-message--hidden{display:none}.ibiz-view-message--alert .el-message-box__status.el-icon{display:none}.ibiz-view-message--alert .el-message-box__status+.el-message-box__message{padding-left:var(--ibiz-spacing-none)}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert{height:var(--ibiz-view-message-carousel-alert-height)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert--single .el-alert__description{margin:0}.ibiz-view-message-carousel-alert__title{overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
1
+ .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);--ibiz-view-message-carousel-alert-height:64px;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-view-message--hidden{display:none}.ibiz-view-message--alert .el-message-box__status.el-icon{display:none}.ibiz-view-message--alert .el-message-box__status+.el-message-box__message{padding-left:var(--ibiz-spacing-none)}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert{height:var(--ibiz-view-message-carousel-alert-height)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert--single .el-alert__description{margin:0}.ibiz-view-message-carousel-alert__title{overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
@@ -234,8 +234,6 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
234
234
  };
235
235
  c.evt.on("onCreated", async () => {
236
236
  saveConfigs.value = c.saveConfigs;
237
- });
238
- c.evt.on("onMounted", async () => {
239
237
  const allItems = c.getAllItems();
240
238
  const defaultActiveMenuItem = allItems.find((item) => {
241
239
  return item.openDefault && !item.hidden;
@@ -255,6 +253,8 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
255
253
  defaultOpens.value.push(item.id);
256
254
  });
257
255
  }
256
+ });
257
+ c.evt.on("onMounted", async () => {
258
258
  const counterRefId = c.model.appCounterRefId;
259
259
  if (counterRefId) {
260
260
  counter = c.getCounter(counterRefId);
@@ -331,7 +331,7 @@ class DRBarController extends ControlController {
331
331
  if (item.capLanguageRes) {
332
332
  itemCaption = ibiz.i18n.t(item.capLanguageRes.lanResTag, item.caption);
333
333
  }
334
- const { enableMode, testAppDELogicId, testScriptCode } = item;
334
+ const { enableMode, testAppDELogicId, testScriptCode, counterMode } = item;
335
335
  return {
336
336
  tag: item.id,
337
337
  caption: itemCaption,
@@ -343,7 +343,8 @@ class DRBarController extends ControlController {
343
343
  dataAccessAction: item.dataAccessAction || void 0,
344
344
  enableMode,
345
345
  testAppDELogicId,
346
- testScriptCode
346
+ testScriptCode,
347
+ counterMode
347
348
  };
348
349
  };
349
350
  if (dedrbarGroups && dedrctrlItems) {
@@ -129,9 +129,10 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
129
129
  default: () => [createVNode(resolveComponent("iBizIcon"), {
130
130
  "class": ns.e("icon"),
131
131
  "icon": item.sysImage
132
- }, null), createVNode("span", null, [item.caption]), item.counterId && counterData[item.counterId] && createVNode(resolveComponent("iBizBadge"), {
132
+ }, null), createVNode("span", null, [item.caption]), item.counterId && counterData[item.counterId] != null && createVNode(resolveComponent("iBizBadge"), {
133
133
  "class": ns.e("counter"),
134
- "value": counterData[item.counterId]
134
+ "value": counterData[item.counterId],
135
+ "counterMode": item.counterMode
135
136
  }, null)]
136
137
  });
137
138
  };
@@ -276,7 +276,13 @@ class DRTabController extends ControlController {
276
276
  if (item.capLanguageRes) {
277
277
  itemCaption = ibiz.i18n.t(item.capLanguageRes.lanResTag, item.caption);
278
278
  }
279
- const { enableMode, dataAccessAction, testAppDELogicId, testScriptCode } = item;
279
+ const {
280
+ enableMode,
281
+ dataAccessAction,
282
+ testAppDELogicId,
283
+ testScriptCode,
284
+ counterMode
285
+ } = item;
280
286
  drTabPages.push({
281
287
  tag: item.id,
282
288
  caption: itemCaption,
@@ -287,7 +293,8 @@ class DRTabController extends ControlController {
287
293
  dataAccessAction,
288
294
  enableMode,
289
295
  testAppDELogicId,
290
- testScriptCode
296
+ testScriptCode,
297
+ counterMode
291
298
  });
292
299
  });
293
300
  this.state.drTabPages = drTabPages;
@@ -121,7 +121,8 @@ const DRTabControl = /* @__PURE__ */ defineComponent({
121
121
  "class": this.ns.be("label", "text")
122
122
  }, [tab.caption]), !isNil(counterNum) && createVNode(resolveComponent("iBizBadge"), {
123
123
  "class": this.ns.e("counter"),
124
- "value": counterNum
124
+ "value": counterNum,
125
+ "counterMode": tab.counterMode
125
126
  }, null)]);
126
127
  }
127
128
  });
@@ -97,10 +97,11 @@ const FormTabPanel = /* @__PURE__ */ defineComponent({
97
97
  default: () => slot,
98
98
  label: () => {
99
99
  let _slot;
100
+ const value = c.model.counterId ? this.counterData.value[c.model.counterId] : void 0;
100
101
  return c.model.counterId ? createVNode(resolveComponent("el-badge"), {
101
102
  "class": this.ns.e("badge"),
102
- "value": this.counterData.value[c.model.counterId],
103
- "hidden": !this.counterData.value[c.model.counterId] || this.counterData.value[c.model.counterId] === 0
103
+ "value": value,
104
+ "hidden": !value && value !== 0 || c.model.counterMode === 1 && value <= 0
104
105
  }, _isSlot(_slot = renderItemText(c)) ? _slot : {
105
106
  default: () => [_slot]
106
107
  }) : renderItemText(c);
@@ -363,9 +363,9 @@ const GanttControl = /* @__PURE__ */ defineComponent({
363
363
  const renderSlider = () => {
364
364
  return createVNode(resolveComponent("x-gantt-slider"), {
365
365
  "allow-link": false,
366
- "move": true,
367
- "resize-left": true,
368
- "resize-right": true
366
+ "move": c.state.sliderDraggable,
367
+ "resize-left": c.state.sliderDraggable,
368
+ "resize-right": c.state.sliderDraggable
369
369
  }, {
370
370
  content: ({
371
371
  row
@@ -185,7 +185,8 @@ const GridControl = /* @__PURE__ */ defineComponent({
185
185
  }
186
186
  return createVNode(resolveComponent("iBizNoData"), {
187
187
  "text": c.model.emptyText,
188
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
188
+ "emptyTextLanguageRes": c.model.emptyTextLanguageRes,
189
+ "enableShowImage": c.state.hideNoDataImage
189
190
  }, null);
190
191
  }
191
192
  return createVNode("div", null, null);
@@ -298,12 +299,8 @@ const GridControl = /* @__PURE__ */ defineComponent({
298
299
  return;
299
300
  }
300
301
  const state = this.c.state;
301
- const {
302
- hideHeader,
303
- enablePagingBar
304
- } = this.c.model;
305
302
  return createVNode(resolveComponent("iBizControlBase"), {
306
- "class": [this.ns.is("show-header", !hideHeader), this.ns.is("enable-page", enablePagingBar), this.ns.is("enable-group", this.c.model.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
303
+ "class": [this.ns.is("show-header", !this.c.state.hideHeader), this.ns.is("enable-page", this.c.state.enablePagingBar), this.ns.is("enable-group", this.c.model.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
307
304
  "controller": this.c,
308
305
  "style": this.headerCssVars
309
306
  }, {
@@ -312,7 +309,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
312
309
  "class": this.ns.e("table"),
313
310
  "default-sort": this.defaultSort,
314
311
  "border": true,
315
- "show-header": !hideHeader,
312
+ "show-header": !this.c.state.hideHeader,
316
313
  "show-summary": this.c.enableAgg,
317
314
  "summary-method": this.summaryMethod,
318
315
  "highlight-current-row": state.singleSelect,
@@ -339,7 +336,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
339
336
  append: () => {
340
337
  return this.renderPopover();
341
338
  }
342
- }), enablePagingBar && createVNode(resolveComponent("iBizPagination"), {
339
+ }), this.c.state.enablePagingBar && createVNode(resolveComponent("iBizPagination"), {
343
340
  "total": state.total,
344
341
  "curPage": state.curPage,
345
342
  "size": state.size,
@@ -347,7 +344,7 @@ const GridControl = /* @__PURE__ */ defineComponent({
347
344
  "onChange": this.onPageChange,
348
345
  "onPageSizeChange": this.onPageSizeChange,
349
346
  "onPageRefresh": this.onPageRefresh
350
- }, null), this.c.model.enableCustomized && !hideHeader && createVNode("div", {
347
+ }, null), this.c.model.enableCustomized && !this.c.state.hideHeader && createVNode("div", {
351
348
  "class": this.ns.b("setting-box")
352
349
  }, [createVNode(resolveComponent("iBizGridSetting"), {
353
350
  "columnStates": state.columnStates,
@@ -1,5 +1,5 @@
1
1
  import { computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
- import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
2
+ import { useControlController, useLocalCacheKey, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './search-bar.css';
4
4
  import { SearchBarController } from '@ibiz-template/runtime';
5
5
 
@@ -26,6 +26,7 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
26
26
  setup() {
27
27
  var _a;
28
28
  const c = useControlController((...args) => new SearchBarController(...args));
29
+ c.setStorageKeyFn(useLocalCacheKey(c.context, "SEARCH_BAR_SELECTED_GROUP", c.view.modal.routeDepth));
29
30
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
30
31
  let isSearch = false;
31
32
  const onSearch = () => {
@@ -209,13 +209,16 @@ const TreeControl = /* @__PURE__ */ defineComponent({
209
209
  c.setSelection(checkedNodes);
210
210
  };
211
211
  let forbidClick = false;
212
+ const readonly = computed(() => {
213
+ return !!(c.context.srfreadonly === true || c.context.srfreadonly === "true");
214
+ });
212
215
  const onNodeClick = (nodeData, evt) => {
213
216
  var _a, _b;
214
217
  evt.stopPropagation();
215
218
  if (forbidClick) {
216
219
  return;
217
220
  }
218
- if (((_a = treeRef.value) == null ? void 0 : _a.getCurrentKey()) === nodeData._id) {
221
+ if (((_a = treeRef.value) == null ? void 0 : _a.getCurrentKey()) === nodeData._id && !readonly.value) {
219
222
  editCurrentNodeText();
220
223
  }
221
224
  if (!c.state.singleSelect) {
@@ -180,7 +180,7 @@ declare const _default: {
180
180
  searchTerms: string;
181
181
  saveSearch: string;
182
182
  };
183
- gantt: {
183
+ md: {
184
184
  noNode: string;
185
185
  rowData: string;
186
186
  simpleMode: string;
@@ -180,7 +180,7 @@ declare const _default: {
180
180
  searchTerms: string;
181
181
  saveSearch: string;
182
182
  };
183
- gantt: {
183
+ md: {
184
184
  noNode: string;
185
185
  rowData: string;
186
186
  simpleMode: string;
@@ -38,6 +38,10 @@ const UserAction = /* @__PURE__ */ defineComponent({
38
38
  }
39
39
  }
40
40
  const onClick = async (event) => {
41
+ const e = {
42
+ ...event
43
+ };
44
+ e.target = event.currentTarget;
41
45
  const id = props.modelData.id;
42
46
  const menuC = c.panel.view.getController("appmenu");
43
47
  if (menuC) {
@@ -55,7 +59,7 @@ const UserAction = /* @__PURE__ */ defineComponent({
55
59
  const tempParam = c.panel.params;
56
60
  tempContext.srfappid = targetMenu.appId || ibiz.env.appId;
57
61
  await ibiz.commands.execute(AppFuncCommand.TAG, targetMenu.appFuncId, tempContext, tempParam, {
58
- event
62
+ event: e
59
63
  });
60
64
  }
61
65
  }
@@ -70,11 +74,11 @@ const UserAction = /* @__PURE__ */ defineComponent({
70
74
  render() {
71
75
  return createVNode("div", {
72
76
  "class": this.ns.b(),
73
- "onClick": (event) => this.onClick(event),
74
77
  "title": this.modelData.caption
75
78
  }, [createVNode(resolveComponent("i-biz-icon"), {
76
79
  "class": [this.ns.e("image")],
77
- "icon": this.sysImage
80
+ "icon": this.sysImage,
81
+ "onClick": (event) => this.onClick(event)
78
82
  }, null)]);
79
83
  }
80
84
  });
@@ -33,6 +33,10 @@ class MPickupViewEngine extends PickupViewEngine {
33
33
  }
34
34
  const { childNames } = this.view;
35
35
  childNames.push("simplelist");
36
+ if (this.view.params.selecteddata) {
37
+ this.selectData = JSON.parse(this.view.params.selecteddata);
38
+ delete this.view.params.selecteddata;
39
+ }
36
40
  if (this.view.params.selectedData) {
37
41
  this.selectData = JSON.parse(this.view.params.selectedData);
38
42
  delete this.view.params.selectedData;
@@ -15,6 +15,10 @@ const IBizNoData = /* @__PURE__ */ vue.defineComponent({
15
15
  emptyTextLanguageRes: {
16
16
  type: Object,
17
17
  default: void 0
18
+ },
19
+ enableShowImage: {
20
+ type: Boolean,
21
+ default: false
18
22
  }
19
23
  },
20
24
  setup(props) {
@@ -30,7 +34,7 @@ const IBizNoData = /* @__PURE__ */ vue.defineComponent({
30
34
  },
31
35
  render() {
32
36
  return vue.createVNode(vue.resolveComponent("el-empty"), {
33
- "class": this.ns.b(),
37
+ "class": [this.ns.b(), this.enableShowImage ? "hideImage" : ""],
34
38
  "description": this.label
35
39
  }, {
36
40
  default: () => {
@@ -1 +1 @@
1
- .ibiz-no-data{width:100%;height:100%}.ibiz-no-data .el-empty__description p{color:var(--ibiz-color-text-3)}.ibiz-no-data .el-empty__image{width:100%;max-width:var(--el-empty-image-width)}
1
+ .ibiz-no-data{width:100%;height:100%}.ibiz-no-data .el-empty__description p{color:var(--ibiz-color-text-3)}.ibiz-no-data .el-empty__image{width:100%;max-width:var(--el-empty-image-width)}.ibiz-no-data.hideImage{padding:0}.ibiz-no-data.hideImage .el-table__empty-text{line-height:30px}.ibiz-no-data.hideImage .el-empty__image{display:none}
@@ -1 +1 @@
1
- .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);--ibiz-view-message-carousel-alert-height:64px;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none)}.ibiz-view-message--hidden{display:none}.ibiz-view-message--alert .el-message-box__status.el-icon{display:none}.ibiz-view-message--alert .el-message-box__status+.el-message-box__message{padding-left:var(--ibiz-spacing-none)}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert{height:var(--ibiz-view-message-carousel-alert-height)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert--single .el-alert__description{margin:0}.ibiz-view-message-carousel-alert__title{overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
1
+ .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);--ibiz-view-message-carousel-alert-height:64px;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base)}.ibiz-view-message--hidden{display:none}.ibiz-view-message--alert .el-message-box__status.el-icon{display:none}.ibiz-view-message--alert .el-message-box__status+.el-message-box__message{padding-left:var(--ibiz-spacing-none)}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert{height:var(--ibiz-view-message-carousel-alert-height)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert--single .el-alert__description{margin:0}.ibiz-view-message-carousel-alert__title{overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
@@ -236,8 +236,6 @@ const AppMenuControl = /* @__PURE__ */ vue.defineComponent({
236
236
  };
237
237
  c.evt.on("onCreated", async () => {
238
238
  saveConfigs.value = c.saveConfigs;
239
- });
240
- c.evt.on("onMounted", async () => {
241
239
  const allItems = c.getAllItems();
242
240
  const defaultActiveMenuItem = allItems.find((item) => {
243
241
  return item.openDefault && !item.hidden;
@@ -257,6 +255,8 @@ const AppMenuControl = /* @__PURE__ */ vue.defineComponent({
257
255
  defaultOpens.value.push(item.id);
258
256
  });
259
257
  }
258
+ });
259
+ c.evt.on("onMounted", async () => {
260
260
  const counterRefId = c.model.appCounterRefId;
261
261
  if (counterRefId) {
262
262
  counter = c.getCounter(counterRefId);
@@ -131,9 +131,10 @@ const DRBarControl = /* @__PURE__ */ vue.defineComponent({
131
131
  default: () => [vue.createVNode(vue.resolveComponent("iBizIcon"), {
132
132
  "class": ns.e("icon"),
133
133
  "icon": item.sysImage
134
- }, null), vue.createVNode("span", null, [item.caption]), item.counterId && counterData[item.counterId] && vue.createVNode(vue.resolveComponent("iBizBadge"), {
134
+ }, null), vue.createVNode("span", null, [item.caption]), item.counterId && counterData[item.counterId] != null && vue.createVNode(vue.resolveComponent("iBizBadge"), {
135
135
  "class": ns.e("counter"),
136
- "value": counterData[item.counterId]
136
+ "value": counterData[item.counterId],
137
+ "counterMode": item.counterMode
137
138
  }, null)]
138
139
  });
139
140
  };
@@ -333,7 +333,7 @@ class DRBarController extends runtime.ControlController {
333
333
  if (item.capLanguageRes) {
334
334
  itemCaption = ibiz.i18n.t(item.capLanguageRes.lanResTag, item.caption);
335
335
  }
336
- const { enableMode, testAppDELogicId, testScriptCode } = item;
336
+ const { enableMode, testAppDELogicId, testScriptCode, counterMode } = item;
337
337
  return {
338
338
  tag: item.id,
339
339
  caption: itemCaption,
@@ -345,7 +345,8 @@ class DRBarController extends runtime.ControlController {
345
345
  dataAccessAction: item.dataAccessAction || void 0,
346
346
  enableMode,
347
347
  testAppDELogicId,
348
- testScriptCode
348
+ testScriptCode,
349
+ counterMode
349
350
  };
350
351
  };
351
352
  if (dedrbarGroups && dedrctrlItems) {
@@ -123,7 +123,8 @@ const DRTabControl = /* @__PURE__ */ vue.defineComponent({
123
123
  "class": this.ns.be("label", "text")
124
124
  }, [tab.caption]), !ramda.isNil(counterNum) && vue.createVNode(vue.resolveComponent("iBizBadge"), {
125
125
  "class": this.ns.e("counter"),
126
- "value": counterNum
126
+ "value": counterNum,
127
+ "counterMode": tab.counterMode
127
128
  }, null)]);
128
129
  }
129
130
  });
@@ -278,7 +278,13 @@ class DRTabController extends runtime.ControlController {
278
278
  if (item.capLanguageRes) {
279
279
  itemCaption = ibiz.i18n.t(item.capLanguageRes.lanResTag, item.caption);
280
280
  }
281
- const { enableMode, dataAccessAction, testAppDELogicId, testScriptCode } = item;
281
+ const {
282
+ enableMode,
283
+ dataAccessAction,
284
+ testAppDELogicId,
285
+ testScriptCode,
286
+ counterMode
287
+ } = item;
282
288
  drTabPages.push({
283
289
  tag: item.id,
284
290
  caption: itemCaption,
@@ -289,7 +295,8 @@ class DRTabController extends runtime.ControlController {
289
295
  dataAccessAction,
290
296
  enableMode,
291
297
  testAppDELogicId,
292
- testScriptCode
298
+ testScriptCode,
299
+ counterMode
293
300
  });
294
301
  });
295
302
  this.state.drTabPages = drTabPages;
@@ -101,10 +101,11 @@ const FormTabPanel = /* @__PURE__ */ vue.defineComponent({
101
101
  default: () => slot,
102
102
  label: () => {
103
103
  let _slot;
104
+ const value = c.model.counterId ? this.counterData.value[c.model.counterId] : void 0;
104
105
  return c.model.counterId ? vue.createVNode(vue.resolveComponent("el-badge"), {
105
106
  "class": this.ns.e("badge"),
106
- "value": this.counterData.value[c.model.counterId],
107
- "hidden": !this.counterData.value[c.model.counterId] || this.counterData.value[c.model.counterId] === 0
107
+ "value": value,
108
+ "hidden": !value && value !== 0 || c.model.counterMode === 1 && value <= 0
108
109
  }, _isSlot(_slot = renderItemText(c)) ? _slot : {
109
110
  default: () => [_slot]
110
111
  }) : renderItemText(c);
@@ -365,9 +365,9 @@ const GanttControl = /* @__PURE__ */ vue.defineComponent({
365
365
  const renderSlider = () => {
366
366
  return vue.createVNode(vue.resolveComponent("x-gantt-slider"), {
367
367
  "allow-link": false,
368
- "move": true,
369
- "resize-left": true,
370
- "resize-right": true
368
+ "move": c.state.sliderDraggable,
369
+ "resize-left": c.state.sliderDraggable,
370
+ "resize-right": c.state.sliderDraggable
371
371
  }, {
372
372
  content: ({
373
373
  row
@@ -187,7 +187,8 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
187
187
  }
188
188
  return vue.createVNode(vue.resolveComponent("iBizNoData"), {
189
189
  "text": c.model.emptyText,
190
- "emptyTextLanguageRes": c.model.emptyTextLanguageRes
190
+ "emptyTextLanguageRes": c.model.emptyTextLanguageRes,
191
+ "enableShowImage": c.state.hideNoDataImage
191
192
  }, null);
192
193
  }
193
194
  return vue.createVNode("div", null, null);
@@ -300,12 +301,8 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
300
301
  return;
301
302
  }
302
303
  const state = this.c.state;
303
- const {
304
- hideHeader,
305
- enablePagingBar
306
- } = this.c.model;
307
304
  return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
308
- "class": [this.ns.is("show-header", !hideHeader), this.ns.is("enable-page", enablePagingBar), this.ns.is("enable-group", this.c.model.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
305
+ "class": [this.ns.is("show-header", !this.c.state.hideHeader), this.ns.is("enable-page", this.c.state.enablePagingBar), this.ns.is("enable-group", this.c.model.enableGroup), this.ns.is("single-select", state.singleSelect), this.ns.is("empty", state.items.length === 0), this.ns.is("enable-customized", this.c.model.enableCustomized)],
309
306
  "controller": this.c,
310
307
  "style": this.headerCssVars
311
308
  }, {
@@ -314,7 +311,7 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
314
311
  "class": this.ns.e("table"),
315
312
  "default-sort": this.defaultSort,
316
313
  "border": true,
317
- "show-header": !hideHeader,
314
+ "show-header": !this.c.state.hideHeader,
318
315
  "show-summary": this.c.enableAgg,
319
316
  "summary-method": this.summaryMethod,
320
317
  "highlight-current-row": state.singleSelect,
@@ -341,7 +338,7 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
341
338
  append: () => {
342
339
  return this.renderPopover();
343
340
  }
344
- }), enablePagingBar && vue.createVNode(vue.resolveComponent("iBizPagination"), {
341
+ }), this.c.state.enablePagingBar && vue.createVNode(vue.resolveComponent("iBizPagination"), {
345
342
  "total": state.total,
346
343
  "curPage": state.curPage,
347
344
  "size": state.size,
@@ -349,7 +346,7 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
349
346
  "onChange": this.onPageChange,
350
347
  "onPageSizeChange": this.onPageSizeChange,
351
348
  "onPageRefresh": this.onPageRefresh
352
- }, null), this.c.model.enableCustomized && !hideHeader && vue.createVNode("div", {
349
+ }, null), this.c.model.enableCustomized && !this.c.state.hideHeader && vue.createVNode("div", {
353
350
  "class": this.ns.b("setting-box")
354
351
  }, [vue.createVNode(vue.resolveComponent("iBizGridSetting"), {
355
352
  "columnStates": state.columnStates,
@@ -28,6 +28,7 @@ const SearchBarControl = /* @__PURE__ */ vue.defineComponent({
28
28
  setup() {
29
29
  var _a;
30
30
  const c = vue3Util.useControlController((...args) => new runtime.SearchBarController(...args));
31
+ c.setStorageKeyFn(vue3Util.useLocalCacheKey(c.context, "SEARCH_BAR_SELECTED_GROUP", c.view.modal.routeDepth));
31
32
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
32
33
  let isSearch = false;
33
34
  const onSearch = () => {
@@ -211,13 +211,16 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
211
211
  c.setSelection(checkedNodes);
212
212
  };
213
213
  let forbidClick = false;
214
+ const readonly = vue.computed(() => {
215
+ return !!(c.context.srfreadonly === true || c.context.srfreadonly === "true");
216
+ });
214
217
  const onNodeClick = (nodeData, evt) => {
215
218
  var _a, _b;
216
219
  evt.stopPropagation();
217
220
  if (forbidClick) {
218
221
  return;
219
222
  }
220
- if (((_a = treeRef.value) == null ? void 0 : _a.getCurrentKey()) === nodeData._id) {
223
+ if (((_a = treeRef.value) == null ? void 0 : _a.getCurrentKey()) === nodeData._id && !readonly.value) {
221
224
  editCurrentNodeText();
222
225
  }
223
226
  if (!c.state.singleSelect) {
@@ -40,6 +40,10 @@ const UserAction = /* @__PURE__ */ vue.defineComponent({
40
40
  }
41
41
  }
42
42
  const onClick = async (event) => {
43
+ const e = {
44
+ ...event
45
+ };
46
+ e.target = event.currentTarget;
43
47
  const id = props.modelData.id;
44
48
  const menuC = c.panel.view.getController("appmenu");
45
49
  if (menuC) {
@@ -57,7 +61,7 @@ const UserAction = /* @__PURE__ */ vue.defineComponent({
57
61
  const tempParam = c.panel.params;
58
62
  tempContext.srfappid = targetMenu.appId || ibiz.env.appId;
59
63
  await ibiz.commands.execute(runtime.AppFuncCommand.TAG, targetMenu.appFuncId, tempContext, tempParam, {
60
- event
64
+ event: e
61
65
  });
62
66
  }
63
67
  }
@@ -72,11 +76,11 @@ const UserAction = /* @__PURE__ */ vue.defineComponent({
72
76
  render() {
73
77
  return vue.createVNode("div", {
74
78
  "class": this.ns.b(),
75
- "onClick": (event) => this.onClick(event),
76
79
  "title": this.modelData.caption
77
80
  }, [vue.createVNode(vue.resolveComponent("i-biz-icon"), {
78
81
  "class": [this.ns.e("image")],
79
- "icon": this.sysImage
82
+ "icon": this.sysImage,
83
+ "onClick": (event) => this.onClick(event)
80
84
  }, null)]);
81
85
  }
82
86
  });
@@ -35,6 +35,10 @@ class MPickupViewEngine extends pickupView_engine.PickupViewEngine {
35
35
  }
36
36
  const { childNames } = this.view;
37
37
  childNames.push("simplelist");
38
+ if (this.view.params.selecteddata) {
39
+ this.selectData = JSON.parse(this.view.params.selecteddata);
40
+ delete this.view.params.selecteddata;
41
+ }
38
42
  if (this.view.params.selectedData) {
39
43
  this.selectData = JSON.parse(this.view.params.selectedData);
40
44
  delete this.view.params.selectedData;