@keyblade/pro-components 1.11.7 → 1.12.0-alpha.2

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.
@@ -0,0 +1,11 @@
1
+ import e from "./image-upload.vue.js";
2
+ import { Modal as s, Upload as t, Button as l, Tooltip as m, Icon as n } from "@arco-design/web-vue";
3
+ const r = Object.assign(e, {
4
+ install: (o) => {
5
+ o == null || o.use(s), o == null || o.use(t), o == null || o.use(l), o == null || o.use(m), o == null || o.use(n), o == null || o.component("KbProImageUpload", e);
6
+ }
7
+ }), d = r;
8
+ export {
9
+ r as ProImageUpload,
10
+ d as default
11
+ };
@@ -0,0 +1,76 @@
1
+ import { FileItem } from '@arco-design/web-vue';
2
+ import { ImageUploadCheckOptions, ImageUploadCompressorOptions, ImageUploadCropOptions } from '@keyblade/one-travel';
3
+
4
+ export declare enum EImageUploadInnerBeforeUploadStep {
5
+ check = 1,
6
+ crop = 2,
7
+ compress = 3,
8
+ all = 4
9
+ }
10
+ export interface ImageUploadOptions {
11
+ /** 上传地址 */
12
+ action: string;
13
+ /** 处理响应 */
14
+ handlerResponse?: (response: any) => Promise<{
15
+ /** 是否成功 */
16
+ success: boolean;
17
+ /** 图片地址 */
18
+ url?: string;
19
+ /** 错误消息(如果不传,请自行提示错误消息) */
20
+ errorMessage?: string;
21
+ /** 其他字段 */
22
+ [key: string]: any;
23
+ }>;
24
+ /** 设置上传的请求头部 */
25
+ headers?: Record<string, any>;
26
+ /** 上传时附带的额外参数 */
27
+ data?: Record<string, any>;
28
+ /** 上传的文件字段名 - 默认: file */
29
+ name?: string;
30
+ /** 提示文字 */
31
+ tip?: string;
32
+ /** 接受上传的文件类型 - 默认: ['jpg', 'jpeg', 'png', 'bmp', 'heif', 'heic', 'gif', 'webp'] */
33
+ accept?: string[];
34
+ /** 是否支持多选文件 - 默认: true */
35
+ multiple?: boolean;
36
+ /** 单次最大限制 - 默认: 10 */
37
+ singleLimit?: number;
38
+ /** 最大允许上传个数 */
39
+ limit?: number;
40
+ /** 是否禁用 - 默认: false */
41
+ disabled?: boolean;
42
+ /** 隐藏内置上传文件之前的loading效果 - 默认: false */
43
+ hideInnerBeforeUploadLoading?: boolean;
44
+ /** 校验选项 */
45
+ checkOptions?: ImageUploadCheckOptions;
46
+ /** 压缩选项 */
47
+ compressorOptions?: ImageUploadCompressorOptions;
48
+ /** 剪裁选项 */
49
+ cropOptions?: ImageUploadCropOptions;
50
+ /** 剪裁弹窗索引 */
51
+ cropModalIndex?: number;
52
+ /** 文件列表移除文件时的钩子 */
53
+ /** 文件上传成功时的钩子 */
54
+ onSuccess?: (fileItem: FileItem) => void;
55
+ /** 文件上传失败时的钩子 */
56
+ onError?: (fileItem: FileItem) => void;
57
+ /** 文件超出个数限制时的钩子 */
58
+ onExceed?: (fileList: FileItem[], files: File[]) => void;
59
+ /** 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。*/
60
+ onBeforeUpload?: (file: File) => boolean | Promise<any>;
61
+ /** 内置上传文件之前开始 */
62
+ onInnerBeforeUploadStart?: (file: File, index: number, type: EImageUploadInnerBeforeUploadStep) => void;
63
+ /** 内置上传文件之前结束 */
64
+ onInnerBeforeUploadEnd?: (file: File, index: number, type: EImageUploadInnerBeforeUploadStep, result: {
65
+ success: boolean;
66
+ error?: {
67
+ size?: boolean;
68
+ format?: boolean;
69
+ transform?: boolean;
70
+ pixel?: boolean;
71
+ compress?: boolean;
72
+ crop?: boolean;
73
+ };
74
+ errorMessage?: string;
75
+ }) => void;
76
+ }
@@ -0,0 +1,4 @@
1
+ var s = /* @__PURE__ */ ((c) => (c[c.check = 1] = "check", c[c.crop = 2] = "crop", c[c.compress = 3] = "compress", c[c.all = 4] = "all", c))(s || {});
2
+ export {
3
+ s as EImageUploadInnerBeforeUploadStep
4
+ };
@@ -5,8 +5,8 @@ declare const ProLayout: {
5
5
  $: import('vue').ComponentInternalInstance;
6
6
  $data: {};
7
7
  $props: {
8
- menuProps?: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps> | undefined;
9
8
  title?: string | undefined;
9
+ menuProps?: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps> | undefined;
10
10
  tabsSize?: "small" | "mini" | "medium" | "large" | undefined;
11
11
  tabsType?: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule" | undefined;
12
12
  tabsHeaderPadding?: boolean | undefined;
@@ -175,8 +175,8 @@ declare const ProLayout: {
175
175
  collapse: (collapsed: boolean) => void;
176
176
  keepAliveIncludeChange: (keepAliveInclude: string[]) => void;
177
177
  }, string, {
178
- menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
179
178
  title: string;
179
+ menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
180
180
  tabsSize: "small" | "mini" | "medium" | "large";
181
181
  tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
182
182
  tabsHeaderPadding: boolean;
@@ -398,8 +398,8 @@ declare const ProLayout: {
398
398
  collapse: (collapsed: boolean) => void;
399
399
  keepAliveIncludeChange: (keepAliveInclude: string[]) => void;
400
400
  }, string, {
401
- menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
402
401
  title: string;
402
+ menuProps: Partial<import('@arco-design/web-vue/es/menu/interface').MenuProps>;
403
403
  tabsSize: "small" | "mini" | "medium" | "large";
404
404
  tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
405
405
  tabsHeaderPadding: boolean;
@@ -223,8 +223,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
223
223
  onCollapse?: ((collapsed: boolean) => any) | undefined;
224
224
  onKeepAliveIncludeChange?: ((keepAliveInclude: string[]) => any) | undefined;
225
225
  }, {
226
- menuProps: Partial<MenuProps>;
227
226
  title: string;
227
+ menuProps: Partial<MenuProps>;
228
228
  tabsSize: "small" | "mini" | "medium" | "large";
229
229
  tabsType: "line" | "text" | "card" | "card-gutter" | "rounded" | "capsule";
230
230
  tabsHeaderPadding: boolean;
@@ -6,13 +6,13 @@ declare const ProPageHeader: {
6
6
  $data: {};
7
7
  $props: {
8
8
  title?: string | undefined;
9
+ hideTitle?: boolean | undefined;
9
10
  breadcrumbItems?: {
10
11
  path?: string | undefined;
11
12
  label: string;
12
13
  }[] | undefined;
13
14
  subTitle?: string | undefined;
14
15
  titlePosition?: "top" | "bottom" | undefined;
15
- hideTitle?: boolean | undefined;
16
16
  breadcrumbRouterMode?: boolean | undefined;
17
17
  breadcrumbPrefixIcon?: string | boolean | undefined;
18
18
  key?: string | number | symbol | undefined;
@@ -114,13 +114,13 @@ declare const ProPageHeader: {
114
114
  };
115
115
  }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
116
116
  title: string;
117
+ hideTitle: boolean;
117
118
  breadcrumbItems: {
118
119
  path?: string | undefined;
119
120
  label: string;
120
121
  }[];
121
122
  subTitle: string;
122
123
  titlePosition: "top" | "bottom";
123
- hideTitle: boolean;
124
124
  breadcrumbRouterMode: boolean;
125
125
  breadcrumbPrefixIcon: string | boolean;
126
126
  }, {}, string, {}> & {
@@ -227,13 +227,13 @@ declare const ProPageHeader: {
227
227
  };
228
228
  }>>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
229
229
  title: string;
230
+ hideTitle: boolean;
230
231
  breadcrumbItems: {
231
232
  path?: string | undefined;
232
233
  label: string;
233
234
  }[];
234
235
  subTitle: string;
235
236
  titlePosition: "top" | "bottom";
236
- hideTitle: boolean;
237
237
  breadcrumbRouterMode: boolean;
238
238
  breadcrumbPrefixIcon: string | boolean;
239
239
  }, {}, string, {}> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & {
@@ -94,13 +94,13 @@ declare const _default: import('vue').DefineComponent<{
94
94
  };
95
95
  }>>, {
96
96
  title: string;
97
+ hideTitle: boolean;
97
98
  breadcrumbItems: {
98
99
  path?: string | undefined;
99
100
  label: string;
100
101
  }[];
101
102
  subTitle: string;
102
103
  titlePosition: "top" | "bottom";
103
- hideTitle: boolean;
104
104
  breadcrumbRouterMode: boolean;
105
105
  breadcrumbPrefixIcon: string | boolean;
106
106
  }, {}>;
package/es/style.css CHANGED
@@ -1 +1 @@
1
- .keyblade-pro-reuse-tabs{position:relative;background-color:var(--color-bg-2);padding:4px 20px}.keyblade-pro-layout{width:100%;height:100%}.keyblade-pro-layout .keyblade-pro-layout-header{position:fixed;top:0;left:0;width:100%;height:var(--2156faf3);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background-color:var(--color-bg-2);border-bottom:1px solid var(--color-border);transition:all .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-header-left{cursor:pointer;display:flex;align-items:center}.keyblade-pro-layout .keyblade-pro-layout-header-left-logo-img{width:28px;height:28px}.keyblade-pro-layout .keyblade-pro-layout-header-left-logo-title.arco-typography{margin:0;font-size:18px}.keyblade-pro-layout .keyblade-pro-layout-header-center{flex:1}.keyblade-pro-layout .keyblade-pro-layout-sider{padding-top:var(--2156faf3);position:fixed;top:0;left:0;z-index:99;height:100%;transition:all .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-sider-content{position:relative;height:100%;overflow:auto}.keyblade-pro-layout .keyblade-pro-layout-sider-collapse-btn.arco-btn{position:absolute;right:12px;bottom:12px}.keyblade-pro-layout .keyblade-pro-layout-body{padding-top:var(--2156faf3);padding-left:var(--2e3e7e4c);min-height:100vh;overflow-y:hidden;background-color:var(--color-fill-2);transition:padding .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-body-affix .arco-affix{z-index:98}.keyblade-pro-layout .keyblade-pro-layout-body-footer{display:flex;align-items:center;justify-content:center;height:40px;color:var(--color-text-2);text-align:center}.keyblade-pro-layout .keyblade-pro-layout-body-collapsed{padding-left:var(--a70b89aa)}.keyblade-pro-layout-side .keyblade-pro-layout-header{z-index:98;left:var(--2e3e7e4c);width:calc(100% - var(--2e3e7e4c))}.keyblade-pro-layout-side .keyblade-pro-layout-header-collapsed{left:var(--a70b89aa);width:calc(100% - var(--a70b89aa))}.keyblade-pro-layout-side .keyblade-pro-layout-sider{padding-top:0}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo{position:relative;display:flex;align-items:center;padding:16px;cursor:pointer;transition:padding .3s cubic-bezier(.645,.045,.355,1)}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo-img{width:28px;height:28px}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo-title.arco-typography{margin:0;font-size:18px}.keyblade-pro-layout-side .keyblade-pro-layout-sider-collapsed .keyblade-pro-layout-sider-content-logo{padding:16px 10px}.keyblade-pro-menu .keyblade-pro-menu-item-img{width:14px;height:auto}.keyblade-pro-page-container .keyblade-pro-page-container-content{padding:20px}.keyblade-pro-page-header{background:var(--color-bg-2);padding:16px 32px}.keyblade-pro-page-header .keyblade-pro-page-header-section-breadcrumb .arco-breadcrumb-item:first-child{padding-left:0}.keyblade-pro-page-header .keyblade-pro-page-header-title.arco-typography{padding-top:4px;margin-top:0}
1
+ .keyblade-pro-page-container .keyblade-pro-page-container-content{padding:20px}.keyblade-pro-page-header{background:var(--color-bg-2);padding:16px 32px}.keyblade-pro-page-header .keyblade-pro-page-header-section-breadcrumb .arco-breadcrumb-item:first-child{padding-left:0}.keyblade-pro-page-header .keyblade-pro-page-header-title.arco-typography{padding-top:4px;margin-top:0}.keyblade-pro-menu .keyblade-pro-menu-item-img{width:14px;height:auto}.keyblade-pro-layout{width:100%;height:100%}.keyblade-pro-layout .keyblade-pro-layout-header{position:fixed;top:0;left:0;width:100%;height:var(--2156faf3);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background-color:var(--color-bg-2);border-bottom:1px solid var(--color-border);transition:all .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-header-left{cursor:pointer;display:flex;align-items:center}.keyblade-pro-layout .keyblade-pro-layout-header-left-logo-img{width:28px;height:28px}.keyblade-pro-layout .keyblade-pro-layout-header-left-logo-title.arco-typography{margin:0;font-size:18px}.keyblade-pro-layout .keyblade-pro-layout-header-center{flex:1}.keyblade-pro-layout .keyblade-pro-layout-sider{padding-top:var(--2156faf3);position:fixed;top:0;left:0;z-index:99;height:100%;transition:all .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-sider-content{position:relative;height:100%;overflow:auto}.keyblade-pro-layout .keyblade-pro-layout-sider-collapse-btn.arco-btn{position:absolute;right:12px;bottom:12px}.keyblade-pro-layout .keyblade-pro-layout-body{padding-top:var(--2156faf3);padding-left:var(--2e3e7e4c);min-height:100vh;overflow-y:hidden;background-color:var(--color-fill-2);transition:padding .2s cubic-bezier(.34,.69,.1,1)}.keyblade-pro-layout .keyblade-pro-layout-body-affix .arco-affix{z-index:98}.keyblade-pro-layout .keyblade-pro-layout-body-footer{display:flex;align-items:center;justify-content:center;height:40px;color:var(--color-text-2);text-align:center}.keyblade-pro-layout .keyblade-pro-layout-body-collapsed{padding-left:var(--a70b89aa)}.keyblade-pro-layout-side .keyblade-pro-layout-header{z-index:98;left:var(--2e3e7e4c);width:calc(100% - var(--2e3e7e4c))}.keyblade-pro-layout-side .keyblade-pro-layout-header-collapsed{left:var(--a70b89aa);width:calc(100% - var(--a70b89aa))}.keyblade-pro-layout-side .keyblade-pro-layout-sider{padding-top:0}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo{position:relative;display:flex;align-items:center;padding:16px;cursor:pointer;transition:padding .3s cubic-bezier(.645,.045,.355,1)}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo-img{width:28px;height:28px}.keyblade-pro-layout-side .keyblade-pro-layout-sider-content-logo-title.arco-typography{margin:0;font-size:18px}.keyblade-pro-layout-side .keyblade-pro-layout-sider-collapsed .keyblade-pro-layout-sider-content-logo{padding:16px 10px}.keyblade-pro-reuse-tabs{position:relative;background-color:var(--color-bg-2);padding:4px 20px}.keyblade-pro-image-upload-cropper-dialog-cropper-wrapper[data-v-ae8ab9e0]{width:100%;height:400px}.keyblade-pro-image-upload-cropper-dialog-operate[data-v-ae8ab9e0]{margin-top:24px;display:flex;align-items:center;justify-content:center}.keyblade-pro-image-upload-cropper-dialog-footer[data-v-ae8ab9e0]{margin-top:24px;display:flex;align-items:center;justify-content:flex-end}.keyblade-pro-image-upload-cropper-dialog-footer-left[data-v-ae8ab9e0]{display:flex;align-items:center;justify-content:flex-start;margin-right:12px}.keyblade-pro-image-upload-cropper-dialog-footer-right[data-v-ae8ab9e0]{flex:1;display:flex;align-items:center;justify-content:flex-end}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@keyblade/pro-components",
3
3
  "description": "KeyBlade Pro Components",
4
4
  "author": "yangshuai <704807396@qq.com>",
5
- "version": "1.11.7",
5
+ "version": "1.12.0-alpha.2",
6
6
  "private": false,
7
7
  "type": "module",
8
8
  "main": "es/index.js",
@@ -22,14 +22,19 @@
22
22
  "dependencies": {
23
23
  "@arco-design/web-vue": "^2.53.3",
24
24
  "vue-router": "^4.2.4",
25
- "@vueuse/core": "^10.7.0"
25
+ "@vueuse/core": "^10.7.0",
26
+ "vue-cropper": "^1.1.4",
27
+ "vue-global-config": "^0.6.3",
28
+ "@keyblade/one-travel": "^3.0.0",
29
+ "heic-to": "^1.1.5"
26
30
  },
27
31
  "peerDependencies": {
28
32
  "vue": "^3.3.4"
29
33
  },
30
34
  "scripts": {
31
35
  "build": "vite build",
32
- "publish:npm": "pnpm publish"
36
+ "publish:npm": "pnpm publish",
37
+ "sync:sync": "cnpm sync @keyblade/pro-components"
33
38
  },
34
39
  "typings": "es/index.d.ts"
35
40
  }
package/src/index.ts DELETED
@@ -1,36 +0,0 @@
1
- import type { App } from 'vue'
2
- import { ProPageHeader } from './pro-page-header'
3
- import { ProKeepAliveRouterView } from './pro-keep-alive-router-view'
4
- import { ProLayout } from './pro-layout'
5
- import { ProMenu } from './pro-menu'
6
- import { ProPageContainer } from './pro-page-container'
7
- import { ProReuseTabs } from './pro-reuse-tabs'
8
-
9
- export default {
10
- install(app: App): void {
11
- app.use(ProPageHeader)
12
- app.use(ProKeepAliveRouterView)
13
- app.use(ProLayout)
14
- app.use(ProMenu)
15
- app.use(ProPageContainer)
16
- app.use(ProReuseTabs)
17
- }
18
- }
19
-
20
- // 按组件导出
21
- export { default as ProPageHeader } from './pro-page-header'
22
-
23
- export { default as ProKeepAliveRouterView } from './pro-keep-alive-router-view'
24
-
25
- export { default as ProLayout } from './pro-layout'
26
-
27
- export { default as ProMenu } from './pro-menu'
28
- export type { IProMenuItem } from './pro-menu'
29
-
30
- export { default as ProPageContainer } from './pro-page-container'
31
-
32
- export { default as ProReuseTabs } from './pro-reuse-tabs'
33
- export type { IProTab } from './pro-reuse-tabs'
34
-
35
- // components.d.ts
36
- export type {} from './components'