@ibiz-template/vue3-components 0.6.10 → 0.6.12

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 (35) hide show
  1. package/dist/index-225rMkM4.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-2FgdNqpT.js → xlsx-util-u4LQibbt.js} +1 -1
  5. package/es/control/drbar/drbar.controller.d.ts +1 -1
  6. package/es/control/drbar/drbar.controller.mjs +3 -2
  7. package/es/control/drbar/drbar.d.ts +0 -1
  8. package/es/control/drbar/drbar.mjs +5 -13
  9. package/es/control/drbar/index.d.ts +0 -1
  10. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +3 -0
  11. package/es/control/grid/grid/grid.mjs +18 -2
  12. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  13. package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.mjs +2 -1
  14. package/es/control/tree-grid/tree-grid.mjs +14 -2
  15. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +18 -2
  16. package/es/editor/text-box/input/input.css +1 -1
  17. package/es/util/message-util/message-util.d.ts +13 -1
  18. package/es/util/message-util/message-util.mjs +50 -0
  19. package/es/view-engine/edit-view.engine.mjs +7 -7
  20. package/es/view-engine/index.mjs +5 -0
  21. package/es/web-app/App.css +1 -1
  22. package/lib/control/drbar/drbar.cjs +4 -12
  23. package/lib/control/drbar/drbar.controller.cjs +3 -2
  24. package/lib/control/grid/grid/grid.cjs +17 -1
  25. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  26. package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.cjs +2 -1
  27. package/lib/control/tree-grid/tree-grid.cjs +14 -2
  28. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +18 -2
  29. package/lib/editor/text-box/input/input.css +1 -1
  30. package/lib/util/message-util/message-util.cjs +50 -0
  31. package/lib/view-engine/edit-view.engine.cjs +6 -6
  32. package/lib/view-engine/index.cjs +5 -0
  33. package/lib/web-app/App.css +1 -1
  34. package/package.json +7 -7
  35. package/dist/index-Udkmmoqt.js +0 -4
@@ -136,7 +136,7 @@ export declare class DRBarController extends ControlController<IDEDRBar, IDRBarS
136
136
  * @param {string} key
137
137
  * @memberof DRBarController
138
138
  */
139
- handleSelectChange(key: string, isRoutePushed?: boolean): void;
139
+ handleSelectChange(key?: string, isRoutePushed?: boolean): void;
140
140
  /**
141
141
  * 设置显示状态
142
142
  *
@@ -264,10 +264,11 @@ class DRBarController extends ControlController {
264
264
  });
265
265
  } else {
266
266
  dedrbarGroups.forEach((group) => {
267
+ var _a;
267
268
  const groupItems = dedrctrlItems.filter(
268
269
  (item) => item.dedrbarGroupId === group.id
269
270
  );
270
- if (groupItems.length > 1) {
271
+ if (groupItems.length > 1 || ((_a = this.controlParams) == null ? void 0 : _a.singleitemgroup) === "true" && groupItems.length === 1) {
271
272
  let itemCaption = group.caption;
272
273
  if (group.capLanguageRes) {
273
274
  itemCaption = ibiz.i18n.t(
@@ -296,7 +297,7 @@ class DRBarController extends ControlController {
296
297
  * @param {string} key
297
298
  * @memberof DRBarController
298
299
  */
