[代码完善](v2.5): v2.5 用户头像裁剪上传
This commit is contained in:
@@ -65,7 +65,8 @@
|
|||||||
"vuedraggable": "2.20.0",
|
"vuedraggable": "2.20.0",
|
||||||
"vuex": "3.1.0",
|
"vuex": "3.1.0",
|
||||||
"wangeditor": ">=3.0.0",
|
"wangeditor": ">=3.0.0",
|
||||||
"xlsx": "^0.11.16"
|
"xlsx": "^0.11.16",
|
||||||
|
"vue-image-crop-upload": "^2.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "7.0.0",
|
"@babel/core": "7.0.0",
|
||||||
|
|||||||
@@ -8,16 +8,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
<el-upload
|
<div class="el-upload">
|
||||||
:show-file-list="false"
|
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" title="点击上传头像" class="avatar" @click="toggleShow">
|
||||||
:on-success="handleSuccess"
|
<myUpload
|
||||||
:on-error="handleError"
|
v-model="show"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
:action="updateAvatarApi"
|
:url="updateAvatarApi"
|
||||||
class="avatar-uploader"
|
@crop-upload-success="cropUploadSuccess"
|
||||||
>
|
/>
|
||||||
<img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" title="点击上传头像" class="avatar">
|
</div>
|
||||||
</el-upload>
|
|
||||||
</div>
|
</div>
|
||||||
<ul class="user-info">
|
<ul class="user-info">
|
||||||
<li><div style="height: 100%"><svg-icon icon-class="login" /> 登录账号<div class="user-right">{{ user.username }}</div></div></li>
|
<li><div style="height: 100%"><svg-icon icon-class="login" /> 登录账号<div class="user-right">{{ user.username }}</div></div></li>
|
||||||
@@ -106,6 +105,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import myUpload from 'vue-image-crop-upload'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import updatePass from './center/updatePass'
|
import updatePass from './center/updatePass'
|
||||||
import updateEmail from './center/updateEmail'
|
import updateEmail from './center/updateEmail'
|
||||||
@@ -118,7 +118,7 @@ import { editUser } from '@/api/system/user'
|
|||||||
import Avatar from '@/assets/images/avatar.png'
|
import Avatar from '@/assets/images/avatar.png'
|
||||||
export default {
|
export default {
|
||||||
name: 'Center',
|
name: 'Center',
|
||||||
components: { updatePass, updateEmail },
|
components: { updatePass, updateEmail, myUpload },
|
||||||
mixins: [crud],
|
mixins: [crud],
|
||||||
data() {
|
data() {
|
||||||
// 自定义验证
|
// 自定义验证
|
||||||
@@ -132,6 +132,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
show: false,
|
||||||
Avatar: Avatar,
|
Avatar: Avatar,
|
||||||
activeName: 'first',
|
activeName: 'first',
|
||||||
saveLoading: false,
|
saveLoading: false,
|
||||||
@@ -163,6 +164,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
parseTime,
|
parseTime,
|
||||||
|
toggleShow() {
|
||||||
|
this.show = !this.show
|
||||||
|
},
|
||||||
handleClick(tab, event) {
|
handleClick(tab, event) {
|
||||||
if (tab.name === 'second') {
|
if (tab.name === 'second') {
|
||||||
this.init()
|
this.init()
|
||||||
@@ -172,23 +176,9 @@ export default {
|
|||||||
this.url = 'api/logs/user'
|
this.url = 'api/logs/user'
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
handleSuccess(response, file, fileList) {
|
cropUploadSuccess(jsonData, field) {
|
||||||
this.$notify({
|
|
||||||
title: '头像修改成功',
|
|
||||||
type: 'success',
|
|
||||||
duration: 2500
|
|
||||||
})
|
|
||||||
store.dispatch('GetInfo').then(() => {})
|
store.dispatch('GetInfo').then(() => {})
|
||||||
},
|
},
|
||||||
// 监听上传失败
|
|
||||||
handleError(e, file, fileList) {
|
|
||||||
const msg = JSON.parse(e.message)
|
|
||||||
this.$notify({
|
|
||||||
title: msg.message,
|
|
||||||
type: 'error',
|
|
||||||
duration: 2500
|
|
||||||
})
|
|
||||||
},
|
|
||||||
doSubmit() {
|
doSubmit() {
|
||||||
if (this.$refs['form']) {
|
if (this.$refs['form']) {
|
||||||
this.$refs['form'].validate((valid) => {
|
this.$refs['form'].validate((valid) => {
|
||||||
@@ -210,19 +200,10 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss">
|
<style rel="stylesheet/scss" lang="scss">
|
||||||
.avatar-uploader-icon {
|
|
||||||
font-size: 28px;
|
|
||||||
width: 120px;
|
|
||||||
height: 120px;
|
|
||||||
line-height: 120px;
|
|
||||||
text-align: center
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 120px;
|
height: 120px;
|
||||||
display: block;
|
border-radius: 50%;
|
||||||
border-radius: 50%
|
|
||||||
}
|
}
|
||||||
.user-info {
|
.user-info {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
@@ -234,7 +215,6 @@ export default {
|
|||||||
}
|
}
|
||||||
.user-right {
|
.user-right {
|
||||||
float: right;
|
float: right;
|
||||||
|
|
||||||
a{
|
a{
|
||||||
color: #317EF3;
|
color: #317EF3;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user