123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <template>
- <view class="main pdt0">
- <view class="form">
- <view class="form_group">
- <view class="lable re" style="margin-top: 19px">头像</view>
- <image :src="user.avatar ? ip + user.avatar : '../../static/head.png'" class="head" @click="choice()"></image>
- </view>
- <view class="form_group">
- <view class="lable re">姓名</view>
- <input v-model="user.nickName" placeholder="请输入姓名" />
- </view>
- <view class="form_group">
- <view class="lable">科室</view>
- <view class="desc">{{ user.dept.deptName }}</view>
- </view>
- <view class="form_group">
- <view class="lable">角色</view>
- <view class="desc" v-if="user.roles.length > 0">{{ user.roles[0].roleName }}</view>
- </view>
- <view class="form_group">
- <view class="lable re">个人介绍</view>
- </view>
- <leditor ref="editor" v-model="user.introduce"></leditor>
- </view>
- <button class="btn" @click="save()">
- <text class="icon"></text>
- <text>确认修改</text>
- </button>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- ip: this.http.ip,
- user: this.getUser()
- };
- },
- onLoad() {
- setTimeout(() => {
- this.$refs.editor.setContents();
- }, 300);
- // 监听从裁剪页发布的事件,获得裁剪结果
- uni.$on('uAvatarCropper', (path) => {
- uni.showLoading({ title: '正在上传...', mask: true });
- // 上传到服务端
- uni.uploadFile({
- url: this.ip + '/system/user/profile/avatar',
- filePath: path,
- name: 'avatarfile',
- header: { Authorization: this.getUser().token },
- contentType: 'application/x-www-form-urlencoded',
- success: (res) => {
- let r = JSON.parse(res.data);
- if (r.code === 200) {
- uni.showToast({ title: '更新成功' });
- this.user.avatar = r.imgUrl;
- let user = this.getUser();
- user.avatar = this.user.avatar;
- uni.setStorageSync('user', user);
- this.$forceUpdate();
- } else {
- uni.hideLoading();
- uni.showModal({ content: r.msg, showCancel: false });
- }
- }
- });
- });
- },
- methods: {
- choice() {
- uni.navigateTo({
- url: '/components/u-avatar-cropper/u-avatar-cropper?destWidth=100&rectWidth=140&fileType=jpg'
- });
- },
- save() {
- let rule = [
- { name: 'avatar', checkType: 'notnull', errorMsg: '请上传头像' },
- { name: 'nickName', checkType: 'notnull', errorMsg: '请输入姓名' },
- { name: 'introduce', checkType: 'editor', errorMsg: '请输入个人介绍' }
- ];
- if (!this.verify.check(this.user, rule)) {
- uni.showModal({ content: this.verify.error, showCancel: false });
- return false;
- }
- this.http.request({
- url: '/system/user/editInfo',
- data: { nickName: this.user.nickName, introduce: this.user.introduce },
- method: 'POST',
- success: (res) => {
- let user = this.getUser();
- user.nickName = this.user.nickName;
- user.introduce = this.user.introduce;
- uni.setStorageSync('user', user);
- uni.showToast({ title: '编辑成功' });
- }
- });
- }
- }
- };
- </script>
- <style lang="scss">
- .form {
- .head {
- width: 40px;
- height: 60px;
- border-radius: 3px;
- float: right;
- }
- input {
- padding: 4px 0px 0px 3px;
- }
- }
- </style>
|