![]()
+
diff --git a/src/components/Cropper/src/CropperAvatar.vue b/src/components/Cropper/src/CropperAvatar.vue
new file mode 100644
index 000000000..04cce57ec
--- /dev/null
+++ b/src/components/Cropper/src/CropperAvatar.vue
@@ -0,0 +1,90 @@
+
+
+
+
![avatar]()
+
+
+ {{ t('component.cropper.selectImage') }}
+
+
+
+
+
+
+
diff --git a/src/components/Cropper/src/typing.ts b/src/components/Cropper/src/typing.ts
new file mode 100644
index 000000000..e76cc6f8e
--- /dev/null
+++ b/src/components/Cropper/src/typing.ts
@@ -0,0 +1,8 @@
+import type Cropper from 'cropperjs';
+
+export interface CropendResult {
+ imgBase64: string;
+ imgInfo: Cropper.Data;
+}
+
+export type { Cropper };
diff --git a/src/locales/lang/en/component.ts b/src/locales/lang/en/component.ts
index c3fda2223..1430f26bd 100644
--- a/src/locales/lang/en/component.ts
+++ b/src/locales/lang/en/component.ts
@@ -8,6 +8,12 @@ export default {
normalText: 'Get SMS code',
sendText: 'Reacquire in {0}s',
},
+ cropper: {
+ selectImage: 'Select Image',
+ uploadSuccess: 'Uploaded success!',
+ modalTitle: 'Avatar upload',
+ okText: 'Confirm and upload',
+ },
drawer: {
loadingText: 'Loading...',
cancelText: 'Close',
diff --git a/src/locales/lang/zh_CN/component.ts b/src/locales/lang/zh_CN/component.ts
index 9a8c217f8..aa229f515 100644
--- a/src/locales/lang/zh_CN/component.ts
+++ b/src/locales/lang/zh_CN/component.ts
@@ -8,6 +8,12 @@ export default {
normalText: '获取验证码',
sendText: '{0}秒后重新获取',
},
+ cropper: {
+ selectImage: '选择图片',
+ uploadSuccess: '上传成功',
+ modalTitle: '头像上传',
+ okText: '确认并上传',
+ },
drawer: {
loadingText: '加载中...',
cancelText: '关闭',
diff --git a/src/router/menus/modules/demo/comp.ts b/src/router/menus/modules/demo/comp.ts
index 25f13460e..e375aa4fd 100644
--- a/src/router/menus/modules/demo/comp.ts
+++ b/src/router/menus/modules/demo/comp.ts
@@ -6,6 +6,7 @@ const menu: MenuModule = {
menu: {
name: t('routes.demo.comp.comp'),
path: '/comp',
+ tag: { dot: true },
children: [
{
path: 'basic',
@@ -124,6 +125,9 @@ const menu: MenuModule = {
{
path: 'cropper',
name: t('routes.demo.comp.cropperImage'),
+ tag: {
+ content: 'new',
+ },
},
{
path: 'countTo',
@@ -192,9 +196,6 @@ const menu: MenuModule = {
{
path: 'json',
name: t('routes.demo.editor.jsonEditor'),
- tag: {
- content: 'new',
- },
},
{
path: 'markdown',
diff --git a/src/router/menus/modules/demo/feat.ts b/src/router/menus/modules/demo/feat.ts
index 23062e59d..bec820a55 100644
--- a/src/router/menus/modules/demo/feat.ts
+++ b/src/router/menus/modules/demo/feat.ts
@@ -6,9 +6,6 @@ const menu: MenuModule = {
menu: {
name: t('routes.demo.feat.feat'),
path: '/feat',
- tag: {
- dot: true,
- },
children: [
{
path: 'icon',
@@ -21,9 +18,6 @@ const menu: MenuModule = {
{
name: t('routes.demo.feat.sessionTimeout'),
path: 'session-timeout',
- tag: {
- content: 'new',
- },
},
{
path: 'tabs',
diff --git a/src/views/demo/comp/cropper/index.vue b/src/views/demo/comp/cropper/index.vue
index bdd3e85c3..5566a7eeb 100644
--- a/src/views/demo/comp/cropper/index.vue
+++ b/src/views/demo/comp/cropper/index.vue
@@ -1,52 +1,76 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
- 裁剪
-
-
-
裁剪后图片信息:{{ info }}
+
裁剪后图片信息:{{ info }}
+
+
+
+
+
+
+
+
![]()
+
+ 裁剪后图片信息:{{ circleInfo }}
+