@ibiz-template/vue3-components 0.7.25 → 0.7.26-alpha.1

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 (53) hide show
  1. package/dist/index-yupCl1Un.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-xgesm7QP.js → xlsx-util-jKx8FmtR.js} +1 -1
  5. package/es/control/dashboard/index.mjs +4 -1
  6. package/es/control/dashboard/portlet/index.d.ts +1 -0
  7. package/es/control/dashboard/portlet/index.mjs +2 -0
  8. package/es/control/dashboard/portlet/report-portlet/index.d.ts +24 -0
  9. package/es/control/dashboard/portlet/report-portlet/index.mjs +12 -0
  10. package/es/control/dashboard/portlet/report-portlet/report-portlet.d.ts +24 -0
  11. package/es/control/dashboard/portlet/report-portlet/report-portlet.mjs +64 -0
  12. package/es/control/dashboard/portlet/report-portlet/report-portlet.provider.d.ts +15 -0
  13. package/es/control/dashboard/portlet/report-portlet/report-portlet.provider.mjs +21 -0
  14. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +25 -0
  15. package/es/control/form/form-detail/form-mdctrl/index.mjs +2 -0
  16. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/icon/index.d.ts +21 -0
  17. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/icon/index.mjs +75 -0
  18. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.css +1 -0
  19. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.d.ts +38 -0
  20. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.mjs +205 -0
  21. package/es/control/index.mjs +2 -0
  22. package/es/control/kanban/kanban.css +1 -1
  23. package/es/control/report-panel/report-detail/bi-report-panel/bi-report-panel.mjs +7 -1
  24. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +33 -1
  25. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -1
  26. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +61 -34
  27. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +2 -0
  28. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +59 -5
  29. package/es/index.mjs +2 -0
  30. package/es/locale/en/index.d.ts +3 -0
  31. package/es/locale/zh-CN/index.d.ts +3 -0
  32. package/es/view-engine/edit-view.engine.mjs +1 -1
  33. package/lib/control/dashboard/index.cjs +5 -0
  34. package/lib/control/dashboard/portlet/index.cjs +4 -0
  35. package/lib/control/dashboard/portlet/report-portlet/index.cjs +18 -0
  36. package/lib/control/dashboard/portlet/report-portlet/report-portlet.cjs +66 -0
  37. package/lib/control/dashboard/portlet/report-portlet/report-portlet.provider.cjs +23 -0
  38. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +25 -0
  39. package/lib/control/form/form-detail/form-mdctrl/index.cjs +2 -0
  40. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container2/icon/index.cjs +81 -0
  41. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.cjs +207 -0
  42. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.css +1 -0
  43. package/lib/control/index.cjs +22 -18
  44. package/lib/control/kanban/kanban.css +1 -1
  45. package/lib/control/report-panel/report-detail/bi-report-panel/bi-report-panel.cjs +7 -1
  46. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +32 -0
  47. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +60 -33
  48. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -1
  49. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +59 -5
  50. package/lib/index.cjs +52 -48
  51. package/lib/view-engine/edit-view.engine.cjs +1 -1
  52. package/package.json +7 -7
  53. package/dist/index-Kg6lkzg1.js +0 -4
@@ -30,7 +30,13 @@ const BIReportPanel = /* @__PURE__ */ defineComponent({
30
30
  "mode": "CONTENT",
31
31
  "context": this.c.context,
32
32
  "viewParams": this.c.params,
33
- "config": this.generator && this.generator.config
33
+ "config": this.generator && this.generator.config,
34
+ "onInit": (args) => {
35
+ this.generator && this.generator.init(args);
36
+ },
37
+ "onReportChartChange": (args) => {
38
+ this.generator && this.generator.init(args);
39
+ }
34
40
  }, null)]);
35
41
  }
36
42
  });
@@ -1,6 +1,7 @@
1
- import { ref, computed, watch, createVNode, defineComponent } from 'vue';
1
+ import { ref, computed, watch, onMounted, createVNode, defineComponent } from 'vue';
2
2
  import { getDataPickerProps, getEditorEmits, useNamespace, useAutoFocusBlur, useFocusAndBlur, renderString } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-picker-link.css';
4
+ import { isNil } from 'ramda';
4
5
 
5
6
  "use strict";
