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>
啊,累死了

浙公网安备 33010602011771号