299
- handleSelectChange(key, isRoutePushed = false) {
300
+ handleSelectChange(key = this.state.defaultItem, isRoutePushed = false) {
300
301
  var _a;
301
302
  if (this.state.selectedItem === key) {
302
303
  return;
@@ -36,7 +36,6 @@ export declare const DRBarControl: import("vue").DefineComponent<{
36
36
  ns: import("@ibiz-template/core").Namespace;
37
37
  handleSelect: (key: string) => void;
38
38
  renderMenuItems: (item: IDRBarItemsState) => VNode | undefined;
39
- defaultActive: import("vue").Ref<string>;
40
39
  opens: string[];
41
40
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
42
41
  modelData: {
@@ -1,4 +1,4 @@
1
- import { isVNode, reactive, ref, watch, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, reactive, watch, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace, getNestedRoutePath, route2routePath } from '@ibiz-template/vue3-util';
3
3
  import { useRouter, useRoute } from 'vue-router';
4
4
  import { DRBarController } from './drbar.controller.mjs';
@@ -56,7 +56,6 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
56
56
  c.handleSelectChange(key);
57
57
  };
58
58
  const route = useRoute();
59
- const defaultActive = ref("");
60
59
  let expViewRoutePath = "";
61
60
  const opens = [];
62
61
  watch(() => c.state.isCreated, (_newVal, _oldVal) => {
@@ -82,13 +81,7 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
82
81
  const {
83
82
  srfnav
84
83
  } = routePath.pathNodes[depth - 1];
85
- if (srfnav && c.state.selectedItem && c.state.selectedItem !== srfnav) {
86
- c.handleSelectChange(srfnav);
87
- defaultActive.value = srfnav;
88
- } else if (srfnav === void 0 && c.state.defaultItem && c.state.selectedItem !== c.state.defaultItem) {
89
- c.handleSelectChange(c.state.defaultItem);
90
- defaultActive.value = "";
91
- }
84
+ c.handleSelectChange(srfnav);
92
85
  }
93
86
  }
94
87
  }
@@ -142,7 +135,6 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
142
135
  ns,
143
136
  handleSelect,
144
137
  renderMenuItems,
145
- defaultActive,
146
138
  opens
147
139
  };
148
140
  },
@@ -151,16 +143,16 @@ const DRBarControl = /* @__PURE__ */ defineComponent({
151
143
  const {
152
144
  isCreated,
153
145
  drBarItems,
154
- defaultItem
146
+ selectedItem
155
147
  } = this.c.state;
156
148
  return createVNode(resolveComponent("iBizControlBase"), {
157
149
  "controller": this.c,
158
150
  "class": this.ns.b()
159
151
  }, {
160
- default: () => [isCreated && !!defaultItem && createVNode(resolveComponent("el-menu"), {
152
+ default: () => [isCreated && createVNode(resolveComponent("el-menu"), {
161
153
  "class": this.ns.e("menu"),
162
154
  "mode": this.showMode,
163
- "default-active": this.defaultActive || defaultItem,
155
+ "default-active": selectedItem,
164
156
  "onSelect": this.handleSelect,
165
157
  "default-openeds": this.opens
166
158
  }, _isSlot(_slot = drBarItems.map((item) => {
@@ -34,7 +34,6 @@ export declare const IBizDRBarControl: import("@ibiz-template/vue3-util").TypeWi
34
34
  renderMenuItems: (item: import("@ibiz-template/runtime").IDRBarItemsState) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
35
  [key: string]: any;
36
36
  }> | undefined;
37
- defaultActive: import("vue").Ref<string>;
38
37
  opens: string[];
39
38
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
40
39
  modelData: {
@@ -228,6 +228,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
228
228
  context?: IContext | undefined;
229
229
  params?: IParams | undefined;
230
230
  }) => void;
231
+ getEventArgs: () => Omit<EventBase, "eventName">;
231
232
  readonly id: string;
232
233
  state: {
233
234
  data: IData;
@@ -11320,6 +11321,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
11320
11321
  context?: IContext | undefined;
11321
11322
  params?: IParams | undefined;
11322
11323
  }) => void;
11324
+ getEventArgs: () => Omit<EventBase, "eventName">;
11323
11325
  readonly id: string;
11324
11326
  state: {
11325
11327
  data: IData;
@@ -14258,6 +14260,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
14258
14260
  context?: IContext | undefined;
14259
14261
  params?: IParams | undefined;
14260
14262
  }) => void;
14263
+ getEventArgs: () => Omit<EventBase, "eventName">;
14261
14264
  readonly id: string;
14262
14265
  state: {
14263
14266
  isLoaded: boolean;
@@ -1,6 +1,6 @@
1
1
  import { resolveComponent, mergeProps, h, createVNode, createTextVNode, onUnmounted, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace, useUIStore } from '@ibiz-template/vue3-util';
3
- import { GridController } from '@ibiz-template/runtime';
3
+ import { ScriptFactory, GridController } from '@ibiz-template/runtime';
4
4
  import { useITableEvent, useGridHeaderStyle, useAppGridBase } from './grid-control.util.mjs';
5
5
  import './grid.css';
6
6
  import { useRowEditPopover } from '../row-edit-popover/use-row-edit-popover.mjs';
@@ -8,6 +8,18 @@ import '../../../util/index.mjs';
8
8
  import { usePagination } from '../../../util/pagination/use-pagination.mjs';
9
9
 
10
10
  "use strict";
11
+ function renderAttrs(model, params) {
12
+ var _a;
13
+ const attrs = {};
14
+ (_a = model.controlAttributes) == null ? void 0 : _a.forEach((item) => {
15
+ if (item.attrName && item.attrValue) {
16
+ attrs[item.attrName] = ScriptFactory.execSingleLine(item.attrValue, {
17
+ ...params
18
+ });
19
+ }
20
+ });
21
+ return attrs;
22
+ }
11
23
  function renderColumn(c, model, renderColumns, index) {
12
24
  var _a;
13
25
  const {
@@ -41,7 +53,11 @@ function renderColumn(c, model, renderColumns, index) {
41
53
  return h(comp, {
42
54
  controller: columnC,
43
55
  row: rowState,
44
- key: elRow.tempsrfkey + columnName
56
+ key: elRow.tempsrfkey + columnName,
57
+ ...renderAttrs(model, {
58
+ ...c.getEventArgs(),
59
+ data: rowState.data
60
+ })
45
61
  });
46
62
  }
47
63
  return null;
@@ -1 +1 @@
1
- .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-spacing-tight);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-primary);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-primary-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){opacity:0}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{opacity:1}
1
+ .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-spacing-tight);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-primary);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-primary-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script{max-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding));line-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding))}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script *{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){opacity:0}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{opacity:1}
@@ -90,7 +90,8 @@ const GridFieldEditColumn = /* @__PURE__ */ defineComponent({
90
90
  onChange: this.rowDataChange,
91
91
  onInfoTextChange: this.onInfoTextChange,
92
92
  title: this.tooltip,
93
- ...this.editorProps
93
+ ...this.editorProps,
94
+ ...this.$attrs
94
95
  })]
95
96
  });