6
7
  const IBizPickerLink = /* @__PURE__ */ defineComponent({
@@ -13,10 +14,23 @@ const IBizPickerLink = /* @__PURE__ */ defineComponent({
13
14
  const ns = useNamespace("picker-link");
14
15
  const c = props.controller;
15
16
  const curValue = ref("");
17
+ const items = ref([]);
16
18
  const {
17
19
  useInFocusAndBlur,
18
20
  useInValueChange
19
21
  } = useAutoFocusBlur(props, emit);
22
+ const onSearch = async (query) => {
23
+ if (c.model.appDataEntityId) {
24
+ let trimQuery = "";
25
+ if (query !== props.value) {
26
+ trimQuery = query.trim();
27
+ }
28
+ const res = await c.getServiceData(trimQuery, props.data);
29
+ if (res) {
30
+ items.value = res.data;
31
+ }
32
+ }
33
+ };
20
34
  const showFormDefaultContent = computed(() => {
21
35
  if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
22
36
  return true;
@@ -34,6 +48,24 @@ const IBizPickerLink = /* @__PURE__ */ defineComponent({
34
48
  }, {
35
49
  immediate: true
36
50
  });
51
+ onMounted(() => {
52
+ watch(() => props.data[c.valueItem], async (newVal, oldVal) => {
53
+ if (newVal !== oldVal) {
54
+ if (isNil(props.value)) {
55
+ await onSearch("");
56
+ }
57
+ const curItem = items.value.find((item) => Object.is(item[c.keyName], newVal));
58
+ if (curItem) {
59
+ curValue.value = curItem[c.textName];
60
+ }
61
+ if (newVal === null) {
62
+ emit("change", null);
63
+ }
64
+ }
65
+ }, {
66
+ immediate: true
67
+ });
68
+ });
37
69
  const handleOpenViewClose = (data) => {
38
70
  const item = {};
39
71
  Object.assign(item, data);
@@ -1 +1 @@
1
- .ibiz-dropdown{width:var(--ibiz-dropdown-width);--ibiz-dropdown-width:100%;--ibiz-dropdown-readonly-text-item-color:var(--ibiz-form-item-text-color)}.ibiz-dropdown__branch-node>.el-tree-node__content{--ibiz-color-disabled-text:var(--ibiz-color-text-0)}.ibiz-dropdown .el-select{width:100%}.ibiz-dropdown-readonly-text-item{margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-dropdown-readonly-text-item-color)}.ibiz-dropdown-readonly-text-item .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.el-select-dropdown__item{width:100%;background-color:var(--ibiz-dropdown-select-option-item-bkcolor)}.ibiz-dropdown-select-option-content{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown-select-option-content__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-dropdown-select-option-content .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-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)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--ibiz-editor-default-line-height)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-select{display:block}
1
+ .ibiz-dropdown{width:var(--ibiz-dropdown-width);--ibiz-dropdown-width:100%;--ibiz-dropdown-readonly-text-item-color:var(--ibiz-form-item-text-color)}.ibiz-dropdown__branch-node>.el-tree-node__content{--ibiz-color-disabled-text:var(--ibiz-color-text-0)}.ibiz-dropdown .el-select{width:100%}.ibiz-dropdown-readonly-text-item{margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-dropdown-readonly-text-item-color)}.ibiz-dropdown-readonly-text-item .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.el-select-dropdown__item{width:100%;background-color:var(--ibiz-dropdown-select-option-item-bkcolor)}.ibiz-dropdown-select-option-content{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown-select-option-content__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-dropdown-select-option-content .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-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)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--ibiz-editor-default-line-height)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select .el-input__prefix-inner>:last-child{margin-right:var(--ibiz-spacing-none)}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content{display:flex;align-items:center;width:100%;height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:auto;padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base);margin:var(--ibiz-spacing-none);margin-right:var(--ibiz-spacing-extra-tight);font-size:inherit;line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border:none;border-radius:var(--ibiz-spacing-base)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-content-item{flex:0 0 auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item{display:inline-flex;align-items:center;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item:first-child{margin-left:calc(var(--ibiz-spacing-base-tight) - var(--ibiz-spacing-super-tight)/ 2)}.ibiz-dropdown--round .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner{flex:1 1 0;opacity:0}.ibiz-dropdown--round .ibiz-dropdown-select-option-text{display:inline-flex;align-items:center;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown-popper--round .el-select-dropdown__item{display:flex;align-items:center;height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));line-height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));background-color:transparent}.ibiz-dropdown-popper--round .ibiz-dropdown-select-option-content{flex:0 0 auto;width:auto;min-width:0;height:auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}
@@ -1,11 +1,8 @@
1
- import { isVNode, ref, computed, watch, nextTick, onMounted, onUnmounted, resolveComponent, mergeProps, createVNode, defineComponent } from 'vue';
1
+ import { ref, computed, watch, nextTick, onMounted, onUnmounted, resolveComponent, mergeProps, createVNode, defineComponent } from 'vue';
2
2
  import { getDropdownProps, getEditorEmits, useNamespace, useCodeListListen, useClickOutside } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-dropdown.css';
4
4
 
5
5
  "use strict";
6
- function _isSlot(s) {
7
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
8
- }
9
6
  const IBizDropdown = /* @__PURE__ */ defineComponent({
10
7
  name: "IBizDropdown",
11
8
  props: getDropdownProps(),
@@ -146,6 +143,10 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
146
143
  emit("change", codeItemValueNumber.value ? Number(select) : select);
147
144
  }
148
145
  setEditable(false);
146
+ if (props.autoFocus) {
147
+ editorState = "blur";
148
+ emit("blur");
149
+ }
149
150
  }
150
151
  });
