@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.
- package/dist/index-AOFxMmyX.js +1 -0
- package/dist/index-swminiXb.js +1 -0
- package/dist/index-t1aZ8OJE.js +11 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{wang-editor-yDknWojV.js → wang-editor-Y8puaTx2.js} +1 -1
- package/dist/{xlsx-util-8l4wyK1s.js → xlsx-util-jYyM8alm.js} +1 -1
- package/es/common/index.mjs +2 -0
- package/es/common/kanben-setting/kanben-setting.css +1 -0
- package/es/common/kanben-setting/kanben-setting.d.ts +42 -0
- package/es/common/kanben-setting/kanben-setting.mjs +65 -0
- package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
- package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +25 -8
- package/es/control/calendar/components/custom-calendar/use-custom-calendar.d.ts +8 -0
- package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +20 -1
- package/es/control/data-view/data-view.css +1 -1
- package/es/control/data-view/data-view.mjs +117 -22
- package/es/control/drbar/drbar.controller.mjs +2 -0
- package/es/control/drbar/drbar.css +1 -1
- package/es/control/drtab/drtab-control.util.mjs +1 -1
- package/es/control/drtab/drtab.controller.d.ts +24 -0
- package/es/control/drtab/drtab.controller.mjs +36 -0
- package/es/control/drtab/drtab.css +1 -1
- package/es/control/drtab/drtab.d.ts +2 -0
- package/es/control/drtab/drtab.mjs +5 -2
- package/es/control/drtab/flow-drtab.css +1 -1
- package/es/control/drtab/flow-drtab.d.ts +17 -2
- package/es/control/drtab/flow-drtab.mjs +189 -11
- package/es/control/drtab/index.d.ts +2 -0
- package/es/control/form/edit-form/edit-form.mjs +11 -0
- package/es/control/form/form-detail/form-item/form-item.mjs +11 -7
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +59 -5
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +1 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.d.ts +6 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +4 -0
- package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
- package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +11 -11
- package/es/control/gantt/gantt.mjs +1 -0
- package/es/control/grid/grid/grid-control.util.mjs +36 -14
- package/es/control/grid/grid/grid.css +1 -1
- package/es/control/grid/grid/grid.mjs +8 -3
- package/es/control/kanban/index.d.ts +4 -1
- package/es/control/kanban/kanban.css +1 -1
- package/es/control/kanban/kanban.d.ts +4 -1
- package/es/control/kanban/kanban.mjs +66 -23
- package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
- package/es/control/kanban/swimlane-kanban/swimlane-kanban.d.ts +2 -7
- package/es/control/kanban/swimlane-kanban/swimlane-kanban.mjs +69 -12
- package/es/control/list/list.css +1 -1
- package/es/control/list/list.d.ts +1 -1
- package/es/control/list/list.mjs +97 -12
- package/es/control/medit-view-panel/medit-view-panel.css +1 -1
- package/es/control/medit-view-panel/medit-view-panel.mjs +37 -30
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +47 -8
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -0
- package/es/editor/upload/ibiz-image-cropping/ibiz-image-cropping.d.ts +1 -0
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -0
- package/es/editor/upload/upload-editor.controller.d.ts +25 -0
- package/es/editor/upload/upload-editor.controller.mjs +43 -1
- package/es/editor/upload/use/use-iview-upload.mjs +9 -2
- package/es/locale/en/index.d.ts +14 -5
- package/es/locale/en/index.mjs +11 -3
- package/es/locale/zh-CN/index.d.ts +14 -5
- package/es/locale/zh-CN/index.mjs +11 -3
- package/es/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.mjs +3377 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.mjs +20 -5
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-button-menu/extend-button-menu.d.ts +1950 -1
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-menu-base.util.d.ts +53 -6
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.d.ts +2031 -0
- package/es/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.mjs +278 -0
- package/es/panel-component/panel-button/panel-button.mjs +1 -0
- package/es/util/fullscreen/fullscreen-util.mjs +1 -1
- package/es/view-engine/calendar-view.engine.d.ts +11 -1
- package/es/view-engine/calendar-view.engine.mjs +10 -0
- package/es/view-engine/chart-exp-view.engine.d.ts +6 -6
- package/es/view-engine/chart-exp-view.engine.mjs +6 -15
- package/es/view-engine/gantt-view.engine.d.ts +3 -3
- package/es/view-engine/gantt-view.engine.mjs +3 -46
- package/es/view-engine/login-view.engine.mjs +7 -0
- package/es/view-engine/tab-exp-view.engine.mjs +1 -1
- package/es/view-engine/tab-search-view.engine.mjs +4 -2
- package/es/view-engine/tree-view.engine.d.ts +12 -2
- package/es/view-engine/tree-view.engine.mjs +39 -11
- package/lib/common/index.cjs +2 -0
- package/lib/common/kanben-setting/kanben-setting.cjs +67 -0
- package/lib/common/kanben-setting/kanben-setting.css +1 -0
- package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +23 -6
- package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
- package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +20 -0
- package/lib/control/data-view/data-view.cjs +117 -22
- package/lib/control/data-view/data-view.css +1 -1
- package/lib/control/drbar/drbar.controller.cjs +2 -0
- package/lib/control/drbar/drbar.css +1 -1
- package/lib/control/drtab/drtab-control.util.cjs +1 -1
- package/lib/control/drtab/drtab.cjs +5 -2
- package/lib/control/drtab/drtab.controller.cjs +36 -0
- package/lib/control/drtab/drtab.css +1 -1
- package/lib/control/drtab/flow-drtab.cjs +188 -10
- package/lib/control/drtab/flow-drtab.css +1 -1
- package/lib/control/form/edit-form/edit-form.cjs +11 -0
- package/lib/control/form/form-detail/form-item/form-item.cjs +11 -7
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +58 -4
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.css +1 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +1 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +4 -0
- package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +11 -11
- package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
- package/lib/control/gantt/gantt.cjs +1 -0
- package/lib/control/grid/grid/grid-control.util.cjs +36 -14
- package/lib/control/grid/grid/grid.cjs +8 -3
- package/lib/control/grid/grid/grid.css +1 -1
- package/lib/control/kanban/kanban.cjs +64 -21
- package/lib/control/kanban/kanban.css +1 -1
- package/lib/control/kanban/swimlane-kanban/swimlane-kanban.cjs +67 -10
- package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -1
- package/lib/control/list/list.cjs +97 -12
- package/lib/control/list/list.css +1 -1
- package/lib/control/medit-view-panel/medit-view-panel.cjs +36 -29
- package/lib/control/medit-view-panel/medit-view-panel.css +1 -1
- package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +47 -8
- package/lib/editor/upload/upload-editor.controller.cjs +43 -1
- package/lib/editor/upload/use/use-iview-upload.cjs +9 -2
- package/lib/locale/en/index.cjs +11 -3
- package/lib/locale/zh-CN/index.cjs +11 -3
- package/lib/node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.cjs +3384 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/common-extend-menu/common-extend-menu.cjs +20 -5
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.cjs +280 -0
- package/lib/panel-component/app-extend-menu/extend-menu-base/extend-standard-menu/extend-standard-menu.css +1 -0
- package/lib/panel-component/panel-button/panel-button.cjs +1 -0
- package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
- package/lib/view-engine/calendar-view.engine.cjs +10 -0
- package/lib/view-engine/chart-exp-view.engine.cjs +6 -15
- package/lib/view-engine/gantt-view.engine.cjs +2 -45
- package/lib/view-engine/login-view.engine.cjs +7 -0
- package/lib/view-engine/tab-exp-view.engine.cjs +1 -1
- package/lib/view-engine/tab-search-view.engine.cjs +4 -2
- package/lib/view-engine/tree-view.engine.cjs +39 -11
- package/package.json +9 -7
- package/dist/index-1hn7qv2s.js +0 -4
- package/dist/index-EYFbyMUF.js +0 -1
- package/dist/index-kNUznzXY.js +0 -1
- /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
- /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
package/es/control/list/list.css
CHANGED
|
@@ -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 {
|
|
3
|
+
import { ListController, IControlProvider } from '@ibiz-template/runtime';
|
|
4
4
|
import './list.scss';
|
|
5
5
|
export declare const ListControl: import("vue").DefineComponent<{
|
|
6
6
|
/**
|
package/es/control/list/list.mjs
CHANGED
|
@@ -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 '
|
|
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
|
-
}, [
|
|
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.
|
|
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
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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 {
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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.
|
|
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(
|
|
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.
|
|
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(
|
|
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(
|
|
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);
|
package/es/locale/en/index.d.ts
CHANGED
|
@@ -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;
|