From f0bee6af6358e07b5426df16aab37f4259de52f6 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 29 六月 2020 09:08:18 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue --- ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 286 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 143 insertions(+), 143 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 8f60085..334cc11 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -1,144 +1,144 @@ -<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"> - <el-row> - <el-col :xs="24" :md="12" :style="{height: '350px'}"> - <vue-cropper - ref="cropper" - :img="options.img" - :info="true" - :autoCrop="options.autoCrop" - :autoCropWidth="options.autoCropWidth" - :autoCropHeight="options.autoCropHeight" - :fixedBox="options.fixedBox" - @realTime="realTime" - v-if="visible" - /> - </el-col> - <el-col :xs="24" :md="12" :style="{height: '350px'}"> - <div class="avatar-upload-preview"> - <img :src="previews.url" :style="previews.img" /> - </div> - </el-col> - </el-row> - <br /> - <el-row> - <el-col :lg="2" :md="2"> - <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-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button> - </el-col> - <el-col :lg="{span: 1, offset: 1}" :md="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-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button> - </el-col> - <el-col :lg="{span: 1, offset: 1}" :md="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-button type="primary" size="small" @click="uploadImg()">鎻� 浜�</el-button> - </el-col> - </el-row> - </el-dialog> - </div> -</template> - -<script> -import store from "@/store"; -import { VueCropper } from "vue-cropper"; -import { uploadAvatar } from "@/api/system/user"; - -export default { - components: { VueCropper }, - props: { - user: { - type: Object - } - }, - data() { - return { - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, - // 鏄惁鏄剧ずcropper - visible: false, - // 寮瑰嚭灞傛爣棰� - title: "淇敼澶村儚", - options: { - img: store.getters.avatar, //瑁佸壀鍥剧墖鐨勫湴鍧� - autoCrop: true, // 鏄惁榛樿鐢熸垚鎴浘妗� - autoCropWidth: 200, // 榛樿鐢熸垚鎴浘妗嗗搴� - autoCropHeight: 200, // 榛樿鐢熸垚鎴浘妗嗛珮搴� - fixedBox: true // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� - }, - previews: {} - }; - }, - methods: { - // 缂栬緫澶村儚 - editCropper() { - this.open = true; - }, - // 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� - modalOpened() { - this.visible = true; - }, - // 瑕嗙洊榛樿鐨勪笂浼犺涓� - requestUpload() { - }, - // 鍚戝乏鏃嬭浆 - rotateLeft() { - this.$refs.cropper.rotateLeft(); - }, - // 鍚戝彸鏃嬭浆 - rotateRight() { - this.$refs.cropper.rotateRight(); - }, - // 鍥剧墖缂╂斁 - changeScale(num) { - num = num || 1; - this.$refs.cropper.changeScale(num); - }, - // 涓婁紶棰勫鐞� - beforeUpload(file) { - if (file.type.indexOf("image/") == -1) { - this.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); - } else { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = () => { - this.options.img = reader.result; - }; - } - }, - // 涓婁紶鍥剧墖 - uploadImg() { - this.$refs.cropper.getCropBlob(data => { - let formData = new FormData(); - formData.append("avatarfile", data); - 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.visible = false; - }); - }); - }, - // 瀹炴椂棰勮 - realTime(data) { - this.previews = data; - } - } -}; +<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"> + <el-row> + <el-col :xs="24" :md="12" :style="{height: '350px'}"> + <vue-cropper + ref="cropper" + :img="options.img" + :info="true" + :autoCrop="options.autoCrop" + :autoCropWidth="options.autoCropWidth" + :autoCropHeight="options.autoCropHeight" + :fixedBox="options.fixedBox" + @realTime="realTime" + v-if="visible" + /> + </el-col> + <el-col :xs="24" :md="12" :style="{height: '350px'}"> + <div class="avatar-upload-preview"> + <img :src="previews.url" :style="previews.img" /> + </div> + </el-col> + </el-row> + <br /> + <el-row> + <el-col :lg="2" :md="2"> + <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-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button> + </el-col> + <el-col :lg="{span: 1, offset: 1}" :md="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-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button> + </el-col> + <el-col :lg="{span: 1, offset: 1}" :md="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-button type="primary" size="small" @click="uploadImg()">鎻� 浜�</el-button> + </el-col> + </el-row> + </el-dialog> + </div> +</template> + +<script> +import store from "@/store"; +import { VueCropper } from "vue-cropper"; +import { uploadAvatar } from "@/api/system/user"; + +export default { + components: { VueCropper }, + props: { + user: { + type: Object + } + }, + data() { + return { + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁鏄剧ずcropper + visible: false, + // 寮瑰嚭灞傛爣棰� + title: "淇敼澶村儚", + options: { + img: store.getters.avatar, //瑁佸壀鍥剧墖鐨勫湴鍧� + autoCrop: true, // 鏄惁榛樿鐢熸垚鎴浘妗� + autoCropWidth: 200, // 榛樿鐢熸垚鎴浘妗嗗搴� + autoCropHeight: 200, // 榛樿鐢熸垚鎴浘妗嗛珮搴� + fixedBox: true // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� + }, + previews: {} + }; + }, + methods: { + // 缂栬緫澶村儚 + editCropper() { + this.open = true; + }, + // 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� + modalOpened() { + this.visible = true; + }, + // 瑕嗙洊榛樿鐨勪笂浼犺涓� + requestUpload() { + }, + // 鍚戝乏鏃嬭浆 + rotateLeft() { + this.$refs.cropper.rotateLeft(); + }, + // 鍚戝彸鏃嬭浆 + rotateRight() { + this.$refs.cropper.rotateRight(); + }, + // 鍥剧墖缂╂斁 + changeScale(num) { + num = num || 1; + this.$refs.cropper.changeScale(num); + }, + // 涓婁紶棰勫鐞� + beforeUpload(file) { + if (file.type.indexOf("image/") == -1) { + this.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); + } else { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = () => { + this.options.img = reader.result; + }; + } + }, + // 涓婁紶鍥剧墖 + uploadImg() { + this.$refs.cropper.getCropBlob(data => { + let formData = new FormData(); + formData.append("avatarfile", data); + 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.visible = false; + }); + }); + }, + // 瀹炴椂棰勮 + realTime(data) { + this.previews = data; + } + } +}; </script> \ No newline at end of file -- Gitblit v1.9.3