151
152
  const valueText = computed(() => {
@@ -246,7 +247,6 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
246
247
  };
247
248
  },
248
249
  render() {
249
- let _slot;
250
250
  const overflowMode = this.c.editorParams.overflowMode || ibiz.config.pickerEditor.overflowMode;
251
251
  const isEllipsis = overflowMode === "ellipsis";
252
252
  const editContent = this.hasChildren ? createVNode(resolveComponent("el-tree-select"), mergeProps({
@@ -294,44 +294,66 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
294
294
  "disabled": this.disabled,
295
295
  "loading": this.isLoading,
296
296
  "fit-input-width": isEllipsis,
297
+ "popper-class": "".concat(this.ns.b("popper"), " ").concat(this.c.editorParams.type === "round" ? this.ns.bm("popper", "round") : ""),
297
298
  "onBlur": this.onBlur,
298
299
  "onFocus": this.onFocus,
299
300
  "onKeyup": this.handleKeyUp,
300
301
  "onVisibleChange": this.onVisibleChange
301
- }, this.$attrs), _isSlot(_slot = this.items.map((item) => {
302
- return createVNode(resolveComponent("el-option"), {
303
- "key": item.value,
304
- "value": item.value.toString(),
305
- "label": item.text,
306
- "disabled": item.disableSelect === true,
307
- "style": item.bkcolor ? this.ns.cssVarBlock({
308
- "select-option-item-bkcolor": "".concat(item.bkcolor)
309
- }) : "",
310
- "class": [item.cls ? item.cls : null],
311
- "title": isEllipsis ? item.text : ""
312
- }, {
313
- default: () => {
302
+ }, this.$attrs), {
303
+ default: () => {
304
+ return this.items.map((item) => {
305
+ return createVNode(resolveComponent("el-option"), {
306
+ "key": item.value,
307
+ "value": item.value.toString(),
308
+ "label": item.text,
309
+ "disabled": item.disableSelect === true,
310
+ "style": item.bkcolor ? this.ns.cssVarBlock({
311
+ "select-option-item-bkcolor": "".concat(item.bkcolor)
312
+ }) : "",
313
+ "class": [item.cls ? item.cls : null],
314
+ "title": isEllipsis ? item.text : ""
315
+ }, {
316
+ default: () => {
317
+ return createVNode("div", {
318
+ "class": [this.ns.b("select-option-content"), item.textCls ? item.textCls : null],
319
+ "style": item.color ? this.ns.cssVarBlock({
320
+ "select-option-item-color": "".concat(item.color)
321
+ }) : ""
322
+ }, [item.sysImage && createVNode(resolveComponent("iBizIcon"), {
323
+ "icon": item.sysImage
324
+ }, null), createVNode("span", {
325
+ "class": [isEllipsis && this.ns.be("select-option-content", "text")]
326
+ }, [item.text])]);
327
+ }
328
+ });
329
+ });
330
+ },
331
+ prefix: () => {
332
+ if (this.c.editorParams.type !== "round") {
333
+ return;
334
+ }
335
+ return this.valueText.split(",").map((text) => {
336
+ const codeListItem = this.getCodeListItem(text);
314
337
  return createVNode("div", {
315
- "class": [this.ns.b("select-option-content"), item.textCls ? item.textCls : null],
316
- "style": item.color ? this.ns.cssVarBlock({
317
- "select-option-item-color": "".concat(item.color)
338
+ "class": [this.ns.b("select-option-text"), codeListItem == null ? void 0 : codeListItem.textCls],
339
+ "style": (codeListItem == null ? void 0 : codeListItem.color) || (codeListItem == null ? void 0 : codeListItem.bkcolor) ? this.ns.cssVarBlock({
340
+ "select-option-item-color": "".concat(codeListItem.color || ""),
341
+ "select-option-item-bkcolor": "".concat(codeListItem.bkcolor || "")
318
342
  }) : ""
319
- }, [item.sysImage && createVNode(resolveComponent("iBizIcon"), {
320
- "icon": item.sysImage
321
- }, null), createVNode("span", {
322
- "class": [isEllipsis && this.ns.be("select-option-content", "text")]
323
- }, [item.text])]);
324
- }
325
- });
326
- })) ? _slot : {
327
- default: () => [_slot]
343
+ }, [(codeListItem == null ? void 0 : codeListItem.sysImage) && createVNode(resolveComponent("iBizIcon"), {
344
+ "icon": codeListItem == null ? void 0 : codeListItem.sysImage
345
+ }, null), text || ""]);
346
+ });
347
+ }
328
348
  });
