@ibiz-template/vue3-components 0.7.41-alpha.15 → 0.7.41-alpha.17

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 (146) hide show
  1. package/dist/index-AOFxMmyX.js +1 -0
  2. package/dist/index-swminiXb.js +1 -0
  3. package/dist/index-t1aZ8OJE.js +11 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{wang-editor-yDknWojV.js → wang-editor-Y8puaTx2.js} +1 -1
  7. package/dist/{xlsx-util-8l4wyK1s.js → xlsx-util-jYyM8alm.js} +1 -1
  8. package/es/common/index.mjs +2 -0
  9. package/es/common/kanben-setting/kanben-setting.css +1 -0
  10. package/es/common/kanben-setting/kanben-setting.d.ts +42 -0
  11. package/es/common/kanben-setting/kanben-setting.mjs +65 -0
  12. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  13. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +25 -8
  14. package/es/control/calendar/components/custom-calendar/use-custom-calendar.d.ts +8 -0
  15. package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +20 -1
  16. package/es/control/data-view/data-view.css +1 -1
  17. package/es/control/data-view/data-view.mjs +117 -22
  18. package/es/control/drbar/drbar.controller.mjs +2 -0
  19. package/es/control/drbar/drbar.css +1 -1
  20. package/es/control/drtab/drtab-control.util.mjs +1 -1
  21. package/es/control/drtab/drtab.controller.d.ts +24 -0
  22. package/es/control/drtab/drtab.controller.mjs +36 -0
  23. package/es/control/drtab/drtab.css +1 -1
  24. package/es/control/drtab/drtab.d.ts +2 -0
  25. package/es/control/drtab/drtab.mjs +5 -2
  26. package/es/control/drtab/flow-drtab.css +1 -1
  27. package/es/control/drtab/flow-drtab.d.ts +17 -2
  28. package/es/control/drtab/flow-drtab.mjs +189 -11
  29. package/es/control/drtab/index.d.ts +2 -0
  30. package/es/control/form/edit-form/edit-form.mjs +11 -0
  31. package/es/control/form/form-detail/form-item/form-item.mjs +11 -7
  32. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
  33. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +59 -5
  34. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +1 -0
  35. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +6 -0
  36. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +4 -0
  37. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  38. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +11 -11
  39. package/es/control/gantt/gantt.mjs +1 -0
  40. package/es/control/grid/grid/grid-control.util.mjs +36 -14
  41. package/es/control/grid/grid/grid.css +1 -1
  42. package/es/control/grid/grid/grid.mjs +8 -3
  43. package/es/control/kanban/index.d.ts +4 -1
  44. package/es/control/kanban/kanban.css +1 -1
  45. package/es/control/kanban/kanban.d.ts +4 -1
  46. package/es/control/kanban/kanban.mjs +66 -23
  47. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  48. package/es/control/kanban/swimlane-kanban/swimlane-kanban.d.ts +2 -7
  49. package/es/control/kanban/swimlane-kanban/swimlane-kanban.mjs +69 -12
  50. package/es/control/list/list.css +1 -1
  51. package/es/control/list/list.d.ts +1 -1
  52. package/es/control/list/list.mjs +97 -12
  53. package/es/control/medit-view-panel/medit-view-panel.css +1 -1
  54. package/es/control/medit-view-panel/medit-view-panel.mjs +37 -30
  55. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  56. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +47 -8
  57. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -0
  58. package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +1 -0
  59. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -0
  60. package/es/editor/upload/upload-editor.controller.d.ts +25 -0
  61. package/es/editor/upload/upload-editor.controller.mjs +43 -1
  62. package/es/editor/upload/use/use-iview-upload.mjs +9 -2
  63. package/es/locale/en/index.d.ts +14 -5
  64. package/es/locale/en/index.mjs +11 -3
  65. package/es/locale/zh-CN/index.d.ts +14 -5
  66. package/es/locale/zh-CN/index.mjs +11 -3
  67. package/es/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.mjs +3377 -0
  68. package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +20 -5
  69. package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +1950 -1
  70. package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.d.ts +53 -6
  71. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
  72. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +2031 -0
  73. package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +278 -0
  74. package/es/panel-component/panel-button/panel-button.mjs +1 -0
  75. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  76. package/es/view-engine/calendar-view.engine.d.ts +11 -1
  77. package/es/view-engine/calendar-view.engine.mjs +10 -0
  78. package/es/view-engine/chart-exp-view.engine.d.ts +6 -6
  79. package/es/view-engine/chart-exp-view.engine.mjs +6 -15
  80. package/es/view-engine/gantt-view.engine.d.ts +3 -3
  81. package/es/view-engine/gantt-view.engine.mjs +3 -46
  82. package/es/view-engine/login-view.engine.mjs +7 -0
  83. package/es/view-engine/tab-exp-view.engine.mjs +1 -1
  84. package/es/view-engine/tab-search-view.engine.mjs +4 -2
  85. package/es/view-engine/tree-view.engine.d.ts +12 -2
  86. package/es/view-engine/tree-view.engine.mjs +39 -11
  87. package/lib/common/index.cjs +2 -0
  88. package/lib/common/kanben-setting/kanben-setting.cjs +67 -0
  89. package/lib/common/kanben-setting/kanben-setting.css +1 -0
  90. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +23 -6
  91. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  92. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +20 -0
  93. package/lib/control/data-view/data-view.cjs +117 -22
  94. package/lib/control/data-view/data-view.css +1 -1
  95. package/lib/control/drbar/drbar.controller.cjs +2 -0
  96. package/lib/control/drbar/drbar.css +1 -1
  97. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  98. package/lib/control/drtab/drtab.cjs +5 -2
  99. package/lib/control/drtab/drtab.controller.cjs +36 -0
  100. package/lib/control/drtab/drtab.css +1 -1
  101. package/lib/control/drtab/flow-drtab.cjs +188 -10
  102. package/lib/control/drtab/flow-drtab.css +1 -1
  103. package/lib/control/form/edit-form/edit-form.cjs +11 -0
  104. package/lib/control/form/form-detail/form-item/form-item.cjs +11 -7
  105. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +58 -4
  106. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
  107. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +1 -0
  108. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +4 -0
  109. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +11 -11
  110. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
  111. package/lib/control/gantt/gantt.cjs +1 -0
  112. package/lib/control/grid/grid/grid-control.util.cjs +36 -14
  113. package/lib/control/grid/grid/grid.cjs +8 -3
  114. package/lib/control/grid/grid/grid.css +1 -1
  115. package/lib/control/kanban/kanban.cjs +64 -21
  116. package/lib/control/kanban/kanban.css +1 -1
  117. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.cjs +67 -10
  118. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
  119. package/lib/control/list/list.cjs +97 -12
  120. package/lib/control/list/list.css +1 -1
  121. package/lib/control/medit-view-panel/medit-view-panel.cjs +36 -29
  122. package/lib/control/medit-view-panel/medit-view-panel.css +1 -1
  123. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +47 -8
  124. package/lib/editor/upload/upload-editor.controller.cjs +43 -1
  125. package/lib/editor/upload/use/use-iview-upload.cjs +9 -2
  126. package/lib/locale/en/index.cjs +11 -3
  127. package/lib/locale/zh-CN/index.cjs +11 -3
  128. package/lib/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.cjs +3384 -0
  129. package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +20 -5
  130. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +280 -0
  131. package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
  132. package/lib/panel-component/panel-button/panel-button.cjs +1 -0
  133. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  134. package/lib/view-engine/calendar-view.engine.cjs +10 -0
  135. package/lib/view-engine/chart-exp-view.engine.cjs +6 -15
  136. package/lib/view-engine/gantt-view.engine.cjs +2 -45
  137. package/lib/view-engine/login-view.engine.cjs +7 -0
  138. package/lib/view-engine/tab-exp-view.engine.cjs +1 -1
  139. package/lib/view-engine/tab-search-view.engine.cjs +4 -2
  140. package/lib/view-engine/tree-view.engine.cjs +39 -11
  141. package/package.json +9 -7
  142. package/dist/index-1hn7qv2s.js +0 -4
  143. package/dist/index-EYFbyMUF.js +0 -1
  144. package/dist/index-kNUznzXY.js +0 -1
  145. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.14_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.41-alpha.17_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
  146. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.14_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.41-alpha.17_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
