@ibiz-template/vue3-components 0.7.26 → 0.7.27

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 (94) hide show
  1. package/dist/{index-RwYoggQd.js → index-0TO7mjm5.js} +1 -1
  2. package/dist/index-Dq21zXhV.js +4 -0
  3. package/dist/{index-s7g1-ymW.js → index-g6o3vQXo.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-Rf5FMxyR.js → xlsx-util-qdXxbg2A.js} +1 -1
  7. package/es/common/action-toolbar/action-toolbar.mjs +1 -1
  8. package/es/common/custom-theme/custom-theme.mjs +1 -1
  9. package/es/common/data-import2/data-import2.mjs +4 -1
  10. package/es/control/context-menu/context-menu.mjs +2 -2
  11. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +1 -1
  12. package/es/control/drtab/drtab-control.util.mjs +7 -11
  13. package/es/control/form/form-detail/form-button/form-button.mjs +1 -1
  14. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  15. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.d.ts +28 -0
  16. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +52 -7
  17. package/es/control/form/form-detail/form-item/form-item.mjs +4 -0
  18. package/es/control/grid/grid/grid-control.util.mjs +15 -11
  19. package/es/control/search-bar/search-bar.mjs +2 -2
  20. package/es/control/toolbar/export-excel/export-excel.mjs +2 -2
  21. package/es/control/toolbar/short-cut-button/short-cut-button.mjs +4 -1
  22. package/es/control/toolbar/toolbar.mjs +2 -2
  23. package/es/control/tree/index.d.ts +9 -0
  24. package/es/control/tree/tree.d.ts +9 -0
  25. package/es/control/tree/tree.mjs +5 -1
  26. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  27. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +2 -2
  28. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.css +1 -1
  29. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +4 -0
  30. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.mjs +48 -3
  31. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +2 -2
  32. package/es/editor/data-picker/picker-editor.controller.d.ts +2 -2
  33. package/es/editor/dropdown-list/dropdown-list-editor.controller.d.ts +6 -0
  34. package/es/editor/dropdown-list/dropdown-list-editor.controller.mjs +10 -1
  35. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +1 -1
  36. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +17 -4
  37. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -1
  38. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +2 -0
  39. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.mjs +33 -12
  40. package/es/editor/span/span/span.mjs +3 -1
  41. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +12 -10
  42. package/es/editor/text-box/input/input.mjs +3 -0
  43. package/es/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.mjs +1 -1
  44. package/es/locale/en/index.d.ts +3 -0
  45. package/es/locale/en/index.mjs +3 -0
  46. package/es/locale/zh-CN/index.d.ts +3 -0
  47. package/es/locale/zh-CN/index.mjs +3 -0
  48. package/es/panel-component/nav-tabs/nav-tabs.controller.mjs +3 -2
  49. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  50. package/es/view-engine/edit-view.engine.mjs +3 -2
  51. package/es/view-engine/opt-view.engine.mjs +2 -1
  52. package/es/view-engine/pickup-tree-view.engine.mjs +1 -0
  53. package/es/web-app/attach-environment-config.mjs +2 -1
  54. package/lib/common/action-toolbar/action-toolbar.cjs +1 -1
  55. package/lib/common/custom-theme/custom-theme.cjs +1 -1
  56. package/lib/common/data-import2/data-import2.cjs +4 -1
  57. package/lib/control/context-menu/context-menu.cjs +2 -2
  58. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +1 -1
  59. package/lib/control/drtab/drtab-control.util.cjs +7 -11
  60. package/lib/control/form/form-detail/form-button/form-button.cjs +1 -1
  61. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +51 -6
  62. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  63. package/lib/control/form/form-detail/form-item/form-item.cjs +4 -0
  64. package/lib/control/grid/grid/grid-control.util.cjs +15 -11
  65. package/lib/control/search-bar/search-bar.cjs +2 -2
  66. package/lib/control/toolbar/export-excel/export-excel.cjs +2 -2
  67. package/lib/control/toolbar/short-cut-button/short-cut-button.cjs +4 -1
  68. package/lib/control/toolbar/toolbar.cjs +2 -2
  69. package/lib/control/tree/tree.cjs +5 -1
  70. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  71. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +2 -2
  72. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.cjs +48 -3
  73. package/lib/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.css +1 -1
  74. package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +2 -2
  75. package/lib/editor/dropdown-list/dropdown-list-editor.controller.cjs +10 -1
  76. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +17 -4
  77. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.cjs +31 -10
  78. package/lib/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.css +1 -1
  79. package/lib/editor/span/span/span.cjs +2 -0
  80. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +12 -10
  81. package/lib/editor/text-box/input/input.cjs +3 -0
  82. package/lib/editor/user/ibiz-searchcond-edit/ibiz-searchcond-edit.cjs +1 -1
  83. package/lib/locale/en/index.cjs +3 -0
  84. package/lib/locale/zh-CN/index.cjs +3 -0
  85. package/lib/panel-component/nav-tabs/nav-tabs.controller.cjs +3 -2
  86. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  87. package/lib/view-engine/edit-view.engine.cjs +3 -2
  88. package/lib/view-engine/opt-view.engine.cjs +2 -1
  89. package/lib/view-engine/pickup-tree-view.engine.cjs +1 -0
  90. package/lib/web-app/attach-environment-config.cjs +2 -1
  91. package/package.json +7 -7
  92. package/dist/index-28jZm-aB.js +0 -4
  93. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.26_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.27_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  94. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.26_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.27_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -21,5 +21,11 @@ export declare class DropDownListEditorController extends CodeListEditorControll