329
349
  const readonlyContent = this.valueText.split(",").map((text) => {
330
350
  const codeListItem = this.getCodeListItem(text);
331
351
  return createVNode("span", {
332
352
  "class": [this.ns.b("readonly-text-item"), codeListItem == null ? void 0 : codeListItem.textCls],
333
- "style": (codeListItem == null ? void 0 : codeListItem.color) ? this.ns.cssVarBlock({
334
- "readonly-text-item-color": "".concat(codeListItem.color)
353
+ "style": (codeListItem == null ? void 0 : codeListItem.color) || (codeListItem == null ? void 0 : codeListItem.bkcolor) ? this.ns.cssVarBlock({
354
+ "readonly-text-item-color": "".concat(codeListItem.color || ""),
355
+ "select-option-item-color": "".concat(codeListItem.color || ""),
356
+ "select-option-item-bkcolor": "".concat((this.c.editorParams.type === "round" ? codeListItem.bkcolor : "") || "")
335
357
  }) : ""
336
358
  }, [(codeListItem == null ? void 0 : codeListItem.sysImage) && createVNode(resolveComponent("iBizIcon"), {
337
359
  "icon": codeListItem == null ? void 0 : codeListItem.sysImage
@@ -340,12 +362,17 @@ const IBizDropdown = /* @__PURE__ */ defineComponent({
340
362
  const formDefaultContent = createVNode("div", {
341
363
  "class": [this.ns.b("form-default-content"), this.ns.is("multiple", this.c.multiple)]
342
364
  }, [this.valueText ? this.valueText.split(",").map((text) => {
365
+ const codeListItem = this.getCodeListItem(text);
343
366
  return createVNode("span", {
344
- "class": this.ns.b("content-item")
367
+ "class": [this.ns.b("content-item"), codeListItem == null ? void 0 : codeListItem.textCls],
368
+ "style": (codeListItem == null ? void 0 : codeListItem.color) || (codeListItem == null ? void 0 : codeListItem.bkcolor) ? this.ns.cssVarBlock({
369
+ "select-option-item-color": "".concat(codeListItem.color || ""),
370
+ "select-option-item-bkcolor": "".concat((this.c.editorParams.type === "round" ? codeListItem.bkcolor : "") || "")
371
+ }) : ""
345
372
  }, [text]);
346
373
  }) : "-"]);
347
374
  return createVNode("div", {
348
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent)],
375
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("editable", this.isEditable), this.ns.is("show-default", this.showFormDefaultContent), this.c.editorParams.type === "round" && this.ns.m("round")],
349
376
  "style": this.cssVars
350
377
  }, [this.showFormDefaultContent && formDefaultContent, this.readonly ? readonlyContent : editContent]);
351
378
  }
@@ -37,6 +37,8 @@ export declare const IBizInputNumber: import("vue").DefineComponent<{
37
37
  max: number;
38
38
  min: number;
39
39
  currentFormatVal: import("vue").ComputedRef<string>;
40
+ enablethousands: import("vue").Ref<boolean>;
41
+ onInput: (value: string | number) => void;
40
42
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
41
43
  change: (_value: unknown, _name?: string | undefined) => boolean;
42
44
  blur: (_event?: IData | undefined) => boolean;
@@ -13,6 +13,7 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
13
13
  emit
14
14
  }) {
15
15
  const ns = useNamespace("input-number");
16
+ const enablethousands = ref(false);
16
17
  const c = props.controller;
17
18
  const editorModel = c.model;
18
19
  const currentVal = ref(null);
@@ -25,6 +26,9 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
25
26
  if (editorModel.editorParams.minvalue) {
26
27
  min = toNumber(editorModel.editorParams.minvalue);
27
28
  }
29
+ if (editorModel.editorParams.enablethousands) {
30
+ enablethousands.value = JSON.parse(editorModel.editorParams.enablethousands);
31
+ }
28
32
  }
29
33
  const isEditable = ref(false);
30
34
  const editorRef = ref();
@@ -34,17 +38,37 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
34
38
  }
35
39
  return false;
36
40
  });
41
+ const numberconvertToStr = (num, decimalPlaces = 0) => {
42
+ const options = {
43
+ minimumFractionDigits: decimalPlaces,
44
+ maximumFractionDigits: decimalPlaces
45
+ };
46
+ return num.toLocaleString("en-US", options);
47
+ };
48
+ const convertToNumber = (str) => {
49
+ const stringWithoutCommas = str.replace(/,/g, "");
50
+ const originalNumber = parseFloat(stringWithoutCommas);
51
+ return originalNumber;
52
+ };
37
53
  watch(() => props.value, (newVal, oldVal) => {
38
54
  if (newVal !== oldVal) {
39
55
  const number = newVal != null && !Object.is(newVal, "") ? Number(newVal) : null;
40
- currentVal.value = Number.isNaN(number) ? null : number;
56
+ if (!enablethousands.value) {
57
+ currentVal.value = Number.isNaN(number) ? null : number;
58
+ } else {
59
+ currentVal.value = Number.isNaN(number) ? null : numberconvertToStr(number, c.precision ? c.precision : 0);
60
+ }
41
61
  }
42
62
  }, {
43
63
  immediate: true
44
64
  });
45
65
  const currentFormatVal = computed(() => {
46
- if (currentVal.value || currentVal.value === 0) {
47
- return props.controller.formatValue(currentVal.value);
66
+ if (!enablethousands.value) {
67
+ if (currentVal.value || currentVal.value === 0) {
68
+ return props.controller.formatValue(currentVal.value);
69
+ }
70
+ } else if (currentVal.value || currentVal.value === 0) {
71
+ return numberconvertToStr(Number(currentVal.value), c.precision ? c.precision : 0);
48
72
  }
49
73
  return "";
50
74
  });
@@ -79,6 +103,24 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
79
103
  emit("enter", e);
80
104
  }
81
105
  };
106
+ const debounce = (func, wait) => {
107
+ let timeout;
108
+ return (...args) => {
109
+ clearTimeout(timeout);
110
+ timeout = setTimeout(() => func.apply(this, args), wait);
111
+ };
112
+ };
113
+ const debouncedOnInput = debounce((value) => {
114
+ let data = null;
115
+ if (typeof value === "string") {
116
+ data = convertToNumber(value);
117
+ }
118
+ emit("change", data);
119
+ }, 300);
120
+ const onInput = (value) => {
121
+ currentVal.value = value;
122
+ debouncedOnInput(value);
123
+ };
82
124
  return {
83
125
  ns,
84
126
  c,
@@ -93,7 +135,9 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
93
135
  showFormDefaultContent,
94
136
  max,
95
137
  min,
96
- currentFormatVal
138
+ currentFormatVal,
139
+ enablethousands,
140
+ onInput
97
141
  };
98
142
  },
