@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
@@ -1 +1 @@
1
- .ibiz-control-list-item{flex-grow:1;min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer;background-color:var(--ibiz-control-list-item-bg-color)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);--ibiz-control-list-item-bg-color:unset;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-list__nav-icon{position:absolute;top:18px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-list__load-more{text-align:center}.ibiz-control-list__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-control-list-load-more-color);cursor:pointer}.ibiz-control-list__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-list__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__load-more-button{padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-content__batchtoolbar{margin:var(--ibiz-spacing-tight) 0}.ibiz-control-list-content.is-show-underLine .ibiz-control-list-scroll-item{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-control-list-content .ibiz-row-detail:last-of-type .ibiz-control-list-scroll-item{border-bottom:none}.ibiz-control-list-scroll{height:100%;overflow:auto}.ibiz-control-list-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%}.ibiz-control-list-scroll-item{display:flex;align-items:center}.ibiz-control-list-scroll-item__checkbox{flex-shrink:0;margin-left:var(--ibiz-spacing-tight)}.ibiz-control-list-scroll-item__icon{flex-shrink:0;margin-left:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list-scroll-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-scroll-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list-group-style2{--ibiz-control-list-group-style2-color:var(--ibiz-color-disabled-text)}.ibiz-control-list-group-style2__header{display:flex;align-items:center;justify-content:center;width:100%}.ibiz-control-list-group-style2__header--title{padding:0 var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-control-list-group-style2-color)}.ibiz-control-list-group-style2__header::after,.ibiz-control-list-group-style2__header::before{display:block;flex:1;height:1px;margin-top:1px;content:"";border-top:1px var(--ibiz-color-border) solid;transform:translateY(-50%)}
1
+ .ibiz-control-list-item{flex-grow:1;min-height:var(--ibiz-control-list-item-height);padding:var(--ibiz-control-list-padding);font-weight:var(--ibiz-control-list-font-weight);color:var(--ibiz-control-list-text-color);cursor:pointer;background-color:var(--ibiz-control-list-item-bg-color)}.ibiz-control-list-item__right{padding:0 var(--ibiz-spacing-extra-tight)}.ibiz-control-list-item__right--actions{display:flex;justify-content:center}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item{margin:0}.ibiz-control-list-item__right--actions .ibiz-action-toolbar__item--label.is-has-caption{margin:0}.ibiz-control-list-item:has(.ibiz-control-list-item__right){display:flex;justify-content:space-between}.ibiz-control-list-item:has(.ibiz-control-list-item__right) .ibiz-control-list-item__caption{flex:1}.ibiz-control-list-item__new{display:flex;align-items:center;justify-content:center;margin-top:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-3);border:2px dashed var(--ibiz-color-border)}.ibiz-control-list{--ibiz-control-list-text-color:var(--ibiz-color-text-0);--ibiz-control-list-load-more-color:var(--ibiz-color-text-2);--ibiz-control-list-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-control-list-active-bg-color:var(--ibiz-color-fill-2);--ibiz-control-list-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-list-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-tight);--ibiz-control-list-item-bg-color:unset;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;position:relative;height:100%}.ibiz-control-list__drag-icon{cursor:move;visibility:hidden}.ibiz-control-list__nav-icon{position:absolute;top:18px;right:10px;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-list__load-more{text-align:center}.ibiz-control-list__load-more i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-control-list-load-more-color);cursor:pointer}.ibiz-control-list__load-more i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__collapse-expand-icon{width:calc(100% - var(--ibiz-spacing-base-tight));text-align:center}.ibiz-control-list__collapse-expand-icon i{font-size:var(--ibiz-font-size-header-3);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list__collapse-expand-icon i:hover{color:var(--ibiz-color-primary-light-hover)}.ibiz-control-list__load-more-button{padding:var(--ibiz-control-list-padding);text-align:center}.ibiz-control-list__quicktoolbar{display:flex;justify-content:center;width:100%}.ibiz-control-list .ibiz-control-list-content{flex-grow:1}.ibiz-control-list-content__batchtoolbar{margin:var(--ibiz-spacing-tight) 0}.ibiz-control-list-content.is-show-underLine .ibiz-control-list-scroll-item{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-control-list-content .ibiz-row-detail:last-of-type .ibiz-control-list-scroll-item{border-bottom:none}.ibiz-control-list-scroll{height:100%;overflow:auto}.ibiz-control-list-group-content__item-header{display:flex;align-items:center;justify-content:space-between;width:100%}.ibiz-control-list-scroll-item{display:flex;align-items:center}.ibiz-control-list-scroll-item__checkbox{flex-shrink:0;margin-left:var(--ibiz-spacing-tight)}.ibiz-control-list-scroll-item__icon{flex-shrink:0;margin-left:var(--ibiz-spacing-tight);color:var(--ibiz-color-text-2);cursor:pointer}.ibiz-control-list-scroll-item:hover{background-color:var(--ibiz-control-list-hover-bg-color)}.ibiz-control-list-scroll-item:hover .ibiz-control-list__drag-icon{visibility:visible}.ibiz-control-list-scroll-item.is-active{background-color:var(--ibiz-control-list-active-bg-color)}.ibiz-control-list-group-style2{--ibiz-control-list-group-style2-color:var(--ibiz-color-disabled-text)}.ibiz-control-list-group-style2__header{display:flex;align-items:center;justify-content:center;width:100%}.ibiz-control-list-group-style2__header--title{padding:0 var(--ibiz-spacing-tight);font-size:var(--ibiz-font-size-regular);color:var(--ibiz-control-list-group-style2-color)}.ibiz-control-list-group-style2__header::after,.ibiz-control-list-group-style2__header::before{display:block;flex:1;height:1px;margin-top:1px;content:"";border-top:1px var(--ibiz-color-border) solid;transform:translateY(-50%)}
@@ -1,6 +1,6 @@
1
1
  import { PropType, VNode } from 'vue';
2
2
  import { IDEList } from '@ibiz/model-core';
3
- import { IControlProvider, ListController } from '@ibiz-template/runtime';
3
+ import { ListController, IControlProvider } from '@ibiz-template/runtime';
4
4
  import './list.scss';
5
5
  export declare const ListControl: import("vue").DefineComponent<{
6
6
  /**
@@ -3,9 +3,10 @@ import { useControlController, useNamespace, hasEmptyPanelRenderer, IBizCustomRe
3
3
  import { isNil } from 'lodash-es';
4
4
  import { createUUID } from 'qx-util';
5
5
  import { ListController, ControlVO } from '@ibiz-template/runtime';
6
- import './list.css';
6
+ import draggable from 'vuedraggable';
7
7
  import { showTitle } from '@ibiz-template/core';
8
8
  import '../../util/index.mjs';
9
+ import './list.css';
9
10
  import { usePagination } from '../../util/pagination/use-pagination.mjs';
10
11
 
11
12
  "use strict";
@@ -14,6 +15,9 @@ function _isSlot(s) {
14
15
  }
15
16
  const ListControl = /* @__PURE__ */ defineComponent({
16
17
  name: "IBizListControl",
18
+ components: {
19
+ draggable
20
+ },
17
21
  props: {
18
22
  /**
19
23
  * @description 列表模型数据
@@ -114,6 +118,31 @@ const ListControl = /* @__PURE__ */ defineComponent({
114
118
  }
115
119
  }
116
120
  });
121
+ let cacheInfo = null;
122
+ const onDraggableChange = (evt, groupKey) => {
123
+ if (evt.moved) {
124
+ c.onDragChange({
125
+ from: groupKey,
126
+ to: groupKey,
127
+ fromIndex: evt.moved.oldIndex,
128
+ toIndex: evt.moved.newIndex
129
+ });
130
+ }
131
+ if (evt.added) {
132
+ cacheInfo = {
133
+ to: groupKey,
134
+ toIndex: evt.added.newIndex
135
+ };
136
+ }
137
+ if (evt.removed) {
138
+ if (cacheInfo) {
139
+ cacheInfo.from = groupKey;
140
+ cacheInfo.fromIndex = evt.removed.oldIndex;
141
+ c.onDragChange(cacheInfo);
142
+ }
143
+ cacheInfo = null;
144
+ }
145
+ };
117
146
  const initSimpleData = () => {
118
147
  if (!props.data) {
119
148
  return;
@@ -183,13 +212,37 @@ const ListControl = /* @__PURE__ */ defineComponent({
183
212
  "onDblclick": () => c.onDbRowClick(item)
184
213
  }, null);
185
214
  };
215
+ const renderItemAction = (item) => {
216
+ return createVNode(resolveComponent("iBizActionToolbar"), {
217
+ "class": ns.bem("item", "right", "actions"),
218
+ "action-details": c.getOptItemModel(),
219
+ "actions-state": c.state.uaState[item.srfkey],
220
+ "onActionClick": (detail, event) => c.onActionClick(detail, item, event)
221
+ }, null);
222
+ };
223
+ const renderNewItem = (group) => {
224
+ return createVNode("div", {
225
+ "title": ibiz.i18n.t("app.newlyBuild"),
226
+ "class": [ns.b("item"), ns.be("item", "new")],
227
+ "onClick": (event) => {
228
+ c.onClickNew(event, group == null ? void 0 : group.key);
229
+ }
230
+ }, [createVNode("ion-icon", {
231
+ "name": "add-outline"
232
+ }, null)]);
233
+ };
186
234
  const renderDefaultItem = (item) => {
235
+ const actionModel = c.getOptItemModel();
187
236
  return createVNode("div", {
188
237
  "key": item.srfkey,
189
238
  "class": ns.b("item"),
190
239
  "onClick": () => c.onRowClick(item),
191
240
  "onDblclick": () => c.onDbRowClick(item)
192
- }, ["".concat(isNil(item.srfmajortext) ? "" : item.srfmajortext)]);
241
+ }, [createVNode("span", {
242
+ "class": ns.be("item", "caption")
243
+ }, ["".concat(isNil(item.srfmajortext) ? "" : item.srfmajortext)]), actionModel.length ? createVNode("div", {
244
+ "class": ns.be("item", "right")
245
+ }, [renderItemAction(item)]) : null]);
193
246
  };
194
247
  const renderGroupAction = (group) => {
195
248
  if (c.model.groupUIActionGroup && group.groupActionGroupState) {
@@ -234,7 +287,23 @@ const ListControl = /* @__PURE__ */ defineComponent({
234
287
  return createVNode("div", {
235
288
  "style": cardStyle,
236
289
  "class": [ns.b("scroll-item"), ns.is("active", isSelected(item))]
237
- }, [c.model.controlStyle === "EXTVIEW2" && !c.state.singleSelect && createVNode(resolveComponent("el-checkbox"), {
290
+ }, [c.state.draggable && !c.state.readonly && createVNode("svg", {
291
+ "viewBox": "0 0 16 16",
292
+ "xmlns": "http://www.w3.org/2000/svg",
293
+ "height": "1em",
294
+ "width": "1em",
295
+ "class": ns.e("drag-icon"),
296
+ "preserveAspectRatio": "xMidYMid meet",
297
+ "focusable": "false"
298
+ }, [createVNode("g", {
299
+ "stroke-width": "1",
300
+ "fill-rule": "evenodd"
301
+ }, [createVNode("g", {
302
+ "transform": "translate(5 1)",
303
+ "fill-rule": "nonzero"
304
+ }, [createVNode("path", {
305
+ "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"
306
+ }, null)])])]), c.model.controlStyle === "EXTVIEW2" && !c.state.singleSelect && createVNode(resolveComponent("el-checkbox"), {
238
307
  "size": "large",
239
308
  "class": ns.be("scroll-item", "checkbox"),
240
309
  "modelValue": isSelected(item),
@@ -245,16 +314,32 @@ const ListControl = /* @__PURE__ */ defineComponent({
245
314
  "onClick": () => item.__isExpand = !item.__isExpand
246
315
  }, null), panel ? renderPanelItem(item, panel) : renderDefaultItem(item)]);
247
316
  };
248
- const renderListItems = (items) => {
317
+ const renderListItems = (items, group, disabled = true) => {
249
318
  const {
250
319
  navAppViewId
251
320
  } = c.model;
252
- return items.map((item) => {
253
- if (navAppViewId && c.state.showRowDetail)
254
- return createVNode("div", {
255
- "class": ns.b("row-detail")
256
- }, [renderItem(item), item.__isExpand && renderRowDetail(item)]);
257
- return renderItem(item);
321
+ return createVNode(draggable, {
322
+ "itemKey": "srfkey",
323
+ "modelValue": items,
324
+ "group": c.model.id,
325
+ "handle": ".".concat(ns.e("drag-icon")),
326
+ "class": [ns.e("layout-flex"), ns.em("layout-flex", "draggable")],
327
+ "disabled": disabled || c.state.updating || c.state.readonly,
328
+ "onChange": (evt) => onDraggableChange(evt, group == null ? void 0 : group.key)
329
+ }, {
330
+ item: ({
331
+ element
332
+ }) => {
333
+ if (navAppViewId && c.state.showRowDetail)
334
+ return createVNode("div", {
335
+ "class": ns.b("row-detail")
336
+ }, [renderItem(element), element.__isExpand && renderRowDetail(element)]);
337
+ return renderItem(element);
338
+ },
339
+ footer: () => {
340
+ if (c.enableNew && !c.state.readonly)
341
+ return renderNewItem(group);
342
+ }
258
343
  });
259
344
  };
260
345
  const renderGroup = (group) => {
@@ -271,7 +356,7 @@ const ListControl = /* @__PURE__ */ defineComponent({
271
356
  "class": ns.be("group-content", "item-action")
272
357
  }, [renderGroupAction(group)])]);
273
358
  },
274
- default: () => group.children.length > 0 ? renderListItems(group.children) : createVNode("div", {
359
+ default: () => group.children.length > 0 ? renderListItems(group.children, group, !c.state.draggable) : createVNode("div", {
275
360
  "class": ns.bem("group-content", "item", "empty")
276
361
  }, [ibiz.i18n.t("app.noData")])
277
362
  });
@@ -320,7 +405,7 @@ const ListControl = /* @__PURE__ */ defineComponent({
320
405
  "infinite-scroll-disabled": isLodeMoreDisabled.value,
321
406
  "ref": "infiniteScroll",
322
407
  "key": infiniteScrollKey.value
323
- }, [renderListItems(isCollapse.value ? c.state.items.slice(0, c.state.size) : c.state.items)]), [[resolveDirective("infinite-scroll"), () => c.loadMore()]]);
408
+ }, [renderListItems(isCollapse.value ? c.state.items.slice(0, c.state.size) : c.state.items, void 0, !c.enableEditOrder)]), [[resolveDirective("infinite-scroll"), () => c.loadMore()]]);
324
409
  };
325
410
  const upIcon = () => {
326
411
  return createVNode("div", {
@@ -1 +1 @@
1
- .ibiz-control-multieditviewpanel{--ibiz-control-multieditviewpanel-btn-width:150px;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:space-between;width:100%;height:100%}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content{flex-grow:1;width:100%;height:100%;overflow-y:scroll}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item{display:flex;position:relative;width:100%;margin-bottom:var(--ibiz-spacing-tight)}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item>.ibiz-view .ibiz-panel-view-header{padding-right:var(--ibiz-spacing-loose)}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item .ibiz-control-multieditviewpanel-close{display:flex;justify-content:center;position:absolute;top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-tight) + var(--ibiz-height-control-default)/ 2 - .5em);right:0}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item .ibiz-control-multieditviewpanel-close>ion-icon:hover{color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-tabs .el-tabs__nav .el-tabs__item .ibiz-control-multieditviewpanel-tab-label{display:flex;align-items:center;justify-content:space-between}
1
+ .ibiz-control-multieditviewpanel{--ibiz-control-multieditviewpanel-btn-width:150px;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:space-between;width:100%;height:100%}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content{flex-grow:1;width:100%;height:100%;overflow-y:scroll}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item{display:flex;position:relative;width:100%;margin-bottom:var(--ibiz-spacing-tight)}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item>.ibiz-view .ibiz-panel-view-header{padding-right:var(--ibiz-spacing-loose)}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item .ibiz-control-multieditviewpanel-close{display:flex;justify-content:center;position:absolute;top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-tight) + var(--ibiz-height-control-default)/ 2 - .5em);right:0}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-item .ibiz-control-multieditviewpanel-close>ion-icon:hover{color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-tabs .el-tabs__nav .el-tabs__item .ibiz-control-multieditviewpanel-tab-label{display:flex;align-items:center;justify-content:space-between}.ibiz-control-multieditviewpanel .ibiz-control-multieditviewpanel-content .ibiz-control-multieditviewpanel-tabs .el-tabs__new-tab{display:flex;align-items:center;width:auto;height:var(--el-tabs-header-height);margin:0;border:0;border-bottom:2px solid var(--el-border-color-light)}
@@ -1,12 +1,9 @@
1
- import { isVNode, ref, onMounted, onUnmounted, resolveComponent, createVNode, h, defineComponent } from 'vue';
1
+ import { ref, onMounted, onUnmounted, resolveComponent, createVNode, h, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { MEditViewPanelController } from '@ibiz-template/runtime';
4
4
  import './medit-view-panel.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 MEditViewPanelControl = /* @__PURE__ */ defineComponent({
11
8
  name: "IBizMEditViewPanelControl",
12
9
  props: {
@@ -90,37 +87,47 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
90
87
  render() {
91
88
  const viewShell = resolveComponent("IBizViewShell");
92
89
  const renderTabTop = () => {
93
- let _slot;
94
90
  return createVNode(resolveComponent("el-tabs"), {
95
91
  "class": this.ns.b("tabs"),
92
+ "addable": true,
96
93
  "modelValue": this.c.state.activeTab,
97
94
  "onUpdate:modelValue": ($event) => this.c.state.activeTab = $event,
98
- "onTabChange": this.onTabChange
99
- }, _isSlot(_slot = this.c.state.panelUiItems.map((item) => {
100
- return createVNode(resolveComponent("el-tab-pane"), {
101
- "key": item.id + item.srfmajortext,
102
- "name": item.id
103
- }, {
104
- label: () => {
105
- return createVNode("div", {
106
- "class": this.ns.b("tab-label")
107
- }, [createVNode("span", null, [item.srfmajortext]), createVNode("ion-icon", {
108
- "name": "close-outline",
109
- "onClick": (event) => this.handleTabDelete(item, event)
110
- }, null)]);
111
- },
112
- default: () => {
113
- return this.c.state.activeTab === item.id && h(viewShell, {
114
- context: item.context,
115
- params: item.params,
116
- viewId: this.c.model.embeddedAppViewId,
117
- onDataChange: (args) => this.c.onViewDataChange(args, item.id),
118
- onCreated: (event) => this.c.onViewCreated(event, item.id)
95
+ "onTabChange": this.onTabChange,
96
+ "onTabAdd": () => this.c.handleAdd()
97
+ }, {
98
+ addIcon: () => {
99
+ return createVNode(resolveComponent("el-button"), null, {
100
+ default: () => [createVNode("ion-icon", {
101
+ "name": "add"
102
+ }, null), ibiz.i18n.t("app.add")]
103
+ });
104
+ },
105
+ default: () => {
106
+ return this.c.state.panelUiItems.map((item) => {
107
+ return createVNode(resolveComponent("el-tab-pane"), {
108
+ "key": item.id + item.srfmajortext,
109
+ "name": item.id
110
+ }, {
111
+ label: () => {
112
+ return createVNode("div", {
113
+ "class": this.ns.b("tab-label")
114
+ }, [createVNode("span", null, [item.srfmajortext]), createVNode("ion-icon", {
115
+ "name": "close-outline",
116
+ "onClick": (event) => this.handleTabDelete(item, event)
117
+ }, null)]);
118
+ },
119
+ default: () => {
120
+ return this.c.state.activeTab === item.id && h(viewShell, {
121
+ context: item.context,
122
+ params: item.params,
123
+ viewId: this.c.model.embeddedAppViewId,
124
+ onDataChange: (args) => this.c.onViewDataChange(args, item.id),
125
+ onCreated: (event) => this.c.onViewCreated(event, item.id)
126
+ });
127
+ }
119
128
  });
120
- }
121
- });
122
- })) ? _slot : {
123
- default: () => [_slot]
129
+ });
130
+ }
124
131
  });
125
132
  };
126
133
  const renderRow = () => {
@@ -45,7 +45,7 @@ export declare const IBizMPicker: import("vue").DefineComponent<{
45
45
  valueText: import("vue").ComputedRef<string>;
46
46
  onSearch: (query: string) => Promise<void>;
47
47
  onOpenChange: (flag: boolean) => void;
48
- onSelect: (selects: string[]) => void;
48
+ onSelect: (selects: string[]) => Promise<void>;
49
49
  onRemove: (tag: string) => void;
50
50
  openPickUpView: () => Promise<void>;
51
51
  onFocus: (e: IData) => void;
@@ -94,22 +94,42 @@ const IBizMPicker = /* @__PURE__ */ defineComponent({
94
94
  }, 100);
95
95
  }
96
96
  };
97
- const handleOpenViewClose = (result) => {
97
+ const handleOpenViewClose = async (result) => {
98
98
  const selects = [];
99
99
  if (result && Array.isArray(result)) {
100
- result.forEach((select) => {
100
+ const calcPromises = result.map(async (select) => {
101
+ const item = select;
102
+ if (select.srfnodeid) {
103
+ Object.assign(item, select._deData);
104
+ }
105
+ const dataItems = await c.calcFillDataItems(item);
106
+ const res = {};
107
+ dataItems.forEach((dataItem) => {
108
+ Object.assign(res, {
109
+ [dataItem.id]: dataItem.value
110
+ });
111
+ });
112
+ return res;
113
+ });
114
+ const dataItemsList = await Promise.all(calcPromises);
115
+ result.forEach((select, _index) => {
101
116
  Object.assign(select, {
102
117
  [c.keyName]: select[c.keyName] ? select[c.keyName] : select.srfkey,
103
118
  [c.textName]: select[c.textName] ? select[c.textName] : select.srfmajortext
104
119
  });
120
+ const data = dataItemsList[_index];
105
121
  if (c.model.valueType === "OBJECTS") {
106
- selects.push(c.handleObjectParams(select));
122
+ selects.push({
123
+ ...c.handleObjectParams(select),
124
+ ...data
125
+ });
107
126
  } else if (c.objectIdField) {
108
127
  selects.push(select[c.keyName]);
109
128
  } else {
110
129
  selects.push({
111
130
  [c.keyName]: select[c.keyName],
112
- [c.textName]: select[c.textName]
131
+ [c.textName]: select[c.textName],
132
+ ...data
113
133
  });
114
134
  }
115
135
  const index = items.value.findIndex((item) => Object.is(item[c.keyName], select[c.keyName]));
@@ -144,7 +164,7 @@ const IBizMPicker = /* @__PURE__ */ defineComponent({
144
164
  handleOpenViewClose(res);
145
165
  }
146
166
  };
147
- const onSelect = (selects) => {
167
+ const onSelect = async (selects) => {
148
168
  setEditable(false);
149
169
  if (selects.includes("empty")) {
150
170
  resetCurValue();
@@ -152,7 +172,7 @@ const IBizMPicker = /* @__PURE__ */ defineComponent({
152
172
  }
153
173
  const val = [];
154
174
  let value = null;
155
- selects.forEach((select) => {
175
+ const selections = selects.map((select) => {
156
176
  let index = items.value.findIndex((item2) => Object.is(item2[c.keyName], select));
157
177
  let item = {};
158
178
  if (index >= 0) {
@@ -163,14 +183,33 @@ const IBizMPicker = /* @__PURE__ */ defineComponent({
163
183
  item = selectItems.value[index];
164
184
  }
165
185
  }
186
+ return item;
187
+ });
188
+ const calcPromises = selections.map(async (select) => {
189
+ const dataItems = await c.calcFillDataItems(select);
190
+ const res = {};
191
+ dataItems.forEach((dataItem) => {
192
+ Object.assign(res, {
193
+ [dataItem.id]: dataItem.value
194
+ });
195
+ });
196
+ return res;
197
+ });
198
+ const dataItemsList = await Promise.all(calcPromises);
199
+ selections.forEach((item, index) => {
200
+ const data = dataItemsList[index];
166
201
  if (c.model.valueType === "OBJECTS") {
167
- val.push(c.handleObjectParams(item));
202
+ val.push({
203
+ ...c.handleObjectParams(item),
204
+ ...data
205
+ });
168
206
  } else if (c.objectIdField) {
169
207
  val.push(item[c.keyName]);
170
208
  } else {
171
209
  val.push({
172
210
  [c.keyName]: item[c.keyName],
173
- [c.textName]: item[c.textName]
211
+ [c.textName]: item[c.textName],
212
+ ...data
174
213
  });
175
214
  }
176
215
  });
@@ -11,6 +11,7 @@ import './ibiz-file-upload.scss';
11
11
  * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片或文件上传时,用于计算上传路径"}
12
12
  * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片或文件下载时,用于计算下载路径"}
13
13
  * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"}
14
+ * @editorparams {"name":"infomap","parameterType":"string","description":"上传文件信息的映射规则字符串,用于将上传成功后返回的文件数据转换为保存数据所需格式。格式为'源键:目标键;源键2:目标键2'。示例:映射规则('filesize:size;fileext:ext'),源对象({filesize:'10000', fileext:'.gif'}),转换结果({size:'10000', ext:'.gif'})"}
14
15
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
15
16
  * @ignoreprops autoFocus | overflowMode
16
17
  * @ignoreemits blur | focus | enter | infoTextChange
@@ -13,6 +13,7 @@ import './ibiz-image-cropping.scss';
13
13
  * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片上传时,用于计算上传路径"}
14
14
  * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片下载时,用于计算下载路径"}
15
15
  * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"}
16
+ * @editorparams {"name":"infomap","parameterType":"string","description":"上传文件信息的映射规则字符串,用于将上传成功后返回的文件数据转换为保存数据所需格式。格式为'源键:目标键;源键2:目标键2'。示例:映射规则('filesize:size;fileext:ext'),源对象({filesize:'10000', fileext:'.gif'}),转换结果({size:'10000', ext:'.gif'})"}
16
17
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
17
18
  * @ignoreprops autoFocus | overflowMode
18
19
  * @ignoreemits blur | focus | enter | infoTextChange
@@ -11,6 +11,7 @@ import { UploadEditorController } from '../upload-editor.controller';
11
11
  * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片上传时,用于计算上传路径"}
12
12
  * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片下载时,用于计算下载路径"}
13
13
  * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"}
14
+ * @editorparams {"name":"infomap","parameterType":"string","description":"上传文件信息的映射规则字符串,用于将上传成功后返回的文件数据转换为保存数据所需格式。格式为'源键:目标键;源键2:目标键2'。示例:映射规则('filesize:size;fileext:ext'),源对象({filesize:'10000', fileext:'.gif'}),转换结果({size:'10000', ext:'.gif'})"}
14
15
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
15
16
  * @ignoreprops autoFocus | overflowMode
16
17
  * @ignoreemits blur | focus | enter | infoTextChange
@@ -34,6 +34,10 @@ export declare class UploadEditorController extends EditorController<IFileUpload
34
34
  * 下载参数
35
35
  */
36
36
  exportParams?: IParams;
37
+ /**
38
+ * 上传文件信息的映射规则字符串,格式为"源键:目标键;源键2:目标键2"
39
+ */
40
+ infoMap: string;
37
41
  /**
38
42
  * 自适应预览
39
43
  * 只读状态下且配置了编辑器参数autoPreview ,加载完图片后自动调整大小达到预览态,且禁用图片hover工具栏
@@ -43,4 +47,25 @@ export declare class UploadEditorController extends EditorController<IFileUpload
43
47
  */
44
48
  autoPreview: boolean;
45
49
  protected onInit(): Promise<void>;
50
+ /**
51
+ * 根据配置的映射关系转换对象属性
52
+ * 将源对象的指定属性,按照映射规则映射到新对象的目标属性
53
+ *
54
+ * @param {IData} [_data={}] - 源数据对象,包含需要被映射的原始属性
55
+ * @param {string} [infoMap=''] - 映射规则字符串,格式为"源键:目标键;源键2:目标键2"
56
+ * @param {boolean} [isEmit=false] - 是否为抛值时处理,抛值时将源键替换为目标键
57
+ * @returns {IData} 转换后的新对象,仅包含映射规则中定义的属性
58
+ *
59
+ * @example
60
+ * // isEmit=false
61
+ * // 源对象:{ filesize:'10000', fileext:'.gif', folder:'file' };
62
+ * // 映射规则:'filesize:size;fileext:ext;folder:folder';
63
+ * // 转换结果: { size:'10000', ext:'.gif', folder:'file' }
64
+ *
65
+ * // isEmit=true
66
+ * // 源对象:{ filesize:'10000', fileext:'.gif', folder:'file' };
67
+ * // 映射规则:'filesize:size;fileext:ext;folder:folder';
68
+ * // 转换结果: { size:undefined, ext:undefined, folder:'file' }
69
+ */
70
+ transformInfoMap: (_data?: IData, infoMap?: string, isEmit?: boolean) => IData;
46
71
  }
@@ -38,6 +38,10 @@ class UploadEditorController extends EditorController {
38
38
  * 下载参数
39
39
  */
40
40
  __publicField(this, "exportParams");
41
+ /**
42
+ * 上传文件信息的映射规则字符串,格式为"源键:目标键;源键2:目标键2"
43
+ */
44
+ __publicField(this, "infoMap", "");
41
45
  /**
42
46
  * 自适应预览
43
47
  * 只读状态下且配置了编辑器参数autoPreview ,加载完图片后自动调整大小达到预览态,且禁用图片hover工具栏
@@ -46,10 +50,44 @@ class UploadEditorController extends EditorController {
46
50
  * @memberof UploadEditorController
47
51
  */
48
52
  __publicField(this, "autoPreview", false);
53
+ /**
54
+ * 根据配置的映射关系转换对象属性
55
+ * 将源对象的指定属性,按照映射规则映射到新对象的目标属性
56
+ *
57
+ * @param {IData} [_data={}] - 源数据对象,包含需要被映射的原始属性
58
+ * @param {string} [infoMap=''] - 映射规则字符串,格式为"源键:目标键;源键2:目标键2"
59
+ * @param {boolean} [isEmit=false] - 是否为抛值时处理,抛值时将源键替换为目标键
60
+ * @returns {IData} 转换后的新对象,仅包含映射规则中定义的属性
61
+ *
62
+ * @example
63
+ * // isEmit=false
64
+ * // 源对象:{ filesize:'10000', fileext:'.gif', folder:'file' };
65
+ * // 映射规则:'filesize:size;fileext:ext;folder:folder';
66
+ * // 转换结果: { size:'10000', ext:'.gif', folder:'file' }
67
+ *
68
+ * // isEmit=true
69
+ * // 源对象:{ filesize:'10000', fileext:'.gif', folder:'file' };
70
+ * // 映射规则:'filesize:size;fileext:ext;folder:folder';
71
+ * // 转换结果: { size:undefined, ext:undefined, folder:'file' }
72
+ */
73
+ __publicField(this, "transformInfoMap", (_data = {}, infoMap = "", isEmit = false) => {
74
+ const result = {};
75
+ const mappings = infoMap.split(";");
76
+ mappings.forEach((mapping) => {
77
+ let [sourceKey, targetKey] = mapping.split(":");
78
+ if (isEmit)
79
+ sourceKey = targetKey;
80
+ if (sourceKey && targetKey) {
81
+ Object.assign(result, { [targetKey]: _data[sourceKey] });
82
+ }
83
+ });
84
+ return result;
85
+ });
49
86
  }
50
87
  async onInit() {
51
88
  var _a;
52
89
  await super.onInit();
90
+ this.infoMap = ibiz.config.uploadEditor.infoMap;
53
91
  if ((_a = this.model.editorType) == null ? void 0 : _a.includes("PICTURE")) {
54
92
  this.accept = "image/*";
55
93
  }
@@ -74,7 +112,8 @@ class UploadEditorController extends EditorController {
74
112
  isdrag,
75
113
  uploadparams,
76
114
  exportparams,
77
- autopreview
115
+ autopreview,
116
+ infomap
78
117
  } = this.editorParams;
79
118
  if (isDrag) {
80
119
  this.isDrag = Boolean(isDrag);
@@ -97,6 +136,9 @@ class UploadEditorController extends EditorController {
97
136
  if (size) {
98
137
  this.size = Number(size);
99
138
  }
139
+ if (infomap) {
140
+ this.infoMap = infomap;
141
+ }
100
142
  if (uploadParams) {
101
143
  try {
102
144
  this.uploadParams = JSON.parse(uploadParams);
@@ -111,7 +111,13 @@ function useIViewUpload(props, valueChange, c) {
111
111
  );
112
112
  const emitValue = () => {
113
113
  const _files = [...files.value, ...uploadCache.cacheFiles];
114
- const value = _files.length > 0 ? JSON.stringify(_files.map((file) => ({ name: file.name, id: file.id }))) : null;
114
+ const value = _files.length > 0 ? JSON.stringify(
115
+ _files.map((file) => ({
116
+ name: file.name,
117
+ id: file.id,
118
+ ...c.transformInfoMap(file, c.infoMap, true)
119
+ }))
120
+ ) : null;
115
121
  uploadCache.cacheFiles = [];
116
122
  valueChange(value);
117
123
  };
@@ -136,7 +142,8 @@ function useIViewUpload(props, valueChange, c) {
136
142
  }
137
143
  uploadCache.cacheFiles.push({
138
144
  name: response.filename,
139
- id: response.fileid
145
+ id: response.fileid,
146
+ ...c.transformInfoMap(response, c.infoMap)
140
147
  });
141
148
  if (response.name.split(".").pop() === "svg") {
142
149
  const blob = svgBlob.get(response.name);
@@ -137,6 +137,12 @@ declare const _default: {
137
137
  computeMoveMetaError: string;
138
138
  unclassified: string;
139
139
  today: string;
140
+ adjustmentsGroup: string;
141
+ noAllowReorder: string;
142
+ sortingProperties: string;
143
+ invalidSortType: string;
144
+ logicOpendata: string;
145
+ logicNewdata: string;
140
146
  };
141
147
  editor: {
142
148
  editorNoConfigured: string;
@@ -158,7 +164,6 @@ declare const _default: {
158
164
  noConfigured: string;
159
165
  };
160
166
  calendar: {
161
- missingViewLogic: string;
162
167
  noFoundModel: string;
163
168
  };
164
169
  chart: {
@@ -240,12 +245,8 @@ declare const _default: {
240
245
  interfaceBehavior: string;
241
246
  };
242
247
  kanban: {
243
- sortingProperties: string;
244
248
  sortDirection: string;
245
249
  groupedOn: string;
246
- adjustmentsGroup: string;
247
- noAllowReorder: string;
248
- invalidSortType: string;
249
250
  };
250
251
  meditViewPanel: {
251
252
  DraftNew: string;
@@ -770,6 +771,8 @@ declare const _default: {
770
771
  pleaseEnterAccount: string;
771
772
  pleaseEnterPassword: string;
772
773
  aiError: string;
774
+ fullscreen: string;
775
+ cancelFullscreen: string;
773
776
  };
774
777
  view: {
775
778
  common: {
@@ -1048,6 +1051,7 @@ declare const _default: {
1048
1051
  today: string;
1049
1052
  tomorrow: string;
1050
1053
  nextweek: string;
1054
+ selectdate: string;
1051
1055
  };
1052
1056
  calendarmonth: {
1053
1057
  lastmonth: string;
@@ -1086,6 +1090,8 @@ declare const _default: {
1086
1090
  saturday: string;
1087
1091
  sunday: string;
1088
1092
  };
1093
+ selectWeekRange: string;
1094
+ weekFormat: string;
1089
1095
  };
1090
1096
  };
1091
1097
  chart: {
@@ -1284,6 +1290,9 @@ declare const _default: {
1284
1290
  gridSetting: {
1285
1291
  hideControl: string;
1286
1292
  };
1293
+ kanbanSetting: {
1294
+ hideGroup: string;
1295
+ };
1287
1296
  ganttSetting: {
1288
1297
  resultDefault: string;
1289
1298
  headerCaption: string;