@ibiz-template/mob-vue3-components 0.0.3 → 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 (111) 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.mjs +5 -1
  15. package/es/control/list/md-ctrl/md-ctrl.css +1 -1
  16. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +2 -1
  17. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  18. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.d.ts +2 -0
  19. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.mjs +17 -4
  20. package/es/editor/index.mjs +10 -0
  21. package/es/editor/text-box/input/input.css +1 -1
  22. package/es/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
  23. package/es/editor/upload/ibiz-carousel/ibiz-carousel.d.ts +65 -0
  24. package/es/editor/upload/ibiz-carousel/ibiz-carousel.mjs +71 -0
  25. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  26. package/es/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
  27. package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +1 -2
  28. package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +12 -5
  29. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  30. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -4
  31. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +13 -13
  32. package/es/editor/upload/index.d.ts +1 -0
  33. package/es/editor/upload/index.mjs +1 -0
  34. package/es/editor/upload/upload-editor.provider.mjs +3 -0
  35. package/es/index.mjs +8 -0
  36. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -0
  37. package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +29 -0
  38. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +66 -0
  39. package/es/panel-component/auth-userinfo/auth-userinfo.provider.d.ts +15 -0
  40. package/es/panel-component/auth-userinfo/auth-userinfo.provider.mjs +21 -0
  41. package/es/panel-component/auth-userinfo/index.d.ts +26 -0
  42. package/es/panel-component/auth-userinfo/index.mjs +15 -0
  43. package/es/panel-component/index.mjs +6 -0
  44. package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +1 -1
  45. package/es/panel-component/panel-carousel/index.d.ts +20 -0
  46. package/es/panel-component/panel-carousel/index.mjs +16 -0
  47. package/es/panel-component/panel-carousel/panel-carousel.controller.d.ts +50 -0
  48. package/es/panel-component/panel-carousel/panel-carousel.controller.mjs +76 -0
  49. package/es/panel-component/panel-carousel/panel-carousel.css +1 -0
  50. package/es/panel-component/panel-carousel/panel-carousel.d.ts +20 -0
  51. package/es/panel-component/panel-carousel/panel-carousel.mjs +42 -0
  52. package/es/panel-component/panel-carousel/panel-carousel.provider.d.ts +14 -0
  53. package/es/panel-component/panel-carousel/panel-carousel.provider.mjs +21 -0
  54. package/es/panel-component/panel-video-player/index.d.ts +22 -0
  55. package/es/panel-component/panel-video-player/index.mjs +19 -0
  56. package/es/panel-component/panel-video-player/panel-video-player.controller.d.ts +50 -0
  57. package/es/panel-component/panel-video-player/panel-video-player.controller.mjs +81 -0
  58. package/es/panel-component/panel-video-player/panel-video-player.css +1 -0
  59. package/es/panel-component/panel-video-player/panel-video-player.d.ts +22 -0
  60. package/es/panel-component/panel-video-player/panel-video-player.mjs +59 -0
  61. package/es/panel-component/panel-video-player/panel-video-player.provider.d.ts +14 -0
  62. package/es/panel-component/panel-video-player/panel-video-player.provider.mjs +21 -0
  63. package/es/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  64. package/es/platform/index.d.ts +1 -0
  65. package/es/platform/index.mjs +3 -0
  66. package/es/platform/vue-browser-platform-provider.d.ts +20 -0
  67. package/es/platform/vue-browser-platform-provider.mjs +20 -0
  68. package/lib/common/carousel/carousel.cjs +63 -0
  69. package/lib/common/carousel/carousel.css +1 -0
  70. package/lib/common/index.cjs +2 -0
  71. package/lib/control/calendar/calendar.cjs +94 -12
  72. package/lib/control/calendar/calendar.css +1 -1
  73. package/lib/control/dashboard/dashboard.css +1 -1
  74. package/lib/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
  75. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -1
  76. package/lib/control/list/md-ctrl/md-ctrl.css +1 -1
  77. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +2 -1
  78. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.cjs +17 -4
  79. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  80. package/lib/editor/index.cjs +10 -0
  81. package/lib/editor/text-box/input/input.css +1 -1
  82. package/lib/editor/upload/ibiz-carousel/ibiz-carousel.cjs +73 -0
  83. package/lib/editor/upload/ibiz-carousel/ibiz-carousel.css +1 -0
  84. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -1
  85. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +12 -5
  86. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -1
  87. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +12 -12
  88. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -1
  89. package/lib/editor/upload/index.cjs +2 -0
  90. package/lib/editor/upload/upload-editor.provider.cjs +3 -0
  91. package/lib/index.cjs +8 -0
  92. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +68 -0
  93. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -0
  94. package/lib/panel-component/auth-userinfo/auth-userinfo.provider.cjs +23 -0
  95. package/lib/panel-component/auth-userinfo/index.cjs +20 -0
  96. package/lib/panel-component/index.cjs +6 -0
  97. package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +1 -1
  98. package/lib/panel-component/panel-carousel/index.cjs +23 -0
  99. package/lib/panel-component/panel-carousel/panel-carousel.cjs +47 -0
  100. package/lib/panel-component/panel-carousel/panel-carousel.controller.cjs +78 -0
  101. package/lib/panel-component/panel-carousel/panel-carousel.css +1 -0
  102. package/lib/panel-component/panel-carousel/panel-carousel.provider.cjs +23 -0
  103. package/lib/panel-component/panel-video-player/index.cjs +26 -0
  104. package/lib/panel-component/panel-video-player/panel-video-player.cjs +64 -0
  105. package/lib/panel-component/panel-video-player/panel-video-player.controller.cjs +83 -0
  106. package/lib/panel-component/panel-video-player/panel-video-player.css +1 -0
  107. package/lib/panel-component/panel-video-player/panel-video-player.provider.cjs +23 -0
  108. package/lib/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  109. package/lib/platform/index.cjs +7 -0
  110. package/lib/platform/vue-browser-platform-provider.cjs +22 -0
  111. package/package.json +1 -1
