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