21
21
  * @Date: 2024-03-12 14:33:14
22
22
  */
23
23
  forceSelection: boolean;
24
+ /**
25
+ * 预置项空白项名称
26
+ *
27
+ * @memberof DropDownListEditorController
28
+ */
29
+ blankItemName: string;
24
30
  protected onInit(): Promise<void>;
25
31
  }
@@ -24,9 +24,15 @@ class DropDownListEditorController extends CodeListEditorController {
24
24
  * @Date: 2024-03-12 14:33:14
25
25
  */
26
26
  __publicField(this, "forceSelection", true);
27
+ /**
28
+ * 预置项空白项名称
29
+ *
30
+ * @memberof DropDownListEditorController
31
+ */
32
+ __publicField(this, "blankItemName", "");
27
33
  }
28
34
  async onInit() {
29
- var _a;
35
+ var _a, _b;
30
36
  super.onInit();
31
37
  if (this.model.editorType === "MDROPDOWNLIST") {
32
38
  this.multiple = true;
@@ -34,6 +40,9 @@ class DropDownListEditorController extends CodeListEditorController {
34
40
  if ((_a = this.editorParams) == null ? void 0 : _a.forceSelection) {
35
41
  this.forceSelection = this.toBoolean(this.editorParams.forceSelection);
36
42
  }
43
+ if ((_b = this.editorParams) == null ? void 0 : _b.blankItemName) {
44
+ this.blankItemName = this.editorParams.blankItemName;
45
+ }
37
46
  }
38
47
  }
39
48
 
@@ -1,6 +1,6 @@
1
1
  import { Ref } from 'vue';
2
- import './ibiz-dropdown.scss';
3
2
  import { DropDownListEditorController } from '../dropdown-list-editor.controller';
3
+ import './ibiz-dropdown.scss';
4
4
  export declare const IBizDropdown: import("vue").DefineComponent<{
5
5
  value: (StringConstructor | NumberConstructor)[];
6
6
  controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<DropDownListEditorController>, undefined, undefined>;
@@ -44,10 +44,11 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
44
44
  }
45
45
  const list = [];
46
46
  nodes.forEach((codeItem) => {
47
+ var _a;
47
48
  codeListItems.value.push(codeItem);
48
49
  const tempObj = {
49
50
  label: codeItem.text,
50
- value: codeItem.value.toString(),
51
+ value: (_a = codeItem.value) == null ? void 0 : _a.toString(),
51
52
  color: codeItem == null ? void 0 : codeItem.color,
52
53
  textCls: codeItem == null ? void 0 : codeItem.textCls,
53
54
  sysImage: codeItem.sysImage,
@@ -72,7 +73,14 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
72
73
  isLoading.value = true;
73
74
  const codeList = await c.loadCodeList(props.data);
74
75
  isLoadedCodeList.value = true;
75
- items.value = codeList;
76
+ if (c.blankItemName) {
77
+ items.value = [{
78
+ value: void 0,
79
+ text: c.blankItemName
80
+ }, ...codeList];
81
+ } else {
82
+ items.value = codeList;
83
+ }
76
84
  for (let i = 0; i < items.value.length; i++) {
77
85
  const _item = items.value[i];
78
86
  if (_item.children) {
@@ -122,7 +130,11 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
122
130
  }
123
131
  return (_c = props.value) == null ? void 0 : _c.toString();
124
132
  },
125
- set(select) {
133
+ set(_select) {
134
+ let select = _select;
135
+ if (c.blankItemName && !_select) {
136
+ select = void 0;
137
+ }
126
138
  if (Array.isArray(select)) {
127
139
  let selectArr = null;
128
140
  if (select.length === 0) {
@@ -302,9 +314,10 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
302
314
  }, this.$attrs), {
303
315
  default: () => {
304
316
  return this.items.map((item) => {
317
+ var _a;
305
318
  return createVNode(resolveComponent("el-option"), {
306
319
  "key": item.value,
307
- "value": item.value.toString(),
320
+ "value": (_a = item.value) == null ? void 0 : _a.toString(),
308
321
  "label": item.text,
309
322
  "disabled": item.disableSelect === true,
310
323
  "style": item.bkcolor ? this.ns.cssVarBlock({
@@ -1 +1 @@
1
- .ibiz-emoji-picker{display:flex;align-items:center;width:100%;height:100%}.ibiz-emoji-picker__button-content{display:flex;align-items:center;min-height:var(--ibiz-height-control-default)}.ibiz-emoji-picker__button-content--icon{margin-right:var(--ibiz-spacing-extra-tight);fill:var(--ibiz-color-primary-text)}.ibiz-emoji-picker__button.is-clear{position:relative;padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-0);background-color:transparent}.ibiz-emoji-picker__button.is-clear:hover .ibiz-emoji-picker__button-content--icon{display:block}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon{position:absolute;top:0;right:0;display:none;margin-right:0;font-size:var(--ibiz-font-size-regular);fill:var(--ibiz-color-text-3)}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon:hover{fill:var(--ibiz-color-primary)}.ibiz-emoji-picker--readonly{display:flex;align-items:center;font-size:var(--ibiz-font-size-header-3);line-height:32px}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button{pointer-events:none}.ibiz-emoji-picker--readonly .is-clear .ibiz-emoji-picker__button-content--icon{display:none}.ibiz-emoji-picker-popper.el-popper.el-popper{width:auto;padding:0}
1
+ .ibiz-emoji-picker{display:flex;align-items:center;width:100%;height:100%}.ibiz-emoji-picker__button-content{display:flex;align-items:center;min-height:var(--ibiz-height-control-default)}.ibiz-emoji-picker__button-content--icon{margin-right:var(--ibiz-spacing-extra-tight);fill:var(--ibiz-color-primary-text)}.ibiz-emoji-picker__button.is-clear{position:relative;padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);color:var(--ibiz-color-text-0);background-color:transparent}.ibiz-emoji-picker__button.is-clear:hover .ibiz-emoji-picker__button-content--icon{display:block}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon{position:absolute;top:0;right:0;display:none;margin-right:0;font-size:var(--ibiz-font-size-regular);fill:var(--ibiz-color-text-3)}.ibiz-emoji-picker__button.is-clear .ibiz-emoji-picker__button-content--icon:hover{fill:var(--ibiz-color-primary)}.ibiz-emoji-picker--readonly{display:flex;align-items:center;line-height:32px}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button{padding:0;color:var(--ibiz-form-item-readonly-color);pointer-events:none;cursor:default}.ibiz-emoji-picker--readonly .ibiz-emoji-picker__button .ibiz-emoji-picker__button-content{display:none}.ibiz-emoji-picker--readonly .is-clear.ibiz-emoji-picker__button .ibiz-emoji-picker__button-content{display:flex}.ibiz-emoji-picker--readonly .is-clear.ibiz-emoji-picker__button .ibiz-emoji-picker__button-content--icon{display:none}.ibiz-emoji-picker-popper.el-popper.el-popper{width:auto;padding:0}.ibiz-form-item .ibiz-emoji-picker.is-show-default{padding:var(--ibiz-form-item-hover-edit-padding)}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker-form-default-content,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker-form-default-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button{padding:8px 15px;pointer-events:auto;background-color:var(--ibiz-color-primary)}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button.is-clear,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button.is-clear{padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);background-color:transparent}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-active .ibiz-emoji-picker__button-content,.ibiz-form-item .ibiz-emoji-picker.is-show-default:hover .ibiz-emoji-picker__button-content{display:flex}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker__button{padding:var(--ibiz-spacing-none);pointer-events:none;background:0 0}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker-form-default-content{display:flex;align-items:center;width:100%;font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker-form-default-content.is-clear{padding:var(--ibiz-spacing-none);padding-right:var(--ibiz-spacing-base-tight);background-color:transparent}.ibiz-form-item .ibiz-emoji-picker.is-show-default .ibiz-emoji-picker__button-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-editable .ibiz-emoji-picker-form-default-content{display:none}.ibiz-form-item .ibiz-emoji-picker.is-show-default.is-editable .ibiz-emoji-picker__button-content{display:flex}
@@ -27,6 +27,8 @@ export declare const IBizEmojiPicker: import("vue").DefineComponent<{
27
27
  c: DropDownListEditorController;
28
28
  emoji: import("vue").Ref<string>;
29
29
  visible: import("vue").Ref<boolean>;
30
+ emojiRef: import("vue").Ref<any>;
31
+ showFormDefaultContent: import("vue").ComputedRef<boolean>;
30
32
  onSelect: (val: IData) => void;
31
33
  onAddEmoji: (e: MouseEvent) => void;
32
34
  onClearEmoji: (e: MouseEvent) => void;
@@ -1,12 +1,9 @@
1
- import { isVNode, ref, watch, createVNode, resolveComponent, defineComponent } from 'vue';
1
+ import { ref, computed, watch, createVNode, resolveComponent, defineComponent } from 'vue';
2
2
  import { getDropdownProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
- import { strToBase64, base64ToStr } from '@ibiz-template/core';
3
+ import { strToBase64, isBase64, base64ToStr } from '@ibiz-template/core';
4
4
  import './ibiz-emoji-picker.css';
5
5
 
6
6
  "use strict";
7
- function _isSlot(s) {
8
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
- }
10
7
  const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
11
8
  name: "IBizEmojiPicker",
12
9
  props: getDropdownProps(),
@@ -16,8 +13,15 @@ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
16
13
  }) {
17
14
  const ns = useNamespace("emoji-picker");
18
15
  const c = props.controller;
16
+ const emojiRef = ref();
19
17
  const emoji = ref("");
20
18
  const visible = ref(false);
19
+ const showFormDefaultContent = computed(() => {
20
+ if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
21
+ return true;
22
+ }
23
+ return false;
24
+ });
21
25
  const onAddEmoji = (e) => {
22
26
  e.stopPropagation();
23
27
  e.preventDefault();
@@ -29,14 +33,24 @@ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
29
33
  emoji.value = "";
30
34
  visible.value = false;
31
35
  emit("change", "");
36
+ console.log("emojiRef", emojiRef.value);
37
+ emojiRef.value.click();
32
38
  };
33
39
  const onSelect = (val) => {
34
- emoji.value = val.data;
35
40
  visible.value = false;
41
+ emoji.value = val.data;
36
42
  emit("change", strToBase64(val.data));
37
43
  };
38
- watch(() => props.value, (newVal) => {
39
- emoji.value = newVal ? base64ToStr(newVal) : "";
44
+ watch(() => props.value, (newVal, oldVal) => {
45
+ if (newVal !== oldVal) {
46
+ if (!newVal) {
47
+ emoji.value = "";
48
+ } else if (Number.isNaN(Number(newVal)) && isBase64("".concat(newVal))) {
49
+ emoji.value = base64ToStr("".concat(newVal));
50
+ } else {
51
+ emoji.value = newVal.toString();
52
+ }
53
+ }
40
54
  }, {
41
55
  immediate: true
42
56
  });
@@ -77,12 +91,16 @@ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
77
91
  }
78
92
  return content;
79
93
  };
94
+ const renderFormDefaultContent = () => {
95
+ return createVNode("div", {
96
+ "class": [ns.b("form-default-content"), ns.is("clear", !!emoji.value)]
97
+ }, [emoji.value ? emoji.value : "-"]);
98
+ };
80
99
  const renderReference = () => {
81
- let _slot;
82
100
  return createVNode(resolveComponent("el-button"), {
83
101
  "class": [ns.e("button"), ns.is("clear", !!emoji.value)]
84
- }, _isSlot(_slot = renderButtonContent()) ? _slot : {
85
- default: () => [_slot]
102
+ }, {
103
+ default: () => [showFormDefaultContent.value && renderFormDefaultContent(), renderButtonContent()]
86
104
  });
87
105
  };
88
106
  return {
@@ -90,6 +108,8 @@ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
90
108
  c,
91
109
  emoji,
92
110
  visible,
111
+ emojiRef,
112
+ showFormDefaultContent,
93
113
  onSelect,
94
114
  onAddEmoji,
95
115
  onClearEmoji,
@@ -98,7 +118,8 @@ const IBizEmojiPicker = /* @__PURE__ */ defineComponent({
98
118
  },
99
119
  render() {
100
120
  return createVNode("div", {
101
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
121
+ "ref": "emojiRef",
122
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("active", this.visible), this.ns.is("show-default", this.showFormDefaultContent)]
102
123
  }, [createVNode(resolveComponent("el-popover"), {
103
124
  "trigger": "click",
104
125
  "placement": "bottom-start",
@@ -2,7 +2,7 @@ import { ref, watch, computed, resolveComponent, createVNode, defineComponent }
2
2
  import { getSpanProps, useNamespace, useCodeListListen, useFocusAndBlur } from '@ibiz-template/vue3-util';
3
3
  import './span.css';
4
4
  import { isNil } from 'ramda';
5
- import { DataTypes } from '@ibiz-template/core';
5
+ import { DataTypes, isBase64, base64ToStr } from '@ibiz-template/core';
6
6
  import dayjs from 'dayjs';
7
7
  import customParseFormat from 'dayjs/plugin/customParseFormat';
8
8
 
@@ -74,6 +74,8 @@ const IBizSpan = /* @__PURE__ */ defineComponent({
74
74
  text.value = "".concat(newVal);
75
75
  ibiz.log.error("".concat(newVal, " \u503C\u683C\u5F0F\u5316\u9519\u8BEF"));
76
76
  }
77
+ } else if (Number.isNaN(Number(newVal)) && isBase64("".concat(newVal))) {
78
+ text.value = base64ToStr("".concat(newVal));
77
79
  } else {
78
80
  text.value = "".concat(newVal);
79
81
  }
@@ -94,15 +94,6 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
94
94
  emit("focus", e);
95
95
  setEditable(true);
96
96
  };
97
- const onBlur = (e) => {
98
- emit("blur", e);
99
- setEditable(false);
100
- };
101
- const handleKeyUp = (e) => {
102
- if (e && e.code === "Enter") {
103
- emit("enter", e);
104
- }
105
- };
106
97
  const debounce = (func, wait) => {
107
98
  let timeout;
108
99
  return (...args) => {
@@ -117,9 +108,20 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
117
108
  }
118
109
  emit("change", data);
119
110
  }, 300);
111
+ const onBlur = (e) => {
112
+ emit("blur", e);
113
+ if (enablethousands.value) {
114
+ debouncedOnInput(currentVal.value);
115
+ }
116
+ setEditable(false);
117
+ };
118
+ const handleKeyUp = (e) => {
119
+ if (e && e.code === "Enter") {
120
+ emit("enter", e);
121
+ }
122
+ };
120
123
  const onInput = (value) => {
121
124
  currentVal.value = value;
122
- debouncedOnInput(value);
123
125
  };
124
126
  return {
125
127
  ns,
@@ -1,5 +1,6 @@
1
1
  import { isVNode, ref, computed, watch, onUnmounted, resolveComponent, createVNode, mergeProps, defineComponent } from 'vue';
2
2
  import { getInputProps, getEditorEmits, useNamespace, useCodeListListen } from '@ibiz-template/vue3-util';
3
+ import { isBase64, base64ToStr } from '@ibiz-template/core';
3
4
  import { createUUID } from 'qx-util';
4
5
  import './input.css';
5
6
 
@@ -57,6 +58,8 @@ const IBizInput = /* @__PURE__ */ defineComponent({
57
58
  if (newVal !== oldVal) {
58
59
  if (newVal == null) {
59
60
  currentVal.value = "";
61
+ } else if (Number.isNaN(Number(newVal)) && isBase64("".concat(newVal))) {
62
+ currentVal.value = base64ToStr("".concat(newVal));
60
63
  } else {
61
64
  currentVal.value = newVal.toString();
62
65
  }
@@ -165,7 +165,7 @@ const IBizSearchCondEdit = /* @__PURE__ */ defineComponent({
165
165
  }, this.$attrs), null), createVNode(resolveComponent("el-button"), {
166
166
  "ref": "filterButtonRef",
167
167
  "type": "primary",
168
- "title": ibiz.i18n.t("app.edit"),
168
+ "title": ibiz.env.enableTitle ? ibiz.i18n.t("app.edit") : void 0,
169
169
  "class": this.ns.b("filter"),
170
170
  "onClick": () => this.triggerFilter()
171
171
  }, {
@@ -1140,6 +1140,9 @@ declare const _default: {
1140
1140
  symbols: string;
1141
1141
  flags: string;
1142
1142
  };
1143
+ formItemContainer: {
1144
+ more: string;
1145
+ };
1143
1146
  };
1144
1147
  editor: {
1145
1148
  common: {
@@ -474,6 +474,9 @@ var index = {
474
474
  places: "Places",
475
475
  symbols: "Symbols",
476
476
  flags: "Flags"
477
+ },
478
+ formItemContainer: {
479
+ more: "More"
477
480
  }
478
481
  },
479
482
  // 编辑器
@@ -1134,6 +1134,9 @@ declare const _default: {
1134
1134
  symbols: string;
1135
1135
  flags: string;
1136
1136
  };
1137
+ formItemContainer: {
1138
+ more: string;
1139
+ };
1137
1140
  };
1138
1141
  editor: {
1139
1142
  common: {
@@ -470,6 +470,9 @@ var index = {
470
470
  places: "\u65C5\u884C\u4E0E\u5730\u65B9",
471
471
  symbols: "\u7B26\u53F7",
472
472
  flags: "\u65D7\u5E1C"
473
+ },
474
+ formItemContainer: {
475
+ more: "\u66F4\u591A"
473
476
  }
474
477
  },
475
478
  // 编辑器
@@ -1,5 +1,6 @@
1
1
  import { PanelItemController } from '@ibiz-template/runtime';
2
2
  import { isNil, reject } from 'ramda';
3
+ import { nextTick } from 'vue';
3
4
  import { NavTabsState } from './nav-tabs.state.mjs';
4
5
 
5
6
  "use strict";
@@ -130,10 +131,10 @@ class NavTabsController extends PanelItemController {
130
131
  };
131
132
  this.state.tabItems.push(tempItem);
132
133
  this.state.activeTab = tempItem.key;
133
- setTimeout(() => {
134
+ nextTick(() => {
134
135
  this.state.tabItems.pop();
135
136
  this.state.activeTab = this.state.tabItems[this.state.tabItems.length - 1].key;
136
- }, 100);
137
+ });
137
138
  }
138
139
  }
139
140
 
@@ -101,7 +101,7 @@ const PanelButton = /* @__PURE__ */ defineComponent({
101
101
  }, [createVNode(resolveComponent("el-button"), {
102
102
  "type": this.buttonType,
103
103
  "text": this.isText,
104
- "title": this.tooltip,
104
+ "title": ibiz.env.enableTitle ? this.tooltip : void 0,
105
105
  "disabled": this.state.disabled,
106
106
  "loading": this.state.loading,
107
107
  "onClick": this.handleButtonClick
@@ -61,9 +61,10 @@ class EditViewEngine extends ViewEngineBase {
61
61
  }
62
62
  this.view.slotProps.toolbar.manualCalcButtonState = true;
63
63
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
64
+ var _a, _b;
64
65
  const uiDomain = ibiz.uiDomainManager.get(this.view.context.srfsessionid);
65
- const isChange = (this.form.state.modified || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
66
- if (isChange && this.form.model.enableAutoSave && !uiDomain.dataModification) {
66
+ const isChange = (((_a = this.form) == null ? void 0 : _a.state.modified) || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
67
+ if (isChange && ((_b = this.form) == null ? void 0 : _b.model.enableAutoSave) && !uiDomain.dataModification) {
67
68
  await this.form.immediateAutoSave();
68
69
  } else if (isChange && context.allowClose == null) {
69
70
  const isAllow = await ibiz.confirm.error({
@@ -30,8 +30,9 @@ class OptViewEngine extends ViewEngineBase {
30
30
  }
31
31
  this.view.slotProps.toolbar.manualCalcButtonState = true;
32
32
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
33
+ var _a;
33
34
  const uiDomain = ibiz.uiDomainManager.get(this.view.context.srfsessionid);
34
- const isChange = (this.form.state.modified || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
35
+ const isChange = (((_a = this.form) == null ? void 0 : _a.state.modified) || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
35
36
  if (isChange && context.allowClose == null) {
36
37
  const isAllow = await ibiz.confirm.error({
37
38
  title: ibiz.i18n.t("viewEngine.closeRemind"),
@@ -39,6 +39,7 @@ class PickupTreeViewEngine extends TreeViewEngine {
39
39
  this.view.slotProps.tree = {};
40
40
  }
41
41
  this.view.slotProps.tree.singleSelect = this.view.state.singleSelect;
42
+ this.view.slotProps.tree.checkStrictly = this.view.state.checkStrictly;
42
43
  if (this.view.state.selectedData) {
43
44
  this.selectData = this.view.state.selectedData.map((item) => {
44
45
  return {
@@ -6,7 +6,8 @@ const envMap = /* @__PURE__ */ new Map([
6
6
  ["baseUrl", "BaseUrl"],
7
7
  ["remoteModelUrl", "remoteDynaPath"],
8
8
  ["dcSystem", "mockDcSystemId"],
9
- ["enablePermission", "enablePermissionValid"]
9
+ ["enablePermission", "enablePermissionValid"],
10
+ ["enableTitle", "enableTitle"]
10
11
  ]);
11
12
  async function attachEnvironmentConfig() {
12
13
  const env = window.Environment;
@@ -106,7 +106,7 @@ const IBizActionToolbar = /* @__PURE__ */ vue.defineComponent({
106
106
  "text": true,
107
107
  "size": "small",
108
108
  "onClick": (e) => this.handleClick(detail, e),
109
- "title": detail.tooltip,
109
+ "title": ibiz.env.enableTitle ? detail.tooltip : void 0,
110
110
  "disabled": this.actionsState[detail.id].disabled,
111
111
  "class": this.calcActionItemClass(detail)
112
112
  }, {
@@ -126,7 +126,7 @@ const CustomTheme = /* @__PURE__ */ vue.defineComponent({
126
126
  }, [c.predefineType.map((item) => {
127
127
  return vue.createVNode(vue.resolveComponent("el-button"), {
128
128
  "color": item.color,
129
- "title": ibiz.i18n.t("control.common.customTheme.".concat(item.labelLang)),
129
+ "title": ibiz.env.enableTitle ? ibiz.i18n.t("control.common.customTheme.".concat(item.labelLang)) : void 0,
130
130
  "onClick": () => {
131
131
  handleThemeChange(item.codeName);
132
132
  }
@@ -415,7 +415,10 @@ const DataImport2 = /* @__PURE__ */ vue.defineComponent({
415
415
  }, [vue.createVNode(vue.resolveComponent("el-button"), {
416
416
  "onClick": this.onButtonImportClick,
417
417
  "disabled": !this.selectValues.join(""),
418
- "title": !this.selectValues.join("") ? ibiz.i18n.t("component.dataImport2.selectProperties") : ""
418
+ "title": (
419
+ // eslint-disable-next-line no-nested-ternary
420
+ ibiz.env.enableTitle ? !this.selectValues.join("") ? ibiz.i18n.t("component.dataImport2.selectProperties") : "" : void 0
421
+ )
419
422
  }, _isSlot(_slot2 = ibiz.i18n.t("component.dataImport2.import")) ? _slot2 : {
420
423
  default: () => [_slot2]
421
424
  })]) : ""])])])]), vue.createVNode(vue.resolveComponent("data-import2-table"), {
@@ -141,7 +141,7 @@ const ContextMenuControl = /* @__PURE__ */ vue.defineComponent({
141
141
  "text": true,
142
142
  "size": "small",
143
143
  "onClick": (e) => this.handleClick(detail, e),
144
- "title": detail.tooltip,
144
+ "title": ibiz.env.enableTitle ? detail.tooltip : void 0,
145
145
  "disabled": this.c.state.buttonsState[detail.id].disabled,
146
146
  "class": this.calcActionItemClass(detail)
147
147
  }, {
@@ -167,7 +167,7 @@ const ContextMenuControl = /* @__PURE__ */ vue.defineComponent({
167
167
  "text": true,
168
168
  "size": "small",
169
169
  "onClick": (e) => this.handleClick(detail, e),
170
- "title": detail.tooltip,
170
+ "title": ibiz.env.enableTitle ? detail.tooltip : void 0,
171
171
  "disabled": this.c.state.buttonsState[detail.id].disabled,
172
172
  "class": this.calcActionItemClass(detail)
173
173
  }, {
@@ -134,7 +134,7 @@ const CustomDashboardContainer = /* @__PURE__ */ vue.defineComponent({
134
134
  "class": this.ns.b("build-btn")
135
135
  }, [this.showTypeDir ? vue.createVNode("div", null, [vue.createVNode(vue.resolveComponent("el-button"), {
136
136
  "class": this.ns.b("deisgn-btn"),
137
- "title": ibiz.i18n.t("control.dashboard.customDashboardContainer.portalCustomPrompt"),
137
+ "title": ibiz.env.enableTitle ? ibiz.i18n.t("control.dashboard.customDashboardContainer.portalCustomPrompt") : void 0,
138
138
  "onClick": this.openDesign
139
139
  }, {
140
140
  default: () => [vue.createVNode("ion-icon", {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var vue = require('vue');
4
- var namespace = require('../../node_modules/.pnpm/@ibiz-template_core@0.7.26_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs');
4
+ var namespace = require('../../node_modules/.pnpm/@ibiz-template_core@0.7.27_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs');
5
5
 
6
6
  "use strict";
7
7
  function useAppDRTab(c, controlRef, counterData) {
@@ -36,9 +36,10 @@ function useAppDRTab(c, controlRef, counterData) {
36
36
  const totalDom = controlRef.value.$el;
37
37
  const totalWidth = totalDom.offsetWidth;
38
38
  let accumulatedWidth = 0;
39
- let splitIndex = -1;
39
+ visibleItems.value = [];
40
+ moreItems.value = [];
40
41
  drTabPages.forEach((tab, index) => {
41
- if (splitIndex === -1) {
42
+ if (!tab.hidden) {
42
43
  const caption = tab.caption || "";
43
44
  const counterNum = tab.counterId ? counterData[tab.counterId] : void 0;
44
45
  const fontSize = "var(--".concat(namespace.defaultNamespace, "-font-size-regular)");
@@ -66,17 +67,12 @@ function useAppDRTab(c, controlRef, counterData) {
66
67
  moreStyle
67
68
  );
68
69
  if (accumulatedWidth + moreWidth > totalWidth) {
69
- splitIndex = index;
70
+ moreItems.value.push(tab);
71
+ } else {
72
+ visibleItems.value.push(tab);
70
73
  }
71
74
  }
72
75
  });
73
- if (splitIndex !== -1) {
74
- visibleItems.value = drTabPages.slice(0, splitIndex);
75
- moreItems.value = drTabPages.slice(splitIndex);
76
- } else {
77
- visibleItems.value = drTabPages;
78
- moreItems.value = [];
79
- }
80
76
  }
81
77
  const calcDrTabWidth = () => {
82
78
  if (window.ResizeObserver) {
@@ -48,7 +48,7 @@ const FormButton = /* @__PURE__ */ vue.defineComponent({
48
48
  "onClick": this.controller.onClick.bind(this.controller),
49
49
  "loading": this.controller.state.loading,
50
50
  "disabled": this.controller.state.disabled,
51
- "title": this.modelData.tooltip
51
+ "title": ibiz.env.enableTitle ? this.modelData.tooltip : void 0
52
52
  }, {
53
53
  default: () => [vue.createVNode("div", {
54
54
  "class": this.ns.b("content")
@@ -28,10 +28,23 @@ const IBizFormItemContainer = /* @__PURE__ */ vue.defineComponent({
28
28
  labelWidth: {
29
29
  type: Number,
30
30
  default: 130
31
+ },
32
+ enableInputTip: {
33
+ type: Boolean
34
+ },
35
+ inputTip: {
36
+ type: String
37
+ },
38
+ inputTipUrl: {
39
+ type: String
40
+ },
41
+ inputTipClosable: {
42
+ type: Boolean
31
43
  }
32
44
  },
33
45
  setup(props) {
34
46
  const ns = vue3Util.useNamespace("form-item-container");
47
+ const tooltip = vue.ref();
35
48
  const cssVars = vue.computed(() => {
36
49
  if (props.labelWidth !== 130) {
37
50
  return ns.cssVarBlock({
@@ -40,17 +53,49 @@ const IBizFormItemContainer = /* @__PURE__ */ vue.defineComponent({
40
53
  }
41
54
  return {};
42
55
  });
56
+ const hiddenTooltip = () => {
57
+ if (tooltip.value) {
58
+ tooltip.value.hide();
59
+ }
60
+ };
61
+ const renderLabel = () => {
62
+ const classList = [ns.e("label"), ...props.labelClass || []];
63
+ if (props.enableInputTip) {
64
+ return vue.createVNode(vue.resolveComponent("el-tooltip"), {
65
+ "ref": "tooltip"
66
+ }, {
67
+ default: () => {
68
+ return vue.createVNode("div", {
69
+ "class": classList
70
+ }, [props.label]);
71
+ },
72
+ content: () => {
73
+ return vue.createVNode("div", {
74
+ "class": ns.em("label", "tooltip")
75
+ }, [props.inputTip || props.label, props.inputTipUrl && vue.createVNode("a", {
76
+ "href": props.inputTipUrl,
77
+ "target": "_blank"
78
+ }, [ibiz.i18n.t("component.formItemContainer.more")]), props.inputTipClosable && vue.createVNode("ion-icon", {
79
+ "name": "close-outline",
80
+ "onClick": hiddenTooltip
81
+ }, null)]);
82
+ }
83
+ });
84
+ }
85
+ return vue.createVNode("div", {
86
+ "class": classList,
87
+ "title": props.label
88
+ }, [props.label]);
89
+ };
43
90
  return {
44
91
  ns,
45
- cssVars
92
+ cssVars,
93
+ tooltip,
94
+ renderLabel
46
95
  };
47
96
  },
48
97
  render() {
49
98
  var _a, _b;
50
- const label = vue.createVNode("div", {
51
- "class": [this.ns.e("label"), ...this.labelClass || []],
52
- "title": this.label
53
- }, [this.label]);
54
99
  const content = vue.createVNode("div", {
55
100
  "class": [this.ns.e("content"), this.ns.em("content", "label-".concat(this.labelPos.toLowerCase()))]
56
101
  }, [vue.createVNode("div", {
@@ -62,7 +107,7 @@ const IBizFormItemContainer = /* @__PURE__ */ vue.defineComponent({
62
107
  return vue.createVNode("div", {
63
108
  "class": [this.ns.b(), this.ns.m(this.labelPos.toLowerCase()), this.ns.is("required", this.required), this.ns.is("error", !!this.error)],
64
109
  "style": this.cssVars
65
- }, [this.labelPos === "LEFT" || this.labelPos === "TOP" ? label : null, content, this.labelPos === "RIGHT" || this.labelPos === "BOTTOM" ? label : null]);
110
+ }, [this.labelPos === "LEFT" || this.labelPos === "TOP" ? this.renderLabel() : null, content, this.labelPos === "RIGHT" || this.labelPos === "BOTTOM" ? this.renderLabel() : null]);
66
111
  }
67
112
  });
68
113