20260122

今天晚上把个人信息表完善了

先展示一下UserController和UserService新增的两个方法

因为今天写的大多是前端界面,所以补的后端代码很少

UserController

 1     @GetMapping("/user/info")
 2     public User getUserById(@RequestParam String id) {
 3         return userService.getUserById(id);
 4     }
 5 
 6     @PutMapping("/user/update")
 7     public String update(@RequestBody User user){
 8         userService.updateUserById(user);
 9         return "0";
10     }

UserService

1     public User getUserById(String id) {
2         return userMapper.selectById(id);
3     }
4 
5     public void updateUserById(User user) {
6         userMapper.updateById(user);
7     }

下面是前端新写的

home.vue

 1 <template>
 2   <div>你好,用户{{ user.id }}</div><br>
 3   <router-link to="/userinfo">用户信息</router-link><br>
 4   <router-link to="/test">测试页面</router-link>
 5 </template>
 6 <script>
 7 import axios from 'axios';
 8 import { userStore } from '../../store/user';
 9 
10   export default {
11     data(){
12       return {
13         user:{}
14       }
15     },
16     created(){
17       this.user = userStore();
18       axios.get('http://localhost:8080/user/inf o', {
19         params: {
20           id: this.user.id
21         }
22       }).then(res => {
23         const userInfo = res.data
24         this.user.id=userInfo.id
25         this.user.name=userInfo.name
26         this.user.sex=userInfo.sex
27         this.user.birthday=userInfo.birthday
28       })
29     }
30   }
31 </script>

userinfo

  1 <template>
  2   <div>用户信息</div>
  3   <br>
  4   <table>
  5     <tbody>
  6       <tr>
  7         <td>账号</td>
  8         <td>{{ user.id?user.id:"无" }}</td>
  9         <td v-if="updateShow">不可修改</td>
 10       </tr>
 11       <tr>
 12         <td>姓名</td>
 13         <td>{{ user.name?user.name:"无" }}</td>
 14         <td v-if="updateShow"><input type="text" v-model="updateInfo.name"></td>
 15       </tr>
 16       <tr>
 17         <td>性别</td>
 18         <td>{{ user.sex?user.sex:"无" }}</td>
 19         <td v-if="updateShow"><select v-model="updateInfo.sex">
 20           <option></option>
 21           <option></option>
 22         </select></td>
 23       </tr>
 24       <tr>
 25         <td>生日</td>
 26         <td>{{ user.birthday?user.birthday:"无" }}</td>
 27         <td v-if="updateShow"><input type="date" v-model="updateInfo.birthday"></td>
 28       </tr>
 29       <tr>
 30         <td>民族</td>
 31         <td>{{ user.nationality?user.nationality:"无" }}</td>
 32         <td v-if="updateShow"><input type="text" v-model="updateInfo.nationality"></td>
 33       </tr>
 34       <tr>
 35         <td>学历</td>
 36         <td>{{ user.education?user.education:"无" }}</td>
 37         <td v-if="updateShow"><select v-model="updateInfo.education">
 38           <option>小学及以下</option>
 39           <option>初中</option>
 40           <option>高中</option>
 41           <option>专科</option>
 42           <option>本科</option>
 43           <option>研究生</option>
 44           <option>博士及以上</option>
 45         </select></td>
 46       </tr>
 47       <tr>
 48         <td>宗教信仰</td>
 49         <td>{{ user.religion?user.religion:"无" }}</td>
 50         <td v-if="updateShow"><select v-model="updateInfo.religion">
 51           <option></option>
 52           <option>佛教</option>
 53           <option>道教</option>
 54           <option>基督教</option>
 55           <option>伊斯兰教</option>
 56           <option>其他</option>
 57         </select></td>
 58       </tr>
 59       <tr>
 60         <td>婚姻状况</td>
 61         <td>{{ user.marriage?user.marriage:"无" }}</td>
 62         <td v-if="updateShow"><select v-model="updateInfo.marriage">
 63           <option>未婚</option>
 64           <option>已婚</option>
 65           <option>离异</option>
 66           <option>丧偶</option>
 67         </select></td>
 68       </tr>
 69       <tr>
 70         <td>居住情况</td>
 71         <td>{{ user.residence?user.residence:"无" }}</td>
 72         <td v-if="updateShow"><select v-model="updateInfo.residence">
 73           <option>独居</option>
 74           <option>与配偶/伴侣居住</option>
 75           <option>与子女居住</option>
 76           <option>与父母居住</option> 
 77           <option>与兄弟姐妹居住</option>
 78           <option>与其他亲属居住</option>
 79           <option>与非亲属关系的人居住</option>
 80           <option>养老机构</option>
 81         </select></td>
 82       </tr>
 83       <tr>
 84         <td>经济来源</td>
 85         <td>{{ user.financial?user.financial:"无" }}</td>
 86         <td v-if="updateShow"><select v-model="updateInfo.financial">
 87           <option>务工</option>
 88           <option>务农</option>
 89           <option>退休金/养老金</option>
 90           <option>子女补贴</option>
 91           <option>亲友资助</option>
 92         </select></td>
 93       </tr>
 94       <tr>
 95         <td>精神类疾病</td>
 96         <td>{{ user.disease?user.disease:"无" }}</td>
 97         <td v-if="updateShow"><input type="text" v-model="updateInfo.disease"></td>
 98       </tr>
 99     </tbody>
100   </table>
101   <br>
102   <router-link to="/home">返回首页</router-link>
103   <button @click="change" v-if="!updateShow">修改</button>
104   <button @click="update" v-if="updateShow">保存修改</button>
105   <button @click="cancel" v-if="updateShow">取消</button>
106   <button @click="test" v-if="updateShow">test</button>
107 </template>
108 <script>
109 import axios from 'axios';
110 import { userStore } from '../../store/user';
111 
112 export default {
113   data(){
114     return {
115       user:{},
116       updateShow:false,
117       updateInfo:{}
118     }
119   },
120   created(){
121     this.user = userStore();
122     axios.get('http://localhost:8080/user/info', {
123       params: {
124         id: this.user.id
125       }
126     }).then(res => {
127       this.user=res.data
128       this.updateInfo={...res.data}
129       console.log(this.updateInfo)
130     })
131   },
132   methods:{
133     change(){
134       this.updateShow=!this.updateShow;
135     },
136     update(){
137       axios.put('http://localhost:8080/user/update',this.updateInfo,
138       ).then(res=>{
139         switch(String(res.data)){
140           case '0':
141             alert('修改成功');
142             this.updateShow=!this.updateShow;
143             this.user={...this.updateInfo};
144             break;
145           default:
146             alert('修改失败:'+res.data);
147             break;
148         }
149       })
150     },
151     cancel(){
152       this.updateShow=!this.updateShow;
153     },
154     test(){
155       console.log(this.updateInfo)
156     }
157   }
158 }
159 </script>

啊,累死了

posted @ 2026-01-22 22:01  Lee_sz  阅读(1)  评论(0)    收藏  举报