From 3ba8323cb7cc42f1441a41d998dad3e5512dbbae Mon Sep 17 00:00:00 2001 From: zlyx <1242874891@qq.com> Date: 星期一, 30 一月 2023 20:10:16 +0800 Subject: [PATCH] update 修改 BaseEntity 创建人, 修改人字段类型, 修改相关 LambdaQueryWrapper 类型判断 ; update 修改 CreateAndUpdateMetaObjectHandler#insertFill 字段填充保存相关参数id ; --- ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 86 +++++++++++++++++++++++++++++++++---------- 1 files changed, 66 insertions(+), 20 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 334cc11..18b23a4 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -1,7 +1,7 @@ <template> <div> - <img v-bind:src="options.img" @click="editCropper()" title="鐐瑰嚮涓婁紶澶村儚" class="img-circle img-lg" /> - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"> + <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="鐐瑰嚮涓婁紶澶村儚" class="img-circle img-lg" /></div> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog"> <el-row> <el-col :xs="24" :md="12" :style="{height: '350px'}"> <vue-cropper @@ -12,6 +12,7 @@ :autoCropWidth="options.autoCropWidth" :autoCropHeight="options.autoCropHeight" :fixedBox="options.fixedBox" + :outputType="options.outputType" @realTime="realTime" v-if="visible" /> @@ -24,27 +25,27 @@ </el-row> <br /> <el-row> - <el-col :lg="2" :md="2"> + <el-col :lg="2" :sm="3" :xs="3"> <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload"> <el-button size="small"> - 涓婁紶 + 閫夋嫨 <i class="el-icon-upload el-icon--right"></i> </el-button> </el-upload> </el-col> - <el-col :lg="{span: 1, offset: 2}" :md="2"> + <el-col :lg="{span: 1, offset: 2}" :sm="2" :xs="2"> <el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button> </el-col> - <el-col :lg="{span: 1, offset: 1}" :md="2"> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> <el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button> </el-col> - <el-col :lg="{span: 1, offset: 1}" :md="2"> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> <el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button> </el-col> - <el-col :lg="{span: 1, offset: 1}" :md="2"> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> <el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button> </el-col> - <el-col :lg="{span: 2, offset: 6}" :md="2"> + <el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2"> <el-button type="primary" size="small" @click="uploadImg()">鎻� 浜�</el-button> </el-col> </el-row> @@ -56,6 +57,7 @@ import store from "@/store"; import { VueCropper } from "vue-cropper"; import { uploadAvatar } from "@/api/system/user"; +import { debounce } from '@/utils' export default { components: { VueCropper }, @@ -77,9 +79,12 @@ autoCrop: true, // 鏄惁榛樿鐢熸垚鎴浘妗� autoCropWidth: 200, // 榛樿鐢熸垚鎴浘妗嗗搴� autoCropHeight: 200, // 榛樿鐢熸垚鎴浘妗嗛珮搴� - fixedBox: true // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� + fixedBox: true, // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� + outputType:"png", // 榛樿鐢熸垚鎴浘涓篜NG鏍煎紡 + filename: '' }, - previews: {} + previews: {}, + resizeHandler: null }; }, methods: { @@ -90,6 +95,16 @@ // 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� modalOpened() { this.visible = true; + if (!this.resizeHandler) { + this.resizeHandler = debounce(() => { + this.refresh() + }, 100) + } + window.addEventListener("resize", this.resizeHandler) + }, + // 鍒锋柊缁勪欢 + refresh() { + this.$refs.cropper.refresh(); }, // 瑕嗙洊榛樿鐨勪笂浼犺涓� requestUpload() { @@ -110,12 +125,13 @@ // 涓婁紶棰勫鐞� beforeUpload(file) { if (file.type.indexOf("image/") == -1) { - this.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); + this.$modal.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); } else { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => { this.options.img = reader.result; + this.options.filename = file.name; }; } }, @@ -123,14 +139,13 @@ uploadImg() { this.$refs.cropper.getCropBlob(data => { let formData = new FormData(); - formData.append("avatarfile", data); + console.log(this.options.filename) + formData.append("avatarfile", data, this.options.filename); uploadAvatar(formData).then(response => { - if (response.code === 200) { - this.open = false; - this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl; - store.commit('SET_AVATAR', this.options.img); - this.msgSuccess("淇敼鎴愬姛"); - } + this.open = false; + this.options.img = response.data.imgUrl; + store.commit('SET_AVATAR', this.options.img); + this.$modal.msgSuccess("淇敼鎴愬姛"); this.visible = false; }); }); @@ -138,7 +153,38 @@ // 瀹炴椂棰勮 realTime(data) { this.previews = data; + }, + // 鍏抽棴绐楀彛 + closeDialog() { + this.options.img = store.getters.avatar + this.visible = false; + window.removeEventListener("resize", this.resizeHandler) } } }; -</script> \ No newline at end of file +</script> +<style scoped lang="scss"> +.user-info-head { + position: relative; + display: inline-block; + height: 120px; +} + +.user-info-head:hover:after { + content: '+'; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + color: #eee; + background: rgba(0, 0, 0, 0.5); + font-size: 24px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + cursor: pointer; + line-height: 110px; + border-radius: 50%; +} +</style> -- Gitblit v1.9.3