99
143
  render() {
@@ -107,7 +151,7 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
107
151
  content += unitName;
108
152
  }
109
153
  } else {
110
- content = [createVNode(resolveComponent("el-input-number"), mergeProps({
154
+ content = [!this.enablethousands ? createVNode(resolveComponent("el-input-number"), mergeProps({
111
155
  "ref": "editorRef",
112
156
  "class": [this.ns.b("input")],
113
157
  "model-value": this.currentVal,
@@ -121,6 +165,16 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
121
165
  "onFocus": this.onFocus,
122
166
  "onBlur": this.onBlur,
123
167
  "onKeyup": this.handleKeyUp
168
+ }, this.$attrs), null) : createVNode(resolveComponent("el-input"), mergeProps({
169
+ "ref": "editorRef",
170
+ "class": [this.ns.b("input")],
171
+ "model-value": this.currentVal,
172
+ "onInput": this.onInput,
173
+ "placeholder": this.c.placeHolder,
174
+ "disabled": this.disabled,
175
+ "onFocus": this.onFocus,
176
+ "onBlur": this.onBlur,
177
+ "onKeyup": this.handleKeyUp
124
178
  }, this.$attrs), null), unitName && createVNode("i", {
125
179
  "class": this.ns.e("unit")
126
180
  }, [unitName])];
package/es/index.mjs CHANGED
@@ -75,6 +75,8 @@ export { HtmlPortlet } from './control/dashboard/portlet/html-portlet/html-portl
75
75
  export { IBizHtmlPortlet } from './control/dashboard/portlet/html-portlet/index.mjs';
76
76
  export { ActionBarPortlet } from './control/dashboard/portlet/actionbar-portlet/actionbar-portlet.mjs';
77
77
  export { IBizActionBarPortlet } from './control/dashboard/portlet/actionbar-portlet/index.mjs';
78
+ export { ReportPortlet } from './control/dashboard/portlet/report-portlet/report-portlet.mjs';
79
+ export { IBizReportPortlet } from './control/dashboard/portlet/report-portlet/index.mjs';
78
80
  export { IBizDashboardControl } from './control/dashboard/index.mjs';
79
81
  export { IBizCalendarControl } from './control/calendar/index.mjs';
80
82
  export { IBizKanbanControl } from './control/kanban/index.mjs';
@@ -158,6 +158,9 @@ declare const _default: {
158
158
  noFindSequence: string;
159
159
  noInitialised: string;
160
160
  noCalculated: string;
161
+ classificationNotArray: string;
162
+ classificationNotString: string;
163
+ errorJson: string;
161
164
  };
162
165
  dataView: {
163
166
  noBehaviourGroup: string;
@@ -158,6 +158,9 @@ declare const _default: {
158
158
  noFindSequence: string;
159
159
  noInitialised: string;
160
160
  noCalculated: string;
161
+ classificationNotArray: string;
162
+ classificationNotString: string;
163
+ errorJson: string;
161
164
  };
162
165
  dataView: {
163
166
  noBehaviourGroup: string;
@@ -63,7 +63,7 @@ class EditViewEngine extends ViewEngineBase {
63
63
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
64
64
  const uiDomain = ibiz.uiDomainManager.get(this.view.context.srfsessionid);
65
65
  const isChange = (this.form.state.modified || uiDomain.dataModification) && this.view.model.enableDirtyChecking === true;
66
- if (isChange && this.form.model.enableAutoSave) {
66
+ if (isChange && this.form.model.enableAutoSave && !uiDomain.dataModification) {
67
67
  await this.form.immediateAutoSave();
68
68
  } else if (isChange && context.allowClose == null) {
69
69
  const isAllow = await ibiz.confirm.error({
@@ -18,6 +18,7 @@ var index$4 = require('./portlet/rawitem-portlet/index.cjs');
18
18
  var index$5 = require('./portlet/list-portlet/index.cjs');
19
19
  var index$6 = require('./portlet/html-portlet/index.cjs');
20
20
  var index$7 = require('./portlet/actionbar-portlet/index.cjs');
21
+ var index$8 = require('./portlet/report-portlet/index.cjs');
21
22
  var containerPortlet = require('./portlet/container-portlet/container-portlet.cjs');
22
23
  var viewPortlet = require('./portlet/view-portlet/view-portlet.cjs');
23
24
  var menuPortlet = require('./portlet/menu-portlet/menu-portlet.cjs');
@@ -26,6 +27,7 @@ var rawitemPortlet = require('./portlet/rawitem-portlet/rawitem-portlet.cjs');
26
27
  var listPortlet = require('./portlet/list-portlet/list-portlet.cjs');
27
28
  var htmlPortlet = require('./portlet/html-portlet/html-portlet.cjs');
28
29
  var actionbarPortlet = require('./portlet/actionbar-portlet/actionbar-portlet.cjs');
30
+ var reportPortlet = require('./portlet/report-portlet/report-portlet.cjs');
29
31
 
30
32
  "use strict";
31
33
  const IBizDashboardControl = vue3Util.withInstall(
@@ -47,6 +49,7 @@ const IBizDashboardControl = vue3Util.withInstall(
47
49
  v.use(index$5.IBizListPortlet);
48
50
  v.use(index$6.IBizHtmlPortlet);
49
51
  v.use(index$7.IBizActionBarPortlet);
52
+ v.use(index$8.IBizReportPortlet);
50
53
  }
51
54
  );
52
55
 
@@ -59,6 +62,7 @@ exports.IBizRawItemPortlet = index$4.IBizRawItemPortlet;
59
62
  exports.IBizListPortlet = index$5.IBizListPortlet;
60
63
  exports.IBizHtmlPortlet = index$6.IBizHtmlPortlet;
61
64
  exports.IBizActionBarPortlet = index$7.IBizActionBarPortlet;
65
+ exports.IBizReportPortlet = index$8.IBizReportPortlet;
62
66
  exports.ContainerPortlet = containerPortlet.ContainerPortlet;
63
67
  exports.ViewPortlet = viewPortlet.ViewPortlet;
64
68
  exports.MenuPortlet = menuPortlet.MenuPortlet;
@@ -67,5 +71,6 @@ exports.RawItemPortlet = rawitemPortlet.RawItemPortlet;
67
71
  exports.ListPortlet = listPortlet.ListPortlet;
68
72
  exports.HtmlPortlet = htmlPortlet.HtmlPortlet;
69
73
  exports.ActionBarPortlet = actionbarPortlet.ActionBarPortlet;
74
+ exports.ReportPortlet = reportPortlet.ReportPortlet;
70
75
  exports.IBizDashboardControl = IBizDashboardControl;
71
76
  exports.default = IBizDashboardControl;
@@ -9,6 +9,7 @@ var index$4 = require('./rawitem-portlet/index.cjs');
9
9
  var index$5 = require('./list-portlet/index.cjs');
10
10
  var index$6 = require('./html-portlet/index.cjs');
11
11
  var index$7 = require('./actionbar-portlet/index.cjs');
12
+ var index$8 = require('./report-portlet/index.cjs');
12
13
  var containerPortlet = require('./container-portlet/container-portlet.cjs');
13
14
  var viewPortlet = require('./view-portlet/view-portlet.cjs');
14
15
  var menuPortlet = require('./menu-portlet/menu-portlet.cjs');
@@ -17,6 +18,7 @@ var rawitemPortlet = require('./rawitem-portlet/rawitem-portlet.cjs');
17
18
  var listPortlet = require('./list-portlet/list-portlet.cjs');
18
19
  var htmlPortlet = require('./html-portlet/html-portlet.cjs');
19
20
  var actionbarPortlet = require('./actionbar-portlet/actionbar-portlet.cjs');
21
+ var reportPortlet = require('./report-portlet/report-portlet.cjs');
20
22
 
21
23
  "use strict";
22
24
 
@@ -29,6 +31,7 @@ exports.IBizRawItemPortlet = index$4.IBizRawItemPortlet;
29
31
  exports.IBizListPortlet = index$5.IBizListPortlet;
30
32
  exports.IBizHtmlPortlet = index$6.IBizHtmlPortlet;
31
33
  exports.IBizActionBarPortlet = index$7.IBizActionBarPortlet;
34
+ exports.IBizReportPortlet = index$8.IBizReportPortlet;
32
35
  exports.ContainerPortlet = containerPortlet.ContainerPortlet;
33
36
  exports.ViewPortlet = viewPortlet.ViewPortlet;
34
37
  exports.MenuPortlet = menuPortlet.MenuPortlet;
@@ -37,3 +40,4 @@ exports.RawItemPortlet = rawitemPortlet.RawItemPortlet;
37
40
  exports.ListPortlet = listPortlet.ListPortlet;
38
41
  exports.HtmlPortlet = htmlPortlet.HtmlPortlet;
39
42
  exports.ActionBarPortlet = actionbarPortlet.ActionBarPortlet;
43
+ exports.ReportPortlet = reportPortlet.ReportPortlet;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ var vue3Util = require('@ibiz-template/vue3-util');
7
+ var reportPortlet = require('./report-portlet.cjs');
8
+ var reportPortlet_provider = require('./report-portlet.provider.cjs');
9
+
10
+ "use strict";
11
+ const IBizReportPortlet = vue3Util.withInstall(reportPortlet.ReportPortlet, function(v) {
12
+ v.component(reportPortlet.ReportPortlet.name, reportPortlet.ReportPortlet);
13
+ runtime.registerPortletProvider("REPORT", () => new reportPortlet_provider.ReportPortletProvider());
14
+ });
15
+
16
+ exports.ReportPortlet = reportPortlet.ReportPortlet;
17
+ exports.IBizReportPortlet = IBizReportPortlet;
18
+ exports.default = IBizReportPortlet;
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var runtime = require('@ibiz-template/runtime');
6
+
7
+ "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ }
11
+ const ReportPortlet = /* @__PURE__ */ vue.defineComponent({
12
+ name: "IBizReportPortlet",
13
+ props: {
14
+ modelData: {
15
+ type: Object,
16
+ required: true
17
+ },
18
+ controller: {
19
+ type: runtime.ReportPortletController,
20
+ required: true
21
+ }
22
+ },
23
+ setup(props) {
24
+ var _a, _b;
25
+ const ns = vue3Util.useNamespace("portlet-".concat((_a = props.modelData.portletType) == null ? void 0 : _a.toLowerCase()));
26
+ const report = (_b = props.modelData.controls) == null ? void 0 : _b.find((item) => {
27
+ return item.controlType === runtime.ControlType.REPORT_PANEL;
28
+ });
29
+ let timerTag;
30
+ vue.onMounted(() => {
31
+ const timer = props.controller.model.timer;
32
+ if (timer && timer > 0) {
33
+ timerTag = setInterval(() => {
34
+ props.controller.refresh();
35
+ }, timer);
36
+ }
37
+ });
38
+ vue.onBeforeUnmount(() => {
39
+ clearInterval(timerTag);
40
+ });
41
+ return {
42
+ ns,
43
+ report
44
+ };
45
+ },
46
+ render() {
47
+ let _slot;
48
+ const classArr = [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass];
49
+ const {
50
+ context,
51
+ params
52
+ } = this.controller;
53
+ return vue.createVNode(vue.resolveComponent("iBizPortletLayout"), {
54
+ "controller": this.controller,
55
+ "class": classArr
56
+ }, _isSlot(_slot = vue.h(vue.resolveComponent("IBizControlShell"), {
57
+ context,
58
+ params,
59
+ modelData: this.report
60
+ })) ? _slot : {
61
+ default: () => [_slot]
62
+ });
63
+ }
64
+ });
65
+
66
+ exports.ReportPortlet = ReportPortlet;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
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
+ };
12
+ class ReportPortletProvider {
13
+ constructor() {
14
+ __publicField(this, "component", "IBizReportPortlet");
15
+ }
16
+ async createController(portletModel, dashboard, parent) {
17
+ const c = new runtime.ReportPortletController(portletModel, dashboard, parent);
18
+ await c.init();
19
+ return c;
20
+ }
21
+ }
22
+
23
+ exports.ReportPortletProvider = ReportPortletProvider;
@@ -47,6 +47,31 @@ const FormMDCtrlForm = /* @__PURE__ */ vue.defineComponent({
47
47
  formProvider,
48
48
  model
49
49
  } = this.controller;
50
+ if (model.detailStyle === "STYLE2") {
51
+ return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer2"), {
52
+ "controller": this.controller,
53
+ "items": state.items
54
+ }, {
55
+ item: ({
56
+ data
57
+ }) => {
58
+ if (!formProvider) {
59
+ return vue.createVNode("div", null, [ibiz.i18n.t("control.form.formMDctrlForm.noFindProvider")]);
60
+ }
61
+ const formComponent = vue.h(vue.resolveComponent(formProvider.component), {
62
+ class: this.ns.be("item", "form"),
63
+ key: data.id,
64
+ modelData: model.contentControl,
65
+ context: data.context,
66
+ params: data.params,
67
+ onCreated: (event) => {
68
+ this.onCreated(data.id, event);
69
+ }
70
+ });
71
+ return formComponent;
72
+ }
73
+ });
74
+ }
50
75
  return vue.createVNode(vue.resolveComponent("iBizMDCtrlContainer"), {
51
76
  "class": this.ns.b(),
52
77
  "items": state.items,
@@ -10,6 +10,7 @@ var formMdctrlMd = require('./form-mdctrl-md/form-mdctrl-md.cjs');
10
10
  var formMdctrlRepeater = require('./form-mdctrl-repeater/form-mdctrl-repeater.cjs');
11
11
  var formMdctrl_provider = require('./form-mdctrl.provider.cjs');
12
12
  var mdctrlContainer = require('./mdctrl-container/mdctrl-container.cjs');
13
+ var mdctrlContainer2 = require('./mdctrl-container2/mdctrl-container2.cjs');
13
14
 
14
15
  "use strict";
15
16
  const IBizFormMDCtrl = vue3Util.withInstall(formMdctrl.FormMDCtrl, function(v) {
@@ -18,6 +19,7 @@ const IBizFormMDCtrl = vue3Util.withInstall(formMdctrl.FormMDCtrl, function(v) {
18
19
  v.component(formMdctrlMd.FormMDCtrlMD.name, formMdctrlMd.FormMDCtrlMD);
19
20
  v.component(formMdctrlRepeater.FormMDCtrlRepeater.name, formMdctrlRepeater.FormMDCtrlRepeater);
20
21
  v.component(mdctrlContainer.MDCtrlContainer.name, mdctrlContainer.MDCtrlContainer);
22
+ v.component(mdctrlContainer2.MDCtrlContainer2.name, mdctrlContainer2.MDCtrlContainer2);
21
23
  runtime.registerFormDetailProvider("MDCTRL", () => new formMdctrl_provider.FormMDCtrlProvider());
22
24
  });
23
25