selfInfo.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. <template>
  2. <!-- 个人信息 -->
  3. <view class="user-full">
  4. <view class="user-right-self01 df aic jcc user-full" v-show="showIndex_userInfo==0">
  5. <view class="df fdc aic">
  6. <view class="df">
  7. <img src="../../assets/user/pic_user_01.png"></img>
  8. </view>
  9. <view class="user-right-01-tip">还没有个人信息,去添加 !</view>
  10. <view class="self-btn01 df jcc aic" @click="onClick_p1_add">点击添加</view>
  11. </view>
  12. </view>
  13. <view class="user-full" v-show="showIndex_userInfo==1">
  14. <!--<view class="box1 df fdr aic">-->
  15. <!--<view class="self-avatar df">-->
  16. <!--<img :src="userInfo.avatarSrc"></img>-->
  17. <!--</view>-->
  18. <!--<view class="self-btn02 df jcc aic" @click="onUploadAvatar">上传头像</view>-->
  19. <!--</view>-->
  20. <view class="box2 df ">
  21. <view class="box2-content">
  22. <view class="title df fdr aic">
  23. <view class="df">
  24. <img src="../../assets/user/pic_user_02.png"></img>
  25. </view>
  26. <view class="title-text">个人认证信息</view>
  27. </view>
  28. <view class="box2-table-box df fdr">
  29. <view class="box2-table-box-left df fdc aic ">
  30. <view class="box2-table-box-left-item df fdr aic jcsb">
  31. <view class="table-title">姓名</view>
  32. <input class="form-input" name="input" placeholder="输入姓名" v-model="model.Name" />
  33. </view>
  34. <!-- <view class="box2-table-box-left-item df fdr aic jcsb">
  35. <view class="table-title">性别</view>
  36. <picker @change="bindPickerChange_sex" :value="sexIndex" :range="array_sex">
  37. <view class="form-input df fdr aic jcsb">
  38. <view>{{array_sex[sexIndex]}}</view>
  39. <view>
  40. <img src="../../assets/user/pic_user_03.png" />
  41. </view>
  42. </view>
  43. </picker>
  44. </view> -->
  45. <view class="box2-table-box-left-item df fdr aic jcsb">
  46. <view class="table-title">政治面貌</view>
  47. <input class="form-input" name="input" placeholder="请输入" v-model="model.PoliticsStatus" />
  48. </view>
  49. <view class="box2-table-box-left-item df fdr aic jcsb">
  50. <view class="table-title">证件类型</view>
  51. <picker @change="bindPickerChange_zj" :value="zjIndex" :range="array_zj">
  52. <view class="form-input df fdr aic jcsb">
  53. <view>{{array_zj[zjIndex]}}</view>
  54. <view>
  55. <img src="../../assets/user/pic_user_03.png" />
  56. </view>
  57. </view>
  58. </picker>
  59. </view>
  60. <view class="box2-table-box-left-item df fdr aic jcsb">
  61. <view class="table-title">证件号码</view>
  62. <input class="form-input" name="input" placeholder="请输入" v-model="model.CertificateNum" />
  63. </view>
  64. </view>
  65. <view class="box2-table-box-right">
  66. <!-- <view class="box2-table-box-left-item df fdr aic jcsb">
  67. <view class="table-title">生日</view>
  68. <input class="form-input" name="input" placeholder="例:2020-01-23" />
  69. </view> -->
  70. <!-- <view class="box2-table-box-left-item df fdr aic jcsb">
  71. <view class="table-title">民族</view>
  72. <picker @change="bindPickerChange_mz()" :value="mzIndex" :range="array_mz">
  73. <view class="form-input df fdr aic jcsb">
  74. <view>{{array_mz[mzIndex]}}</view>
  75. <view>
  76. <img src="../../assets/user/pic_user_03.png" />
  77. </view>
  78. </view>
  79. </picker>
  80. </view> -->
  81. <view class="box2-table-box-left-item df fdr aic jcsb">
  82. <view class="table-title">民族</view>
  83. <picker @change="bindPickerChange_mz" :value="mzIndex" :range="array_mz">
  84. <view class="form-input df fdr aic jcsb">
  85. <view>{{array_mz[mzIndex]}}</view>
  86. <view>
  87. <img src="../../assets/user/pic_user_03.png" />
  88. </view>
  89. </view>
  90. </picker>
  91. </view>
  92. <view class="box2-table-box-left-item df fdr aic jcsb">
  93. <view class="table-title">籍贯</view>
  94. <input class="form-input" name="input" placeholder="请输入" v-model="model.NativePlace" />
  95. </view>
  96. <view class="box2-table-box-left-item df fdr aic jcsb">
  97. <view class="table-title">手机</view>
  98. <input class="form-input" name="input" placeholder="请输入" v-model="model.PhoneNum" />
  99. </view>
  100. <view class="box2-table-box-left-item df fdr aic jcsb">
  101. <view class="table-title">邮箱</view>
  102. <input class="form-input" name="input" placeholder="请输入" v-model="model.Email" />
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. </view>
  108. <view class="box3 df ">
  109. <view class="box2-content">
  110. <view class="title df fdr aic">
  111. <view class="df">
  112. <img src="../../assets/user/pic_user_02.png"></img>
  113. </view>
  114. <view class="title-text">学校认证信息</view>
  115. </view>
  116. <view class="box2-table-box df fdr">
  117. <view class="box2-table-box-left df fdc aic ">
  118. <view class="box2-table-box-left-item df fdr aic jcsb">
  119. <view class="table-title">学校</view>
  120. <input class="form-input" name="input" placeholder="请输入" v-model="model.School" />
  121. </view>
  122. <view class="box2-table-box-left-item df fdr aic jcsb">
  123. <view class="table-title">专业</view>
  124. <input class="form-input" name="input" placeholder="请输入" v-model="model.Profession" />
  125. </view>
  126. <view class="box2-table-box-left-item df fdr aic jcsb">
  127. <view class="table-title">班级</view>
  128. <input class="form-input" name="input" placeholder="请输入" v-model="model.Class" />
  129. </view>
  130. <!-- <view class="box2-table-box-left-item df fdr aic jcsb">
  131. <view class="table-title">职务</view>
  132. <input class="form-input" name="input" placeholder="请输入" v-model="model.Post" />
  133. </view> -->
  134. </view>
  135. <view class="box2-table-box-right">
  136. <view class="box2-table-box-left-item df fdr aic jcsb">
  137. <view class="table-title">学号</view>
  138. <input class="form-input" name="input" placeholder="请输入" v-model="model.StudentID" />
  139. </view>
  140. <view class="box2-table-box-left-item df fdr aic jcsb">
  141. <view class="table-title">院系</view>
  142. <input class="form-input" name="input" placeholder="请输入" v-model="model.Department" />
  143. </view>
  144. </view>
  145. </view>
  146. <view class="btn-box df fdr aic jcc">
  147. <view class="btn-submit df aic jcc" @click="onClick_commit">提交</view>
  148. <!-- <view class="btn-cancel df aic jcc">取消</view> -->
  149. </view>
  150. </view>
  151. </view>
  152. </view>
  153. </view>
  154. </template>
  155. <script>
  156. export default {
  157. components: {
  158. },
  159. onLoad() {
  160. },
  161. data() {
  162. return {
  163. //0添加1个人
  164. showIndex_userInfo: 0,
  165. sexIndex: 0,
  166. zjIndex: 0,
  167. mzIndex: 0,
  168. userInfo: mydata_userInfo,
  169. model: {
  170. "UserID": '', //设置用户
  171. "SetUserID": '', //被设置用户ID
  172. "Name": "", //姓名
  173. "School": "", //学校
  174. "Department": "", //院系
  175. "Profession": "", //专业
  176. "Class": "", //班级
  177. "StudentID": null, //学号
  178. "Post": '', //职务
  179. "PhoneNum": null, //电话
  180. "Email": "", //邮箱
  181. "Nation": "汉族", //民族
  182. "PoliticsStatus": "", //政治面貌
  183. "NativePlace": "", //籍贯
  184. "Certificate": "身份证", //证件类型
  185. "CertificateNum": null //证件号码
  186. },
  187. model2: {
  188. "UserID": mydata_userInfo.UserID, //设置用户
  189. "SetUserID": mydata_userInfo.UserID, //被设置用户ID
  190. "Name": "成3", //姓名
  191. "School": "传媒大学", //学校
  192. "Department": "计算机学院", //院系
  193. "Profession": "计算机", //专业
  194. "Class": "0550", //班级
  195. "StudentID": 16123, //学号
  196. "Post": mydata_userInfo.role, //职务
  197. "PhoneNum": 16584562045, //电话
  198. "Email": "15324565@qq.com", //邮箱
  199. "Nation": "汉", //民族
  200. "PoliticsStatus": "群众", //政治面貌
  201. "NativePlace": "江西", //籍贯
  202. "Certificate": "身份证", //证件类型
  203. "CertificateNum": 12345678910 //证件号码
  204. },
  205. array_sex: ['男', '女'],
  206. array_zj: ['身份证', '护照'],
  207. array_mz: ['汉族', '少数民族'],
  208. }
  209. },
  210. methods: {
  211. //点击添加个人信息
  212. onClick_p1_add() {
  213. this.showIndex_userInfo = 1;
  214. },
  215. //性别
  216. bindPickerChange_sex: function(e) {
  217. console.log('picker发送选择改变,携带值为', e.target.value)
  218. this.sexIndex = e.target.value
  219. // this.model.se
  220. },
  221. //证件类型
  222. bindPickerChange_zj: function(e) {
  223. console.log("证件类型", e);
  224. this.zjIndex = e.target.value
  225. this.model.Certificate = this.array_zj[this.zjIndex]
  226. },
  227. //民族
  228. bindPickerChange_mz: function(e) {
  229. console.log("民族", e);
  230. this.mzIndex = e.target.value
  231. this.model.Nation = this.array_mz[this.mzIndex]
  232. },
  233. onClick_commit() {
  234. let url = this.$Api + "/user/setuserinfo";
  235. console.log("请求提交", mydata_userInfo, this.model);
  236. //强制转换到数字类型,要不然提交不成功
  237. this.model.StudentID = Number(this.model.StudentID);
  238. this.model.PhoneNum = Number(this.model.PhoneNum);
  239. this.model.CertificateNum = Number(this.model.CertificateNum);
  240. // let model3 = {
  241. // "UserID": '69145935-e1ec-4a04-8133-43f351bde42c', //设置用户
  242. // "SetUserID": '69145935-e1ec-4a04-8133-43f351bde42c', //被设置用户ID
  243. // "Name": "xxx", //姓名
  244. // "School": "传媒大学", //学校
  245. // "Department": "计算机学院", //院系
  246. // "Profession": "计算机", //专业
  247. // "Class": "0550", //班级
  248. // "StudentID": 16123, //学号
  249. // "Post": "学生", //职务
  250. // "PhoneNum": 16584562045, //电话
  251. // "Email": "15324565@qq.com", //邮箱
  252. // "Nation": "汉", //民族
  253. // "PoliticsStatus": "群众", //政治面貌
  254. // "NativePlace": "江西", //籍贯
  255. // "Certificate": "身份证", //证件类型
  256. // "CertificateNum": 12345678910 //证件号码
  257. // }
  258. uni.request({
  259. header: {
  260. 'Content-Type': 'application/json;charset=UTF-8'
  261. },
  262. url: url,
  263. method: 'POST',
  264. // data: model3,
  265. data: this.model,
  266. dataType: 'json',
  267. success: (res) => {
  268. let data = res.data;
  269. //100成功
  270. if (data.Code == 100) {
  271. console.log("请求成功100");
  272. alert('提交成功!')
  273. }
  274. //200失败
  275. else {
  276. }
  277. console.log("success+++**+*", res)
  278. },
  279. fail: (res) => {
  280. console.log("fail+**+*", res)
  281. }
  282. });
  283. },
  284. updateInfo(data) {
  285. // this.model=model;
  286. this.showIndex_userInfo = 1;
  287. this.model.UserID = mydata_userInfo.UserID;
  288. this.model.SetUserID = mydata_userInfo.UserID;
  289. this.model.Post = mydata_userInfo.role;
  290. this.model.Name = data.Name;
  291. this.model.School = data.School;
  292. this.model.Department = data.Department;
  293. this.model.Profession = data.Profession;
  294. this.model.Class = data.Class;
  295. this.model.StudentID = data.StudentID;
  296. // this.model.Post=data.Post;
  297. this.model.PhoneNum = data.PhoneNum;
  298. this.model.Email = data.Email;
  299. this.model.Nation = data.Nation ? data.Nation : this.model.Nation;
  300. this.model.PoliticsStatus = data.PoliticsStatus;
  301. this.model.NativePlace = data.NativePlace;
  302. this.model.Certificate = data.Certificate ? data.Certificate : this.model.Certificate;
  303. this.model.CertificateNum = data.CertificateNum;
  304. }
  305. },
  306. onUploadAvatar(){
  307. console.log("点我了吗")
  308. uni.chooseFile({
  309. success: (chooseFileRes) => {
  310. const tempFilePaths = chooseFileRes.tempFilePaths;
  311. uni.uploadFile({
  312. url: this.$Api + "/user/uploaduserheadimage", //仅为示例,非真实的接口地址
  313. filePath: tempFilePaths[0],
  314. name: 'file',
  315. formData: {
  316. 'UserID':this.$UserId, // 创建用户 id
  317. },
  318. success: (uploadFileRes) => {
  319. console.log('upload ok=',uploadFileRes.data);
  320. //刷新avatar
  321. uni.request({
  322. header: {
  323. 'Content-Type': 'application/json;charset=UTF-8'
  324. },
  325. url: this.$Api + "/user/getuserinfo", //仅为示例,非真实的接口地址
  326. method: 'POST',
  327. data: {
  328. 'UserID':this.$UserId,
  329. },
  330. dataType: 'json',
  331. success: (res) => {
  332. this.userInfo.avatarSrc = res.data.User.HeadImageURL;
  333. },
  334. fail: (res) => {
  335. console.log("fail+**+*", res)
  336. }
  337. });
  338. }
  339. });
  340. }
  341. });
  342. }
  343. }
  344. </script>
  345. <style lang="scss">
  346. .user-full {
  347. width: 100%;
  348. height: 100%;
  349. }
  350. .user-right-box {
  351. // background: #FFFFFF;
  352. background: #F4F4F4;
  353. box-shadow: px2vw(3) 0px px2vw(6) 0px rgba(0, 0, 0, 0.1);
  354. flex: 1;
  355. margin-left: px2vw(10);
  356. }
  357. .user-right-01-tip {
  358. font-size: px2vw(22);
  359. color: #FF7373;
  360. line-height: px2vw(29);
  361. margin-top: px2vw(37);
  362. }
  363. .self-btn01 {
  364. width: px2vw(200);
  365. height: px2vw(58);
  366. background: #EA252C;
  367. border-radius: px2vw(8);
  368. font-size: px2vw(24);
  369. color: #FFFFFF;
  370. line-height: px2vw(31);
  371. margin-top: px2vw(94);
  372. }
  373. .user-right-self01 {
  374. background: #FFFFFF;
  375. }
  376. .box1 {
  377. height: px2vw(200);
  378. background: #FFFFFF;
  379. }
  380. .self-avatar {
  381. margin-left: px2vw(227);
  382. }
  383. .self-avatar img {
  384. width: px2vw(120);
  385. }
  386. .self-btn02 {
  387. width: px2vw(200);
  388. height: px2vw(58);
  389. background: #EA252C;
  390. border-radius: px2vw(8);
  391. font-size: px2vw(24);
  392. color: #FFFFFF;
  393. line-height: px2vw(31);
  394. margin-left: px2vw(57);
  395. }
  396. .box2 {
  397. // height: px2vw(553);
  398. background: #FFFFFF;
  399. margin-top: px2vw(10);
  400. }
  401. .box2-content {
  402. margin-left: px2vw(71);
  403. margin-top: px2vw(31);
  404. margin-bottom: px2vw(57);
  405. }
  406. .form-input {
  407. width: px2vw(355);
  408. height: px2vw(54);
  409. padding: px2vw(14) px2vw(20);
  410. font-size: px2vw(20);
  411. color: #070707;
  412. line-height: px2vw(26);
  413. background: #FFFFFF;
  414. border-radius: px2vw(4);
  415. border: 1px solid #B4B4B4;
  416. }
  417. .title-text {
  418. margin-left: px2vw(16);
  419. }
  420. .box2-table-box {
  421. // margin-top: px2vw(44);
  422. // margin-bottom: px2vw(44);
  423. }
  424. .box2-table-box-left {
  425. width: px2vw(500);
  426. }
  427. .box2-table-box-left-item {
  428. width: 100%;
  429. margin-top: px2vw(30);
  430. }
  431. .table-title {
  432. font-size: px2vw(22);
  433. color: #555555;
  434. line-height: px2vw(29);
  435. }
  436. .box2-table-box-right {
  437. width: px2vw(500);
  438. margin-left: px2vw(92);
  439. }
  440. .box3 {
  441. // height: px2vw(553);
  442. background: #FFFFFF;
  443. margin-top: px2vw(10);
  444. }
  445. .btn-box {
  446. // margin-top: px2vw(10);
  447. }
  448. .btn-submit {
  449. width: px2vw(200);
  450. height: px2vw(58);
  451. background: #EA252C;
  452. border-radius: px2vw(8);
  453. font-size: px2vw(24);
  454. color: #FFFFFF;
  455. line-height: px2vw(31);
  456. margin-top: px2vw(94);
  457. }
  458. .btn-cancel {
  459. width: px2vw(200);
  460. height: px2vw(58);
  461. background: #D8D8D8;
  462. border-radius: px2vw(8);
  463. font-size: px2vw(24);
  464. color: #FFFFFF;
  465. line-height: px2vw(31);
  466. margin-top: px2vw(94);
  467. margin-left: px2vw(30);
  468. }
  469. </style>