1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
| import { fetchPerson } from '../../../services/usercenter/fetchPerson';
| import { phoneEncryption } from '../../../utils/util';
| import Toast from 'tdesign-miniprogram/toast/index';
|
| Page({
| data: {
| personInfo: {
| avatarUrl: '',
| nickName: '',
| gender: 0,
| phoneNumber: '',
| },
| showUnbindConfirm: false,
| pickerOptions: [
| {
| name: '男',
| code: '1',
| },
| {
| name: '女',
| code: '2',
| },
| ],
| typeVisible: false,
| genderMap: ['', '男', '女'],
| },
| onLoad() {
| this.init();
| },
| init() {
| this.fetchData();
| },
| fetchData() {
| fetchPerson().then((personInfo) => {
| this.setData({
| personInfo,
| 'personInfo.phoneNumber': phoneEncryption(personInfo.phoneNumber),
| });
| });
| },
| onClickCell({ currentTarget }) {
| const { dataset } = currentTarget;
| const { nickName } = this.data.personInfo;
|
| switch (dataset.type) {
| case 'gender':
| this.setData({
| typeVisible: true,
| });
| break;
| case 'name':
| wx.navigateTo({
| url: `/pages/usercenter/name-edit/index?name=${nickName}`,
| });
| break;
| case 'avatarUrl':
| this.toModifyAvatar();
| break;
| default: {
| break;
| }
| }
| },
| onClose() {
| this.setData({
| typeVisible: false,
| });
| },
| onConfirm(e) {
| const { value } = e.detail;
| this.setData(
| {
| typeVisible: false,
| 'personInfo.gender': value,
| },
| () => {
| Toast({
| context: this,
| selector: '#t-toast',
| message: '设置成功',
| theme: 'success',
| });
| },
| );
| },
| async toModifyAvatar() {
| try {
| const tempFilePath = await new Promise((resolve, reject) => {
| wx.chooseImage({
| count: 1,
| sizeType: ['compressed'],
| sourceType: ['album', 'camera'],
| success: (res) => {
| const { path, size } = res.tempFiles[0];
| if (size <= 10485760) {
| resolve(path);
| } else {
| reject({ errMsg: '图片大小超出限制,请重新上传' });
| }
| },
| fail: (err) => reject(err),
| });
| });
| const tempUrlArr = tempFilePath.split('/');
| const tempFileName = tempUrlArr[tempUrlArr.length - 1];
| Toast({
| context: this,
| selector: '#t-toast',
| message: `已选择图片-${tempFileName}`,
| theme: 'success',
| });
| } catch (error) {
| if (error.errMsg === 'chooseImage:fail cancel') return;
| Toast({
| context: this,
| selector: '#t-toast',
| message: error.errMsg || error.msg || '修改头像出错了',
| theme: 'error',
| });
| }
| },
| });
|
|