@@ -45,7 +45,8 @@ const DRTabControl = /* @__PURE__ */ defineComponent({
45
45
  * @description 隐藏编辑项
46
46
  */
47
47
  hideEditItem: {
48
- type: Boolean
48
+ type: Boolean,
49
+ default: void 0
49
50
  }
50
51
  },
51
52
  setup() {
@@ -207,7 +208,8 @@ const DRTabControl = /* @__PURE__ */ defineComponent({
207
208
  "params": this.c.params,
208
209
  "showHeader": this.tabPosition === "flow",
209
210
  "counterData": this.counterData,
210
- "activeTab": this.activeTab
211
+ "activeTab": this.activeTab,
212
+ "controller": this.c
211
213
  }, null);
212
214
  }
213
215
  const moreTab = this.moreItems.find((tab) => tab.tag === this.c.state.activeName) || {};
@@ -264,6 +266,7 @@ const DRTabControl = /* @__PURE__ */ defineComponent({
264
266
  default: () => [isCreated && isCalculatedPermission && this.tabPosition === "top_dropdownlist" ? this.renderDropdownList() : createVNode(resolveComponent("el-tabs"), {
265
267
  "modelValue": this.c.state.activeName,
266
268
  "onUpdate:modelValue": ($event) => this.c.state.activeName = $event,
269
+ "tabPosition": this.tabPosition,
267
270
  "onTabChange": this.handleTabChange
268
271
  }, {
269
272
  default: () => [this.visibleItems.map((tab) => {
@@ -1 +1 @@
1
- .ibiz-flow-drtab{width:100%;height:100%;overflow:auto;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{display:flex;flex-direction:column;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}
1
+ .ibiz-flow-drtab{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{height:100%;overflow:auto}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__tab-item+.ibiz-flow-drtab__tab-item{margin-top:var(--ibiz-spacing-base)}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}.ibiz-flow-drtab.is-enable-anchor{display:flex;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__container{flex:1}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar{display:flex;min-width:200px;padding:var(--ibiz-spacing-base) 0;font-size:var(--ibiz-font-size-regular);background-color:#fff}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topleft{align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomleft{align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topright{flex-direction:row-reverse;align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomright{flex-direction:row-reverse;align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleleft{align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleright{flex-direction:row-reverse;align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-items{width:100%;max-height:100%;overflow:auto}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item{width:100%;height:32px;padding:0 var(--ibiz-spacing-base);line-height:32px;cursor:pointer}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item:hover{color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active{position:relative;color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active::before{position:absolute;top:0;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-color-primary);border-radius:2px}.ibiz-flow-drtab.is-enable-anchor.is-left{flex-direction:row;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}.ibiz-flow-drtab.is-enable-anchor.is-right{flex-direction:row-reverse;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}
@@ -1,5 +1,6 @@
1
- import { PropType } from 'vue';
1
+ import { PropType, Ref } from 'vue';
2
2
  import './flow-drtab.scss';
3
+ import { DRTabController } from './drtab.controller';
3
4
  export declare const FlowDrtab: import("vue").DefineComponent<{
4
5
  pagesstate: {
5
6
  type: PropType<import("@ibiz-template/core").IApiData[]>;
@@ -29,14 +30,23 @@ export declare const FlowDrtab: import("vue").DefineComponent<{
29
30
  type: PropType<import("@ibiz-template/core").IApiData>;
30
31
  default: () => void;
31
32
  };
33
+ controller: {
34
+ type: PropType<DRTabController>;
35
+ default: () => void;
36
+ };
32
37
  }, {
38
+ c: DRTabController;
33
39
  ns: import("@ibiz-template/core").Namespace;
34
40
  uuid: string;
35
- onViewMounted: () => void;
41
+ navbarpos: Ref<any>;
42
+ onViewMounted: (item: IData) => void;
43
+ navBarWidth: Ref<string | number>;
36
44
  calcStyle: (tag: string) => {
37
45
  height: string;
38
46
  width: string;
39
47
  } | undefined;
48
+ renderAnchorBar: () => JSX.Element | undefined;
49
+ handleScroll: () => void;
40
50
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
41
51
  pagesstate: {
42
52
  type: PropType<import("@ibiz-template/core").IApiData[]>;
@@ -66,9 +76,14 @@ export declare const FlowDrtab: import("vue").DefineComponent<{
66
76
  type: PropType<import("@ibiz-template/core").IApiData>;
67
77
  default: () => void;
68
78
  };
79
+ controller: {
80
+ type: PropType<DRTabController>;
81
+ default: () => void;
82
+ };
69
83
  }>>, {
70
84
  params: import("@ibiz-template/core").IApiParams;
71
85
  context: import("@ibiz-template/core").IApiContext;
86
+ controller: DRTabController;
72
87
  counterData: import("@ibiz-template/core").IApiData;
73
88
  activeTab: import("@ibiz-template/core").IApiData;
74
89
  pagesstate: import("@ibiz-template/core").IApiData[];
@@ -1,4 +1,4 @@
1
- import { ref, watch, resolveComponent, createVNode, h, defineComponent } from 'vue';
1
+ import { ref, computed, watch, nextTick, onActivated, createVNode, resolveComponent, h, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { isNil } from 'ramda';
4
4
  import { createUUID } from 'qx-util';
@@ -39,27 +39,138 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
39
39
  type: Object,
40
40
  default: () => {
41
41
  }
42
+ },
43
+ controller: {
44
+ type: Object,
45
+ default: () => {
46
+ }
42
47
  }
43
48
  },
44
49
  setup(props) {
45
50
  const ns = useNamespace("flow-drtab");
46
51
  const uuid = createUUID();
52
+ const c = props.controller;
47
53
  const navtag = ref("");
48
54
  const viewList = ref([]);
55
+ const navbarpos = ref();
56
+ const navBarWidth = ref(200);
57
+ const visibleViews = [];
58
+ const scrollTop = ref(0);
59
+ const navbarRef = ref();
60
+ const completedViews = ref(0);
61
+ const tempTimer = ref();
62
+ const tempTarget = ref();
63
+ navbarpos.value = c.navbarpos;
64
+ navBarWidth.value = c.navbarwidth;
65
+ const allVisibleViews = computed(() => {
66
+ return props.pagesstate.filter((item) => {
67
+ const target = props.drtabpages.find((page) => {
68
+ return page.id === item.tag;
69
+ });
70
+ return target && !item.hidden;
71
+ }).length;
72
+ });
73
+ const allNavTags = computed(() => {
74
+ if (props.pagesstate) {
75
+ return props.pagesstate.map((item) => {
76
+ const target = props.drtabpages.find((page) => {
77
+ return page.id === item.tag;
78
+ });
79
+ return "".concat(target == null ? void 0 : target.appViewId, "_").concat(item.tag);
80
+ });
81
+ }
82
+ return [];
83
+ });
49
84
  const scrollToTarget = () => {
50
85
  if (navtag.value) {
51
- const el = document.getElementById("".concat(uuid, "_").concat(navtag.value));
86
+ const el = document.getElementById("".concat(navtag.value));
52
87
  if (el) {
53
88
  el.scrollIntoView();
54
89
  }
55
90
  }
56
91
  };
57
- const onViewMounted = () => {
58
- scrollToTarget();
92
+ const isFullyVisible = (element, container) => {
93
+ const containerRect = container.getBoundingClientRect();
94
+ const elementRect = element.getBoundingClientRect();
95
+ return (
96
+ // 元素顶部不超出容器顶部
97
+ elementRect.top >= containerRect.top && // 元素底部不超出容器底部
98
+ elementRect.bottom <= containerRect.bottom && // 元素左侧不超出容器左侧
99
+ elementRect.left >= containerRect.left && // 元素右侧不超出容器右侧
100
+ elementRect.right <= containerRect.right
101
+ );
102
+ };
103
+ const scrollToTargetNavItem = () => {
104
+ const anchor = document.getElementById("navbar_".concat(navtag.value));
105
+ if (anchor && navbarRef.value && !isFullyVisible(anchor, navbarRef.value)) {
106
+ anchor.scrollIntoView({
107
+ behavior: "smooth"
108
+ });
109
+ }
110
+ };
111
+ const computeSelectItem = () => {
112
+ if (visibleViews.length > 0) {
113
+ navtag.value = visibleViews[0];
114
+ }
115
+ if (tempTarget.value) {
116
+ clearTimeout(tempTimer.value);
117
+ tempTimer.value = setTimeout(() => {
118
+ navtag.value = tempTarget.value;
119
+ scrollToTargetNavItem();
120
+ tempTarget.value = "";
121
+ }, 200);
122
+ } else {
123
+ scrollToTargetNavItem();
124
+ }
125
+ };
126
+ const observer = new IntersectionObserver((entries) => {
127
+ if (allVisibleViews.value !== completedViews.value) {
128
+ return;
129
+ }
130
+ entries.forEach((entry) => {
131
+ var _a, _b;
132
+ if (entry.isIntersecting) {
133
+ if (entry.target && entry.target.id) {
134
+ if (visibleViews.length > 0) {
135
+ const curIndex = (_a = allNavTags.value) == null ? void 0 : _a.findIndex((tag) => tag === entry.target.id);
136
+ const index = (_b = allNavTags.value) == null ? void 0 : _b.findIndex((tag) => tag === visibleViews[0]);
137
+ if (curIndex < index) {
138
+ visibleViews.unshift(entry.target.id);
139
+ } else {
140
+ visibleViews.push(entry.target.id);
141
+ }
142
+ } else {
143
+ visibleViews.push(entry.target.id);
144
+ }
145
+ }
146
+ } else if (entry.target && entry.target.id) {
147
+ const index = visibleViews.indexOf(entry.target.id);
148
+ if (index >= 0) {
149
+ visibleViews.splice(index, 1);
150
+ }
151
+ }
152
+ });
153
+ computeSelectItem();
154
+ });
155
+ const onViewMounted = (item) => {
156
+ const target = props.drtabpages.find((page) => {
157
+ return page.id === item.tag;
158
+ });
159
+ completedViews.value += 1;
160
+ if (completedViews.value === allVisibleViews.value && !navtag.value) {
161
+ navtag.value = "".concat(target == null ? void 0 : target.appViewId, "_").concat(props.pagesstate[0].tag);
162
+ }
163
+ const el = document.getElementById("".concat(target == null ? void 0 : target.appViewId, "_").concat(item.tag));
164
+ if (el) {
165
+ observer.observe(el);
166
+ }
59
167
  };
60
168
  watch(() => props.activeTab, (newVal, oldVal) => {
61
169
  if (newVal && newVal.tag !== (oldVal == null ? void 0 : oldVal.tag)) {
62
- navtag.value = newVal.tag;
170
+ const target = props.drtabpages.find((page) => {
171
+ return page.id === newVal.tag;
172
+ });
173
+ navtag.value = "".concat(target == null ? void 0 : target.appViewId, "_").concat(newVal.tag);
63
174
  scrollToTarget();
64
175
  }
65
176
  }, {
@@ -83,6 +194,14 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
83
194
  deep: true,
84
195
  immediate: true
85
196
  });
197
+ onActivated(() => {
198
+ nextTick(() => {
199
+ const el = document.getElementById("".concat(uuid));
200
+ if (el) {
201
+ el.scrollTop = scrollTop.value;
202
+ }
203
+ });
204
+ });
86
205
  const calcStyle = (tag) => {
87
206
  const target = viewList.value.find((item) => {
88
207
  return item.id === tag;
@@ -94,14 +213,68 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
94
213
  };
95
214
  }
96
215
  };
216
+ const onClickBar = (item) => {
217
+ const target = props.drtabpages.find((page) => {
218
+ return page.id === item.tag;
219
+ });
220
+ tempTarget.value = "".concat(target == null ? void 0 : target.appViewId, "_").concat(item.tag);
221
+ const el = document.getElementById("".concat(target == null ? void 0 : target.appViewId, "_").concat(item.tag));
222
+ if (el) {
223
+ el.scrollIntoView({
224
+ behavior: "smooth"
225
+ });
226
+ if (visibleViews.includes(tempTarget.value)) {
227
+ navtag.value = tempTarget.value;
228
+ }
229
+ }
230
+ };
231
+ const renderAnchorBar = () => {
232
+ if (c.enableAnchor) {
233
+ return createVNode("div", {
234
+ "class": [ns.e("anchor-bar"), ns.is(navbarpos.value, true)],
235
+ "style": {
236
+ width: "".concat(navBarWidth.value, "px")
237
+ }
238
+ }, [createVNode("div", {
239
+ "class": [ns.e("anchor-items"), ns.is(navbarpos.value)],
240
+ "ref": (el) => {
241
+ navbarRef.value = el;
242
+ }
243
+ }, [props.pagesstate.map((item) => {
244
+ const target = props.drtabpages.find((page) => {
245
+ return page.id === item.tag;
246
+ });
247
+ if (!target || item.hidden) {
248
+ return null;
249
+ }
250
+ return createVNode("div", {
251
+ "class": [ns.e("anchor-item"), ns.is("active", "".concat(target == null ? void 0 : target.appViewId, "_").concat(item.tag) === navtag.value)],
252
+ "id": "navbar_".concat(target.appViewId, "_").concat(item.tag),
253
+ "onClick": () => onClickBar(item)
254
+ }, [item.caption]);
255
+ })])]);
256
+ }
257
+ };
258
+ const handleScroll = () => {
259
+ const el = document.getElementById("".concat(uuid));
260
+ if (el) {
261
+ scrollTop.value = el.scrollTop;
262
+ }
263
+ };
97
264
  return {
265
+ c,
98
266
  ns,
99
267
  uuid,
268
+ navbarpos,
100
269
  onViewMounted,
101
- calcStyle
270
+ navBarWidth,
271
+ calcStyle,
272
+ renderAnchorBar,
273
+ handleScroll
102
274
  };
103
275
  },
104
276
  render() {
277
+ var _a, _b;
105
278
  const tabs = this.pagesstate.map((item) => {
106
279
  const counterNum = item.counterId ? this.counterData[item.counterId] : void 0;
107
280
  const viewShell = resolveComponent("IBizViewShell");
@@ -112,7 +285,7 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
112
285
  return null;
113
286
  }
114
287
  return createVNode("div", {
115
- "id": "".concat(this.uuid, "_").concat(item.tag),
288
+ "id": "".concat(target.appViewId, "_").concat(item.tag),
116
289
  "class": this.ns.e("tab-item")
117
290
  }, [this.showHeader && createVNode("div", {
118
291
  "class": this.ns.em("tab-item", "label")
@@ -132,13 +305,18 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
132
305
  context: this.context,
133
306
  params: this.params,
134
307
  viewId: target.appViewId,
135
- onMounted: this.onViewMounted
308
+ onMounted: () => this.onViewMounted(item)
136
309
  })])]);
137
310
  });
138
311
  return createVNode("div", {
139
- "class": this.ns.b()
140
- }, [createVNode("div", {
141
- "class": this.ns.e("container")
312
+ "class": [this.ns.b(), this.ns.m(this.navbarpos), this.ns.is("left", (_a = this.navbarpos) == null ? void 0 : _a.includes("left")), this.ns.is("right", (_b = this.navbarpos) == null ? void 0 : _b.includes("right")), this.ns.is("enable-anchor", this.c.enableAnchor)],
313
+ "onScroll": this.handleScroll,
314
+ "id": this.uuid
315
+ }, [this.renderAnchorBar(), createVNode("div", {
316
+ "class": this.ns.e("container"),
317
+ "style": {
318
+ "--navbarwidth": "".concat(this.navBarWidth, "px")
319
+ }
142
320
  }, [tabs])]);
143
321
  }
144
322
  });
@@ -17,6 +17,7 @@ export declare const IBizDRTabControl: import("@ibiz-template/vue3-util").TypeWi
17
17
  };
18
18
  hideEditItem: {
19
19
  type: BooleanConstructor;
20
+ default: undefined;
20
21
  };
21
22
  }, {
22
23
  c: import("./drtab.controller").DRTabController;
@@ -48,6 +49,7 @@ export declare const IBizDRTabControl: import("@ibiz-template/vue3-util").TypeWi
48
49
  };
49
50
  hideEditItem: {
50
51
  type: BooleanConstructor;
52
+ default: undefined;
51
53
  };
52
54
  }>>, {
53
55
  params: import("@ibiz-template/core").IApiParams;
@@ -60,6 +60,14 @@ const EditFormControl = /* @__PURE__ */ defineComponent({
60
60
  loadDefault: {
61
61
  type: Boolean,
62
62
  default: true
63
+ },
64
+ /**
65
+ * @description 简单模式下传入的数据索引
66
+ * @default false
67
+ */
68
+ simpleDataIndex: {
69
+ type: Number,
70
+ required: false
63
71
  }
64
72
  },
65
73
  setup(props) {
@@ -71,6 +79,9 @@ const EditFormControl = /* @__PURE__ */ defineComponent({
71
79
  const anchorList = ref([]);
72
80
  const anchorTargetRef = ref();
73
81
  if (props.isSimple) {
82
+ if (props.simpleDataIndex || props.simpleDataIndex === 0) {
83
+ c.setSimpleDataIndex(props.simpleDataIndex);
84
+ }
74
85
  c.evt.on("onMounted", () => {
75
86
  c.setSimpleData(props.data || {});
76
87
  });
@@ -66,13 +66,17 @@ const FormItem = /* @__PURE__ */ defineComponent({
66
66
  } = this.c.model.editor || {};
67
67
  editor = editorItems.map((item, index) => {
68
68
  const controller = this.c.form.details[item.id];
69
- return [createVNode(CompositeFormItem, {
70
- "modelData": controller.model,
71
- "controller": controller,
72
- "attrs": this.attrs
73
- }, null), editorItems.length - 1 > index && createVNode("span", {
74
- "class": this.ns.e("composite-separator")
75
- }, [createTextVNode("-")])];
69
+ return [
70
+ createVNode(CompositeFormItem, {
71
+ "modelData": controller.model,
72
+ "controller": controller,
73
+ "attrs": this.attrs
74
+ }, null),
75
+ // feat:复合表单项样式2会在编辑器之间加`-`分隔符
76
+ editorItems.length - 1 > index && this.c.model.detailStyle === "STYLE2" && createVNode("span", {
77
+ "class": this.ns.e("composite-separator")
78
+ }, [createTextVNode("-")])
79
+ ];
76
80
  });
77
81
  } else {
78
82
  const editMode = (_d = (_c = (_b = this.c.editor) == null ? void 0 : _b.model) == null ? void 0 : _c.editorParams) == null ? void 0 : _d.editMode;
@@ -1 +1 @@
1
- .ibiz-repeater-grid{position:relative;width:100%;--ibiz-grid-column-justify-content:center}.ibiz-repeater-grid__add-btn{position:absolute;top:0;right:0;z-index:2}.ibiz-repeater-grid .el-table__row:hover .ibiz-repeater-grid-index__text:last-child{display:none}.ibiz-repeater-grid .el-table__row:hover .ibiz-repeater-grid-index__remove{display:inline}.ibiz-repeater-grid .ibiz-repeater-grid-index__remove.el-button.el-button--danger{--el-button-text-color:var(--ibiz-color-danger)}.ibiz-repeater-grid-index .cell{padding:var(--ibiz-spacing-extra-tight)}.ibiz-repeater-grid-index__remove{display:none}
1
+ .ibiz-repeater-grid{position:relative;width:100%;--ibiz-grid-column-justify-content:center}.ibiz-repeater-grid__add-btn{position:absolute;top:0;right:0;z-index:2}.ibiz-repeater-grid__drag-icon{cursor:move}.ibiz-repeater-grid__sortable-ghost{opacity:.5}.ibiz-repeater-grid .el-table__row{height:57px}.ibiz-repeater-grid .el-table__row:hover .ibiz-repeater-grid-index__text:last-child{display:none}.ibiz-repeater-grid .el-table__row:hover .ibiz-repeater-grid-index__remove{display:inline}.ibiz-repeater-grid .ibiz-repeater-grid-index__remove.el-button.el-button--danger{--el-button-text-color:var(--ibiz-color-danger)}.ibiz-repeater-grid-index .cell{padding:var(--ibiz-spacing-extra-tight)}.ibiz-repeater-grid-index__remove{display:none}
@@ -1,5 +1,7 @@
1
- import { isVNode, reactive, watch, resolveComponent, createVNode, toRaw, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, reactive, watch, nextTick, onMounted, resolveComponent, createVNode, toRaw, h, defineComponent } from 'vue';
2
+ import Sortable from '../../../../../../node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.mjs';
2
3
  import { FormMDCtrlRepeaterController, EditFormController, ControlVO } from '@ibiz-template/runtime';
4
+ import { createUUID } from 'qx-util';
3
5
  import { useNamespace, useCtx } from '@ibiz-template/vue3-util';
4
6
  import { recursiveIterate, showTitle } from '@ibiz-template/core';
5
7
  import './repeater-grid.css';
@@ -24,9 +26,14 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
24
26
  }) {
25
27
  const ns = useNamespace("repeater-grid");
26
28
  const formItems = [];
29
+ const tableRef = ref();
30
+ const tableKey = ref(createUUID());
27
31
  recursiveIterate(props.controller.repeatedForm, (item) => {
32
+ var _a;
28
33
  if (item.detailType === "FORMITEM") {
29
- formItems.push(item);
34
+ if (((_a = item.editor) == null ? void 0 : _a.editorType) !== "HIDDEN") {
35
+ formItems.push(item);
36
+ }
30
37
  }
31
38
  }, {
32
39
  childrenFields: ["deformPages", "deformTabPages", "deformDetails"]
@@ -82,6 +89,27 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
82
89
  immediate: true,
83
90
  deep: true
84
91
  });
92
+ const rowDrop = () => {
93
+ var _a, _b;
94
+ const wrapper = (_b = (_a = tableRef.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.querySelector(".el-table__body-wrapper tbody");
95
+ if (!wrapper || !props.controller.enableSort)
96
+ return;
97
+ Sortable.create(wrapper, {
98
+ animation: 150,
99
+ handle: ".".concat(ns.e("drag-icon")),
100
+ ghostClass: "".concat(ns.e("sortable-ghost")),
101
+ onEnd({
102
+ newIndex,
103
+ oldIndex
104
+ }) {
105
+ props.controller.dragChange(oldIndex, newIndex);
106
+ tableKey.value = createUUID();
107
+ }
108
+ });
109
+ };
110
+ onMounted(() => {
111
+ nextTick(() => rowDrop());
112
+ });
85
113
  const renderRemoveBtn = (index) => {
86
114
  let _slot2;
87
115
  if (!props.controller.enableDelete) {
@@ -117,6 +145,8 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
117
145
  };
118
146
  return {
119
147
  ns,
148
+ tableRef,
149
+ tableKey,
120
150
  formItems,
121
151
  formControllers,
122
152
  renderRemoveBtn
@@ -134,16 +164,40 @@ const RepeaterGrid = /* @__PURE__ */ defineComponent({
134
164
  }, _isSlot(_slot3 = ibiz.i18n.t("app.add")) ? _slot3 : {
135
165
  default: () => [_slot3]
136
166
  }), createVNode(resolveComponent("el-table"), {
137
- "class": this.ns.e("table"),
167
+ "ref": "tableRef",
168
+ "key": this.tableKey,
138
169
  "show-header": true,
170
+ "class": this.ns.e("table"),
139
171
  "data": this.controller.value,
140
172
  "cell-class-name": ({
141
173
  columnIndex
142
174
  }) => {
143
- return columnIndex === 0 ? this.ns.b("index") : "";
175
+ const shouldShowIndex = this.controller.enableSort ? columnIndex === 1 : columnIndex === 0;
176
+ return shouldShowIndex ? this.ns.b("index") : "";
144
177
  }
145
178
  }, {
146
- default: () => [createVNode(resolveComponent("el-table-column"), {
179
+ default: () => [this.controller.enableSort && createVNode(resolveComponent("el-table-column"), {
180
+ "width": 26,
181
+ "type": "default"
182
+ }, {
183
+ default: () => createVNode("svg", {
184
+ "viewBox": "0 0 16 16",
185
+ "xmlns": "http://www.w3.org/2000/svg",
186
+ "height": "1em",
187
+ "width": "1em",
188
+ "class": this.ns.e("drag-icon"),
189
+ "preserveAspectRatio": "xMidYMid meet",
190
+ "focusable": "false"
191
+ }, [createVNode("g", {
192
+ "stroke-width": "1",
193
+ "fill-rule": "evenodd"
194
+ }, [createVNode("g", {
195
+ "transform": "translate(5 1)",
196
+ "fill-rule": "nonzero"
197
+ }, [createVNode("path", {
198
+ "d": "M1 2a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM1 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm-4 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm4 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"
199
+ }, null)])])])
200
+ }), createVNode(resolveComponent("el-table-column"), {
147
201
  "type": "index",
148
202
  "width": 66,
149
203
  "align": "center"
@@ -59,6 +59,7 @@ const RepeaterMultiForm = /* @__PURE__ */ defineComponent({
59
59
  return createVNode(RepeaterSingleForm, {
60
60
  "key": index,
61
61
  "data": data,
62
+ "simpleDataIndex": index,
62
63
  "controller": this.controller,
63
64
  "onChange": (value) => {
64
65
  this.onValueChange(value, index);
@@ -10,6 +10,9 @@ export declare const RepeaterSingleForm: import("vue").DefineComponent<{
10
10
  type: typeof FormMDCtrlRepeaterController;
11
11
  required: true;
12
12
  };
13
+ simpleDataIndex: {
14
+ type: NumberConstructor;
15
+ };
13
16
  }, {
14
17
  ns: import("@ibiz-template/core").Namespace;
15
18
  onFormDataChange: (event: EventBase) => void;
@@ -26,6 +29,9 @@ export declare const RepeaterSingleForm: import("vue").DefineComponent<{
26
29
  type: typeof FormMDCtrlRepeaterController;
27
30
  required: true;
28
31
  };
32
+ simpleDataIndex: {
33
+ type: NumberConstructor;
34
+ };
29
35
  }>> & {
30
36
  onChange?: ((_value: import("@ibiz-template/core").IApiData) => any) | undefined;
31
37
  onCreated?: ((_value: EventBase) => any) | undefined;
@@ -15,6 +15,9 @@ const RepeaterSingleForm = /* @__PURE__ */ defineComponent({
15
15
  controller: {
16
16
  type: FormMDCtrlRepeaterController,
17
17
  required: true
18
+ },
19
+ simpleDataIndex: {
20
+ type: Number
18
21
  }
19
22
  },
20
23
  emits: {
@@ -51,6 +54,7 @@ const RepeaterSingleForm = /* @__PURE__ */ defineComponent({
51
54
  "params": this.controller.params,
52
55
  "modelData": this.controller.repeatedForm,
53
56
  "isSimple": true,
57
+ "simpleDataIndex": this.simpleDataIndex,
54
58
  "data": this.data,
55
59
  "onFormDataChange": this.onFormDataChange,
56
60
  "onCreated": this.onCreated
@@ -1 +1 @@
1
- .ibiz-mdctrl-container-item{--ibiz-mdctrl-container-item-drag-chosen-color:rgba(var(--ibiz-grey-1), 1);display:flex}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item__icon-drag{display:flex;align-items:center;min-height:var(--ibiz-height-control-default);max-height:var(--ibiz-height-control-default);margin-top:var(--ibiz-spacing-tight);cursor:move}.ibiz-mdctrl-container-item__icon-drag>svg{display:flex;align-items:center;justify-content:center;width:var(--ibiz-spacing-base);height:var(--ibiz-spacing-base);fill:var(--ibiz-color-text-3)}.ibiz-mdctrl-container-item.is-drag-chosen{background-color:var(--ibiz-mdctrl-container-item-drag-chosen-color)}.ibiz-mdctrl-container-item-actions{flex-shrink:0;width:80px;text-align:center}.ibiz-mdctrl-container-item-actions .el-button+.el-button{margin-left:var(--ibiz-spacing-none)}.ibiz-mdctrl-container-item-actions__btn{margin-top:var(--ibiz-spacing-tight)}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}.ibiz-mdctrl-container-style2-item-actions{flex:1;width:100%}.ibiz-mdctrl-container-style2-item-actions .el-button+.el-button{margin-left:var(--ibiz-spacing-none)}.ibiz-mdctrl-container-style2-item-actions__btn{margin-top:var(--ibiz-spacing-tight)}.ibiz-mdctrl-container-style2-item-actions__create{width:100%;color:var(--ibiz-color-primary);background-color:transparent;border:1px dashed var(--ibiz-color-border);border-width:1px!important}.ibiz-mdctrl-container-style2-item-actions__create ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-mdctrl-container-style2-item-actions__create:focus{color:var(--ibiz-color-primary-hover);background-color:transparent;border:1px dashed var(--ibiz-color-primary-hover)}.ibiz-mdctrl-container-style2-item-actions__create:hover{color:var(--ibiz-color-primary-hover);background-color:transparent;border:1px dashed var(--ibiz-color-primary-hover)}.ibiz-mdctrl-container-style2-item-actions__remove{font-size:var(--ibiz-font-size-heder-6)}
1
+ .ibiz-mdctrl-container-item{--ibiz-mdctrl-container-item-drag-chosen-color:rgba(var(--ibiz-grey-1), 1);display:flex}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item__left{flex-shrink:0}.ibiz-mdctrl-container-item__right{flex-shrink:0;width:60px;margin-left:var(--ibiz-spacing-tight)}.ibiz-mdctrl-container-item__icon-drag{display:flex;align-items:center;min-height:var(--ibiz-height-control-default);max-height:var(--ibiz-height-control-default);margin-top:var(--ibiz-spacing-tight);cursor:move}.ibiz-mdctrl-container-item__icon-drag>svg{display:flex;align-items:center;justify-content:center;width:var(--ibiz-spacing-base);height:var(--ibiz-spacing-base);fill:var(--ibiz-color-text-3)}.ibiz-mdctrl-container-item.is-drag-chosen{background-color:var(--ibiz-mdctrl-container-item-drag-chosen-color)}.ibiz-mdctrl-container-item-actions{flex-shrink:0;width:80px;text-align:center}.ibiz-mdctrl-container-item-actions .el-button+.el-button{margin-left:var(--ibiz-spacing-none)}.ibiz-mdctrl-container-item-actions__btn{margin-top:var(--ibiz-spacing-tight)}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}.ibiz-mdctrl-container-style2-item-actions{flex:1;width:100%}.ibiz-mdctrl-container-style2-item-actions .el-button+.el-button{margin-left:var(--ibiz-spacing-none)}.ibiz-mdctrl-container-style2-item-actions__btn{margin-top:var(--ibiz-spacing-tight)}.ibiz-mdctrl-container-style2-item-actions__create{width:100%;color:var(--ibiz-color-primary);background-color:transparent;border:1px dashed var(--ibiz-color-border);border-width:1px!important}.ibiz-mdctrl-container-style2-item-actions__create ion-icon{margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-mdctrl-container-style2-item-actions__create:focus{color:var(--ibiz-color-primary-hover);background-color:transparent;border:1px dashed var(--ibiz-color-primary-hover)}.ibiz-mdctrl-container-style2-item-actions__create:hover{color:var(--ibiz-color-primary-hover);background-color:transparent;border:1px dashed var(--ibiz-color-primary-hover)}.ibiz-mdctrl-container-style2-item-actions__remove{font-size:var(--ibiz-font-size-heder-6)}
@@ -88,9 +88,8 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
88
88
  };
89
89
  const renderRemoveBtn = (item, index) => {
90
90
  let _slot3;
91
- if (!props.enableDelete) {
91
+ if (!props.enableDelete)
92
92
  return null;
93
- }
94
93
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
95
94
  return createVNode(resolveComponent("el-popconfirm"), {
96
95
  "title": showTitle(ibiz.i18n.t("control.form.mdCtrlContainer.promptInformation")),
@@ -130,9 +129,8 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
130
129
  };
131
130
  const renderStyle2RemoveBtn = (item, index) => {
132
131
  let _slot4;
133
- if (!props.enableDelete) {
132
+ if (!props.enableDelete)
134
133
  return null;
135
- }
136
134
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
137
135
  return createVNode(resolveComponent("el-popconfirm"), {
138
136
  "title": showTitle(ibiz.i18n.t("control.form.mdCtrlContainer.promptInformation")),
@@ -168,9 +166,11 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
168
166
  }) : createVNode("div", null, [ibiz.i18n.t("control.form.mdCtrlContainer.noSlot")]);
169
167
  return createVNode("div", {
170
168
  "class": ns.b("item")
171
- }, [props.enableSort && renderDragBtn(), formComponent, showActions.value && createVNode("div", {
172
- "class": ns.b("item-actions")
173
- }, [index === 0 && props.enableCreate && renderAddBtn(), renderRemoveBtn(item, index)])]);
169
+ }, [createVNode("div", {
170
+ "class": ns.be("item", "left")
171
+ }, [props.enableSort && renderDragBtn()]), formComponent, renderRemoveBtn(item, index), createVNode("div", {
172
+ "class": ns.be("item", "right")
173
+ }, [index === 0 && props.enableCreate && renderAddBtn()])]);
174
174
  };
175
175
  return {
176
176
  ns,
@@ -212,13 +212,13 @@ const MDCtrlContainer = /* @__PURE__ */ defineComponent({
212
212
  let defaultContent;
213
213
  if ((_b = this.items) == null ? void 0 : _b.length) {
214
214
  defaultContent = this.enableSort ? createVNode(draggable, {
215
+ "itemKey": "id",
215
216
  "ref": "container",
216
- "class": [this.ns.e("drag")],
217
- "chosenClass": this.ns.is("drag-chosen", true),
218
217
  "list": this.dragItems,
219
- "itemKey": "id",
218
+ "class": [this.ns.e("drag")],
220
219
  "handle": ".".concat(this.dragClssName),
221
- "onChange": this.handleDragChange
220
+ "onChange": this.handleDragChange,
221
+ "chosenClass": this.ns.is("drag-chosen", true)
222
222
  }, {
223
223
  item: ({
224
224
  element,
@@ -577,6 +577,7 @@ const GanttControl = /* @__PURE__ */ defineComponent({
577
577
  "leaf": "_leaf",
578
578
  "expand-key": "_defaultExpand",
579
579
  "locale": this.locale,
580
+ "unit": this.c.state.unit,
580
581
  "draggable": {
581
582
  level: "all",
582
583
  draggable: true