@@ -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{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%}
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}
@@ -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
 
@@ -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;
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
+ }>>, {}, {}>;
@@ -0,0 +1,66 @@
1
+ import { resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './auth-userinfo.css';
4
+ import { PanelItemController } from '@ibiz-template/runtime';
5
+
6
+ "use strict";
7
+ const AuthUserinfo = /* @__PURE__ */ defineComponent({
8
+ name: "IBizAuthUserinfo",
9
+ props: {
10
+ modelData: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ controller: {
15
+ type: PanelItemController,
16
+ required: true
17
+ }
18
+ },
19
+ setup(prop) {
20
+ var _a;
21
+ const ns = useNamespace("user-info");
22
+ const c = prop.controller;
23
+ const {
24
+ srfusername = "\u6E38\u5BA2",
25
+ srfpersonname,
26
+ srforgname
27
+ } = ((_a = ibiz.appData) == null ? void 0 : _a.context) || {};
28
+ return {
29
+ ns,
30
+ c,
31
+ srfusername,
32
+ srfpersonname,
33
+ srforgname
34
+ };
35
+ },
36
+ render() {
37
+ return createVNode("div", {
38
+ "class": [this.ns.b(), this.ns.m(this.modelData.id), ...this.controller.containerClass]
39
+ }, [createVNode("div", {
40
+ "class": this.ns.b("left")
41
+ }, [createVNode(resolveComponent("van-image"), null, {
42
+ error: () => {
43
+ return createVNode(resolveComponent("van-icon"), {
44
+ "name": "contact-o"
45
+ }, null);
46
+ },
47
+ loading: () => {
48
+ return createVNode(resolveComponent("van-icon"), {
49
+ "name": "contact-o"
50
+ }, null);
51
+ }
52
+ })]), createVNode("div", {
53
+ "class": this.ns.b("center")
54
+ }, [createVNode("div", {
55
+ "class": this.ns.e("username")
56
+ }, [this.srfusername || this.srfpersonname]), createVNode("div", {
57
+ "class": this.ns.e("org")
58
+ }, [this.srforgname])]), createVNode("div", {
59
+ "class": this.ns.b("right")
60
+ }, [createVNode(resolveComponent("van-icon"), {
61
+ "name": "arrow"
62
+ }, null)])]);
63
+ }
64
+ });
65
+
66
+ export { AuthUserinfo };
@@ -0,0 +1,15 @@
1
+ import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelItem } from '@ibiz/model-core';
3
+ /**
4
+ * 用户信息适配器
5
+ *
6
+ * @author lxm
7
+ * @date 2022-09-19 22:09:03
8
+ * @export
9
+ * @class AuthUserinfoProvider
10
+ * @implements {EditorProvider}
11
+ */
12
+ export declare class AuthUserinfoProvider implements IPanelItemProvider {
13
+ component: string;
14
+ createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelItemController>;
15
+ }
@@ -0,0 +1,21 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AuthUserinfoProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizAuthUserinfo");
13
+ }
14
+ async createController(panelItem, panel, parent) {
15
+ const c = new PanelItemController(panelItem, panel, parent);
16
+ await c.init();
17
+ return c;
18
+ }
19
+ }
20
+
21
+ export { AuthUserinfoProvider };
@@ -0,0 +1,26 @@
1
+ export declare const IBizAuthUserinfo: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: typeof import("@ibiz-template/runtime").PanelItemController;
8
+ required: true;
9
+ };
10
+ }, {
11
+ ns: import("@ibiz-template/core").Namespace;
12
+ c: import("@ibiz-template/runtime").PanelItemController<import("@ibiz/model-core").IPanelItem>;
13
+ srfusername: any;
14
+ srfpersonname: any;
15
+ srforgname: any;
16
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
+ modelData: {
18
+ type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
19
+ required: true;
20
+ };
21
+ controller: {
22
+ type: typeof import("@ibiz-template/runtime").PanelItemController;
23
+ required: true;
24
+ };
25
+ }>>, {}, {}>>;
26
+ export default IBizAuthUserinfo;
@@ -0,0 +1,15 @@
1
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
2
+ import { withInstall } from '@ibiz-template/vue3-util';
3
+ import { AuthUserinfo } from './auth-userinfo.mjs';
4
+ import { AuthUserinfoProvider } from './auth-userinfo.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizAuthUserinfo = withInstall(AuthUserinfo, function(v) {
8
+ v.component(AuthUserinfo.name, AuthUserinfo);
9
+ registerPanelItemProvider(
10
+ "RAWITEM_AUTH_USERINFO",
11
+ () => new AuthUserinfoProvider()
12
+ );
13
+ });
14
+
15
+ export { IBizAuthUserinfo, IBizAuthUserinfo as default };
@@ -7,6 +7,9 @@ import { IBizWFActionButton } from './wf-action-button/index.mjs';
7
7
  import { IBizWFStepTrace } from './wf-step-trace/index.mjs';
