From f32a7105c38ee455c4b165d48651ef19fc6948db Mon Sep 17 00:00:00 2001
From: ahaos <8406649+lhailgl@user.noreply.gitee.com>
Date: 星期三, 13 十二月 2023 18:35:55 +0800
Subject: [PATCH] !68 修复升级依赖带来的问题 * Merge remote-tracking branch 'origin/dev' into dev * 升级依赖 * Merge remote-tracking branch 'origin/ts' into ts * 升级依赖 * Merge branch 'dev' of gitee.com:JavaLionLi/plus-ui into ts * 升级依赖 * !61 fix: 删除重复环境变量ElUploadInstance * fix: 删除重复环境变量ElUploadInstance
---
src/views/system/user/profile/userAvatar.vue | 222 +++++++++++++++++++++++++++---------------------------
1 files changed, 111 insertions(+), 111 deletions(-)
diff --git a/src/views/system/user/profile/userAvatar.vue b/src/views/system/user/profile/userAvatar.vue
index eaf8db3..10ec21a 100644
--- a/src/views/system/user/profile/userAvatar.vue
+++ b/src/views/system/user/profile/userAvatar.vue
@@ -1,121 +1,20 @@
-<script setup lang="ts">
-import "vue-cropper/dist/index.css";
-import { VueCropper } from "vue-cropper";
-import { uploadAvatar } from "@/api/system/user";
-import useUserStore from "@/store/modules/user";
-import { ComponentInternalInstance } from "vue";
-
-interface Options {
- img: string | ArrayBuffer | null // 瑁佸壀鍥剧墖鐨勫湴鍧�
- autoCrop: boolean // 鏄惁榛樿鐢熸垚鎴浘妗�
- autoCropWidth: number // 榛樿鐢熸垚鎴浘妗嗗搴�
- autoCropHeight: number // 榛樿鐢熸垚鎴浘妗嗛珮搴�
- fixedBox: boolean // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙�
- fileName: string
- previews: any // 棰勮鏁版嵁
- outputType: string
- visible: boolean
-}
-
-
-const userStore = useUserStore();
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
-const open = ref(false);
-const visible = ref(false);
-const title = ref("淇敼澶村儚");
-
-const cropper = ref<any>({});
-//鍥剧墖瑁佸壀鏁版嵁
-const options = reactive<Options>({
- img: userStore.avatar,
- autoCrop: true,
- autoCropWidth: 200,
- autoCropHeight: 200,
- fixedBox: true,
- outputType: "png",
- fileName: '',
- previews: {},
- visible: false
-});
-
-/** 缂栬緫澶村儚 */
-const editCropper = () => {
- open.value = true;
-}
-/** 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� */
-const modalOpened = () => {
- visible.value = true;
-}
-/** 瑕嗙洊榛樿涓婁紶琛屼负 */
-const requestUpload = (): any => {}
-/** 鍚戝乏鏃嬭浆 */
-const rotateLeft = () => {
- cropper.value.rotateLeft();
-}
-/** 鍚戝彸鏃嬭浆 */
-const rotateRight = () => {
- cropper.value.rotateRight();
-}
-/** 鍥剧墖缂╂斁 */
-const changeScale = (num: number) => {
- num = num || 1;
- cropper.value.changeScale(num);
-}
-/** 涓婁紶棰勫鐞� */
-const beforeUpload = (file: any) => {
- if (file.type.indexOf("image/") == -1) {
- proxy?.$modal.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��");
- } else {
- const reader = new FileReader();
- reader.readAsDataURL(file);
- reader.onload = () => {
- options.img = reader.result;
- options.fileName = file.name;
- };
- }
-}
-/** 涓婁紶鍥剧墖 */
-const uploadImg = async () => {
- cropper.value.getCropBlob(async (data: any) => {
- let formData = new FormData();
- formData.append("avatarfile", data, options.fileName);
- const res = await uploadAvatar(formData);
- open.value = false;
- options.img = res.data.imgUrl;
- userStore.avatar = options.img as string;
- proxy?.$modal.msgSuccess("淇敼鎴愬姛");
- visible.value = false;
- });
-}
-/** 瀹炴椂棰勮 */
-const realTime = (data: any) => {
- options.previews = data;
-}
-/** 鍏抽棴绐楀彛 */
-const closeDialog = () => {
- options.img = userStore.avatar;
- options.visible = false;
-}
-</script>
-
<template>
<div class="user-info-head" @click="editCropper()">
- <img :src="options.img as string" title="鐐瑰嚮涓婁紶澶村儚" class="img-circle img-lg" />
+ <img :src="options.img" title="鐐瑰嚮涓婁紶澶村儚" class="img-circle img-lg" />
<el-dialog :title="title" v-model="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
<el-row>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
<vue-cropper
+ v-if="visible"
ref="cropper"
:img="options.img"
:info="true"
- :autoCrop="options.autoCrop"
- :autoCropWidth="options.autoCropWidth"
- :autoCropHeight="options.autoCropHeight"
- :fixedBox="options.fixedBox"
- :outputType="options.outputType"
- @realTime="realTime"
- v-if="visible"
+ :auto-crop="options.autoCrop"
+ :auto-crop-width="options.autoCropWidth"
+ :auto-crop-height="options.autoCropHeight"
+ :fixed-box="options.fixedBox"
+ :output-type="options.outputType"
+ @real-time="realTime"
/>
</el-col>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
@@ -130,7 +29,9 @@
<el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
<el-button>
閫夋嫨
- <el-icon class="el-icon--right"><Upload /></el-icon>
+ <el-icon class="el-icon--right">
+ <Upload />
+ </el-icon>
</el-button>
</el-upload>
</el-col>
@@ -154,6 +55,105 @@
</div>
</template>
+<script setup lang="ts">
+import 'vue-cropper/dist/index.css';
+import { VueCropper } from 'vue-cropper';
+import { uploadAvatar } from '@/api/system/user';
+import useUserStore from '@/store/modules/user';
+
+interface Options {
+ img: string | any; // 瑁佸壀鍥剧墖鐨勫湴鍧�
+ autoCrop: boolean; // 鏄惁榛樿鐢熸垚鎴浘妗�
+ autoCropWidth: number; // 榛樿鐢熸垚鎴浘妗嗗搴�
+ autoCropHeight: number; // 榛樿鐢熸垚鎴浘妗嗛珮搴�
+ fixedBox: boolean; // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙�
+ fileName: string;
+ previews: any; // 棰勮鏁版嵁
+ outputType: string;
+ visible: boolean;
+}
+
+const userStore = useUserStore();
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const open = ref(false);
+const visible = ref(false);
+const title = ref('淇敼澶村儚');
+
+const cropper = ref<any>({});
+//鍥剧墖瑁佸壀鏁版嵁
+const options = reactive<Options>({
+ img: userStore.avatar,
+ autoCrop: true,
+ autoCropWidth: 200,
+ autoCropHeight: 200,
+ fixedBox: true,
+ outputType: 'png',
+ fileName: '',
+ previews: {},
+ visible: false
+});
+
+/** 缂栬緫澶村儚 */
+const editCropper = () => {
+ open.value = true;
+};
+/** 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� */
+const modalOpened = () => {
+ visible.value = true;
+};
+/** 瑕嗙洊榛樿涓婁紶琛屼负 */
+const requestUpload = (): any => {};
+/** 鍚戝乏鏃嬭浆 */
+const rotateLeft = () => {
+ cropper.value.rotateLeft();
+};
+/** 鍚戝彸鏃嬭浆 */
+const rotateRight = () => {
+ cropper.value.rotateRight();
+};
+/** 鍥剧墖缂╂斁 */
+const changeScale = (num: number) => {
+ num = num || 1;
+ cropper.value.changeScale(num);
+};
+/** 涓婁紶棰勫鐞� */
+const beforeUpload = (file: any) => {
+ if (file.type.indexOf('image/') == -1) {
+ proxy?.$modal.msgError('鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��');
+ } else {
+ const reader = new FileReader();
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ options.img = reader.result;
+ options.fileName = file.name;
+ };
+ }
+};
+/** 涓婁紶鍥剧墖 */
+const uploadImg = async () => {
+ cropper.value.getCropBlob(async (data: any) => {
+ let formData = new FormData();
+ formData.append('avatarfile', data, options.fileName);
+ const res = await uploadAvatar(formData);
+ open.value = false;
+ options.img = res.data.imgUrl;
+ userStore.setAvatar(options.img as string)
+ proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+ visible.value = false;
+ });
+};
+/** 瀹炴椂棰勮 */
+const realTime = (data: any) => {
+ options.previews = data;
+};
+/** 鍏抽棴绐楀彛 */
+const closeDialog = () => {
+ options.img = userStore.avatar;
+ options.visible = false;
+};
+</script>
+
<style lang="scss" scoped>
.user-info-head {
position: relative;
@@ -162,7 +162,7 @@
}
.user-info-head:hover:after {
- content: "+";
+ content: '+';
position: absolute;
left: 0;
right: 0;
--
Gitblit v1.9.3