@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
@@ -1 +1 @@
1
- .ibiz-input{height:100%}.ibiz-input input{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-form-item-line-height);color:var(--ibiz-form-item-text-color);border-color:var(--ibiz-form-item-border-color);-webkit-text-fill-color:var(--ibiz-form-item-text-color)}.ibiz-input input::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color);-webkit-text-fill-color:var(--ibiz-form-item-placeholder-color)}.ibiz-input input::placeholder{color:var(--ibiz-form-item-placeholder-color);-webkit-text-fill-color:var(--ibiz-form-item-placeholder-color)}.ibiz-input input:disabled{color:var(--ibiz-form-item-disabled-color);background-color:var(--ibiz-form-item-disabled-bg-color);border-color:var(--ibiz-form-item-disabled-border-color);-webkit-text-fill-color:var(--ibiz-form-item-disabled-color)}.ibiz-input--readonly{color:var(--ibiz-form-item-readonly-color);-webkit-text-fill-color:var(--ibiz-form-item-readonly-color)}.ibiz-input .ibiz-input__unit{font-size:var(--ibiz-form-item-font-size);font-style:normal}
1
+ .ibiz-input{height:100%}.ibiz-input .ibiz-input{font-size:var(--ibiz-form-item-font-size)}.ibiz-input input{font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-form-item-line-height);color:var(--ibiz-form-item-text-color);border-color:var(--ibiz-form-item-border-color);-webkit-text-fill-color:var(--ibiz-form-item-text-color)}.ibiz-input input::-moz-placeholder{color:var(--ibiz-form-item-placeholder-color);-webkit-text-fill-color:var(--ibiz-form-item-placeholder-color)}.ibiz-input input::placeholder{color:var(--ibiz-form-item-placeholder-color);-webkit-text-fill-color:var(--ibiz-form-item-placeholder-color)}.ibiz-input input:disabled{color:var(--ibiz-form-item-disabled-color);background-color:var(--ibiz-form-item-disabled-bg-color);border-color:var(--ibiz-form-item-disabled-border-color);-webkit-text-fill-color:var(--ibiz-form-item-disabled-color)}.ibiz-input--readonly{color:var(--ibiz-form-item-readonly-color);-webkit-text-fill-color:var(--ibiz-form-item-readonly-color)}.ibiz-input .ibiz-input__unit{font-size:var(--ibiz-form-item-font-size);font-style:normal}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./ibiz-carousel.css');
6
+ var lodashEs = require('lodash-es');
7
+ var useVanUpload = require('../use/use-van-upload.cjs');
8
+
9
+ "use strict";
10
+ const IBizEditorCarousel = /* @__PURE__ */ vue.defineComponent({
11
+ name: "IBizEditorCarousel",
12
+ props: vue3Util.getUploadProps(),
13
+ emits: vue3Util.getEditorEmits(),
14
+ setup(props, {
15
+ emit
16
+ }) {
17
+ const ns = vue3Util.useNamespace("carousel");
18
+ const c = props.controller;
19
+ const {
20
+ files
21
+ } = useVanUpload.useVanUpload(props, (value) => {
22
+ emit("change", value);
23
+ }, c);
24
+ const editorModel = c.model;
25
+ let autoplay = 3e3;
26
+ let duration = 500;
27
+ let showIndicators = true;
28
+ let touchable = true;
29
+ if (editorModel.editorParams) {
30
+ if (editorModel.editorParams.autoplay) {
31
+ autoplay = lodashEs.toNumber(editorModel.editorParams.autoplay);
32
+ }
33
+ if (editorModel.editorParams.duration) {
34
+ duration = lodashEs.toNumber(editorModel.editorParams.duration);
35
+ }
36
+ if (editorModel.editorParams.showIndicators) {
37
+ showIndicators = editorModel.editorParams.showIndicators === "true";
38
+ }
39
+ if (editorModel.editorParams.touchable) {
40
+ touchable = editorModel.editorParams.touchable === "true";
41
+ }
42
+ }
43
+ const images = vue.computed(() => {
44
+ return files.value.map((item) => {
45
+ return {
46
+ rawContent: item.url
47
+ };
48
+ });
49
+ });
50
+ return {
51
+ ns,
52
+ c,
53
+ images,
54
+ autoplay,
55
+ duration,
56
+ showIndicators,
57
+ touchable
58
+ };
59
+ },
60
+ render() {
61
+ return vue.createVNode("div", {
62
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
63
+ }, [vue.createVNode(vue.resolveComponent("iBizCarousel"), {
64
+ "images": this.images,
65
+ "autoplay": this.autoplay,
66
+ "duration": this.duration,
67
+ "showIndicators": this.showIndicators,
68
+ "touchable": this.touchable
69
+ }, null)]);
70
+ }
71
+ });
72
+
73
+ exports.IBizEditorCarousel = IBizEditorCarousel;
@@ -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)}
@@ -27,6 +27,27 @@ const IBizFileUpload = /* @__PURE__ */ vue.defineComponent({
27
27
  } = useVanUpload.useVanUpload(props, (value) => {
28
28
  emit("change", value);
29
29
  }, c);
30
+ const getFileSuffix = (name) => {
31
+ const lastDotIndex = name.lastIndexOf(".");
32
+ if (lastDotIndex === -1) {
33
+ return "";
34
+ }
35
+ const extension = name.substring(lastDotIndex + 1).toLowerCase();
36
+ return extension;
37
+ };
38
+ const getFileName = (filename) => {
39
+ const lastDotIndex = filename.lastIndexOf(".");
40
+ if (lastDotIndex === -1) {
41
+ return filename;
42
+ }
43
+ const name = filename.substring(0, lastDotIndex);
44
+ return name;
45
+ };
46
+ const getPreviewImg = (name) => {
47
+ const suffix = getFileSuffix(name);
48
+ const type = c.fileTypeMap.get(suffix) || "unknown";
49
+ return `./assets/img/file/${type}.svg`;
50
+ };
30
51
  return {
31
52
  ns,
32
53
  c,
@@ -37,6 +58,9 @@ const IBizFileUpload = /* @__PURE__ */ vue.defineComponent({
37
58
  beforeUpload,
38
59
  onDownload,
39
60
  afterRead,
61
+ getFileSuffix,
62
+ getFileName,
63
+ getPreviewImg,
40
64
  limit
41
65
  };
42
66
  },
@@ -55,17 +79,17 @@ const IBizFileUpload = /* @__PURE__ */ vue.defineComponent({
55
79
  }, {
56
80
  default: () => {
57
81
  return !this.readonly && !this.disabled && vue.createVNode(vue.resolveComponent("van-button"), {
58
- "class": this.ns.b("button")
59
- }, {
60
- default: () => [vue.createTextVNode("\u4E0A\u4F20\u6587\u4EF6")]
61
- });
82
+ "class": this.ns.b("button"),
83
+ "icon": "add-o",
84
+ "type": "primary"
85
+ }, null);
62
86
  },
63
87
  "preview-cover": (file) => {
64
88
  return vue.createVNode("div", {
65
89
  "class": this.ns.b("item-cover")
66
90
  }, [file.name]);
67
91
  }
68
- }), vue.createVNode("div", {
92
+ }), this.files.length > 0 && vue.createVNode("div", {
69
93
  "class": this.ns.b("preview")
70
94
  }, [this.files.map((item) => {
71
95
  return vue.createVNode("div", {
@@ -73,18 +97,25 @@ const IBizFileUpload = /* @__PURE__ */ vue.defineComponent({
73
97
  "onClick": () => {
74
98
  this.onDownload(item);
75
99
  }
100
+ }, [vue.createVNode("div", {
101
+ "class": this.ns.b("preview-item-left")
76
102
  }, [vue.createVNode("div", {
77
103
  "class": this.ns.b("preview-item-img")
78
104
  }, [vue.createVNode("img", {
79
- "src": "./assets/img/file.png",
105
+ "src": this.getPreviewImg(item.name),
80
106
  "alt": ""
81
107
  }, null)]), vue.createVNode("div", {
82
108
  "class": this.ns.b("preview-item-text")
83
- }, [item.name]), !this.readonly && !this.disabled && vue.createVNode("div", {
109
+ }, [vue.createVNode("div", {
110
+ "class": this.ns.b("preview-item-name")
111
+ }, [this.getFileName(item.name)]), this.getFileSuffix(item.name) && vue.createVNode("div", {
112
+ "class": this.ns.b("preview-item-suffix")
113
+ }, [vue.createTextVNode("."), this.getFileSuffix(item.name)])])]), !this.readonly && !this.disabled && vue.createVNode("div", {
84
114
  "class": this.ns.b("preview-item-action")
85
115
  }, [vue.createVNode(vue.resolveComponent("van-icon"), {
86
116
  "name": "cross",
87
- "onClick": () => {
117
+ "onClick": (e) => {
118
+ e.stopPropagation();
88
119
  this.onRemove(item);
89
120
  }
90
121
  }, null)])]);
@@ -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}
@@ -3,6 +3,7 @@
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  require('./ibiz-image-select.css');
6
+ var vant = require('vant');
6
7
  var useVanUpload = require('../use/use-van-upload.cjs');
7
8
 
8
9
  "use strict";
@@ -15,21 +16,23 @@ const IBizImageSelect = /* @__PURE__ */ vue.defineComponent({
15
16
  }) {
16
17
  const ns = vue3Util.useNamespace("image-select");
17
18
  const c = props.controller;
18
- const dialogVisible = vue.ref(false);
19
- const dialogImageUrl = vue.ref("");
20
19
  const svg = vue.ref("");
21
20
  const {
22
21
  files
23
22
  } = useVanUpload.useVanUpload(props, (value) => {
24
23
  emit("change", value);
25
24
  }, c);
25
+ const onPreview = (_file) => {
26
+ vant.showImagePreview({
27
+ images: files.value.map((item) => item.url)
28
+ });
29
+ };
26
30
  return {
27
31
  ns,
28
32
  c,
29
33
  files,
30
34
  svg,
31
- dialogImageUrl,
32
- dialogVisible
35
+ onPreview
33
36
  };
34
37
  },
35
38
  render() {
@@ -46,7 +49,11 @@ const IBizImageSelect = /* @__PURE__ */ vue.defineComponent({
46
49
  }, {
47
50
  "preview-cover": (file) => {
48
51
  return vue.createVNode("div", {
49
- "class": this.ns.b("item-cover")
52
+ "class": this.ns.b("item-cover"),
53
+ "onClick": (e) => {
54
+ e.stopPropagation();
55
+ this.onPreview(file);
56
+ }
50
57
  }, [vue.createVNode("img", {
51
58
  "src": file.url
52
59
  }, 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%}
@@ -3,6 +3,7 @@
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  require('./ibiz-image-upload.css');
6
+ var vant = require('vant');
6
7
  var useVanUpload = require('../use/use-van-upload.cjs');
7
8
 
8
9
  "use strict";
@@ -27,14 +28,12 @@ const IBizImageUpload = /* @__PURE__ */ vue.defineComponent({
27
28
  } = useVanUpload.useVanUpload(props, (value) => {
28
29
  emit("change", value);
29
30
  }, c);
30
- const dialogImageUrl = vue.ref("");
31
- const dialogVisible = vue.ref(false);
32
- const onDialogVisibleChange = (value) => {
33
- dialogVisible.value = value;
34
- };
35
- const onPreview = (file) => {
36
- dialogImageUrl.value = file.url;
37
- dialogVisible.value = true;
31
+ const onPreview = (_file) => {
32
+ const index = files.value.findIndex((item) => item.id === _file.id);
33
+ vant.showImagePreview({
34
+ images: files.value.map((item) => item.url),
35
+ startPosition: index
36
+ });
38
37
  };
39
38
  return {
40
39
  ns,
@@ -43,11 +42,8 @@ const IBizImageUpload = /* @__PURE__ */ vue.defineComponent({
43
42
  limit,
44
43
  headers,
45
44
  uploadUrl,
46
- dialogImageUrl,
47
- dialogVisible,
48
45
  beforeUpload,
49
46
  onRemove,
50
- onDialogVisibleChange,
51
47
  onPreview,
52
48
  afterRead,
53
49
  onDownload
@@ -70,7 +66,11 @@ const IBizImageUpload = /* @__PURE__ */ vue.defineComponent({
70
66
  }, {
71
67
  "preview-cover": (file) => {
72
68
  return vue.createVNode("div", {
73
- "class": this.ns.b("item-cover")
69
+ "class": this.ns.b("item-cover"),
70
+ "onClick": (e) => {
71
+ e.stopPropagation();
72
+ this.onPreview(file);
73
+ }
74
74
  }, [vue.createVNode("img", {
75
75
  "src": file.url
76
76
  }, 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%}
@@ -3,6 +3,7 @@
3
3
  var ibizFileUpload = require('./ibiz-file-upload/ibiz-file-upload.cjs');
4
4
  var ibizImageUpload = require('./ibiz-image-upload/ibiz-image-upload.cjs');
5
5
  var ibizImageSelect = require('./ibiz-image-select/ibiz-image-select.cjs');
6
+ var ibizCarousel = require('./ibiz-carousel/ibiz-carousel.cjs');
6
7
  var uploadEditor_controller = require('./upload-editor.controller.cjs');
7
8
  var uploadEditor_provider = require('./upload-editor.provider.cjs');
8
9
 
@@ -11,5 +12,6 @@ var uploadEditor_provider = require('./upload-editor.provider.cjs');
11
12
  exports.IBizFileUpload = ibizFileUpload.IBizFileUpload;
12
13
  exports.IBizImageUpload = ibizImageUpload.IBizImageUpload;
13
14
  exports.IBizImageSelect = ibizImageSelect.IBizImageSelect;
15
+ exports.IBizEditorCarousel = ibizCarousel.IBizEditorCarousel;
14
16
  exports.UploadEditorController = uploadEditor_controller.UploadEditorController;
15
17
  exports.FileUploaderEditorProvider = uploadEditor_provider.FileUploaderEditorProvider;
@@ -34,6 +34,56 @@ class UploadEditorController extends runtime.EditorController {
34
34
  * 下载参数
35
35
  */
36
36
  __publicField(this, "exportParams");
37
+ /**
38
+ * 文件类型
39
+ *
40
+ * @author zk
41
+ * @date 2023-12-07 03:12:25
42
+ * @memberof UploadEditorController
43
+ */
44
+ __publicField(this, "fileTypeMap", /* @__PURE__ */ new Map([
45
+ // word文档
46
+ ["docx", "docx"],
47
+ ["doc", "docx"],
48
+ ["dotx", "docx"],
49
+ ["dot", "docx"],
50
+ // pdf
51
+ ["pdf", "pdf"],
52
+ // text
53
+ ["txt", "text"],
54
+ //
55
+ ["xlsx", "excel"],
56
+ ["xls", "excel"],
57
+ ["xlsm", "excel"],
58
+ ["xlsb", "excel"],
59
+ ["csv", "excel"],
60
+ // ppt
61
+ ["pptx", "ppt"],
62
+ // 图片
63
+ ["jpg", "img"],
64
+ ["png", "img"],
65
+ ["gif", "img"],
66
+ ["bmp", "img"],
67
+ ["svg", "img"],
68
+ // 音频
69
+ ["mp3", "audio"],
70
+ ["wav", "audio"],
71
+ ["aac", "audio"],
72
+ ["flac", "audio"],
73
+ ["wma", "audio"],
74
+ // 视频
75
+ ["mp4", "video"],
76
+ ["avi", "video"],
77
+ ["mov", "video"],
78
+ ["mkv", "video"],
79
+ ["wmv", "video"],
80
+ // 压缩
81
+ ["zip", "zip"],
82
+ ["rar", "zip"],
83
+ ["7z", "zip"],
84
+ ["gz", "zip"],
85
+ ["tar", "zip"]
86
+ ]));
37
87
  }
38
88
  async onInit() {
39
89
  var _a;
@@ -22,6 +22,9 @@ class FileUploaderEditorProvider {
22
22
  case "MOBPICTURE_RAW":
23
23
  componentName = "IBizImageSelect";
24
24
  break;
25
+ case "CAROUSEL":
26
+ componentName = "IBizEditorCarousel";
27
+ break;
25
28
  default:
26
29
  }
27
30
  this.formEditor = componentName;
@@ -12,11 +12,6 @@ function useVanUpload(props, valueChange, c) {
12
12
  });
13
13
  const uploadUrl = vue.ref("");
14
14
  const downloadUrl = vue.ref("");
15
- const uploadCache = {
16
- count: 0,
17
- cacheFiles: []
18
- // iview上传过程中不能改default-file-list,所以需要缓存
19
- };
20
15
  vue.watch(
21
16
  () => props.value,
22
17
  (newVal) => {
@@ -58,34 +53,28 @@ function useVanUpload(props, valueChange, c) {
58
53
  { immediate: true }
59
54
  );
60
55
  const emitValue = () => {
61
- const _files = [...files.value, ...uploadCache.cacheFiles];
56
+ const _files = [...files.value];
62
57
  const value = _files.length > 0 ? JSON.stringify(_files.map((file) => ({ name: file.name, id: file.id }))) : null;
63
- uploadCache.cacheFiles = [];
64
58
  valueChange(value);
65
59
  };
66
60
  const beforeUpload = () => {
67
61
  if (!c.multiple && files.value.length === 1) {
68
62
  return false;
69
63
  }
70
- uploadCache.count += 1;
71
64
  return true;
72
65
  };
73
66
  const onSuccess = (response) => {
74
67
  if (!response) {
75
68
  return;
76
69
  }
77
- uploadCache.cacheFiles.push({
70
+ files.value.push({
78
71
  name: response.filename,
79
72
  id: response.fileid
80
73
  });
81
- uploadCache.count -= 1;
82
- if (uploadCache.count === 0) {
83
- emitValue();
84
- }
74
+ emitValue();
85
75
  };
86
76
  const onError = (...args) => {
87
77
  const error = args[0];
88
- uploadCache.count -= 1;
89
78
  throw new core.HttpError({
90
79
  response: { data: JSON.parse(error.message), status: error.status }
91
80
  });
package/lib/index.cjs CHANGED
@@ -2,15 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var runtime = require('@ibiz-template/runtime');
5
6
  var vue3Util = require('@ibiz-template/vue3-util');
6
7
  var index$2 = require('./common/index.cjs');
7
8
  require('./control/index.cjs');
8
9
  var index$4 = require('./editor/index.cjs');
9
10
  var index$1 = require('./locale/index.cjs');
10
11
  var index$3 = require('./panel-component/index.cjs');
12
+ require('./platform/index.cjs');
11
13
  var index$5 = require('./view-engine/index.cjs');
12
14
  require('./util/index.cjs');
13
15
  require('./view/index.cjs');
16
+ var vueBrowserPlatformProvider = require('./platform/vue-browser-platform-provider.cjs');
14
17
  var index$6 = require('./control/list/md-ctrl/index.cjs');
15
18
  var index$7 = require('./control/app-menu/index.cjs');
16
19
  var index$8 = require('./control/form/form/index.cjs');
@@ -48,6 +51,11 @@ var loginView = require('./view/login-view/login-view.cjs');
48
51
  var index = {
49
52
  install: (v) => {
50
53
  ibiz.i18n = index$1.iBizI18n;
54
+ const browserPlatformProvider = new vueBrowserPlatformProvider.VueBrowserPlatformProvider();
55
+ runtime.registerPlatformProvider(
56
+ runtime.PlatformType.BROWSER,
57
+ () => browserPlatformProvider
58
+ );
51
59
  v.use(index$2.IBizCommonComponents);
52
60
  v.use(index$5.IBizViewEngine);
53
61
  v.use(vue3Util.IBizView);
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./auth-userinfo.css');
6
+ var runtime = require('@ibiz-template/runtime');
7
+
8
+ "use strict";
9
+ const AuthUserinfo = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizAuthUserinfo",
11
+ props: {
12
+ modelData: {
13
+ type: Object,
14
+ required: true
15
+ },
16
+ controller: {
17
+ type: runtime.PanelItemController,
18
+ required: true
19
+ }
20
+ },
21
+ setup(prop) {
22
+ var _a;
23
+ const ns = vue3Util.useNamespace("user-info");
24
+ const c = prop.controller;
25
+ const {
26
+ srfusername = "\u6E38\u5BA2",
27
+ srfpersonname,
28
+ srforgname
29
+ } = ((_a = ibiz.appData) == null ? void 0 : _a.context) || {};
30
+ return {
31
+ ns,
32
+ c,
33
+ srfusername,
34
+ srfpersonname,
35
+ srforgname
36
+ };
37
+ },
38
+ render() {
39
+ return vue.createVNode("div", {
40
+ "class": [this.ns.b(), this.ns.m(this.modelData.id), ...this.controller.containerClass]
41
+ }, [vue.createVNode("div", {
42
+ "class": this.ns.b("left")
43
+ }, [vue.createVNode(vue.resolveComponent("van-image"), null, {
44
+ error: () => {
45
+ return vue.createVNode(vue.resolveComponent("van-icon"), {
46
+ "name": "contact-o"
47
+ }, null);
48
+ },
49
+ loading: () => {
50
+ return vue.createVNode(vue.resolveComponent("van-icon"), {
51
+ "name": "contact-o"
52
+ }, null);
53
+ }
54
+ })]), vue.createVNode("div", {
55
+ "class": this.ns.b("center")
56
+ }, [vue.createVNode("div", {
57
+ "class": this.ns.e("username")
58
+ }, [this.srfusername || this.srfpersonname]), vue.createVNode("div", {
59
+ "class": this.ns.e("org")
60
+ }, [this.srforgname])]), vue.createVNode("div", {
61
+ "class": this.ns.b("right")
62
+ }, [vue.createVNode(vue.resolveComponent("van-icon"), {
63
+ "name": "arrow"
64
+ }, null)])]);
65
+ }
66
+ });
67
+
68
+ exports.AuthUserinfo = AuthUserinfo;
@@ -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,23 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class AuthUserinfoProvider {
13
+ constructor() {
14
+ __publicField(this, "component", "IBizAuthUserinfo");
15
+ }
16
+ async createController(panelItem, panel, parent) {
17
+ const c = new runtime.PanelItemController(panelItem, panel, parent);
18
+ await c.init();
19
+ return c;
20
+ }
21
+ }
22
+
23
+ exports.AuthUserinfoProvider = AuthUserinfoProvider;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var runtime = require('@ibiz-template/runtime');
6
+ var vue3Util = require('@ibiz-template/vue3-util');
7
+ var authUserinfo = require('./auth-userinfo.cjs');
8
+ var authUserinfo_provider = require('./auth-userinfo.provider.cjs');
9
+
10
+ "use strict";
11
+ const IBizAuthUserinfo = vue3Util.withInstall(authUserinfo.AuthUserinfo, function(v) {
12
+ v.component(authUserinfo.AuthUserinfo.name, authUserinfo.AuthUserinfo);
13
+ runtime.registerPanelItemProvider(
14
+ "RAWITEM_AUTH_USERINFO",
15
+ () => new authUserinfo_provider.AuthUserinfoProvider()
16
+ );
17
+ });
18
+
19
+ exports.IBizAuthUserinfo = IBizAuthUserinfo;
20
+ exports.default = IBizAuthUserinfo;
@@ -11,6 +11,9 @@ var index$6 = require('./wf-action-button/index.cjs');
11
11
  var index$5 = require('./wf-step-trace/index.cjs');
12
12
  var index = require('./nav-pos-index/index.cjs');
13
13
  var index$7 = require('./panel-tab-panel/index.cjs');
14
+ var index$8 = require('./panel-carousel/index.cjs');
15
+ var index$9 = require('./panel-video-player/index.cjs');
16
+ var index$a = require('./auth-userinfo/index.cjs');
14
17
 
15
18
  "use strict";
16
19
  const IBizPanelComponents = {
@@ -35,6 +38,9 @@ const IBizPanelComponents = {
35
38
  v.use(vue3Util.IBizPanelContainerGroup);
36
39
  v.use(vue3Util.IBizPanelContainerImage);
37
40
  v.use(vue3Util.IBizScrollContainer);
41
+ v.use(index$8.IBizPanelCarousel);
42
+ v.use(index$9.IBizPanelVideoPlayer);
43
+ v.use(index$a.IBizAuthUserinfo);
38
44
  }
39
45
  };
40
46
 
@@ -184,7 +184,7 @@ class NavPosIndexController extends runtime.PanelItemController {
184
184
  vue3Util.routerCallback.close(key, modal);
185
185
  this.removeCache(key);
186
186
  if (this.autoGoLast) {
187
- this.goLast();
187
+ ibiz.platform.back();
188
188
  }
189
189
  }
190
190
  /**
@@ -92,14 +92,18 @@ class PanelButtonController extends runtime.PanelItemController {
92
92
  */
93
93
  async onActionClick(event) {
94
94
  const { uiactionId } = this.model;
95
- await runtime.UIActionUtil.execAndResolved(uiactionId, {
96
- context: this.panel.context,
97
- params: this.panel.params,
98
- data: [this.data],
99
- view: this.panel.view,
100
- event,
101
- noWaitRoute: true
102
- });
95
+ await runtime.UIActionUtil.execAndResolved(
96
+ uiactionId,
97
+ {
98
+ context: this.panel.context,
99
+ params: this.panel.params,
100
+ data: [this.data],
101
+ view: this.panel.view,
102
+ event,
103
+ noWaitRoute: true
104
+ },
105
+ this.model.appId
106
+ );
103
107
  }
104
108
  calcItemVisible(data) {
105
109
  if (this.state.uiActionState.visible === false) {