StudentInfo.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. <template>
  2. <view class="m_right">
  3. <view class="m_hander">
  4. <view class="m_hander_item" style="display:inline-block;">
  5. <image src="../../assets/login/loginPic2.png" class="m_upload_img"></image>
  6. </view>
  7. <view class="m_hander_item m_hander_item_left" style="display: inline-block;">
  8. <button type="default" class="m_btn m_btn_download" size="mini" @click="onUploadAvatar">上传头像</button>
  9. </view>
  10. </view>
  11. <view class="m_card">
  12. <view class="m_user_info">
  13. <view class="m_user_info_hander">
  14. <view class="m_user_left">
  15. </view>
  16. <view class="m_text">
  17. 个人信息
  18. </view>
  19. </view>
  20. </view>
  21. <view class="m_user_info_container">
  22. <div class="m_row">
  23. <div class="m_form_item">
  24. <span class="m_form_title">姓名</span>
  25. <input type="text" v-model="model.Name" value="" class="m_input" placeholder="请输入姓名" />
  26. </div>
  27. <div class="m_form_item">
  28. <span class="m_form_title">生日</span>
  29. <input type="text" class="m_input" placeholder="例:2020-01-23" />
  30. </div>
  31. </div>
  32. <div class="m_row">
  33. <div class="m_form_item">
  34. <span class="m_form_title">性别</span>
  35. <input type="text" value="" class="m_input" placeholder="请输入性别" />
  36. </div>
  37. <div class="m_form_item">
  38. <span class="m_form_title">民族</span>
  39. <input type="text" value="" v-model="model.Nation" class="m_input" placeholder="请输入民族" />
  40. </div>
  41. </div>
  42. <div class="m_row">
  43. <div class="m_form_item">
  44. <span class="m_form_title">政治面貌</span>
  45. <input type="text" value="" v-model="model.PoliticsStatus" class="m_input" placeholder="请输入政治面貌" />
  46. </div>
  47. <div class="m_form_item">
  48. <span class="m_form_title">籍贯</span>
  49. <input type="text" value="" v-model="model.NativePlace" class="m_input" placeholder="请输入籍贯" />
  50. </div>
  51. </div>
  52. <div class="m_row">
  53. <div class="m_form_item">
  54. <span class="m_form_title">证件类型</span>
  55. <input type="text" value="" v-model="model.Certificate" class="m_input" placeholder="请输入" />
  56. </div>
  57. <div class="m_form_item">
  58. <span class="m_form_title">手机</span>
  59. <input type="text" v-model="model.PhoneNum" class="m_input" placeholder="请输入手机" />
  60. </div>
  61. </div>
  62. <div class="m_row">
  63. <div class="m_form_item">
  64. <span class="m_form_title">证件号码</span>
  65. <input type="text" class="m_input" v-model="model.CertificateNum" placeholder="请输入号码" />
  66. </div>
  67. <div class="m_form_item">
  68. <span class="m_form_title">邮件</span>
  69. <input type="text" value="" v-model="model.Email" class="m_input" placeholder="请输入邮件" />
  70. </div>
  71. </div>
  72. </view>
  73. </view>
  74. <view class="m_card">
  75. <view class="m_user_info">
  76. <view class="m_user_info_hander">
  77. <view class="m_user_left">
  78. </view>
  79. <view class="m_text">
  80. 学校认证信息
  81. </view>
  82. </view>
  83. </view>
  84. <view class="m_user_info_container">
  85. <div class="m_row">
  86. <div class="m_form_item">
  87. <span class="m_form_title">学校</span>
  88. <input type="text" class="m_input" v-model="model.School" placeholder="输入学校" />
  89. </div>
  90. <div class="m_form_item">
  91. <span class="m_form_title">学号</span>
  92. <input type="text" class="m_input" v-model="model.StudentID" placeholder="输入学号" />
  93. </div>
  94. </div>
  95. <div class="m_row">
  96. <div class="m_form_item">
  97. <span class="m_form_title">专业</span>
  98. <input type="text" v-model="model.Profession" class="m_input" placeholder="输入专业" />
  99. </div>
  100. <div class="m_form_item">
  101. <span class="m_form_title">院系</span>
  102. <input type="text" class="m_input" v-model="model.Department" placeholder="输入院系" />
  103. </div>
  104. </div>
  105. <div class="m_row">
  106. <div class="m_form_item">
  107. <span class="m_form_title">职务</span>
  108. <input type="text" value="" v-model="model.Post" class="m_input" placeholder="输入专业" />
  109. </div>
  110. </div>
  111. <div style="text-align: center;">
  112. <button type="default" @click="save" class="m_btn m_btn_red" style="margin-right: 40rpx;" size="mini">确定</button>
  113. <button type="default" class="m_btn m_btn_red" style="background: #D8D8D8;margin-right: 250rpx;" size="mini">取消</button>
  114. </div>
  115. </view>
  116. </view>
  117. <view class="m_school">
  118. </view>
  119. </view>
  120. </template>
  121. <script>
  122. export default {
  123. data() {
  124. return {
  125. model: {
  126. "UserID": "",
  127. "SetUserID": "",
  128. "Name": "",
  129. "School": "",
  130. "Profession": "",
  131. "Class": "",
  132. "StudentID": "",
  133. "PhoneNum": "",
  134. "Department": "",
  135. "Post": "",
  136. "Email": "",
  137. "Nation": "",
  138. "PoliticsStatus": "",
  139. "NativePlace": "",
  140. "Certificate":"",
  141. "CertificateNum":""
  142. }
  143. }
  144. },
  145. methods: {
  146. save() {
  147. this.model.UserID = mydata_userInfo.UserID;
  148. this.model.SetUserID = mydata_userInfo.UserID;
  149. var tempData = this.model;
  150. if (this.model.PhoneNum != "") {
  151. tempData.PhoneNum = Number(this.model.PhoneNum);
  152. } else {
  153. tempData.PhoneNum = 0;
  154. }
  155. if (this.model.StudentID != "") {
  156. tempData.StudentID = Number(this.model.StudentID);
  157. } else {
  158. tempData.StudentID = 0;
  159. }
  160. if (this.model.CertificateNum != "") {
  161. tempData.CertificateNum = Number(this.model.CertificateNum);
  162. } else {
  163. tempData.CertificateNum = 0;
  164. }
  165. uni.request({
  166. url: mydata_api + "/user/setuserinfo",
  167. data: tempData,
  168. method: "POST",
  169. dataType: "json",
  170. success: res => {
  171. var {
  172. data
  173. } = res;
  174. if (data.Code == 100) {
  175. alert("操作成功~")
  176. } else {
  177. alert("操作失败~")
  178. }
  179. }
  180. })
  181. }
  182. },
  183. onUploadAvatar(){
  184. uni.chooseFile({
  185. success: (chooseFileRes) => {
  186. console.log('选择图片ok=',uploadFileRes.data);
  187. uni.showLoading({
  188. title: '上传中'
  189. });
  190. const tempFilePaths = chooseFileRes.tempFilePaths;
  191. uni.uploadFile({
  192. url: mydata_api + "/user/uploaduserheadimage", //仅为示例,非真实的接口地址
  193. filePath: tempFilePaths[0],
  194. name: 'file',
  195. formData: {
  196. 'UserID':mydata_userInfo.UserID, // 创建用户 id
  197. },
  198. success: (uploadFileRes) => {
  199. console.log('upload ok=',uploadFileRes.data);
  200. //刷新avatar
  201. uni.request({
  202. header: {
  203. 'Content-Type': 'application/json;charset=UTF-8'
  204. },
  205. url: mydata_api + "/user/getuserinfo", //仅为示例,非真实的接口地址
  206. method: 'POST',
  207. data: {
  208. 'UserID':mydata_userInfo.UserID,
  209. },
  210. dataType: 'json',
  211. success: (res) => {
  212. console.log('上传头像成功url=',res)
  213. this.userInfo.avatarSrc = res.data.User.HeadImageURL;
  214. uni.hideLoading();
  215. },
  216. fail: (res) => {
  217. uni.hideLoading();
  218. alert("上传头像失败")
  219. }
  220. });
  221. }
  222. });
  223. }
  224. });
  225. }
  226. }
  227. </script>
  228. <style scoped lang="scss">
  229. .m_contaner {
  230. text-align: left;
  231. }
  232. .m_btn_download {
  233. height: 80rpx;
  234. line-height: 80rpx;
  235. padding: 0 20rpx;
  236. background: #EA252C;
  237. color: #fff;
  238. font-family: MicrosoftYaHei;
  239. width: 300rpx;
  240. margin-top: 60rpx;
  241. }
  242. .m_btn_red {
  243. height: 80rpx;
  244. line-height: 80rpx;
  245. padding: 0 20rpx;
  246. background: #EA252C;
  247. color: #fff;
  248. font-family: MicrosoftYaHei;
  249. width: 300rpx;
  250. }
  251. .m_hander {
  252. padding-top: 40rpx;
  253. padding-left: 460rpx;
  254. }
  255. .m_hander_item_left {
  256. margin-left: 30rpx;
  257. }
  258. .m_hander_item {
  259. float: left;
  260. line-height: 200rpx;
  261. }
  262. .m_upload_img {
  263. width: 200rpx;
  264. height: 200rpx;
  265. }
  266. .m_hander {
  267. height: 300rpx;
  268. }
  269. .m_btn {
  270. // width: 800rpx;
  271. }
  272. // .m_user_info {
  273. // width: 400rpx;
  274. // text-align: right;
  275. // }
  276. .m_user_info_hander {
  277. height: 60rpx;
  278. line-height: 60rpx;
  279. margin-left: 200rpx;
  280. margin-top: 100rpx
  281. }
  282. .m_user_left {
  283. width: 10rpx;
  284. height: 60rpx;
  285. /* height: 0px; */
  286. background: #EA252C;
  287. float: left;
  288. }
  289. .m_text {
  290. margin-left: 20rpx;
  291. color: #EA252C;
  292. font-weight: bold;
  293. float: left;
  294. height: 60rpx;
  295. line-height: 60rpx;
  296. }
  297. .m_row {
  298. width: 100%;
  299. display: flex;
  300. margin-bottom: 50rpx;
  301. }
  302. .m_form_item {
  303. width: 40%;
  304. display: flex;
  305. justify-content: space-between;
  306. .m_form_title {
  307. width: 400rpx;
  308. line-height: 70rpx;
  309. font-weight: bold;
  310. color: #555555;
  311. margin-right: 30rpx;
  312. text-align: right;
  313. }
  314. .m_input {
  315. width: 80%;
  316. border-radius: 8rpx;
  317. padding: 14rpx 30rpx;
  318. border: 1px solid #B4B4B4;
  319. line-height: 60rpx;
  320. }
  321. }
  322. .m_user_info_container {
  323. margin-bottom: 100rpx;
  324. }
  325. .m_user_info {
  326. // line-height: 200rpx;
  327. height: 100rpx;
  328. }
  329. .m_user_info_container {
  330. // margin-top: 100rpx;
  331. }
  332. .m_input {
  333. /* height: 80rpx; */
  334. }
  335. .m_card {
  336. border-top: 10rpx solid #ECECEC;
  337. }
  338. </style>