96
97
  }
@@ -95,8 +95,20 @@ const TreeGridControl = /* @__PURE__ */ defineComponent({
95
95
  };
96
96
  const treeGirdData = computed(() => {
97
97
  const treeGirdItems = c.state.rows.map((row) => getTreeGridDataItem(row.data));
98
- const noParentData = treeGirdItems.filter((item) => !item[c.treeGridParentField]);
99
- return noParentData;
98
+ const rootNodes = [];
99
+ const ids = [];
100
+ treeGirdItems.forEach((item) => {
101
+ const id = item[c.treeGridValueField];
102
+ if (id) {
103
+ ids.push(id);
104
+ }
105
+ });
106
+ treeGirdItems.forEach((item) => {
107
+ if (!ids.includes(item[c.treeGridParentField])) {
108
+ rootNodes.push(item);
109
+ }
110
+ });
111
+ return rootNodes;
100
112
  });
101
113
  const renderNoData = () => {
102
114
  var _a;
@@ -182,6 +182,7 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
182
182
  }
183
183
  multipleTempText.value = null;
184
184
  }
185
+ keySet.value = [];
185
186
  }
186
187
  return;
187
188
  }
@@ -232,6 +233,20 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
232
233
  }
233
234
  multipleTempText.value = tempText;
234
235
  }
236
+ if (!singleSelect.value) {
237
+ if (event.length === 0) {
238
+ items.value = [];
239
+ keySet.value = [];
240
+ } else if (Array.isArray(event)) {
241
+ items.value = event.map((item) => {
242
+ return {
243
+ srfkey: item[c.keyName] || item.srfkey,
244
+ srfmajortext: item[c.textName] || item.srfmajortext
245
+ };
246
+ });
247
+ keySet.value = items.value.map((item) => item.srfkey);
248
+ }
249
+ }
235
250
  };
236
251
  const openLinkView = async (e) => {
237
252
  e.stopPropagation();
@@ -330,6 +345,9 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
330
345
  emit("change", multipleTempText.value);
331
346
  }
332
347
  }
348
+ if (e === false) {
349
+ onBlur({});
350
+ }
333
351
  };
