@ibiz-template/mob-vue3-components 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +5 -5
  3. package/dist/index.system.min.js.map +1 -1
  4. package/es/common/carousel/carousel.css +1 -0
  5. package/es/common/carousel/carousel.d.ts +52 -0
  6. package/es/common/carousel/carousel.mjs +61 -0
  7. package/es/common/index.mjs +2 -0
  8. package/es/control/calendar/calendar.css +1 -1
  9. package/es/control/calendar/calendar.d.ts +4 -3
  10. package/es/control/calendar/calendar.mjs +94 -12
  11. package/es/control/calendar/index.d.ts +2 -1
  12. package/es/control/dashboard/dashboard.css +1 -1
  13. package/es/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
  14. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  15. package/es/control/form/form-detail/form-item/form-item.mjs +5 -1
  16. package/es/control/list/md-ctrl/md-ctrl.css +1 -1
  17. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -1
  18. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +2 -1
  19. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  20. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.d.ts +2 -0
  21. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.mjs +17 -4
  22. package/es/editor/index.mjs +10 -0
  23. package/es/editor/text-box/input/input.css +1 -1
  24. package/es/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
  25. package/es/editor/upload/ibiz-carousel/ibiz-carousel.d.ts +65 -0
  26. package/es/editor/upload/ibiz-carousel/ibiz-carousel.mjs +71 -0
  27. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  28. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +3 -0
  29. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +40 -9
  30. package/es/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
  31. package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +1 -2
  32. package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +12 -5
  33. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  34. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -4
  35. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +13 -13
  36. package/es/editor/upload/index.d.ts +1 -0
  37. package/es/editor/upload/index.mjs +1 -0
  38. package/es/editor/upload/upload-editor.controller.d.ts +8 -0
  39. package/es/editor/upload/upload-editor.controller.mjs +50 -0
  40. package/es/editor/upload/upload-editor.provider.mjs +3 -0
  41. package/es/editor/upload/use/use-van-upload.mjs +3 -14
  42. package/es/index.mjs +8 -0
  43. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -0
  44. package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +29 -0
  45. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +66 -0
  46. package/es/panel-component/auth-userinfo/auth-userinfo.provider.d.ts +15 -0
  47. package/es/panel-component/auth-userinfo/auth-userinfo.provider.mjs +21 -0
  48. package/es/panel-component/auth-userinfo/index.d.ts +26 -0
  49. package/es/panel-component/auth-userinfo/index.mjs +15 -0
  50. package/es/panel-component/index.mjs +6 -0
  51. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -1
  52. package/es/panel-component/panel-button/panel-button.controller.mjs +12 -8
  53. package/es/panel-component/panel-carousel/index.d.ts +20 -0
  54. package/es/panel-component/panel-carousel/index.mjs +16 -0
  55. package/es/panel-component/panel-carousel/panel-carousel.controller.d.ts +50 -0
  56. package/es/panel-component/panel-carousel/panel-carousel.controller.mjs +76 -0
  57. package/es/panel-component/panel-carousel/panel-carousel.css +1 -0
  58. package/es/panel-component/panel-carousel/panel-carousel.d.ts +20 -0
  59. package/es/panel-component/panel-carousel/panel-carousel.mjs +42 -0
  60. package/es/panel-component/panel-carousel/panel-carousel.provider.d.ts +14 -0
  61. package/es/panel-component/panel-carousel/panel-carousel.provider.mjs +21 -0
  62. package/es/panel-component/panel-video-player/index.d.ts +22 -0
  63. package/es/panel-component/panel-video-player/index.mjs +19 -0
  64. package/es/panel-component/panel-video-player/panel-video-player.controller.d.ts +50 -0
  65. package/es/panel-component/panel-video-player/panel-video-player.controller.mjs +81 -0
  66. package/es/panel-component/panel-video-player/panel-video-player.css +1 -0
  67. package/es/panel-component/panel-video-player/panel-video-player.d.ts +22 -0
  68. package/es/panel-component/panel-video-player/panel-video-player.mjs +59 -0
  69. package/es/panel-component/panel-video-player/panel-video-player.provider.d.ts +14 -0
  70. package/es/panel-component/panel-video-player/panel-video-player.provider.mjs +21 -0
  71. package/es/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  72. package/es/platform/index.d.ts +1 -0
  73. package/es/platform/index.mjs +3 -0
  74. package/es/platform/vue-browser-platform-provider.d.ts +20 -0
  75. package/es/platform/vue-browser-platform-provider.mjs +20 -0
  76. package/lib/common/carousel/carousel.cjs +63 -0
  77. package/lib/common/carousel/carousel.css +1 -0
  78. package/lib/common/index.cjs +2 -0
  79. package/lib/control/calendar/calendar.cjs +94 -12
  80. package/lib/control/calendar/calendar.css +1 -1
  81. package/lib/control/dashboard/dashboard.css +1 -1
  82. package/lib/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
  83. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  84. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -1
  85. package/lib/control/list/md-ctrl/md-ctrl.css +1 -1
  86. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +2 -1
  87. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.cjs +17 -4
  88. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  89. package/lib/editor/index.cjs +10 -0
  90. package/lib/editor/text-box/input/input.css +1 -1
  91. package/lib/editor/upload/ibiz-carousel/ibiz-carousel.cjs +73 -0
  92. package/lib/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
  93. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +39 -8
  94. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  95. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +12 -5
  96. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
  97. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +12 -12
  98. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  99. package/lib/editor/upload/index.cjs +2 -0
  100. package/lib/editor/upload/upload-editor.controller.cjs +50 -0
  101. package/lib/editor/upload/upload-editor.provider.cjs +3 -0
  102. package/lib/editor/upload/use/use-van-upload.cjs +3 -14
  103. package/lib/index.cjs +8 -0
  104. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +68 -0
  105. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -0
  106. package/lib/panel-component/auth-userinfo/auth-userinfo.provider.cjs +23 -0
  107. package/lib/panel-component/auth-userinfo/index.cjs +20 -0
  108. package/lib/panel-component/index.cjs +6 -0
  109. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -1
  110. package/lib/panel-component/panel-button/panel-button.controller.cjs +12 -8
  111. package/lib/panel-component/panel-carousel/index.cjs +23 -0
  112. package/lib/panel-component/panel-carousel/panel-carousel.cjs +47 -0
  113. package/lib/panel-component/panel-carousel/panel-carousel.controller.cjs +78 -0
  114. package/lib/panel-component/panel-carousel/panel-carousel.css +1 -0
  115. package/lib/panel-component/panel-carousel/panel-carousel.provider.cjs +23 -0
  116. package/lib/panel-component/panel-video-player/index.cjs +26 -0
  117. package/lib/panel-component/panel-video-player/panel-video-player.cjs +64 -0
  118. package/lib/panel-component/panel-video-player/panel-video-player.controller.cjs +83 -0
  119. package/lib/panel-component/panel-video-player/panel-video-player.css +1 -0
  120. package/lib/panel-component/panel-video-player/panel-video-player.provider.cjs +23 -0
  121. package/lib/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  122. package/lib/platform/index.cjs +7 -0
  123. package/lib/platform/vue-browser-platform-provider.cjs +22 -0
  124. package/package.json +5 -5
