|
@@ -4,76 +4,47 @@
|
4
|
4
|
<van-nav-bar title="修改个人信息" left-text="返回" left-arrow @click-left="onClickLeft" />
|
5
|
5
|
<van-form @submit="onSubmit">
|
6
|
6
|
<van-field
|
7
|
|
- v-model="name"
|
8
|
|
- name="name"
|
|
7
|
+ v-model="personInfo.name"
|
9
|
8
|
label="姓名"
|
10
|
9
|
placeholder="姓名"
|
11
|
10
|
:rules="[{ required: true, message: '请填写姓名' }]"
|
12
|
11
|
/>
|
13
|
12
|
<van-field
|
14
|
|
- v-model="phone"
|
|
13
|
+ v-model="personInfo.phone"
|
15
|
14
|
type="number"
|
16
|
|
- name="phone"
|
17
|
15
|
maxlength="11"
|
18
|
16
|
label="手机号"
|
19
|
17
|
placeholder="手机号"
|
20
|
18
|
:rules="[{ required: true, message: '请填写手机号码' }]"
|
21
|
19
|
/>
|
22
|
|
- <van-field
|
23
|
|
- readonly
|
24
|
|
- clickable
|
25
|
|
- name="sex"
|
26
|
|
- :value="sex"
|
|
20
|
+
|
|
21
|
+ <field-picker
|
27
|
22
|
label="性别"
|
28
|
23
|
placeholder="点击选择性别"
|
29
|
|
- @click="onClickPicker(1)"
|
|
24
|
+ v-model="personInfo.sex"
|
|
25
|
+ value-id="id"
|
|
26
|
+ value-key="label"
|
|
27
|
+ :columns="sexArry"
|
30
|
28
|
/>
|
31
|
|
- <van-popup v-model="sexShowPicker" position="bottom">
|
32
|
|
- <van-picker
|
33
|
|
- show-toolbar
|
34
|
|
- :columns="sexArry"
|
35
|
|
- @confirm="onConfirmSex"
|
36
|
|
- @cancel="sexShowPicker = false"
|
37
|
|
- />
|
38
|
|
- </van-popup>
|
39
|
29
|
|
40
|
|
- <van-field
|
41
|
|
- readonly
|
42
|
|
- clickable
|
43
|
|
- name="Semester"
|
44
|
|
- :value="Semester"
|
|
30
|
+ <field-picker
|
|
31
|
+ v-model="personInfo.termId"
|
45
|
32
|
label="学期"
|
46
|
33
|
placeholder="点击选择学期"
|
47
|
|
- @click="onClickPicker(2)"
|
|
34
|
+ value-id="termId"
|
|
35
|
+ value-key="name"
|
|
36
|
+ :columns="SemesterArry"
|
48
|
37
|
/>
|
49
|
|
- <van-popup v-model="SemesterShowPicker" position="bottom">
|
50
|
|
- <van-picker
|
51
|
|
- show-toolbar
|
52
|
|
- value-key="name"
|
53
|
|
- :columns="SemesterArry"
|
54
|
|
- @confirm="onConfirmSemester"
|
55
|
|
- @cancel="SemesterShowPicker = false"
|
56
|
|
- />
|
57
|
|
- </van-popup>
|
58
|
38
|
|
59
|
|
- <van-field
|
60
|
|
- readonly
|
61
|
|
- clickable
|
62
|
|
- name="Classs"
|
63
|
|
- :value="Classs"
|
|
39
|
+ <field-picker
|
|
40
|
+ v-model="personInfo.classId"
|
64
|
41
|
label="班级"
|
65
|
42
|
placeholder="点击选择班级"
|
66
|
|
- @click="ClasssShowPicker = true"
|
|
43
|
+ value-id="classId"
|
|
44
|
+ value-key="name"
|
|
45
|
+ :columns="ClasssArry"
|
67
|
46
|
/>
|
68
|
|
- <van-popup v-model="ClasssShowPicker" position="bottom">
|
69
|
|
- <van-picker
|
70
|
|
- show-toolbar
|
71
|
|
- value-key="name"
|
72
|
|
- :columns="ClasssArry"
|
73
|
|
- @confirm="onConfirmClasss"
|
74
|
|
- @cancel="onClickPicker(3)"
|
75
|
|
- />
|
76
|
|
- </van-popup>
|
|
47
|
+
|
77
|
48
|
<div style="margin: 20px; margin-top:3em;">
|
78
|
49
|
<van-button round block type="info" native-type="submit">提交</van-button>
|
79
|
50
|
</div>
|
|
@@ -84,24 +55,25 @@
|
84
|
55
|
|
85
|
56
|
<script>
|
86
|
57
|
import { mapState } from 'vuex'
|
87
|
|
-import { SetUser, getSchoolterm, getSchoolClass } from '../../util/api'
|
|
58
|
+import { SetUser, getSchoolterm, getSchoolClass } from '@/util/api'
|
|
59
|
+
|
88
|
60
|
export default {
|
|
61
|
+ components: {
|
|
62
|
+ FieldPicker: () => import('@/components/FieldPicker')
|
|
63
|
+ },
|
|
64
|
+
|
89
|
65
|
data() {
|
90
|
66
|
return {
|
91
|
|
- name: '',
|
92
|
|
- phone: '',
|
93
|
|
- sexArry: ['男', '女'],
|
|
67
|
+ personInfo: {
|
|
68
|
+ name: null,
|
|
69
|
+ sex: null,
|
|
70
|
+ phone: null,
|
|
71
|
+ termId: null,
|
|
72
|
+ classId: null,
|
|
73
|
+ },
|
|
74
|
+ sexArry: [{id: 1, label: '男'}, {id: 2, label: '女'}],
|
94
|
75
|
SemesterArry: [],
|
95
|
76
|
ClasssArry: [],
|
96
|
|
- sexShowPicker: false,
|
97
|
|
- SemesterShowPicker: false,
|
98
|
|
- ClasssShowPicker: false,
|
99
|
|
- sex: '',
|
100
|
|
- sexNumber: null,
|
101
|
|
- Semester: '',
|
102
|
|
- Classs: '',
|
103
|
|
- termId: '',
|
104
|
|
- classId: ''
|
105
|
77
|
}
|
106
|
78
|
},
|
107
|
79
|
computed: {
|
|
@@ -113,11 +85,11 @@ export default {
|
113
|
85
|
user: {
|
114
|
86
|
handler(nw) {
|
115
|
87
|
if (nw) {
|
116
|
|
- this.name = nw.name
|
117
|
|
- this.phone = nw.phone
|
118
|
|
- this.Classs = nw.Classs
|
119
|
|
- this.Semester = nw.Semester
|
120
|
|
- this.sex = nw.sex
|
|
88
|
+ this.personInfo.name = nw.name
|
|
89
|
+ this.personInfo.phone = nw.phone
|
|
90
|
+ this.personInfo.classId = nw.classId
|
|
91
|
+ this.personInfo.termId = nw.termId
|
|
92
|
+ this.personInfo.sex = nw.sex
|
121
|
93
|
}
|
122
|
94
|
},
|
123
|
95
|
immediate: true
|
|
@@ -125,9 +97,6 @@ export default {
|
125
|
97
|
},
|
126
|
98
|
mounted() {
|
127
|
99
|
this.getSemester()
|
128
|
|
- // if (this.ClasssShowPicker) {
|
129
|
|
- // this.getClass()
|
130
|
|
- // }
|
131
|
100
|
},
|
132
|
101
|
methods: {
|
133
|
102
|
// 获取学期班级 star
|
|
@@ -135,6 +104,12 @@ export default {
|
135
|
104
|
getSchoolterm({ pageSize: 999 }).then((e) => {
|
136
|
105
|
console.log('获取学期', e)
|
137
|
106
|
this.SemesterArry = e.records
|
|
107
|
+
|
|
108
|
+ if ((!this.ClasssArry || this.ClasssArry.length < 1) && e.total > 0) {
|
|
109
|
+ const first = this.SemesterArry[0]
|
|
110
|
+
|
|
111
|
+ this.getClass(first.termId)
|
|
112
|
+ }
|
138
|
113
|
})
|
139
|
114
|
},
|
140
|
115
|
|
|
@@ -148,78 +123,17 @@ export default {
|
148
|
123
|
onClickLeft() {
|
149
|
124
|
this.$router.go(-1)
|
150
|
125
|
},
|
151
|
|
- onConfirmSex(e) {
|
152
|
|
- if (e == '男') {
|
153
|
|
- this.sexNumber = 1
|
154
|
|
- this.sex = e
|
155
|
|
- } else {
|
156
|
|
- this.sexNumber = 2
|
157
|
|
-
|
158
|
|
- this.sex = e
|
159
|
|
- }
|
160
|
|
-
|
161
|
|
- this.sexShowPicker = false
|
162
|
|
- },
|
163
|
126
|
//学期区------------------------
|
164
|
127
|
|
165
|
|
- onConfirmSemester(e, x) {
|
166
|
|
- const { name, termId } = e
|
167
|
|
- this.Semester = name
|
168
|
|
- this.getClass(termId)
|
169
|
|
- this.termId = termId
|
170
|
|
- console.log('🚀 ~值,下标 ', e, x)
|
171
|
|
- this.SemesterShowPicker = false
|
172
|
|
- },
|
173
|
|
- //班级区------------------------
|
174
|
|
- onConfirmClasss(e) {
|
175
|
|
- const { name, classId } = e
|
176
|
|
- this.Classs = name
|
177
|
|
- this.classId = classId
|
178
|
|
-
|
179
|
|
- this.ClasssShowPicker = false
|
180
|
|
- },
|
181
|
|
- // this.showPicker = false
|
182
|
|
-
|
183
|
|
- onClickPicker(e) {
|
184
|
|
- switch (e) {
|
185
|
|
- case 1:
|
186
|
|
- this.sexShowPicker = true
|
187
|
|
-
|
188
|
|
- break
|
189
|
|
- case 2:
|
190
|
|
- this.SemesterShowPicker = true
|
191
|
|
- this.Classs = ''
|
192
|
|
-
|
193
|
|
- break
|
194
|
|
- case 3:
|
195
|
|
- this.ClasssShowPicker = true
|
196
|
|
-
|
197
|
|
- break
|
198
|
|
- default:
|
199
|
|
- break
|
200
|
|
- }
|
201
|
|
- },
|
202
|
128
|
onSubmit(values) {
|
203
|
129
|
console.log('submit', values)
|
204
|
130
|
|
205
|
131
|
this.$toast.success('修改成功!')
|
206
|
132
|
SetUser(this.$store.state.user.personId, {
|
207
|
|
- classId: this.classId,
|
208
|
|
- name: this.name,
|
|
133
|
+ ...this.personInfo,
|
209
|
134
|
personId: this.$store.state.user.personId,
|
210
|
|
- phone: this.phone,
|
211
|
|
- sex: this.sexNumber,
|
212
|
|
- termId: this.termId
|
213
|
135
|
}).then((e) => {
|
214
|
|
- console.log(e)
|
215
|
|
- this.$store.commit('SET_USER_INFO', { name: this.name })
|
216
|
|
- this.$store.commit('SET_USER_INFO', { phone: values.phone })
|
217
|
|
- this.$store.commit('SET_USER_INFO', { sexNumber: this.sexNumber })
|
218
|
|
- this.$store.commit('SET_USER_INFO', { termId: this.termId })
|
219
|
|
- this.$store.commit('SET_USER_INFO', { classId: this.classId })
|
220
|
|
- this.$store.commit('SET_USER_INFO', { Classs: this.Classs })
|
221
|
|
- this.$store.commit('SET_USER_INFO', { Semester: this.Semester })
|
222
|
|
- this.$store.commit('SET_USER_INFO', { sex: this.sex })
|
|
136
|
+ this.$store.commit('SET_USER_INFO', this.personInfo)
|
223
|
137
|
this.$router.go(-1)
|
224
|
138
|
})
|
225
|
139
|
}
|