334
352
  const handleDropDownKeyDown = (e) => {
335
353
  if (e.code === "Escape") {
@@ -396,7 +414,6 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
396
414
  "onFocus": (e) => {
397
415
  this.onFocus(e);
398
416
  },
399
- "onBlur": this.onBlur,
400
417
  "onKeyup": this.handleKeyUp
401
418
  }, {
402
419
  suffix: () => {
@@ -420,7 +437,6 @@ const IBizPickerSelectView = /* @__PURE__ */ defineComponent({
420
437
  "onFocus": (e) => {
421
438
  this.onFocus(e);
422
439
  },
423
- "onBlur": this.onBlur,
424
440
  "onKeyup": this.handleKeyUp,
425
441
  "disabled": this.disabled || this.readonly
426
442
  }, _isSlot(_slot = this.items.map((item, index) => {
@@ -1 +1 @@
1
- .ibiz-input{width:100%;height:100%;font-size:var(--ibiz-form-item-font-size);font-weight:var(--ibiz-form-item-regular);--ibiz-input-min-height:var(--ibiz-editor-default-line-height)}.ibiz-input__ai-chat{position:absolute;right:10px;bottom:10px;width:36px;height:36px;padding:8px;font-size:18px;color:var(--ibiz-color-primary-text);cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:15px}.ibiz-input__ai-chat:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-input .el-input .el-input__inner{height:100%}.ibiz-input .el-input .el-input__inner::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-input .el-input .el-input__inner::placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-input .el-textarea .el-textarea__inner{height:100%}.ibiz-input .el-textarea .el-textarea__inner::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color);word-break:break-word;white-space:pre-wrap}.ibiz-input .el-textarea .el-textarea__inner::placeholder{color:var(--ibiz-form-item-placeholder-color);word-break:break-word;white-space:pre-wrap}.ibiz-input .ibiz-input-input{height:100%}.ibiz-input .ibiz-input-input .el-input__wrapper{width:100%;min-height:var(--ibiz-input-min-height)}.ibiz-input--readonly{height:auto;line-height:var(--ibiz-input-min-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-input .el-input__suffix .ibiz-input__unit{font-style:normal}.ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default.is-textarea{padding:var(--ibiz-form-item-hover-edit-padding)}.ibiz-form-item .ibiz-input.is-show-default.is-textarea .ibiz-input-form-default-content{display:block}.ibiz-form-item .ibiz-input.is-show-default.is-textarea .ibiz-input-input{display:none}.ibiz-form-item .ibiz-input.is-show-default:hover .ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default:hover .ibiz-input-input{display:inline-flex}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-form-default-content{display:flex;align-items:center;width:100%;padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color);word-wrap:break-word;white-space:pre-wrap}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-input{display:none;font-family:Arial,sans-serif}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-input.el-textarea .el-textarea__inner{word-wrap:break-word;white-space:pre-wrap}.ibiz-form-item .ibiz-input.is-show-default.is-editable .ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default.is-editable .ibiz-input-input{display:inline-flex}
1
+ .ibiz-input{width:100%;height:100%;font-size:var(--ibiz-form-item-font-size);font-weight:var(--ibiz-form-item-regular);--ibiz-input-min-height:var(--ibiz-editor-default-line-height)}.ibiz-input__ai-chat{position:absolute;right:10px;bottom:10px;width:36px;height:36px;padding:8px;font-size:18px;color:var(--ibiz-color-primary-text);cursor:pointer;background-color:var(--ibiz-color-primary);border-radius:15px}.ibiz-input__ai-chat:hover{color:var(--ibiz-color-primary-hover-text);background-color:var(--ibiz-color-primary-hover)}.ibiz-input .el-input .el-input__inner{height:100%}.ibiz-input .el-input .el-input__inner::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-input .el-input .el-input__inner::placeholder{color:var(--ibiz-form-item-placeholder-color)}.ibiz-input .el-textarea .el-textarea__inner{height:100%}.ibiz-input .el-textarea .el-textarea__inner::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color);word-break:break-word;white-space:pre-wrap}.ibiz-input .el-textarea .el-textarea__inner::placeholder{color:var(--ibiz-form-item-placeholder-color);word-break:break-word;white-space:pre-wrap}.ibiz-input .ibiz-input-input{height:100%}.ibiz-input .ibiz-input-input .el-input__wrapper{width:100%;min-height:var(--ibiz-input-min-height)}.ibiz-input--readonly{height:auto;line-height:var(--ibiz-input-min-height);color:var(--ibiz-form-item-readonly-color)}.ibiz-input .el-input__suffix .ibiz-input__unit{font-style:normal}.ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default.is-textarea{padding:var(--ibiz-form-item-hover-edit-padding);overflow:hidden}.ibiz-form-item .ibiz-input.is-show-default.is-textarea .ibiz-input-form-default-content{display:block}.ibiz-form-item .ibiz-input.is-show-default.is-textarea .ibiz-input-input{display:none}.ibiz-form-item .ibiz-input.is-show-default:hover .ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default:hover .ibiz-input-input{display:inline-flex}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-form-default-content{display:flex;align-items:center;width:100%;padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color);word-wrap:break-word;white-space:pre-wrap}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-input{display:none;font-family:Arial,sans-serif}.ibiz-form-item .ibiz-input.is-show-default .ibiz-input-input.el-textarea .el-textarea__inner{word-wrap:break-word;white-space:pre-wrap}.ibiz-form-item .ibiz-input.is-show-default.is-editable .ibiz-input-form-default-content{display:none}.ibiz-form-item .ibiz-input.is-show-default.is-editable .ibiz-input-input{display:inline-flex}
@@ -1,4 +1,5 @@
1
- import { IMessageUtil } from '@ibiz-template/runtime';
1
+ import { IMessageUtil, IMessageParams } from '@ibiz-template/runtime';
2
+ import { MessageOptions } from 'element-plus';
2
3
  /**
3
4
  * 消息通知
4
5
  *
@@ -9,8 +10,19 @@ import { IMessageUtil } from '@ibiz-template/runtime';
9
10
  * @implements {IMessageUtil}
10
11
  */
11
12
  export declare class MessageUtil implements IMessageUtil {
13
+ protected ns: import("@ibiz-template/core").Namespace;
12
14
  info(msg: string, duration?: number | undefined, closable?: boolean | undefined): void;
13
15
  success(msg: string, duration?: number | undefined, closable?: boolean | undefined): void;
14
16
  warning(msg: string, duration?: number | undefined, closable?: boolean | undefined): void;
15
17
  error(msg: string, duration?: number | undefined, closable?: boolean | undefined): void;
18
+ /**
19
+ * 格式化参数
20
+ * @author lxm
21
+ * @date 2024-03-21 02:22:27
22
+ * @protected
23
+ * @param {IMessageParams} params
24
+ * @return {*} {MessageOptions}
25
+ */
26
+ protected formatParams(params: IMessageParams): MessageOptions;
27
+ notice(params: IMessageParams): void;
16
28
  }
@@ -1,7 +1,18 @@
1
+ import { useNamespace } from '@ibiz-template/vue3-util';
1
2
  import { ElMessage } from 'element-plus';
3
+ import { mergeRight, isNil } from 'ramda';
2
4
 
3
5
  "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
4
12
  class MessageUtil {
13
+ constructor() {
14
+ __publicField(this, "ns", useNamespace("message"));
15
+ }
5
16
  info(msg, duration, closable) {
6
17
  ElMessage.info({
7
18
  message: msg,
@@ -30,6 +41,45 @@ class MessageUtil {
30
41
  showClose: closable
31
42
  });
32
43
  }
44
+ /**
45
+ * 格式化参数
46
+ * @author lxm
47
+ * @date 2024-03-21 02:22:27
48
+ * @protected
49
+ * @param {IMessageParams} params
50
+ * @return {*} {MessageOptions}
51
+ */
52
+ formatParams(params) {
53
+ const paramsWithDefault = mergeRight(
54
+ {
55
+ type: "info"
56
+ },
57
+ params
58
+ );
59
+ const messageOpts = {};
60
+ Object.keys(paramsWithDefault).forEach((key) => {
61
+ const value = paramsWithDefault[key];
62
+ switch (key) {
63
+ case "duration":
64
+ if (!isNil(value)) {
65
+ messageOpts.duration = value * 1e3;
66
+ }
67
+ break;
68
+ case "styleType":
69
+ if (!isNil(value)) {
70
+ messageOpts.customClass = this.ns.m(value);
71
+ }
72
+ break;
73
+ default:
74
+ messageOpts[key] = value;
75
+ break;
76
+ }
77
+ });
78
+ return messageOpts;
79
+ }
80
+ notice(params) {
81
+ ElMessage(this.formatParams(params));
82
+ }
33
83
  }
34
84
 
35
85
  export { MessageUtil };
@@ -1,6 +1,5 @@
1
1
  import { RuntimeError } from '@ibiz-template/core';
2
- import { ViewEngineBase, getControl, getControlsByView, calcDeCodeNameById, SysUIActionTag, ViewCallTag, ControlVO, getAppViewRef, OpenAppViewCommand } from '@ibiz-template/runtime';
3
- import { isNil } from 'ramda';
2
+ import { ViewEngineBase, getControl, getControlsByView, calcDeCodeNameById, SysUIActionTag, ViewCallTag, ControlVO, getAppViewRef, OpenAppViewCommand, ViewMode } from '@ibiz-template/runtime';
4
3
 
5
4
  "use strict";
6
5
  var __defProp = Object.defineProperty;
@@ -271,7 +270,7 @@ class EditViewEngine extends ViewEngineBase {
271
270
  * @return {*} {void}
272
271
  */
273
272
  initMarkOpenData() {
274
- if (isNil(this.view.modal.routeDepth) || !this.view.model.markOpenDataMode) {
273
+ if (![ViewMode.ROUTE, ViewMode.ROUTE_MODAL].includes(this.view.modal.mode) || !this.view.model.markOpenDataMode) {
275
274
  return;
276
275
  }
277
276
  const modes = this.view.model.markOpenDataMode.split(";");
@@ -295,10 +294,11 @@ class EditViewEngine extends ViewEngineBase {
295
294
  default:
296
295
  break;
297
296
  }
298
- ibiz.notification.info({
299
- position: "bottom-right",
300
- title: "\u901A\u77E5",
301
- desc: "".concat(modes.includes("DISPLAYOPPERSON") ? data.username : "\u6709\u4EBA", " ").concat(actionMsg, " ").concat(this.view.state.caption, "-").concat(dataInfo)
297
+ ibiz.message.notice({
298
+ message: "".concat(modes.includes("DISPLAYOPPERSON") ? data.username : "\u6709\u4EBA", " ").concat(actionMsg, " ").concat(this.view.state.caption, "-").concat(dataInfo),
299
+ showClose: true,
300
+ duration: 3,
301
+ styleType: "alert"
302
302
  });
303
303
  if (hasOpenConfirm === false && data.action === "UPDATE" && modes.includes("NOTICERELOAD")) {
304
304
  hasOpenConfirm = true;
@@ -18,6 +18,7 @@ import { DataViewExpViewEngine } from './data-view-exp-view.engine.mjs';
18
18
  import { TreeExpViewEngine } from './tree-exp-view.engine.mjs';
19
19
  import { WizardViewEngine } from './wizard-view-engine.mjs';
20
20
  import { ChartViewEngine } from './chart-view.engine.mjs';
21
+ import { WFDynaEditViewEngine } from './wf-dyna-edit-view.engine.mjs';
21
22
  import { WFDynaEditView3Engine } from './wf-dyna-edit-view3.engine.mjs';
22
23
  import { WFDynaActionViewEngine } from './wf-dyna-action-view.engine.mjs';
23
24
  import { WFDynaStartViewEngine } from './wf-dyna-start-view.engine.mjs';
@@ -143,6 +144,10 @@ const IBizViewEngine = {
143
144
  "VIEW_WizardView",
144
145
  (c) => new WizardViewEngine(c)
145
146
  );
147
+ ibiz.engine.register(
148
+ "VIEW_WFDynaEditView",
149
+ (c) => new WFDynaEditViewEngine(c)
150
+ );
146
151
  ibiz.engine.register(
147
152
  "VIEW_DEWFDYNAEDITVIEW3",
148
153
  (c) => new WFDynaEditView3Engine(c)
@@ -1 +1 @@
1
- #app{width:100vw;height:100vh;background-color:var(--ibiz-color-bg-0)}body,html{padding:0;margin:0;border:0}
1
+ #app{width:100vw;height:100vh;background-color:var(--ibiz-color-bg-0)}body,html{padding:0;margin:0;border:0}.ibiz-message--alert.el-message{--el-message-padding:8px 16px}.ibiz-message--alert.el-message .el-message__content,.ibiz-message--alert.el-message .el-message__icon{color:inherit}.ibiz-message--alert.el-message .el-message__closeBtn{color:#a8abb2}.ibiz-message--alert .el-message__content{line-height:24px}.ibiz-message--alert.el-message--info{color:#909399;background-color:#f4f4f5}.ibiz-message--alert.el-message--success{color:#67c23a;background-color:#f0f9eb}.ibiz-message--alert.el-message--warning{color:#e6a23c;background-color:#fdf6ec}.ibiz-message--alert.el-message--error{color:#f56c6c;background-color:#fef0f0}
@@ -58,7 +58,6 @@ const DRBarControl = /* @__PURE__ */ vue.defineComponent({
58
58
  c.handleSelectChange(key);
59
59
  };
60
60
  const route = vueRouter.useRoute();
61
- const defaultActive = vue.ref("");
62
61
  let expViewRoutePath = "";
63
62
  const opens = [];
64
63
  vue.watch(() => c.state.isCreated, (_newVal, _oldVal) => {
@@ -84,13 +83,7 @@ const DRBarControl = /* @__PURE__ */ vue.defineComponent({
84
83
  const {
85
84
  srfnav
86
85
  } = routePath.pathNodes[depth - 1];
87
- if (srfnav && c.state.selectedItem && c.state.selectedItem !== srfnav) {
88
- c.handleSelectChange(srfnav);
89
- defaultActive.value = srfnav;
90
- } else if (srfnav === void 0 && c.state.defaultItem && c.state.selectedItem !== c.state.defaultItem) {
91
- c.handleSelectChange(c.state.defaultItem);
92
- defaultActive.value = "";
93
- }
86
+ c.handleSelectChange(srfnav);
94
87
  }
95
88
  }
96
89
  }
@@ -144,7 +137,6 @@ const DRBarControl = /* @__PURE__ */ vue.defineComponent({
144
137
  ns,
145
138
  handleSelect,
146
139
  renderMenuItems,
147
- defaultActive,
148
140
  opens
149
141
  };
150
142
  },
@@ -153,16 +145,16 @@ const DRBarControl = /* @__PURE__ */ vue.defineComponent({
153
145
  const {
154
146
  isCreated,
155
147
  drBarItems,
156
- defaultItem
148
+ selectedItem
157
149
  } = this.c.state;
158
150
  return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
159
151
  "controller": this.c,
160
152
  "class": this.ns.b()
161
153
  }, {
162
- default: () => [isCreated && !!defaultItem && vue.createVNode(vue.resolveComponent("el-menu"), {
154
+ default: () => [isCreated && vue.createVNode(vue.resolveComponent("el-menu"), {
163
155
  "class": this.ns.e("menu"),
164
156
  "mode": this.showMode,
165
- "default-active": this.defaultActive || defaultItem,
157
+ "default-active": selectedItem,
166
158
  "onSelect": this.handleSelect,
167
159
  "default-openeds": this.opens
168
160
  }, _isSlot(_slot = drBarItems.map((item) => {
@@ -266,10 +266,11 @@ class DRBarController extends runtime.ControlController {
266
266
  });
267
267
  } else {
268
268
  dedrbarGroups.forEach((group) => {
269
+ var _a;
269
270
  const groupItems = dedrctrlItems.filter(
270
271
  (item) => item.dedrbarGroupId === group.id
271
272
  );
272
- if (groupItems.length > 1) {
273
+ if (groupItems.length > 1 || ((_a = this.controlParams) == null ? void 0 : _a.singleitemgroup) === "true" && groupItems.length === 1) {
273
274
  let itemCaption = group.caption;
274
275
  if (group.capLanguageRes) {
275
276
  itemCaption = ibiz.i18n.t(
@@ -298,7 +299,7 @@ class DRBarController extends runtime.ControlController {
298
299
  * @param {string} key
299
300
  * @memberof DRBarController
300
301
  */
301
- handleSelectChange(key, isRoutePushed = false) {
302
+ handleSelectChange(key = this.state.defaultItem, isRoutePushed = false) {
302
303
  var _a;
303
304
  if (this.state.selectedItem === key) {
304
305
  return;
@@ -10,6 +10,18 @@ require('../../../util/index.cjs');
10
10
  var usePagination = require('../../../util/pagination/use-pagination.cjs');
11
11
 
12
12
  "use strict";
13
+ function renderAttrs(model, params) {
14
+ var _a;
15
+ const attrs = {};
16
+ (_a = model.controlAttributes) == null ? void 0 : _a.forEach((item) => {
17
+ if (item.attrName && item.attrValue) {
18
+ attrs[item.attrName] = runtime.ScriptFactory.execSingleLine(item.attrValue, {
19
+ ...params
20
+ });
21
+ }
22
+ });
23
+ return attrs;
24
+ }
13
25
  function renderColumn(c, model, renderColumns, index) {
14
26
  var _a;
15
27
  const {
@@ -43,7 +55,11 @@ function renderColumn(c, model, renderColumns, index) {
43
55
  return vue.h(comp, {
44
56
  controller: columnC,
45
57
  row: rowState,
46
- key: elRow.tempsrfkey + columnName
58
+ key: elRow.tempsrfkey + columnName,
59
+ ...renderAttrs(model, {
60
+ ...c.getEventArgs(),
61
+ data: rowState.data
62
+ })
47
63
  });
48
64
  }
49
65
  return null;
@@ -1 +1 @@
1
- .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-spacing-tight);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-primary);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-primary-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){opacity:0}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{opacity:1}
1
+ .ibiz-grid-field-column{--ibiz-grid-field-column-cell-padding:var(--ibiz-spacing-tight);--ibiz-grid-field-column-clickable-text-color:var(--ibiz-color-primary);--ibiz-grid-field-column-clickable-hover-text-color:var(--ibiz-color-primary-hover);--ibiz-grid-field-column-color:var(--ibiz-color-text-2);display:inline-flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);width:100%;height:100%;padding:var(--ibiz-grid-field-column-cell-padding)}.ibiz-grid-field-column__text{font-size:var(--ibiz-font-size-regular);font-weight:var(--ibiz-font-weight-regular);color:var(--ibiz-grid-field-column-color)}.ibiz-grid-field-column--clickable{cursor:pointer}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text{color:var(--ibiz-grid-field-column-clickable-text-color)}.ibiz-grid-field-column--clickable .ibiz-grid-field-column__text:hover{color:var(--ibiz-grid-field-column-clickable-hover-text-color)}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-text-container{min-width:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column-toolbar-container{flex-shrink:0}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script{max-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding));line-height:calc(var(--ibiz-control-grid-content-row-height) - 2 * var(--ibiz-grid-field-column-cell-padding))}.ibiz-grid-field-column--ellipsis .ibiz-grid-field-column__script *{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--ellipsis span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-grid-field-column--wrap{word-break:break-word;white-space:pre-wrap}.ibiz-grid-field-column.is-has-action{justify-content:space-between}.ibiz-grid-field-column-text-container{display:inline-flex;flex-grow:1;align-items:center;justify-content:var(--ibiz-grid-column-justify-content);height:100%}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__item:not(.ibiz-action-toolbar__item--level-250){opacity:0}.ibiz-grid-field-column-toolbar-container .ibiz-action-toolbar__separator{opacity:0}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__item{opacity:1}.el-table .el-table__body-wrapper tr:hover .ibiz-action-toolbar__separator{opacity:1}.el-table .el-table__body-wrapper tr .ibiz-action-toolbar__item.is-expand{opacity:1}
@@ -94,7 +94,8 @@ const GridFieldEditColumn = /* @__PURE__ */ vue.defineComponent({
94
94
  onChange: this.rowDataChange,
95
95
  onInfoTextChange: this.onInfoTextChange,
96
96
  title: this.tooltip,
97
- ...this.editorProps
97
+ ...this.editorProps,
98
+ ...this.$attrs
98
99
  })]
99
100
  });
100
101
  }
@@ -97,8 +97,20 @@ const TreeGridControl = /* @__PURE__ */ vue.defineComponent({
97
97
  };
98
98
  const treeGirdData = vue.computed(() => {
99
99
  const treeGirdItems = c.state.rows.map((row) => getTreeGridDataItem(row.data));
100
- const noParentData = treeGirdItems.filter((item) => !item[c.treeGridParentField]);
101
- return noParentData;
100
+ const rootNodes = [];
101
+ const ids = [];
102
+ treeGirdItems.forEach((item) => {
103
+ const id = item[c.treeGridValueField];
104
+ if (id) {
105
+ ids.push(id);
106
+ }
107
+ });
108
+ treeGirdItems.forEach((item) => {
109
+ if (!ids.includes(item[c.treeGridParentField])) {
110
+ rootNodes.push(item);
111
+ }
112
+ });
113
+ return rootNodes;
102
114
  });
103
115
  const renderNoData = () => {
104
116
  var _a;
@@ -184,6 +184,7 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
184
184
  }
185
185
  multipleTempText.value = null;
186
186
  }
187
+ keySet.value = [];
187
188
  }
188
189
  return;
189
190
  }
@@ -234,6 +235,20 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
234
235
  }
235
236
  multipleTempText.value = tempText;
236
237
  }
238
+ if (!singleSelect.value) {
239
+ if (event.length === 0) {
240
+ items.value = [];
241
+ keySet.value = [];
242
+ } else if (Array.isArray(event)) {
243
+ items.value = event.map((item) => {
244
+ return {
245
+ srfkey: item[c.keyName] || item.srfkey,
246
+ srfmajortext: item[c.textName] || item.srfmajortext
247
+ };
248
+ });
249
+ keySet.value = items.value.map((item) => item.srfkey);
250
+ }
251
+ }
237
252
  };
238
253
  const openLinkView = async (e) => {
239
254
  e.stopPropagation();
@@ -332,6 +347,9 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
332
347
  emit("change", multipleTempText.value);
333
348
  }
334
349
  }
350
+ if (e === false) {
351
+ onBlur({});
352
+ }
335
353
  };
336
354
  const handleDropDownKeyDown = (e) => {
337
355
  if (e.code === "Escape") {
@@ -398,7 +416,6 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
398
416
  "onFocus": (e) => {
399
417
  this.onFocus(e);
400
418
  },
401
- "onBlur": this.onBlur,
402
419
  "onKeyup": this.handleKeyUp
403
420
  }, {
404
421
  suffix: () => {
@@ -422,7 +439,6 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
422
439
  "onFocus": (e) => {
423
440
  this.onFocus(e);
424
441
  },
425
- "onBlur": this.onBlur,
426
442
  "onKeyup": this.handleKeyUp,
427
443
  "disabled": this.disabled || this.readonly
428
444
  }, _isSlot(_slot = this.items.map((item, index) => {