@@ -0,0 +1,65 @@
1
+ import './ibiz-carousel.scss';
2
+ import { UploadEditorController } from '../upload-editor.controller';
3
+ export declare const IBizEditorCarousel: import("vue").DefineComponent<{
4
+ value: StringConstructor;
5
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<UploadEditorController>, undefined, undefined>;
6
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
7
+ disabled: {
8
+ type: BooleanConstructor;
9
+ };
10
+ readonly: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ };
14
+ autoFocus: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ overflowMode: {
19
+ type: StringConstructor;
20
+ };
21
+ }, {
22
+ ns: import("@ibiz-template/core").Namespace;
23
+ c: UploadEditorController;
24
+ images: import("vue").ComputedRef<{
25
+ rawContent: string | undefined;
26
+ }[]>;
27
+ autoplay: number;
28
+ duration: number;
29
+ showIndicators: boolean;
30
+ touchable: boolean;
31
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
32
+ change: (_value: unknown, _name?: string | undefined) => boolean;
33
+ blur: (_event?: IData | undefined) => boolean;
34
+ focus: (_event?: IData | undefined) => boolean;
35
+ enter: (_event?: IData | undefined) => boolean;
36
+ infoTextChange: (_text: string) => boolean;
37
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
38
+ value: StringConstructor;
39
+ controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<UploadEditorController>, undefined, undefined>;
40
+ data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<IData>, undefined, undefined>;
41
+ disabled: {
42
+ type: BooleanConstructor;
43
+ };
44
+ readonly: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ autoFocus: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ overflowMode: {
53
+ type: StringConstructor;
54
+ };
55
+ }>> & {
56
+ onFocus?: ((_event?: IData | undefined) => any) | undefined;
57
+ onBlur?: ((_event?: IData | undefined) => any) | undefined;
58
+ onChange?: ((_value: unknown, _name?: string | undefined) => any) | undefined;
59
+ onEnter?: ((_event?: IData | undefined) => any) | undefined;
60
+ onInfoTextChange?: ((_text: string) => any) | undefined;
61
+ }, {
62
+ disabled: boolean;
63
+ readonly: boolean;
64
+ autoFocus: boolean;
65
+ }, {}>;
@@ -0,0 +1,71 @@
1
+ import { computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { getUploadProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
+ import './ibiz-carousel.css';
4
+ import { toNumber } from 'lodash-es';
5
+ import { useVanUpload } from '../use/use-van-upload.mjs';
6
+
7
+ "use strict";
8
+ const IBizEditorCarousel = /* @__PURE__ */ defineComponent({
9
+ name: "IBizEditorCarousel",
10
+ props: getUploadProps(),
11
+ emits: getEditorEmits(),
12
+ setup(props, {
13
+ emit
14
+ }) {
15
+ const ns = useNamespace("carousel");
16
+ const c = props.controller;
17
+ const {
18
+ files
19
+ } = useVanUpload(props, (value) => {
20
+ emit("change", value);
21
+ }, c);
22
+ const editorModel = c.model;
23
+ let autoplay = 3e3;
24
+ let duration = 500;
25
+ let showIndicators = true;
26
+ let touchable = true;
27
+ if (editorModel.editorParams) {
28
+ if (editorModel.editorParams.autoplay) {
29
+ autoplay = toNumber(editorModel.editorParams.autoplay);
30
+ }
31
+ if (editorModel.editorParams.duration) {
32
+ duration = toNumber(editorModel.editorParams.duration);
33
+ }
34
+ if (editorModel.editorParams.showIndicators) {
35
+ showIndicators = editorModel.editorParams.showIndicators === "true";
36
+ }
37
+ if (editorModel.editorParams.touchable) {
38
+ touchable = editorModel.editorParams.touchable === "true";
39
+ }
40
+ }
41
+ const images = computed(() => {
42
+ return files.value.map((item) => {
43
+ return {
44
+ rawContent: item.url
45
+ };
46
+ });
47
+ });
48
+ return {
49
+ ns,
50
+ c,
51
+ images,
52
+ autoplay,
53
+ duration,
54
+ showIndicators,
55
+ touchable
56
+ };
57
+ },
58
+ render() {
59
+ return createVNode("div", {
60
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
61
+ }, [createVNode(resolveComponent("iBizCarousel"), {
62
+ "images": this.images,
63
+ "autoplay": this.autoplay,
64
+ "duration": this.duration,
65
+ "showIndicators": this.showIndicators,
66
+ "touchable": this.touchable
67
+ }, null)]);
68
+ }
69
+ });
70
+
71
+ export { IBizEditorCarousel };
@@ -1 +1 @@
1
- .ibiz-file-upload{width:100%}.ibiz-file-upload .van-uploader__preview{display:none}.ibiz-file-upload .ibiz-file-upload-button{height:1.875rem}.ibiz-file-upload .ibiz-file-upload-button span{font-size:var(--ibiz-form-item-font-size);color:var(--ibiz-form-item-text-color)}.ibiz-file-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-file-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-file-upload .ibiz-file-upload-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.75rem;line-height:initial;color:#fff;text-align:center;background:var(--ibiz-color-overlay-bg)}.ibiz-file-upload .ibiz-file-upload-preview{width:100%}.ibiz-file-upload .ibiz-file-upload-preview-item{display:flex;align-items:center;border-bottom:.0625rem solid var(--ibiz-color-border)}.ibiz-file-upload .ibiz-file-upload-preview-item:last-child{border-width:0}.ibiz-file-upload .ibiz-file-upload-preview-item-img{width:3.125rem;min-width:3.125rem;padding:.625rem}.ibiz-file-upload .ibiz-file-upload-preview-item-img img{width:100%;height:100%;border-radius:.25rem}.ibiz-file-upload .ibiz-file-upload-preview-item-text{overflow:hidden;font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}.ibiz-file-upload .ibiz-file-upload-preview-item-action{display:flex;flex-grow:1;align-items:center;justify-content:flex-end;min-width:3.125rem;color:var(--ibiz-color-overlay-bg);text-align:right}
1
+ .ibiz-file-upload{display:flex;flex-direction:column;width:100%}.ibiz-file-upload .van-uploader__preview{display:none}.ibiz-file-upload .van-uploader{width:100%}.ibiz-file-upload .ibiz-file-upload-button{width:1.25rem;height:1.25rem;font-size:var(--ibiz-font-size-header-4);color:var(--ibiz-color-text-2);background:0 0;border:none;border-radius:50%}.ibiz-file-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-file-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-file-upload .ibiz-file-upload-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.75rem;line-height:initial;color:#fff;text-align:center;background:var(--ibiz-color-overlay-bg)}.ibiz-file-upload .ibiz-file-upload-preview{width:100%;margin-top:.625rem}.ibiz-file-upload .ibiz-file-upload-preview-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 var(--ibiz-spacing-tight);margin-bottom:var(--ibiz-spacing-tight);background:var(--ibiz-color-disabled-bg);border-radius:var(--ibiz-border-radius-small)}.ibiz-file-upload .ibiz-file-upload-preview-item:last-child{margin:0;border-width:0}.ibiz-file-upload .ibiz-file-upload-preview-item-img{flex-shrink:0;width:2.5rem;min-width:2.5rem;height:2.5rem;padding:.375rem}.ibiz-file-upload .ibiz-file-upload-preview-item-img img{width:100%;height:100%;border-radius:.25rem}.ibiz-file-upload .ibiz-file-upload-preview-item-left{display:flex;flex-grow:1;align-items:center;width:calc(100% - 1.25rem)}.ibiz-file-upload .ibiz-file-upload-preview-item-text{display:flex;flex:1;align-items:center;width:calc(100% - 2.5rem);padding-left:var(--ibiz-spacing-tight);font-size:.875rem}.ibiz-file-upload .ibiz-file-upload-preview-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-file-upload .ibiz-file-upload-preview-item-action{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;width:1.25rem;color:var(--ibiz-color-overlay-bg);text-align:right}.ibiz-file-upload .van-uploader__input-wrapper{width:100%;text-align:right}.ibiz-form-item-container--top .ibiz-file-upload .van-uploader{position:absolute;top:0;right:0;width:100%}.ibiz-file-upload--readonly .ibiz-file-upload-preview{margin-top:0}.ibiz-file-upload--disabled .ibiz-file-upload-preview{margin-top:0}
@@ -32,6 +32,9 @@ export declare const IBizFileUpload: import("vue").DefineComponent<{
32
32
  beforeUpload: () => void;
33
33
  onDownload: (file: IData) => void;
34
34
  afterRead: (file: IData | IData[]) => Promise<void>;
35
+ getFileSuffix: (name: string) => string;
36
+ getFileName: (filename: string) => string;
37
+ getPreviewImg: (name: string) => string;
35
38
  limit: import("vue").ComputedRef<1 | 9999>;
36
39
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
40
  change: (_value: unknown, _name?: string | undefined) => boolean;
@@ -1,4 +1,4 @@
1
- import { resolveComponent, createTextVNode, createVNode, defineComponent } from 'vue';
1
+ import { resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { getUploadProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-file-upload.css';
4
4
  import { useVanUpload } from '../use/use-van-upload.mjs';
@@ -25,6 +25,27 @@ const IBizFileUpload = /* @__PURE__ */ defineComponent({
25
25
  } = useVanUpload(props, (value) => {
26
26
  emit("change", value);
27
27
  }, c);
28
+ const getFileSuffix = (name) => {
29
+ const lastDotIndex = name.lastIndexOf(".");
30
+ if (lastDotIndex === -1) {
31
+ return "";
32
+ }
33
+ const extension = name.substring(lastDotIndex + 1).toLowerCase();
34
+ return extension;
35
+ };
36
+ const getFileName = (filename) => {
37
+ const lastDotIndex = filename.lastIndexOf(".");
38
+ if (lastDotIndex === -1) {
39
+ return filename;
40
+ }
41
+ const name = filename.substring(0, lastDotIndex);
42
+ return name;
43
+ };
44
+ const getPreviewImg = (name) => {
45
+ const suffix = getFileSuffix(name);
46
+ const type = c.fileTypeMap.get(suffix) || "unknown";
47
+ return `./assets/img/file/${type}.svg`;
48
+ };
28
49
  return {
29
50
  ns,
30
51
  c,
@@ -35,6 +56,9 @@ const IBizFileUpload = /* @__PURE__ */ defineComponent({
35
56
  beforeUpload,
36
57
  onDownload,
37
58
  afterRead,
59
+ getFileSuffix,
60
+ getFileName,
61
+ getPreviewImg,
38
62
  limit
39
63
  };
40
64
  },
@@ -53,17 +77,17 @@ const IBizFileUpload = /* @__PURE__ */ defineComponent({
53
77
  }, {
54
78
  default: () => {
55
79
  return !this.readonly && !this.disabled && createVNode(resolveComponent("van-button"), {
56
- "class": this.ns.b("button")
57
- }, {
58
- default: () => [createTextVNode("\u4E0A\u4F20\u6587\u4EF6")]
59
- });
80
+ "class": this.ns.b("button"),
81
+ "icon": "add-o",
82
+ "type": "primary"
83
+ }, null);
60
84
  },
61
85
  "preview-cover": (file) => {
62
86
  return createVNode("div", {
63
87
  "class": this.ns.b("item-cover")
64
88
  }, [file.name]);
65
89
  }
66
- }), createVNode("div", {
90
+ }), this.files.length > 0 && createVNode("div", {
67
91
  "class": this.ns.b("preview")
68
92
  }, [this.files.map((item) => {
69
93
  return createVNode("div", {
@@ -71,18 +95,25 @@ const IBizFileUpload = /* @__PURE__ */ defineComponent({
71
95
  "onClick": () => {
72
96
  this.onDownload(item);
73
97
  }
98
+ }, [createVNode("div", {
99
+ "class": this.ns.b("preview-item-left")
74
100
  }, [createVNode("div", {
75
101
  "class": this.ns.b("preview-item-img")
76
102
  }, [createVNode("img", {
77
- "src": "./assets/img/file.png",
103
+ "src": this.getPreviewImg(item.name),
78
104
  "alt": ""
79
105
  }, null)]), createVNode("div", {
80
106
  "class": this.ns.b("preview-item-text")
81
- }, [item.name]), !this.readonly && !this.disabled && createVNode("div", {
107
+ }, [createVNode("div", {
108
+ "class": this.ns.b("preview-item-name")
109
+ }, [this.getFileName(item.name)]), this.getFileSuffix(item.name) && createVNode("div", {
110
+ "class": this.ns.b("preview-item-suffix")
111
+ }, [createTextVNode("."), this.getFileSuffix(item.name)])])]), !this.readonly && !this.disabled && createVNode("div", {
82
112
  "class": this.ns.b("preview-item-action")
83
113
  }, [createVNode(resolveComponent("van-icon"), {
84
114
  "name": "cross",
85
- "onClick": () => {
115
+ "onClick": (e) => {
116
+ e.stopPropagation();
86
117
  this.onRemove(item);
87
118
  }
88
119
  }, null)])]);
@@ -1 +1 @@
1
- .ibiz-image-select .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-image-select .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-image-select .ibiz-image-select-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.12rem;line-height:initial;color:#fff;text-align:center;background:0 0}.ibiz-image-select .ibiz-image-select-item-cover img{width:100%;height:100%;border-radius:.04rem}
1
+ .ibiz-image-select .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-image-select .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-image-select .ibiz-image-select-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.12rem;line-height:initial;color:#fff;text-align:center;background:0 0}.ibiz-image-select .ibiz-image-select-item-cover img{width:100%;height:100%;border-radius:.04rem}.ibiz-image-select .van-uploader__preview{width:100%;height:100%}.ibiz-image-select .van-uploader{width:var(--van-uploader-size);height:100%}
@@ -27,8 +27,7 @@ export declare const IBizImageSelect: import("vue").DefineComponent<{
27
27
  url?: string | undefined;
28
28
  }[]>;
29
29
  svg: import("vue").Ref<string>;
30
- dialogImageUrl: import("vue").Ref<string>;
31
- dialogVisible: import("vue").Ref<boolean>;
30
+ onPreview: (_file: IData) => void;
32
31
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
32
  change: (_value: unknown, _name?: string | undefined) => boolean;
34
33
  blur: (_event?: IData | undefined) => boolean;
@@ -1,6 +1,7 @@
1
1
  import { ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { getUploadProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-image-select.css';
4
+ import { showImagePreview } from 'vant';
4
5
  import { useVanUpload } from '../use/use-van-upload.mjs';
5
6
 
6
7
  "use strict";
@@ -13,21 +14,23 @@ const IBizImageSelect = /* @__PURE__ */ defineComponent({
13
14
  }) {
14
15
  const ns = useNamespace("image-select");
15
16
  const c = props.controller;
16
- const dialogVisible = ref(false);
17
- const dialogImageUrl = ref("");
18
17
  const svg = ref("");
19
18
  const {
20
19
  files
21
20
  } = useVanUpload(props, (value) => {
22
21
  emit("change", value);
23
22
  }, c);
23
+ const onPreview = (_file) => {
24
+ showImagePreview({
25
+ images: files.value.map((item) => item.url)
26
+ });
27
+ };
24
28
  return {
25
29
  ns,
26
30
  c,
27
31
  files,
28
32
  svg,
29
- dialogImageUrl,
30
- dialogVisible
33
+ onPreview
31
34
  };
32
35
  },
33
36
  render() {
@@ -44,7 +47,11 @@ const IBizImageSelect = /* @__PURE__ */ defineComponent({
44
47
  }, {
45
48
  "preview-cover": (file) => {
46
49
  return createVNode("div", {
47
- "class": this.ns.b("item-cover")
50
+ "class": this.ns.b("item-cover"),
51
+ "onClick": (e) => {
52
+ e.stopPropagation();
53
+ this.onPreview(file);
54
+ }
48
55
  }, [createVNode("img", {
49
56
  "src": file.url
50
57
  }, null)]);
@@ -1 +1 @@
1
- .ibiz-image-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-image-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-image-upload .ibiz-image-upload-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.75rem;line-height:initial;color:#fff;text-align:center;background:0 0}.ibiz-image-upload .ibiz-image-upload-item-cover img{width:100%;height:100%;border-radius:.25rem}.van-uploader__preview-delete--shadow{top:-.3125rem;right:-.3125rem;display:flex;align-items:center;justify-content:center;width:var(--van-uploader-delete-icon-size);height:var(--van-uploader-delete-icon-size);text-align:center;background:var(--van-uploader-delete-background);border-radius:50%;opacity:.6}.van-uploader__preview-delete-icon{position:absolute;top:0;right:0;font-size:var(--van-uploader-delete-icon-size);color:var(--van-uploader-delete-color);transform:scale(.7) translate(0,-10%)}.van-uploader__upload{background:0 0;border:var(--ibiz-color-border) .0625rem solid;border-radius:.25rem}.van-uploader__upload--readonly{display:none}
1
+ .ibiz-image-upload .van-uploader__preview .van-uploader__file-icon{display:none}.ibiz-image-upload .van-uploader__preview .van-uploader__file-name{display:none}.ibiz-image-upload .ibiz-image-upload-item-cover{position:absolute;top:0;bottom:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;font-size:.75rem;line-height:initial;color:#fff;text-align:center;background:0 0}.ibiz-image-upload .ibiz-image-upload-item-cover img{width:100%;height:100%;border-radius:.25rem}.van-uploader__preview-delete--shadow{top:-.3125rem;right:-.3125rem;display:flex;align-items:center;justify-content:center;width:var(--van-uploader-delete-icon-size);height:var(--van-uploader-delete-icon-size);text-align:center;background:var(--van-uploader-delete-background);border-radius:50%;opacity:.6}.van-uploader__preview-delete-icon{position:absolute;top:0;right:0;font-size:var(--van-uploader-delete-icon-size);color:var(--van-uploader-delete-color);transform:scale(.7) translate(0,-10%)}.van-uploader__upload{background:0 0;border:var(--ibiz-color-border) .0625rem solid;border-radius:.25rem}.van-uploader__upload--readonly{display:none}.ibiz-panel-field .ibiz-panel-field-content{height:100%}.ibiz-panel-field .ibiz-panel-field-content .van-uploader{width:100%;height:100%}.ibiz-panel-field .ibiz-panel-field-content .van-uploader__wrapper{height:100%}
@@ -29,12 +29,9 @@ export declare const IBizImageUpload: import("vue").DefineComponent<{
29
29
  limit: import("vue").ComputedRef<1 | 9999>;
30
30
  headers: import("vue").Ref<IData>;
31
31
  uploadUrl: import("vue").Ref<string>;
32
- dialogImageUrl: import("vue").Ref<string>;
33
- dialogVisible: import("vue").Ref<boolean>;
34
32
  beforeUpload: () => void;
35
33
  onRemove: (file: IData) => void;
36
- onDialogVisibleChange: (value: boolean) => void;
37
- onPreview: (file: IData) => void;
34
+ onPreview: (_file: IData) => void;
38
35
  afterRead: (file: IData | IData[]) => Promise<void>;
39
36
  onDownload: (file: IData) => void;
40
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -1,6 +1,7 @@
1
- import { ref, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { getUploadProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-image-upload.css';
4
+ import { showImagePreview } from 'vant';
4
5
  import { useVanUpload } from '../use/use-van-upload.mjs';
5
6
 
6
7
  "use strict";
@@ -25,14 +26,12 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
25
26
  } = useVanUpload(props, (value) => {
26
27
  emit("change", value);
27
28
  }, c);
28
- const dialogImageUrl = ref("");
29
- const dialogVisible = ref(false);
30
- const onDialogVisibleChange = (value) => {
31
- dialogVisible.value = value;
32
- };
33
- const onPreview = (file) => {
34
- dialogImageUrl.value = file.url;
35
- dialogVisible.value = true;
29
+ const onPreview = (_file) => {
30
+ const index = files.value.findIndex((item) => item.id === _file.id);
31
+ showImagePreview({
32
+ images: files.value.map((item) => item.url),
33
+ startPosition: index
34
+ });
36
35
  };
37
36
  return {
38
37
  ns,
@@ -41,11 +40,8 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
41
40
  limit,
42
41
  headers,
43
42
  uploadUrl,
44
- dialogImageUrl,
45
- dialogVisible,
46
43
  beforeUpload,
47
44
  onRemove,
48
- onDialogVisibleChange,
49
45
  onPreview,
50
46
  afterRead,
51
47
  onDownload
@@ -68,7 +64,11 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
68
64
  }, {
69
65
  "preview-cover": (file) => {
70
66
  return createVNode("div", {
71
- "class": this.ns.b("item-cover")
67
+ "class": this.ns.b("item-cover"),
68
+ "onClick": (e) => {
69
+ e.stopPropagation();
70
+ this.onPreview(file);
71
+ }
72
72
  }, [createVNode("img", {
73
73
  "src": file.url
74
74
  }, null)]);
@@ -1,5 +1,6 @@
1
1
  export { IBizFileUpload } from './ibiz-file-upload/ibiz-file-upload';
2
2
  export { IBizImageUpload } from './ibiz-image-upload/ibiz-image-upload';
3
3
  export { IBizImageSelect } from './ibiz-image-select/ibiz-image-select';
4
+ export { IBizEditorCarousel } from './ibiz-carousel/ibiz-carousel';
4
5
  export * from './upload-editor.controller';
5
6
  export * from './upload-editor.provider';
@@ -1,6 +1,7 @@
1
1
  export { IBizFileUpload } from './ibiz-file-upload/ibiz-file-upload.mjs';
2
2
  export { IBizImageUpload } from './ibiz-image-upload/ibiz-image-upload.mjs';
3
3
  export { IBizImageSelect } from './ibiz-image-select/ibiz-image-select.mjs';
4
+ export { IBizEditorCarousel } from './ibiz-carousel/ibiz-carousel.mjs';
4
5
  export { UploadEditorController } from './upload-editor.controller.mjs';
5
6
  export { FileUploaderEditorProvider } from './upload-editor.provider.mjs';
6
7
 
@@ -27,6 +27,14 @@ export declare class UploadEditorController extends EditorController<IFileUpload
27
27
  * 下载参数
28
28
  */
29
29
  exportParams?: IParams;
30
+ /**
31
+ * 文件类型
32
+ *
33
+ * @author zk
34
+ * @date 2023-12-07 03:12:25
35
+ * @memberof UploadEditorController
36
+ */
37
+ fileTypeMap: Map<string, string>;
30
38
  protected onInit(): Promise<void>;
31
39
  /**
32
40
  * 计算文件的上传路径和下载路径
@@ -32,6 +32,56 @@ class UploadEditorController extends EditorController {
32
32
  * 下载参数
33
33
  */
34
34
  __publicField(this, "exportParams");
35
+ /**
36
+ * 文件类型
37
+ *
38
+ * @author zk
39
+ * @date 2023-12-07 03:12:25
40
+ * @memberof UploadEditorController
41
+ */
42
+ __publicField(this, "fileTypeMap", /* @__PURE__ */ new Map([
43
+ // word文档
44
+ ["docx", "docx"],
45
+ ["doc", "docx"],
46
+ ["dotx", "docx"],
47
+ ["dot", "docx"],
48
+ // pdf
49
+ ["pdf", "pdf"],
50
+ // text
51
+ ["txt", "text"],
52
+ //
53
+ ["xlsx", "excel"],
54
+ ["xls", "excel"],
55
+ ["xlsm", "excel"],
56
+ ["xlsb", "excel"],
57
+ ["csv", "excel"],
58
+ // ppt
59
+ ["pptx", "ppt"],
60
+ // 图片
61
+ ["jpg", "img"],
62
+ ["png", "img"],
63
+ ["gif", "img"],
64
+ ["bmp", "img"],
65
+ ["svg", "img"],
66
+ // 音频
67
+ ["mp3", "audio"],
68
+ ["wav", "audio"],
69
+ ["aac", "audio"],
70
+ ["flac", "audio"],
71
+ ["wma", "audio"],
72
+ // 视频
73
+ ["mp4", "video"],
74
+ ["avi", "video"],
75
+ ["mov", "video"],
76
+ ["mkv", "video"],
77
+ ["wmv", "video"],
78
+ // 压缩
79
+ ["zip", "zip"],
80
+ ["rar", "zip"],
81
+ ["7z", "zip"],
82
+ ["gz", "zip"],
83
+ ["tar", "zip"]
84
+ ]));
35
85
  }
36
86
  async onInit() {
37
87
  var _a;
@@ -20,6 +20,9 @@ class FileUploaderEditorProvider {
20
20
  case "MOBPICTURE_RAW":
21
21
  componentName = "IBizImageSelect";
22
22
  break;
23
+ case "CAROUSEL":
24
+ componentName = "IBizEditorCarousel";
25
+ break;
23
26
  default:
24
27
  }
25
28
  this.formEditor = componentName;
@@ -10,11 +10,6 @@ function useVanUpload(props, valueChange, c) {
10
10
  });
11
11
  const uploadUrl = ref("");
12
12
  const downloadUrl = ref("");
13
- const uploadCache = {
14
- count: 0,
15
- cacheFiles: []
16
- // iview上传过程中不能改default-file-list,所以需要缓存
17
- };
18
13
  watch(
19
14
  () => props.value,
20
15
  (newVal) => {
@@ -56,34 +51,28 @@ function useVanUpload(props, valueChange, c) {
56
51
  { immediate: true }
57
52
  );
58
53
  const emitValue = () => {
59
- const _files = [...files.value, ...uploadCache.cacheFiles];
54
+ const _files = [...files.value];
60
55
  const value = _files.length > 0 ? JSON.stringify(_files.map((file) => ({ name: file.name, id: file.id }))) : null;
61
- uploadCache.cacheFiles = [];
62
56
  valueChange(value);
63
57
  };
64
58
  const beforeUpload = () => {
65
59
  if (!c.multiple && files.value.length === 1) {
66
60
  return false;
67
61
  }
68
- uploadCache.count += 1;
69
62
  return true;
70
63
  };
71
64
  const onSuccess = (response) => {
72
65
  if (!response) {
73
66
  return;
74
67
  }
75
- uploadCache.cacheFiles.push({
68
+ files.value.push({
76
69
  name: response.filename,
77
70
  id: response.fileid
78
71
  });
79
- uploadCache.count -= 1;
80
- if (uploadCache.count === 0) {
81
- emitValue();
82
- }
72
+ emitValue();
83
73
  };
84
74
  const onError = (...args) => {
85
75
  const error = args[0];
86
- uploadCache.count -= 1;
87
76
  throw new HttpError({
88
77
  response: { data: JSON.parse(error.message), status: error.status }
89
78
  });
package/es/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { PlatformType, registerPlatformProvider } from '@ibiz-template/runtime';
1
2
  import { IBizView, IBizViewLayoutPanelControl, IBizPortalView, IBizPanelControl } from '@ibiz-template/vue3-util';
2
3
  import { IBizCommonComponents } from './common/index.mjs';
3
4
  import './control/index.mjs';
@@ -5,9 +6,11 @@ import { IBizEditor } from './editor/index.mjs';
5
6
  import { iBizI18n } from './locale/index.mjs';
6
7
  export { i18n } from './locale/index.mjs';
7
8
  import { IBizPanelComponents } from './panel-component/index.mjs';
9
+ import './platform/index.mjs';
8
10
  import { IBizViewEngine } from './view-engine/index.mjs';
9
11
  import './util/index.mjs';
10
12
  import './view/index.mjs';
13
+ import { VueBrowserPlatformProvider } from './platform/vue-browser-platform-provider.mjs';
11
14
  import { IBizMDCtrlControl } from './control/list/md-ctrl/index.mjs';
12
15
  import { IBizAppMenuControl } from './control/app-menu/index.mjs';
13
16
  import { IBizFormControl } from './control/form/form/index.mjs';
@@ -45,6 +48,11 @@ export { LoginView } from './view/login-view/login-view.mjs';
45
48
  var index = {
46
49
  install: (v) => {
47
50
  ibiz.i18n = iBizI18n;
51
+ const browserPlatformProvider = new VueBrowserPlatformProvider();
52
+ registerPlatformProvider(
53
+ PlatformType.BROWSER,
54
+ () => browserPlatformProvider
55
+ );
48
56
  v.use(IBizCommonComponents);
49
57
  v.use(IBizViewEngine);
50
58
  v.use(IBizView);
@@ -0,0 +1 @@
1
+ .ibiz-user-info{--ibiz-user-info-color:var(--ibiz-color-text-0);--ibiz-user-info-img-size:3.125rem;--ibiz-user-info-img-radius:0.5rem;--ibiz-user-info-bg-color:transparent;--ibiz-user-info-padding:var(--ibiz-spacing-tight);display:flex;gap:var(--ibiz-user-info-padding);align-items:center;padding:var(--ibiz-user-info-padding);color:var(--ibiz-user-info-color);background-color:var(--ibiz-user-info-bg-color)}.ibiz-user-info__username{font-size:.875rem;font-weight:600}.ibiz-user-info__org{font-size:.75rem;color:var(--ibiz-color-text-3)}.ibiz-user-info .van-image{width:var(--ibiz-user-info-img-size);height:var(--ibiz-user-info-img-size);overflow:hidden;border-radius:var(--ibiz-user-info-img-radius)}.ibiz-user-info .van-image .van-image__loading{font-size:1.5625rem}.ibiz-user-info .ibiz-user-info-center{display:flex;flex-direction:column;flex-grow:1;gap:var(--ibiz-user-info-padding)}
@@ -0,0 +1,29 @@
1
+ import { PropType } from 'vue';
2
+ import './auth-userinfo.scss';
3
+ import { IPanelRawItem } from '@ibiz/model-core';
4
+ import { PanelItemController } from '@ibiz-template/runtime';
5
+ export declare const AuthUserinfo: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IPanelRawItem>;
8
+ required: true;
9
+ };
10
+ controller: {
11
+ type: typeof PanelItemController;
12
+ required: true;
13
+ };
14
+ }, {
15
+ ns: import("@ibiz-template/core").Namespace;
16
+ c: PanelItemController<import("@ibiz/model-core").IPanelItem>;
17
+ srfusername: any;
18
+ srfpersonname: any;
19
+ srforgname: any;
20
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
21
+ modelData: {
22
+ type: PropType<IPanelRawItem>;
23
+ required: true;
24
+ };
25
+ controller: {
26
+ type: typeof PanelItemController;
27
+ required: true;
28
+ };
29
+ }>>, {}, {}>;