@ibiz-template/mob-vue3-components 0.0.3 → 0.0.5
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.min.css +1 -1
- package/dist/index.system.min.js +5 -5
- package/dist/index.system.min.js.map +1 -1
- package/es/common/carousel/carousel.css +1 -0
- package/es/common/carousel/carousel.d.ts +52 -0
- package/es/common/carousel/carousel.mjs +61 -0
- package/es/common/index.mjs +2 -0
- package/es/control/calendar/calendar.css +1 -1
- package/es/control/calendar/calendar.d.ts +4 -3
- package/es/control/calendar/calendar.mjs +94 -12
- package/es/control/calendar/index.d.ts +2 -1
- package/es/control/dashboard/dashboard.css +1 -1
- package/es/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
- package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
- package/es/control/form/form-detail/form-item/form-item.mjs +5 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +1 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.mjs +2 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +1 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +7 -3
- package/es/control/form/form-detail/form-mdctrl/index.d.ts +8 -0
- package/es/control/form/form-detail/form-mdctrl/index.mjs +1 -1
- 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.d.ts +10 -2
- package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +29 -17
- package/es/control/form/form-detail/index.mjs +6 -0
- package/es/control/form/index.mjs +6 -0
- package/es/control/index.mjs +6 -0
- package/es/control/list/md-ctrl/md-ctrl.css +1 -1
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +2 -1
- package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
- package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.d.ts +2 -0
- package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.mjs +17 -4
- package/es/editor/index.mjs +10 -0
- package/es/editor/span/span/span.css +1 -1
- package/es/editor/text-box/input/input.css +1 -1
- package/es/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
- package/es/editor/upload/ibiz-carousel/ibiz-carousel.d.ts +65 -0
- package/es/editor/upload/ibiz-carousel/ibiz-carousel.mjs +71 -0
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +1 -2
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +12 -5
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -4
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +13 -13
- package/es/editor/upload/index.d.ts +1 -0
- package/es/editor/upload/index.mjs +1 -0
- package/es/editor/upload/upload-editor.provider.mjs +3 -0
- package/es/index.d.ts +1 -0
- package/es/index.mjs +59 -1
- package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +29 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.mjs +66 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.provider.d.ts +15 -0
- package/es/panel-component/auth-userinfo/auth-userinfo.provider.mjs +21 -0
- package/es/panel-component/auth-userinfo/index.d.ts +26 -0
- package/es/panel-component/auth-userinfo/index.mjs +15 -0
- package/es/panel-component/index.mjs +6 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -1
- package/es/panel-component/panel-carousel/index.d.ts +20 -0
- package/es/panel-component/panel-carousel/index.mjs +16 -0
- package/es/panel-component/panel-carousel/panel-carousel.controller.d.ts +50 -0
- package/es/panel-component/panel-carousel/panel-carousel.controller.mjs +76 -0
- package/es/panel-component/panel-carousel/panel-carousel.css +1 -0
- package/es/panel-component/panel-carousel/panel-carousel.d.ts +20 -0
- package/es/panel-component/panel-carousel/panel-carousel.mjs +42 -0
- package/es/panel-component/panel-carousel/panel-carousel.provider.d.ts +14 -0
- package/es/panel-component/panel-carousel/panel-carousel.provider.mjs +21 -0
- package/es/panel-component/panel-video-player/index.d.ts +22 -0
- package/es/panel-component/panel-video-player/index.mjs +19 -0
- package/es/panel-component/panel-video-player/panel-video-player.controller.d.ts +50 -0
- package/es/panel-component/panel-video-player/panel-video-player.controller.mjs +81 -0
- package/es/panel-component/panel-video-player/panel-video-player.css +1 -0
- package/es/panel-component/panel-video-player/panel-video-player.d.ts +22 -0
- package/es/panel-component/panel-video-player/panel-video-player.mjs +59 -0
- package/es/panel-component/panel-video-player/panel-video-player.provider.d.ts +14 -0
- package/es/panel-component/panel-video-player/panel-video-player.provider.mjs +21 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
- package/es/platform/index.d.ts +1 -0
- package/es/platform/index.mjs +3 -0
- package/es/platform/vue-browser-platform-provider.d.ts +20 -0
- package/es/platform/vue-browser-platform-provider.mjs +20 -0
- package/es/view-engine/mob-edit-view.engine.mjs +1 -2
- package/lib/common/carousel/carousel.cjs +63 -0
- package/lib/common/carousel/carousel.css +1 -0
- package/lib/common/index.cjs +2 -0
- package/lib/control/calendar/calendar.cjs +94 -12
- package/lib/control/calendar/calendar.css +1 -1
- package/lib/control/dashboard/dashboard.css +1 -1
- package/lib/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
- package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
- package/lib/control/form/form-detail/form-item/form-item.cjs +5 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +1 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-multi-form/repeater-multi-form.cjs +2 -1
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +6 -2
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.css +1 -1
- package/lib/control/form/form-detail/form-mdctrl/index.cjs +6 -0
- package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +28 -16
- package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.css +1 -1
- package/lib/control/form/form-detail/index.cjs +12 -0
- package/lib/control/form/index.cjs +12 -0
- package/lib/control/index.cjs +12 -0
- package/lib/control/list/md-ctrl/md-ctrl.css +1 -1
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +2 -1
- package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.cjs +17 -4
- package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
- package/lib/editor/index.cjs +10 -0
- package/lib/editor/span/span/span.css +1 -1
- package/lib/editor/text-box/input/input.css +1 -1
- package/lib/editor/upload/ibiz-carousel/ibiz-carousel.cjs +73 -0
- package/lib/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
- package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
- package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +12 -5
- package/lib/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
- package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +12 -12
- package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
- package/lib/editor/upload/index.cjs +2 -0
- package/lib/editor/upload/upload-editor.provider.cjs +3 -0
- package/lib/index.cjs +164 -38
- package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +68 -0
- package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -0
- package/lib/panel-component/auth-userinfo/auth-userinfo.provider.cjs +23 -0
- package/lib/panel-component/auth-userinfo/index.cjs +20 -0
- package/lib/panel-component/index.cjs +6 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -1
- package/lib/panel-component/panel-carousel/index.cjs +23 -0
- package/lib/panel-component/panel-carousel/panel-carousel.cjs +47 -0
- package/lib/panel-component/panel-carousel/panel-carousel.controller.cjs +78 -0
- package/lib/panel-component/panel-carousel/panel-carousel.css +1 -0
- package/lib/panel-component/panel-carousel/panel-carousel.provider.cjs +23 -0
- package/lib/panel-component/panel-video-player/index.cjs +26 -0
- package/lib/panel-component/panel-video-player/panel-video-player.cjs +64 -0
- package/lib/panel-component/panel-video-player/panel-video-player.controller.cjs +83 -0
- package/lib/panel-component/panel-video-player/panel-video-player.css +1 -0
- package/lib/panel-component/panel-video-player/panel-video-player.provider.cjs +23 -0
- package/lib/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
- package/lib/platform/index.cjs +7 -0
- package/lib/platform/vue-browser-platform-provider.cjs +22 -0
- package/lib/view-engine/mob-edit-view.engine.cjs +1 -2
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ibiz-carousel{height:100%}.ibiz-carousel .van-swipe{height:100%}.ibiz-carousel .van-swipe-item img{box-sizing:border-box;display:block;width:100%;height:100%;padding:1.875rem 3.75rem;pointer-events:none;background-color:var(--van-white)}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import './carousel.scss';
|
|
3
|
+
import { ISysImage } from '@ibiz/model-core';
|
|
4
|
+
import { IIcon } from '@ibiz-template/runtime';
|
|
5
|
+
export declare const IBizCarousel: import("vue").DefineComponent<{
|
|
6
|
+
autoplay: {
|
|
7
|
+
type: NumberConstructor;
|
|
8
|
+
default: number;
|
|
9
|
+
};
|
|
10
|
+
duration: {
|
|
11
|
+
type: NumberConstructor;
|
|
12
|
+
default: number;
|
|
13
|
+
};
|
|
14
|
+
showIndicators: {
|
|
15
|
+
type: BooleanConstructor;
|
|
16
|
+
default: boolean;
|
|
17
|
+
};
|
|
18
|
+
touchable: {
|
|
19
|
+
type: BooleanConstructor;
|
|
20
|
+
default: boolean;
|
|
21
|
+
};
|
|
22
|
+
images: {
|
|
23
|
+
type: PropType<(ISysImage | IIcon)[]>;
|
|
24
|
+
};
|
|
25
|
+
}, {
|
|
26
|
+
ns: import("@ibiz-template/core").Namespace;
|
|
27
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
28
|
+
autoplay: {
|
|
29
|
+
type: NumberConstructor;
|
|
30
|
+
default: number;
|
|
31
|
+
};
|
|
32
|
+
duration: {
|
|
33
|
+
type: NumberConstructor;
|
|
34
|
+
default: number;
|
|
35
|
+
};
|
|
36
|
+
showIndicators: {
|
|
37
|
+
type: BooleanConstructor;
|
|
38
|
+
default: boolean;
|
|
39
|
+
};
|
|
40
|
+
touchable: {
|
|
41
|
+
type: BooleanConstructor;
|
|
42
|
+
default: boolean;
|
|
43
|
+
};
|
|
44
|
+
images: {
|
|
45
|
+
type: PropType<(ISysImage | IIcon)[]>;
|
|
46
|
+
};
|
|
47
|
+
}>>, {
|
|
48
|
+
autoplay: number;
|
|
49
|
+
duration: number;
|
|
50
|
+
showIndicators: boolean;
|
|
51
|
+
touchable: boolean;
|
|
52
|
+
}, {}>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { resolveComponent, createVNode, defineComponent } from 'vue';
|
|
2
|
+
import { useNamespace } from '@ibiz-template/vue3-util';
|
|
3
|
+
import './carousel.css';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
const IBizCarousel = /* @__PURE__ */ defineComponent({
|
|
7
|
+
name: "IBizCarousel",
|
|
8
|
+
props: {
|
|
9
|
+
autoplay: {
|
|
10
|
+
type: Number,
|
|
11
|
+
default: 3e3
|
|
12
|
+
},
|
|
13
|
+
duration: {
|
|
14
|
+
type: Number,
|
|
15
|
+
default: 500
|
|
16
|
+
},
|
|
17
|
+
showIndicators: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: true
|
|
20
|
+
},
|
|
21
|
+
touchable: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: true
|
|
24
|
+
},
|
|
25
|
+
images: {
|
|
26
|
+
type: Object
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
setup() {
|
|
30
|
+
const ns = useNamespace("carousel");
|
|
31
|
+
return {
|
|
32
|
+
ns
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
render() {
|
|
36
|
+
if (this.images && this.images.length === 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return createVNode("div", {
|
|
40
|
+
"class": [this.ns.b()]
|
|
41
|
+
}, [createVNode(resolveComponent("van-swipe"), {
|
|
42
|
+
"autoplay": this.autoplay,
|
|
43
|
+
"duration": this.duration,
|
|
44
|
+
"lazy-render": true,
|
|
45
|
+
"show-indicators": this.showIndicators,
|
|
46
|
+
"touchable": this.touchable
|
|
47
|
+
}, {
|
|
48
|
+
default: () => [this.images && this.images.map((image) => {
|
|
49
|
+
return createVNode(resolveComponent("van-swipe-item"), {
|
|
50
|
+
"key": image
|
|
51
|
+
}, {
|
|
52
|
+
default: () => [createVNode(resolveComponent("iBizIcon"), {
|
|
53
|
+
"icon": image
|
|
54
|
+
}, null)]
|
|
55
|
+
});
|
|
56
|
+
})]
|
|
57
|
+
})]);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
export { IBizCarousel };
|
package/es/common/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IBizViewShell, IBizIcon, IBizControlBase, IBizRouterView, IBizControlShell } from '@ibiz-template/vue3-util';
|
|
2
2
|
import { IBizActionToolbar } from './action-toolbar/action-toolbar.mjs';
|
|
3
|
+
import { IBizCarousel } from './carousel/carousel.mjs';
|
|
3
4
|
import { IBizCol } from './col/col.mjs';
|
|
4
5
|
import { IBizKeepAlive } from './keep-alive/keep-alive.mjs';
|
|
5
6
|
export { MoveType, ShapeFlags, devtoolsComponentAdded, invokeArrayFns, invokeVNodeHook, isAsyncWrapper, isKeepAlive, queuePostRenderEffect, setTransitionHooks } from './keep-alive/keep-alive.mjs';
|
|
@@ -21,6 +22,7 @@ const IBizCommonComponents = {
|
|
|
21
22
|
v.component(IBizNoData.name, IBizNoData);
|
|
22
23
|
v.component(IBizControlShell.name, IBizControlShell);
|
|
23
24
|
v.component(IBizRawItem.name, IBizRawItem);
|
|
25
|
+
v.component(IBizCarousel.name, IBizCarousel);
|
|
24
26
|
}
|
|
25
27
|
};
|
|
26
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar .calendar_day{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-calendar__calendar-item{display:flex;gap:var(--ibiz-spacing-
|
|
1
|
+
.ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);--ibiz-control-calendar-item-margin:var(--ibiz-spacing-tight) 0;--van-cell-right-icon-color:var(--van-gray-6);--van-padding-md:var(--ibiz-spacing-tight);display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar .calendar_day{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-control-calendar__calendar-item{display:flex;gap:var(--ibiz-spacing-tight);align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:.625rem;height:.625rem;border-radius:50%}.ibiz-control-calendar__day{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.ibiz-control-calendar__mark{display:flex;position:absolute;bottom:-.25rem;left:0;flex-grow:1;justify-content:space-around;width:100%}.ibiz-control-calendar__mark--item{width:.25rem;height:.25rem;background-color:red;border-radius:3.125rem}.ibiz-control-calendar .ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);--ibiz-control-calendar-item-margin:var(--ibiz-spacing-tight) 0;height:auto}.ibiz-control-calendar .ibiz-control-calendar-item--default{padding:var(--ibiz-control-calendar-item-padding);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);line-height:25px;color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-control-calendar-content{width:100%}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);--ibiz-control-calendar-item-margin:var(--ibiz-spacing-tight) 0;padding:var(--ibiz-control-calendar-item-padding);margin-top:0}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);--ibiz-control-calendar-item-margin:var(--ibiz-spacing-tight) 0;display:flex;gap:var(--ibiz-control-calendar-item-padding);align-items:center}.ibiz-control-calendar-footer{flex-grow:1;min-height:0}.ibiz-control-calendar-footer .van-tabs{height:100%}.ibiz-control-calendar-footer .van-tabs__content{height:calc(100% - var(--van-tabs-line-height));overflow-y:auto}.ibiz-control-calendar-footer .van-list,.ibiz-control-calendar-footer .van-tab__panel{height:100%}.ibiz-control-calendar-title{position:relative;display:flex;align-items:center;justify-content:space-between}.ibiz-control-calendar-title .van-field{width:50%}.ibiz-control-calendar-title input{font-weight:100;text-align:inherit;background-color:transparent;border:.0625rem var(--ibiz-color-border) solid;box-shadow:none}.ibiz-control-calendar-title span{top:0;left:0}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PropType } from 'vue';
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
2
|
import { ISysCalendar } from '@ibiz/model-core';
|
|
3
3
|
import './calendar.scss';
|
|
4
4
|
import { CalendarController, ICalendarItemData, IControlProvider } from '@ibiz-template/runtime';
|
|
@@ -30,10 +30,11 @@ export declare const CalendarControl: import("vue").DefineComponent<{
|
|
|
30
30
|
}, {
|
|
31
31
|
c: CalendarController;
|
|
32
32
|
ns: import("@ibiz-template/core").Namespace;
|
|
33
|
-
calendarRef:
|
|
33
|
+
calendarRef: Ref<IData | undefined>;
|
|
34
|
+
markerData: import("vue").ComputedRef<IData>;
|
|
34
35
|
selectDate: (tag: string) => void;
|
|
35
|
-
markDate: import("vue").ComputedRef<IData>;
|
|
36
36
|
calcItemStyle: (data: ICalendarItemData) => IData;
|
|
37
|
+
onClick: (date: string) => Promise<void>;
|
|
37
38
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
38
39
|
modelData: {
|
|
39
40
|
type: PropType<ISysCalendar>;
|
|
@@ -2,7 +2,6 @@ import { isVNode, ref, watch, computed, createVNode, resolveComponent, defineCom
|
|
|
2
2
|
import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
|
|
3
3
|
import './calendar.css';
|
|
4
4
|
import { CalendarController } from '@ibiz-template/runtime';
|
|
5
|
-
import { isNil } from 'ramda';
|
|
6
5
|
import dayjs from 'dayjs';
|
|
7
6
|
import stdin_default from '../../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.9/node_modules/vue3-hash-calendar/es/index.mjs';
|
|
8
7
|
import 'vue3-hash-calendar/es/index.css';
|
|
@@ -50,27 +49,70 @@ const CalendarControl = /* @__PURE__ */ defineComponent({
|
|
|
50
49
|
return;
|
|
51
50
|
calendarRef.value.selectDate(tag);
|
|
52
51
|
};
|
|
52
|
+
const markDateItems = ref({});
|
|
53
|
+
const getDayStartAndNextDayStart = (date) => {
|
|
54
|
+
const dayStart = new Date(date);
|
|
55
|
+
dayStart.setHours(0, 0, 0, 0);
|
|
56
|
+
const nextDayStart = new Date(date);
|
|
57
|
+
nextDayStart.setDate(nextDayStart.getDate() + 1);
|
|
58
|
+
nextDayStart.setHours(0, 0, 0, 0);
|
|
59
|
+
return {
|
|
60
|
+
dayStart,
|
|
61
|
+
nextDayStart
|
|
62
|
+
};
|
|
63
|
+
};
|
|
53
64
|
watch(() => c.state.selectedDate, (oldVal, newVal) => {
|
|
54
65
|
const oldDateString = dayjs(oldVal).format("YYYY-MM");
|
|
55
66
|
const newDateString = dayjs(newVal).format("YYYY-MM");
|
|
56
67
|
if (oldDateString === newDateString) {
|
|
57
68
|
return;
|
|
58
69
|
}
|
|
59
|
-
|
|
70
|
+
const loadParam = {};
|
|
71
|
+
const {
|
|
72
|
+
dayStart,
|
|
73
|
+
nextDayStart
|
|
74
|
+
} = getDayStartAndNextDayStart(c.state.selectedDate);
|
|
75
|
+
Object.assign(loadParam, {
|
|
76
|
+
srfstartdate: dayjs(dayStart).format("YYYY-MM-DD HH:mm:ss"),
|
|
77
|
+
srfenddate: dayjs(nextDayStart).format("YYYY-MM-DD HH:mm:ss")
|
|
78
|
+
});
|
|
79
|
+
c.load(loadParam);
|
|
60
80
|
});
|
|
81
|
+
const setMarkDate = (date) => {
|
|
82
|
+
const copyDate = new Date(date);
|
|
83
|
+
const items = markDateItems.value[dayjs(copyDate).format("YYYY-MM")];
|
|
84
|
+
if (!items) {
|
|
85
|
+
markDateItems.value[dayjs(copyDate).format("YYYY-MM")] = [...c.state.items];
|
|
86
|
+
} else {
|
|
87
|
+
const mergeAndFilter = (arr1, arr2) => {
|
|
88
|
+
const mergedArray = arr1.concat(arr2);
|
|
89
|
+
const uniqueCombination = /* @__PURE__ */ new Set();
|
|
90
|
+
const filteredArray = mergedArray.filter((item) => {
|
|
91
|
+
const combination = item.id + item.itemType;
|
|
92
|
+
if (uniqueCombination.has(combination)) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
uniqueCombination.add(combination);
|
|
96
|
+
return true;
|
|
97
|
+
});
|
|
98
|
+
return filteredArray;
|
|
99
|
+
};
|
|
100
|
+
markDateItems.value[dayjs(copyDate).format("YYYY-MM")] = mergeAndFilter(markDateItems.value[dayjs(copyDate).format("YYYY-MM")], c.state.items);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
61
103
|
const calcItemStyle = (data) => {
|
|
62
104
|
return {
|
|
63
105
|
color: data.color,
|
|
64
106
|
backgroundColor: data.bkColor
|
|
65
107
|
};
|
|
66
108
|
};
|
|
67
|
-
const
|
|
109
|
+
const markerData = computed(() => {
|
|
68
110
|
const filterSameDayAndUniqueType = (itemData, index, arr) => {
|
|
69
111
|
const dateString = dayjs(new Date(itemData.beginTime)).format("YYYY-MM-DD");
|
|
70
112
|
const isSameDayAndUniqueType = arr.findIndex((item) => dateString === dayjs(new Date(item.beginTime)).format("YYYY-MM-DD") && item.itemType === itemData.itemType) === index;
|
|
71
113
|
return isSameDayAndUniqueType;
|
|
72
114
|
};
|
|
73
|
-
const date =
|
|
115
|
+
const date = Object.values(markDateItems.value).flat().filter(filterSameDayAndUniqueType).map((item) => {
|
|
74
116
|
const _date = new Date(item.beginTime);
|
|
75
117
|
return {
|
|
76
118
|
date: item.beginTime,
|
|
@@ -83,18 +125,39 @@ const CalendarControl = /* @__PURE__ */ defineComponent({
|
|
|
83
125
|
});
|
|
84
126
|
return date;
|
|
85
127
|
});
|
|
128
|
+
const onClick = async (date) => {
|
|
129
|
+
c.state.selectedDate = new Date(date);
|
|
130
|
+
const loadParam = {};
|
|
131
|
+
const {
|
|
132
|
+
dayStart,
|
|
133
|
+
nextDayStart
|
|
134
|
+
} = getDayStartAndNextDayStart(c.state.selectedDate);
|
|
135
|
+
Object.assign(loadParam, {
|
|
136
|
+
viewParam: {
|
|
137
|
+
srfstartdate: dayjs(dayStart).format("YYYY-MM-DD HH:mm:ss"),
|
|
138
|
+
srfenddate: dayjs(nextDayStart).format("YYYY-MM-DD HH:mm:ss")
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
setTimeout(() => {
|
|
142
|
+
c.load(loadParam);
|
|
143
|
+
}, 200);
|
|
144
|
+
};
|
|
145
|
+
c.evt.on("onLoadSuccess", () => {
|
|
146
|
+
setMarkDate(c.state.selectedDate);
|
|
147
|
+
});
|
|
86
148
|
return {
|
|
87
149
|
c,
|
|
88
150
|
ns,
|
|
89
151
|
calendarRef,
|
|
152
|
+
markerData,
|
|
90
153
|
selectDate,
|
|
91
|
-
|
|
92
|
-
|
|
154
|
+
calcItemStyle,
|
|
155
|
+
onClick
|
|
93
156
|
};
|
|
94
157
|
},
|
|
95
158
|
render() {
|
|
96
159
|
const renderMarker = (date) => {
|
|
97
|
-
const arr = this.
|
|
160
|
+
const arr = this.markerData.filter((item) => item.day === date.day && item.month === date.month && item.year === date.year);
|
|
98
161
|
return arr.map((item) => {
|
|
99
162
|
const style = this.calcItemStyle(item.data);
|
|
100
163
|
return createVNode("div", {
|
|
@@ -132,15 +195,31 @@ const CalendarControl = /* @__PURE__ */ defineComponent({
|
|
|
132
195
|
const findIndex = this.c.state.selectedData.findIndex((data) => {
|
|
133
196
|
return data.deData.srfkey === item.deData.srfkey;
|
|
134
197
|
});
|
|
135
|
-
const itemClass = [this.ns.b("item"), this.ns.is("active", findIndex !== -1)];
|
|
136
|
-
return createVNode("
|
|
198
|
+
const itemClass = [this.ns.b("item"), this.ns.bm("item", "default"), this.ns.is("active", findIndex !== -1)];
|
|
199
|
+
return createVNode(resolveComponent("van-cell"), {
|
|
137
200
|
"class": itemClass,
|
|
138
201
|
"key": item.deData.srfkey,
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
|
|
202
|
+
"is-link": true,
|
|
203
|
+
"title": item.text || "",
|
|
204
|
+
"onClick": () => this.c.onRowClick(item)
|
|
205
|
+
}, null);
|
|
206
|
+
};
|
|
207
|
+
const renderNoData = () => {
|
|
208
|
+
const {
|
|
209
|
+
isLoaded
|
|
210
|
+
} = this.c.state;
|
|
211
|
+
if (!isLoaded) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
return isLoaded && createVNode(resolveComponent("iBizNoData"), {
|
|
215
|
+
"text": this.c.model.emptyText,
|
|
216
|
+
"emptyTextLanguageRes": this.c.model.emptyTextLanguageRes
|
|
217
|
+
}, null);
|
|
142
218
|
};
|
|
143
219
|
const renderCalendarList = (items) => {
|
|
220
|
+
if (items.length === 0) {
|
|
221
|
+
return renderNoData();
|
|
222
|
+
}
|
|
144
223
|
return items.map((item) => {
|
|
145
224
|
var _a;
|
|
146
225
|
const model = (_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.find((calendarItems) => {
|
|
@@ -164,6 +243,9 @@ const CalendarControl = /* @__PURE__ */ defineComponent({
|
|
|
164
243
|
"onChange": (date) => {
|
|
165
244
|
this.c.state.selectedDate = date;
|
|
166
245
|
},
|
|
246
|
+
"onClick": (date) => {
|
|
247
|
+
this.onClick(date);
|
|
248
|
+
},
|
|
167
249
|
"ref": "calendarRef"
|
|
168
250
|
}, {
|
|
169
251
|
day: ({
|
|
@@ -27,9 +27,10 @@ export declare const IBizCalendarControl: import("@ibiz-template/vue3-util").Typ
|
|
|
27
27
|
c: import("@ibiz-template/runtime").CalendarController;
|
|
28
28
|
ns: import("@ibiz-template/core").Namespace;
|
|
29
29
|
calendarRef: import("vue").Ref<IData | undefined>;
|
|
30
|
+
markerData: import("vue").ComputedRef<IData>;
|
|
30
31
|
selectDate: (tag: string) => void;
|
|
31
|
-
markDate: import("vue").ComputedRef<IData>;
|
|
32
32
|
calcItemStyle: (data: import("@ibiz-template/runtime").ICalendarItemData) => IData;
|
|
33
|
+
onClick: (date: string) => Promise<void>;
|
|
33
34
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
34
35
|
modelData: {
|
|
35
36
|
type: import("vue").PropType<import("@ibiz/model-core").ISysCalendar>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-control-dashboard{--ibiz-control-dashboard-dashboard-margin:var(--ibiz-spacing-tight);margin:var(--ibiz-control-dashboard-dashboard-margin)}.ibiz-control-dashboard .ibiz-control-dashboard-row{gap:var(--ibiz-control-dashboard-dashboard-margin)}
|
|
1
|
+
.ibiz-control-dashboard{--ibiz-control-dashboard-dashboard-margin:var(--ibiz-spacing-tight);height:100%;margin:var(--ibiz-control-dashboard-dashboard-margin);overflow:auto}.ibiz-control-dashboard .ibiz-control-dashboard-row{gap:var(--ibiz-control-dashboard-dashboard-margin)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-form-group{--ibiz-form-group-bg-color:transparent;--ibiz-form-group-footer-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-show-more-color:var(--ibiz-color-primary);--ibiz-form-group-header-bg-color:transparent;--ibiz-form-group-header-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-header-border-color:var(--ibiz-color-border);--ibiz-form-group-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-group-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-group-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-group-content-bg-color:transparent;--ibiz-form-group-content-padding:var(--ibiz-spacing-tight);--ibiz-form-group-content-margin:0}.ibiz-form-group{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-form-group-bg-color);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-group__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-group-caption-font-size);font-weight:var(--ibiz-form-group-caption-font-weight);color:var(--ibiz-form-group-caption-text-color)}.ibiz-form-group__toolbar{text-align:right}.ibiz-form-group .ibiz-form-item-container{border-radius:0}.ibiz-form-group-collapse>.ibiz-form-group-content{display:block}.ibiz-form-group-collapse.is-collapse>.ibiz-form-group-content{display:none}.ibiz-form-group-header{display:flex;align-items:center;padding:var(--ibiz-form-group-header-padding);background-color:var(--ibiz-form-group-header-bg-color)}.ibiz-form-group-header__left,.ibiz-form-group-header__right{display:inline-block;width:50%}.ibiz-form-group-header__right{display:flex;align-items:center;justify-content:end;height:100%}.ibiz-form-group-header__right .van-button{height:100%;color:var(--ibiz-color-link);border:none}.ibiz-form-group--show-header>.ibiz-form-group-content{margin-bottom:var(--ibiz-form-group-content-margin);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group-footer{padding:var(--ibiz-form-group-footer-padding)}.ibiz-form-group-footer__show-more-button{display:inline-block;color:var(--ibiz-form-group-show-more-color)}
|
|
1
|
+
.ibiz-form-group{--ibiz-form-group-bg-color:transparent;--ibiz-form-group-footer-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-show-more-color:var(--ibiz-color-primary);--ibiz-form-group-header-bg-color:transparent;--ibiz-form-group-header-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-header-border-color:var(--ibiz-color-border);--ibiz-form-group-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-group-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-group-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-group-content-bg-color:transparent;--ibiz-form-group-content-padding:var(--ibiz-spacing-tight);--ibiz-form-group-content-margin:0}.ibiz-form-group{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-form-group-bg-color);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-group__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-group-caption-font-size);font-weight:var(--ibiz-form-group-caption-font-weight);color:var(--ibiz-form-group-caption-text-color)}.ibiz-form-group__toolbar{text-align:right}.ibiz-form-group .ibiz-form-item-container{border-radius:0}.ibiz-form-group-collapse>.ibiz-form-group-content{display:block}.ibiz-form-group-collapse.is-collapse>.ibiz-form-group-content{display:none}.ibiz-form-group-header{display:flex;align-items:center;padding:var(--ibiz-form-group-header-padding);background-color:var(--ibiz-form-group-header-bg-color)}.ibiz-form-group-header__left,.ibiz-form-group-header__right{display:inline-block;width:50%}.ibiz-form-group-header__right{display:flex;align-items:center;justify-content:flex-end;height:100%}.ibiz-form-group-header__right .van-button{height:100%;color:var(--ibiz-color-link);border:none}.ibiz-form-group--show-header>.ibiz-form-group-content{margin-bottom:var(--ibiz-form-group-content-margin);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group-footer{padding:var(--ibiz-form-group-footer-padding)}.ibiz-form-group-footer__show-more-button{display:inline-block;color:var(--ibiz-form-group-show-more-color)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.
|
|
1
|
+
.ibiz-form-item-container{--ibiz-form-item-container-label-width:8.125rem;--ibiz-form-item-container-line-height:var(--ibiz-form-item-line-height);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-left-container-padding:var(--ibiz-spacing-base);--ibiz-form-item-container-error-margin-top:var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-bg-color:var(--ibiz-color-bg-1);--ibiz-form-item-container-label-font-size:var(--ibiz-font-size-header-6);--ibiz-form-item-container-label-text-color:var(--ibiz-color-text-0);--ibiz-form-item-container-container-error-padding:0 var(--ibiz-spacing-base);--ibiz-form-item-container-border:0.0625rem var(--ibiz-color-border) solid;--ibiz-form-item-container-editor-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none) var(--ibiz-spacing-tight) var(--ibiz-spacing-none);--ibiz-form-item-label-line-height:1;--ibiz-form-item-label-font-size:var(--ibiz-font-size-header-5);--ibiz-form-item-label-text-color:var(--ibiz-color-text-0);position:relative;width:100%;height:100%;padding:var(--ibiz-form-item-container-container-padding);font-size:var(--ibiz-form-item-font-size);background-color:var(--ibiz-form-item-container-bg-color);border-width:calc(100% - var(--ibiz-spacing-base) * 2);border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item-container::after{position:absolute;z-index:1;width:calc(100% - var(--ibiz-spacing-base) * 2);height:.0625rem;content:"";background-color:var(--ibiz-color-border);transform:scaleY(.5)}.ibiz-form-item-container__label{position:relative;flex-shrink:0;width:var(--ibiz-form-item-container-label-width);overflow:visible;color:var(--ibiz-form-item-label-text-color)}.ibiz-form-item-container__label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;width:100%;font-size:var(--ibiz-form-item-container-label-font-size);text-align:var(--ibiz-form-item-container-label-align)}.ibiz-form-item-container__editor{width:100%;text-align:var(--ibiz-form-item-container-editor-align)}.ibiz-form-item-container__editor .van-cell{padding-bottom:0}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{position:absolute;top:.1875rem;left:-.625rem;display:inline-block;height:100%;font-size:.875rem;color:var(--ibiz-form-item-error-color);content:"*"}.ibiz-form-item-container.is-error::after{background-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container.is-error .ibiz-form-item-container-content{border-color:var(--ibiz-form-item-error-color)}.ibiz-form-item-container--left::after{bottom:0}.ibiz-form-item-container--right.is-required .ibiz-form-item-container__label::before{right:-.625rem;left:auto}.ibiz-form-item-container--right .ibiz-form-item-container__editor{position:relative;width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--left .ibiz-form-item-container__editor{width:calc(100% - var(--ibiz-form-item-container-label-width))}.ibiz-form-item-container--top .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container--bottom .ibiz-form-item-container__editor{padding:var(--ibiz-form-item-container-editor-padding)}.ibiz-form-item-container-content{position:relative}.ibiz-form-item-container--left .ibiz-form-item-container-content,.ibiz-form-item-container--right .ibiz-form-item-container-content{height:100%;display:flex;align-items:center;justify-content:center}.ibiz-form-item-container-error{position:absolute;bottom:0;width:calc(100% - var(--ibiz-spacing-base));padding-right:var(--ibiz-spacing-base);font-size:var(--ibiz-form-item-error-font-size);line-height:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-error-color);text-align:var(--ibiz-form-item-container-editor-align)}
|
|
@@ -70,7 +70,11 @@ const FormItem = /* @__PURE__ */ defineComponent({
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
return createVNode(resolveComponent("iBizFormItemContainer"), {
|
|
73
|
-
"class": [this.ns.b(), this.ns.m(this.modelData.id)
|
|
73
|
+
"class": [this.ns.b(), this.ns.m(this.modelData.id), {
|
|
74
|
+
[this.ns.m("disabled")]: this.c.state.disabled
|
|
75
|
+
}, {
|
|
76
|
+
[this.ns.m("readonly")]: this.controller.model.editor.readOnly
|
|
77
|
+
}],
|
|
74
78
|
"required": this.c.state.required,
|
|
75
79
|
"error": this.c.state.error,
|
|
76
80
|
"label": this.captionText,
|
|
@@ -44,6 +44,7 @@ const FormMDCtrlForm = /* @__PURE__ */ defineComponent({
|
|
|
44
44
|
return createVNode(resolveComponent("iBizMDCtrlContainer"), {
|
|
45
45
|
"class": this.ns.b(),
|
|
46
46
|
"items": state.items || [],
|
|
47
|
+
"caption": this.controller.model.caption,
|
|
47
48
|
"enableCreate": this.controller.enableCreate,
|
|
48
49
|
"enableDelete": this.controller.enableDelete,
|
|
49
50
|
"onAddClick": (index) => this.controller.create(index),
|
|
@@ -26,7 +26,7 @@ const RepeaterMultiForm = /* @__PURE__ */ defineComponent({
|
|
|
26
26
|
};
|
|
27
27
|
const removeClick = async (index) => {
|
|
28
28
|
const confirm = await ibiz.modal.confirm({
|
|
29
|
-
title: "\
|
|
29
|
+
title: "\u5220\u9664\u63D0\u9192",
|
|
30
30
|
desc: "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879?"
|
|
31
31
|
});
|
|
32
32
|
if (confirm) {
|
|
@@ -44,6 +44,7 @@ const RepeaterMultiForm = /* @__PURE__ */ defineComponent({
|
|
|
44
44
|
return createVNode(resolveComponent("iBizMDCtrlContainer"), {
|
|
45
45
|
"class": this.ns.b(),
|
|
46
46
|
"items": items,
|
|
47
|
+
"caption": this.controller.model.caption,
|
|
47
48
|
"enableCreate": this.controller.enableCreate,
|
|
48
49
|
"enableDelete": this.controller.enableDelete,
|
|
49
50
|
"onAddClick": (index) => this.controller.create(index),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:32px;--ibiz-form-mdctrl-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-mdctrl-header-padding:var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-
|
|
1
|
+
.ibiz-form-mdctrl{--ibiz-form-mdctrl-header-height:32px;--ibiz-form-mdctrl-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-mdctrl-header-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-mdctrl-header-border-color:var(--ibiz-color-border);--ibiz-form-mdctrl-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-mdctrl-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-mdctrl-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-mdctrl-caption-height:2rem;--ibiz-form-mdctrl-caption-line-height:2rem;height:100%}.ibiz-form-mdctrl__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:var(--ibiz-form-mdctrl-caption-height);font-size:var(--ibiz-form-mdctrl-caption-font-size);font-weight:var(--ibiz-form-mdctrl-caption-font-weight);line-height:var(--ibiz-form-mdctrl-caption-line-height);color:var(--ibiz-form-mdctrl-caption-text-color)}.ibiz-form-mdctrl--has-value .ibiz-form-mdctrl-header{display:none}.ibiz-form-mdctrl-header{display:flex;padding:var(--ibiz-form-mdctrl-header-padding)}
|
|
@@ -15,6 +15,7 @@ export declare const FormMDCtrl: import("vue").DefineComponent<{
|
|
|
15
15
|
c: FormMDCtrlController;
|
|
16
16
|
ns: import("@ibiz-template/core").Namespace;
|
|
17
17
|
hasCaption: boolean | undefined;
|
|
18
|
+
hasValue: import("vue").ComputedRef<boolean | undefined>;
|
|
18
19
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
19
20
|
modelData: {
|
|
20
21
|
type: PropType<IDEFormMDCtrl>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createTextVNode, createVNode, resolveComponent, defineComponent } from 'vue';
|
|
1
|
+
import { computed, createTextVNode, createVNode, resolveComponent, defineComponent } from 'vue';
|
|
2
2
|
import { useNamespace, useController } from '@ibiz-template/vue3-util';
|
|
3
3
|
import { FormMDCtrlController } from '@ibiz-template/runtime';
|
|
4
4
|
import './form-mdctrl.css';
|
|
@@ -21,10 +21,14 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
|
|
|
21
21
|
useController(props.controller);
|
|
22
22
|
const c = props.controller;
|
|
23
23
|
const hasCaption = c.model.showCaption && !!c.model.caption;
|
|
24
|
+
const hasValue = computed(() => {
|
|
25
|
+
return c.value && c.value.length > 0 || c.state.items && c.state.items.length > 0;
|
|
26
|
+
});
|
|
24
27
|
return {
|
|
25
28
|
c,
|
|
26
29
|
ns,
|
|
27
|
-
hasCaption
|
|
30
|
+
hasCaption,
|
|
31
|
+
hasValue
|
|
28
32
|
};
|
|
29
33
|
},
|
|
30
34
|
render() {
|
|
@@ -55,7 +59,7 @@ const FormMDCtrl = /* @__PURE__ */ defineComponent({
|
|
|
55
59
|
break;
|
|
56
60
|
}
|
|
57
61
|
return createVNode("div", {
|
|
58
|
-
"class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : ""]
|
|
62
|
+
"class": [this.ns.b(), this.ns.m(this.modelData.codeName), ...this.controller.containerClass, this.hasCaption ? this.ns.m("show-caption") : "", this.hasValue ? this.ns.m("has-value") : ""]
|
|
59
63
|
}, [this.hasCaption && createVNode("div", {
|
|
60
64
|
"class": this.ns.b("header")
|
|
61
65
|
}, [createVNode("span", {
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import FormMDCtrl from './form-mdctrl';
|
|
2
|
+
import { FormMDCtrlForm } from './form-mdctrl-form/form-mdctrl-form';
|
|
3
|
+
import { FormMDCtrlMD } from './form-mdctrl-md/form-mdctrl-md';
|
|
4
|
+
import { FormMDCtrlRepeater } from './form-mdctrl-repeater/form-mdctrl-repeater';
|
|
5
|
+
import { FormMDCtrlProvider } from './form-mdctrl.provider';
|
|
6
|
+
import { MDCtrlContainer } from './mdctrl-container/mdctrl-container';
|
|
1
7
|
export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
|
|
2
8
|
modelData: {
|
|
3
9
|
type: import("vue").PropType<import("@ibiz/model-core").IDEFormMDCtrl>;
|
|
@@ -11,6 +17,7 @@ export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWith
|
|
|
11
17
|
c: import("@ibiz-template/runtime").FormMDCtrlController;
|
|
12
18
|
ns: import("@ibiz-template/core").Namespace;
|
|
13
19
|
hasCaption: boolean | undefined;
|
|
20
|
+
hasValue: import("vue").ComputedRef<boolean | undefined>;
|
|
14
21
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
22
|
modelData: {
|
|
16
23
|
type: import("vue").PropType<import("@ibiz/model-core").IDEFormMDCtrl>;
|
|
@@ -22,3 +29,4 @@ export declare const IBizFormMDCtrl: import("@ibiz-template/vue3-util").TypeWith
|
|
|
22
29
|
};
|
|
23
30
|
}>>, {}, {}>>;
|
|
24
31
|
export default IBizFormMDCtrl;
|
|
32
|
+
export { MDCtrlContainer, FormMDCtrlProvider, FormMDCtrlRepeater, FormMDCtrlMD, FormMDCtrlForm, FormMDCtrl, };
|
|
@@ -17,4 +17,4 @@ const IBizFormMDCtrl = withInstall(FormMDCtrl, function(v) {
|
|
|
17
17
|
registerFormDetailProvider("MDCTRL", () => new FormMDCtrlProvider());
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
export { IBizFormMDCtrl, IBizFormMDCtrl as default };
|
|
20
|
+
export { FormMDCtrl, FormMDCtrlForm, FormMDCtrlMD, FormMDCtrlProvider, FormMDCtrlRepeater, IBizFormMDCtrl, MDCtrlContainer, IBizFormMDCtrl as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-mdctrl-container{display:flex;flex-direction:column;padding:var(--ibiz-
|
|
1
|
+
.ibiz-mdctrl-container{--ibiz-mdctrl-container-header-bg-color:transparent;--ibiz-mdctrl-container-header-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-mdctrl-container-header-border-color:var(--ibiz-color-border);--ibiz-mdctrl-container-caption-text-color:var(--ibiz-color-text-2);--ibiz-mdctrl-container-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-mdctrl-container-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-mdctrl-container-caption-height:1.25rem;--ibiz-mdctrl-container-caption-line-height:1.25rem;--ibiz-mdctrl-container-button-text-color:var(--ibiz-color-info);--ibiz-mdctrl-container-button-font-size:var(--ibiz-font-size-header-6);--ibiz-mdctrl-container-button-font-weight:var(--ibiz-font-weight-regular);display:flex;flex-direction:column}.ibiz-mdctrl-container__btn{width:auto;padding:0;margin-left:10px;font-size:var(--ibiz-mdctrl-container-button-font-size);color:var(--ibiz-mdctrl-container-button-text-color);background-color:transparent;border:none}.ibiz-mdctrl-container__btn:active{background-color:transparent}.ibiz-mdctrl-container__btn:active::before{opacity:0}.ibiz-mdctrl-container-item{overflow:hidden}.ibiz-mdctrl-container-item__form{flex-grow:1}.ibiz-mdctrl-container-item .ibiz-mdctrl-container-item-header{display:flex;align-items:center;justify-content:flex-end;padding:var(--ibiz-mdctrl-container-header-padding);background-color:var(--ibiz-mdctrl-container-header-bg-color)}.ibiz-mdctrl-container-item-header__caption{flex-grow:1;height:var(--ibiz-mdctrl-container-caption-height);font-size:var(--ibiz-mdctrl-container-caption-font-size);font-weight:var(--ibiz-mdctrl-container-caption-font-weight);line-height:var(--ibiz-mdctrl-container-caption-line-height);color:var(--ibiz-mdctrl-container-caption-text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-mdctrl-container-item-header__action{--van-button-small-height:1.25rem;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-end;height:1.25rem;line-height:1.25rem;text-align:right}.ibiz-mdctrl-container-item .ibiz-mdctrl-container-item-content{background-color:var(--ibiz-color-bg-1)}.ibiz-mdctrl-container-item .ibiz-form-page-item{--ibiz-form-page-item-gap:0}.ibiz-mdctrl-container-no-data{width:100%;display:flex;justify-content:flex-end}.ibiz-mdctrl-container-footer{color:red}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn{width:100%;padding:0;margin-left:0;font-size:var(--ibiz-font-size-header-5);color:var(--ibiz-mdctrl-container-button-text-color);background-color:var(--ibiz-color-bg-1);border:none}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn:active{background-color:transparent}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn:active::before{opacity:.1}.ibiz-mdctrl-container-footer .ibiz-mdctrl-container__btn .van-icon{margin-right:var(--ibiz-spacing-extra-tight)}
|
|
@@ -13,12 +13,16 @@ export declare const MDCtrlContainer: import("vue").DefineComponent<{
|
|
|
13
13
|
type: PropType<IData[]>;
|
|
14
14
|
required: true;
|
|
15
15
|
};
|
|
16
|
+
caption: {
|
|
17
|
+
type: StringConstructor;
|
|
18
|
+
required: false;
|
|
19
|
+
};
|
|
16
20
|
}, {
|
|
17
21
|
ns: import("@ibiz-template/core").Namespace;
|
|
18
22
|
showActions: import("vue").ComputedRef<boolean>;
|
|
19
|
-
renderAddBtn: (index?: number) => JSX.Element | null;
|
|
23
|
+
renderAddBtn: (index?: number, showButton?: boolean) => JSX.Element | null;
|
|
20
24
|
renderRemoveBtn: (item: IData, index: number) => JSX.Element | null;
|
|
21
|
-
|
|
25
|
+
renderActionBtn: (item: IData, index: number) => (JSX.Element | null)[];
|
|
22
26
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
23
27
|
addClick: (_index?: number) => true;
|
|
24
28
|
removeClick: (_data: IData, _index: number) => true;
|
|
@@ -35,6 +39,10 @@ export declare const MDCtrlContainer: import("vue").DefineComponent<{
|
|
|
35
39
|
type: PropType<IData[]>;
|
|
36
40
|
required: true;
|
|
37
41
|
};
|
|
42
|
+
caption: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
required: false;
|
|
45
|
+
};
|
|
38
46
|
}>> & {
|
|
39
47
|
onRemoveClick?: ((_data: IData, _index: number) => any) | undefined;
|
|
40
48
|
onAddClick?: ((_index?: number | undefined) => any) | undefined;
|