diff --git a/package.json b/package.json
index 19fe13e7..fe2c9fec 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,7 @@
"ant-design-vue": "^2.1.2",
"apexcharts": "^3.26.0",
"axios": "^0.21.1",
+ "cropperjs": "^1.5.11",
"crypto-js": "^4.0.0",
"echarts": "^5.0.2",
"lodash-es": "^4.17.21",
@@ -91,7 +92,7 @@
"esno": "^0.5.0",
"fs-extra": "^9.1.0",
"http-server": "^0.12.3",
- "husky": "^5.2.0",
+ "husky": "^6.0.0",
"inquirer": "^8.0.0",
"is-ci": "^3.0.0",
"less": "^4.1.1",
@@ -117,7 +118,7 @@
"vite-plugin-style-import": "^0.9.1",
"vite-plugin-svg-icons": "^0.4.0",
"vite-plugin-theme": "^0.5.0",
- "vite-plugin-windicss": "0.10.4",
+ "vite-plugin-windicss": "0.11.0",
"vue-eslint-parser": "^7.6.0"
},
"resolutions": {
diff --git a/src/components/Cropper/index.ts b/src/components/Cropper/index.ts
new file mode 100644
index 00000000..446893bd
--- /dev/null
+++ b/src/components/Cropper/index.ts
@@ -0,0 +1,4 @@
+import type Cropper from 'cropperjs';
+
+export type { Cropper };
+export { default as CropperImage } from './src/index.vue';
diff --git a/src/components/Cropper/src/AvatarCropper.vue b/src/components/Cropper/src/AvatarCropper.vue
new file mode 100644
index 00000000..d229fd86
--- /dev/null
+++ b/src/components/Cropper/src/AvatarCropper.vue
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/src/components/Cropper/src/index.vue b/src/components/Cropper/src/index.vue
new file mode 100644
index 00000000..59bfb136
--- /dev/null
+++ b/src/components/Cropper/src/index.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
diff --git a/src/components/Dropdown/src/Dropdown.vue b/src/components/Dropdown/src/Dropdown.vue
index 32f664e7..af51ffb2 100644
--- a/src/components/Dropdown/src/Dropdown.vue
+++ b/src/components/Dropdown/src/Dropdown.vue
@@ -5,14 +5,20 @@
-
+
-
- {{ item.text }}
+
+
+ {{ item.text }}
+
+
+
+ {{ item.text }}
+
@@ -25,9 +31,9 @@
import type { PropType } from 'vue';
import type { DropMenu } from './types';
- import { defineComponent, computed, unref } from 'vue';
- import { Dropdown, Menu } from 'ant-design-vue';
- import Icon from '/@/components/Icon/index';
+ import { defineComponent } from 'vue';
+ import { Dropdown, Menu, Popconfirm } from 'ant-design-vue';
+ import { Icon } from '/@/components/Icon';
export default defineComponent({
name: 'BasicDropdown',
@@ -37,8 +43,10 @@
[Menu.Item.name]: Menu.Item,
[Menu.Divider.name]: Menu.Divider,
Icon,
+ Popconfirm,
},
props: {
+ popconfirm: Boolean,
/**
* the trigger mode which executes the drop-down action
* @default ['hover']
@@ -61,19 +69,15 @@
},
emits: ['menuEvent'],
setup(props, { emit }) {
- const getMenuList = computed(() => props.dropMenuList);
-
function handleClickMenu(item: DropMenu) {
const { event } = item;
- const menu = unref(getMenuList).find((item) => `${item.event}` === `${event}`);
+ const menu = props.dropMenuList.find((item) => `${item.event}` === `${event}`);
emit('menuEvent', menu);
item.onClick?.();
}
-
return {
handleClickMenu,
- getMenuList,
- getAttr: (key: string) => ({ key }),
+ getAttr: (key: string | number) => ({ key }),
};
},
});
diff --git a/src/components/Table/src/components/TableAction.vue b/src/components/Table/src/components/TableAction.vue
index 609a422e..87b54a89 100644
--- a/src/components/Table/src/components/TableAction.vue
+++ b/src/components/Table/src/components/TableAction.vue
@@ -10,7 +10,12 @@
v-if="divider && index < getActions.length - (dropDownActions ? 0 : 1)"
/>
-
+
@@ -71,11 +76,12 @@
});
});
- const getDropList = computed(() => {
+ const getDropdownList = computed(() => {
return (toRaw(props.dropDownActions) || []).map((action, index) => {
- const { label } = action;
+ const { label, popConfirm } = action;
return {
...action,
+ ...popConfirm,
text: label,
divider: index < props.dropDownActions.length - 1 ? props.divider : false,
};
@@ -88,7 +94,7 @@
return actionColumn?.align ?? 'left';
});
- return { prefixCls, getActions, getDropList, getAlign };
+ return { prefixCls, getActions, getDropdownList, getAlign };
},
});
diff --git a/src/locales/lang/en/routes/demo/comp.ts b/src/locales/lang/en/routes/demo/comp.ts
index 18da9fd1..c68ea5cd 100644
--- a/src/locales/lang/en/routes/demo/comp.ts
+++ b/src/locales/lang/en/routes/demo/comp.ts
@@ -33,5 +33,6 @@ export default {
loading: 'Loading',
- time: 'Time',
+ time: 'Relative Time',
+ cropperImage: 'Cropper Image',
};
diff --git a/src/locales/lang/zh_CN/routes/demo/comp.ts b/src/locales/lang/zh_CN/routes/demo/comp.ts
index 42d3b58f..2bd3614a 100644
--- a/src/locales/lang/zh_CN/routes/demo/comp.ts
+++ b/src/locales/lang/zh_CN/routes/demo/comp.ts
@@ -32,5 +32,6 @@ export default {
loading: 'Loading',
- time: '时间组件',
+ time: '相对时间',
+ cropperImage: '图片裁剪',
};
diff --git a/src/router/menus/modules/demo/comp.ts b/src/router/menus/modules/demo/comp.ts
index 3c49cc8c..15e91f43 100644
--- a/src/router/menus/modules/demo/comp.ts
+++ b/src/router/menus/modules/demo/comp.ts
@@ -6,7 +6,9 @@ const menu: MenuModule = {
menu: {
name: t('routes.demo.comp.comp'),
path: '/comp',
-
+ tag: {
+ dot: true,
+ },
children: [
{
path: 'basic',
@@ -114,6 +116,13 @@ const menu: MenuModule = {
},
],
},
+ {
+ path: 'cropper',
+ name: t('routes.demo.comp.cropperImage'),
+ tag: {
+ content: 'new',
+ },
+ },
{
path: 'countTo',
name: t('routes.demo.comp.countTo'),
diff --git a/src/router/routes/modules/demo/comp.ts b/src/router/routes/modules/demo/comp.ts
index 32ba4656..c6597ab6 100644
--- a/src/router/routes/modules/demo/comp.ts
+++ b/src/router/routes/modules/demo/comp.ts
@@ -232,6 +232,14 @@ const comp: AppRouteModule = {
title: t('routes.demo.comp.transition'),
},
},
+ {
+ path: 'cropper',
+ name: 'CropperDemo',
+ component: () => import('/@/views/demo/comp/cropper/index.vue'),
+ meta: {
+ title: t('routes.demo.comp.cropperImage'),
+ },
+ },
{
path: 'timestamp',
name: 'TimeDemo',
diff --git a/src/views/demo/comp/cropper/index.vue b/src/views/demo/comp/cropper/index.vue
new file mode 100644
index 00000000..50a7ff02
--- /dev/null
+++ b/src/views/demo/comp/cropper/index.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
diff --git a/src/views/demo/page/account/setting/BaseSetting.vue b/src/views/demo/page/account/setting/BaseSetting.vue
index 047da905..965aed94 100644
--- a/src/views/demo/page/account/setting/BaseSetting.vue
+++ b/src/views/demo/page/account/setting/BaseSetting.vue
@@ -9,7 +9,7 @@
头像
-
+
diff --git a/src/views/demo/table/FixedColumn.vue b/src/views/demo/table/FixedColumn.vue
index b878cde0..c02f5b8c 100644
--- a/src/views/demo/table/FixedColumn.vue
+++ b/src/views/demo/table/FixedColumn.vue
@@ -13,7 +13,10 @@
:dropDownActions="[
{
label: '启用',
- onClick: handleOpen.bind(null, record),
+ popConfirm: {
+ title: '是否启用?',
+ confirm: handleOpen.bind(null, record),
+ },
},
]"
/>
diff --git a/vite.config.ts b/vite.config.ts
index 2934a944..396c1f74 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -85,7 +85,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
'ant-design-vue/es/locale/en_US',
'moment/dist/locale/eu',
],
- exclude: ['vue-demi'],
+ exclude: ['vue-demi', 'consolidate'],
},
};
};
diff --git a/yarn.lock b/yarn.lock
index 202097b7..42e0f83b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2077,10 +2077,10 @@
dependencies:
vue-demi latest
-"@windicss/plugin-utils@0.10.4":
- version "0.10.4"
- resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.10.4.tgz#ed9163b09e030f7358cc4742b1f2b6c92d084d5d"
- integrity sha512-jQu69qzA56Lv18OK8U4mUTDV17st4EdPawQuaRG2VNK+ZEQWYsMNnqGxhzDTl/NhWTGCcTb3D6mlFPNo0QDOFg==
+"@windicss/plugin-utils@0.11.0":
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.11.0.tgz#142fe810c9cf71719074518295f65bd01f0ac895"
+ integrity sha512-NIBJ7/wG8Ty///Qxktefud4OI18XjZkycW6DSkWV7++aYyZOdDgGRn493pU+5QZuXeXU8iNR6NKZDtFNcYD7kQ==
dependencies:
debug "^4.3.2"
fast-glob "^3.2.5"
@@ -2088,7 +2088,7 @@
micromatch "^4.0.2"
pirates "^4.0.1"
sucrase "^3.17.1"
- windicss "^2.5.7"
+ windicss "^2.5.8"
"@zxcvbn-ts/core@^0.3.0":
version "0.3.0"
@@ -3582,6 +3582,11 @@ create-require@^1.1.0:
resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+cropperjs@^1.5.11:
+ version "1.5.11"
+ resolved "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.11.tgz#502ae6d8ca098b124de6813601cca70015879fc0"
+ integrity sha512-SJUeBBhtNBnnn+UrLKluhFRIXLJn7XFPv8QN1j49X5t+BIMwkgvDev541f96bmu8Xe0TgCx3gON22KmY/VddaA==
+
cross-env@^7.0.3:
version "7.0.3"
resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
@@ -5698,10 +5703,10 @@ husky@^5.1.3:
resolved "https://registry.npmjs.org/husky/-/husky-5.1.3.tgz#1a0645a4fe3ffc006c4d0d8bd0bcb4c98787cc9d"
integrity sha512-fbNJ+Gz5wx2LIBtMweJNY1D7Uc8p1XERi5KNRMccwfQA+rXlxWNSdUxswo0gT8XqxywTIw7Ywm/F4v/O35RdMg==
-husky@^5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz#fc5e1c2300d34855d47de4753607d00943fc0802"
- integrity sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==
+husky@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e"
+ integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
@@ -11005,15 +11010,15 @@ vite-plugin-theme@^0.5.0:
tinycolor2 "^1.4.2"
ts-jest "^26.5.3"
-vite-plugin-windicss@0.10.4:
- version "0.10.4"
- resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.10.4.tgz#e93577111ea0a55befbe4e2aa2e596f55f6b74b2"
- integrity sha512-P7alH2dGGw3OTgjs9yZG2w0i+o1HKD8PChwhm2ftP+lLCe1xDL3LReheuRil9p2xPYzrVouER2YTbIdLUEThrQ==
+vite-plugin-windicss@0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.11.0.tgz#784b3b7c72d29e85d52dad705a846f8e2366a2fc"
+ integrity sha512-DSXomaGHXAXIF9zPk7T9KG8m1bMNNiIHpeoClX44qxNHT7ryI6iDI8gkWdNfYVjxjcoXSTxKqKa11MA+C7mmAA==
dependencies:
- "@windicss/plugin-utils" "0.10.4"
+ "@windicss/plugin-utils" "0.11.0"
chalk "^4.1.0"
debug "^4.3.2"
- windicss "^2.5.7"
+ windicss "^2.5.8"
vite@2.1.3:
version "2.1.3"
@@ -11187,10 +11192,10 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
-windicss@^2.5.7:
- version "2.5.7"
- resolved "https://registry.npmjs.org/windicss/-/windicss-2.5.7.tgz#aea36568cfb412e1c673468496e920f21ef06086"
- integrity sha512-gsWZkotmw9Hr7yZy2nJAp46pmgMO1wXFFa3rfLWm57KDM31U/AucksQnwZi7zxsKM9c6O/z/61/Uvv4J096zKA==
+windicss@^2.5.8:
+ version "2.5.8"
+ resolved "https://registry.npmjs.org/windicss/-/windicss-2.5.8.tgz#254980044de3031276062b90cfce53c13ee489bf"
+ integrity sha512-zHkozdIqv1YTIGHBOHeFGsuZVTN5yAMz6FW5Bp8im9JZxSRZLOLKdJB0K75SL13iLHKXHrC1ukwJjjL8CohrUw==
wmf@~1.0.1:
version "1.0.2"