8
8
  import { IBizNavPosIndex } from './nav-pos-index/index.mjs';
9
9
  import { IBizPanelTabPanel } from './panel-tab-panel/index.mjs';
10
+ import { IBizPanelCarousel } from './panel-carousel/index.mjs';
11
+ import { IBizPanelVideoPlayer } from './panel-video-player/index.mjs';
12
+ import { IBizAuthUserinfo } from './auth-userinfo/index.mjs';
10
13
 
11
14
  "use strict";
12
15
  const IBizPanelComponents = {
@@ -31,6 +34,9 @@ const IBizPanelComponents = {
31
34
  v.use(IBizPanelContainerGroup);
32
35
  v.use(IBizPanelContainerImage);
33
36
  v.use(IBizScrollContainer);
37
+ v.use(IBizPanelCarousel);
38
+ v.use(IBizPanelVideoPlayer);
39
+ v.use(IBizAuthUserinfo);
34
40
  }
35
41
  };
36
42
 
@@ -182,7 +182,7 @@ class NavPosIndexController extends PanelItemController {
182
182
  routerCallback.close(key, modal);
183
183
  this.removeCache(key);
184
184
  if (this.autoGoLast) {
185
- this.goLast();
185
+ ibiz.platform.back();
186
186
  }
187
187
  }
