From 61c086e02ab59ac3cf91e1ba0caedcd95c4abedf Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Wed, 18 Jun 2025 15:53:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8tailwindcss=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/cropper/cropper-avatar.vue | 80 ++++---------- .../src/components/cropper/cropper-modal.vue | 103 ++++-------------- .../src/components/cropper/cropper.vue | 10 +- 3 files changed, 48 insertions(+), 145 deletions(-) diff --git a/apps/web-antd/src/components/cropper/cropper-avatar.vue b/apps/web-antd/src/components/cropper/cropper-avatar.vue index f9bc8dac0..2c9e5703d 100644 --- a/apps/web-antd/src/components/cropper/cropper-avatar.vue +++ b/apps/web-antd/src/components/cropper/cropper-avatar.vue @@ -28,13 +28,10 @@ const props = withDefaults(defineProps(), { const emit = defineEmits(['update:value', 'change']); const sourceValue = ref(props.value || ''); -const prefixCls = 'cropper-avatar'; const [CropperModal, modalApi] = useVbenModal({ connectedComponent: cropperModal, }); -const getClass = computed(() => [prefixCls]); - const getWidth = computed(() => `${`${props.width}`.replace(/px/, '')}px`); const getIconWidth = computed( @@ -74,29 +71,42 @@ defineExpose({ - - diff --git a/apps/web-antd/src/components/cropper/cropper-modal.vue b/apps/web-antd/src/components/cropper/cropper-modal.vue index 04b1f3627..d2dedb6de 100644 --- a/apps/web-antd/src/components/cropper/cropper-modal.vue +++ b/apps/web-antd/src/components/cropper/cropper-modal.vue @@ -37,7 +37,6 @@ const cropper = ref(); let scaleX = 1; let scaleY = 1; -const prefixCls = 'cropper-am'; const [Modal, modalApi] = useVbenModal({ onConfirm: handleOk, onOpenChange(isOpen) { @@ -129,9 +128,13 @@ async function handleOk() { :title="$t('ui.cropper.modalTitle')" class="w-2/3" > -
-
-
+
+ +
+ +
-
+ +
-
-
+ + +
+ +
+ + - - diff --git a/apps/web-antd/src/components/cropper/cropper.vue b/apps/web-antd/src/components/cropper/cropper.vue index c2d62755e..cc8836c9f 100644 --- a/apps/web-antd/src/components/cropper/cropper.vue +++ b/apps/web-antd/src/components/cropper/cropper.vue @@ -33,7 +33,6 @@ const imgElRef = ref>(); const cropper = ref(); const isReady = ref(false); -const prefixCls = 'cropper-image'; const debounceRealTimeCropped = useDebounceFn(realTimeCropped, 80); const getImageStyle = computed((): CSSProperties => { @@ -46,10 +45,9 @@ const getImageStyle = computed((): CSSProperties => { const getClass = computed(() => { return [ - prefixCls, attrs.class, { - [`${prefixCls}--circled`]: props.circled, + 'cropper-image--circled': props.circled, }, ]; }); @@ -115,10 +113,9 @@ function cropped() { imgInfo, }); }; - // eslint-disable-next-line unicorn/prefer-add-event-listener - fileReader.onerror = () => { + fileReader.addEventListener('error', () => { emit('cropendError'); - }; + }); }, 'image/png'); } @@ -157,6 +154,7 @@ function getRoundedCanvas() { :crossorigin="crossorigin" :src="src" :style="getImageStyle" + class="h-auto max-w-full" />