188
188
  /**
@@ -0,0 +1,20 @@
1
+ export * from './panel-carousel.provider';
2
+ export * from './panel-carousel.controller';
3
+ export declare const IBizPanelCarousel: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
4
+ controller: {
5
+ type: typeof import("./panel-carousel.controller").PanelCarouselController;
6
+ required: true;
7
+ };
8
+ }, {
9
+ ns: import("@ibiz-template/core").Namespace;
10
+ autoplay: string | undefined;
11
+ duration: string | undefined;
12
+ showIndicators: string | undefined;
13
+ touchable: string | undefined;
14
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
+ controller: {
16
+ type: typeof import("./panel-carousel.controller").PanelCarouselController;
17
+ required: true;
18
+ };
19
+ }>>, {}, {}>>;
20
+ export default IBizPanelCarousel;
@@ -0,0 +1,16 @@
1
+ import { registerPanelItemProvider } from '@ibiz-template/runtime';
2
+ import { withInstall } from '@ibiz-template/vue3-util';
3
+ import { PanelCarousel } from './panel-carousel.mjs';
4
+ import { PanelCarouselProvider } from './panel-carousel.provider.mjs';
5
+ export { PanelCarouselController } from './panel-carousel.controller.mjs';
6
+
7
+ "use strict";
8
+ const IBizPanelCarousel = withInstall(PanelCarousel, function(v) {
9
+ v.component(PanelCarousel.name, PanelCarousel);
10
+ registerPanelItemProvider(
11
+ "RAWITEM_STATIC_CAROUSEL",
12
+ () => new PanelCarouselProvider()
13
+ );
14
+ });
15
+
16
+ export { IBizPanelCarousel, PanelCarouselProvider, IBizPanelCarousel as default };
@@ -0,0 +1,50 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelRawItem, ISysImage } from '@ibiz/model-core';
3
+ /**
4
+ * 面板轮播图控制器
5
+ *
6
+ * @author zk
7
+ * @date 2023-12-08 02:12:18
8
+ * @export
9
+ * @class PanelCarouselController
10
+ * @extends {PanelItemController<IPanelRawItem>}
11
+ */
12
+ export declare class PanelCarouselController extends PanelItemController<IPanelRawItem> {
13
+ /**
14
+ * 图片集
15
+ *
16
+ * @author zk
17
+ * @date 2023-12-08 01:12:38
18
+ * @memberof PanelCarouselController
19
+ */
20
+ images: ISysImage[];
21
+ /**
22
+ * 初始化
23
+ *
24
+ * @author zk
25
+ * @date 2023-12-08 11:12:23
26
+ * @protected
27
+ * @return {*} {Promise<void>}
28
+ * @memberof PanelCarouselController
29
+ */
30
+ protected onInit(): Promise<void>;
31
+ /**
32
+ * 初始化轮播图资源
33
+ *
34
+ * @author zk
35
+ * @date 2023-12-08 02:12:03
36
+ * @return {*} {void}
37
+ * @memberof PanelCarouselController
38
+ */
39
+ initCarouselImages(): void;
40
+ /**
41
+ * 获取直接内容参数
42
+ *
43
+ * @author zk
44
+ * @date 2023-12-08 02:12:51
45
+ * @param {string} key
46
+ * @return {*} {(string | undefined)}
47
+ * @memberof PanelCarouselController
48
+ */
49
+ getParamsValue(key: string): string | undefined;
50
+ }