edit_user_info.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import { _decorator, EditBox, Label, Node, Sprite } from 'cc';
  2. import { base_ui } from '../fw/base_ui';
  3. import { userDataManager } from '../manager/userDataManager';
  4. import { tools } from '../tools';
  5. import { GameManager } from '../GameManager';
  6. import { SdkUtil } from '../sdkUtil';
  7. import { http } from '../http';
  8. import { config } from '../config';
  9. import { uiManager } from '../manager/uiManager';
  10. import { ClientEvent } from '../lib/clientEvent';
  11. const { ccclass, property } = _decorator;
  12. @ccclass('edit_user_info')
  13. export class edit_user_info extends base_ui {
  14. @property(Node) btn_back:Node = null
  15. @property(Node) img_avatar:Node = null
  16. @property(Node) img_avatar_border:Node = null
  17. @property(Node) btn_edit_avatar:Node = null
  18. @property(EditBox) editbox_name:EditBox = null
  19. @property(Node) node_region:Node = null
  20. @property(Node) lab_region:Node = null
  21. @property(Node) btn_save:Node = null
  22. private avatar_url:string = ''
  23. start() {
  24. this.onButtonListen(this.btn_back, ()=>{
  25. this.close()
  26. })
  27. this.onButtonListen(this.btn_edit_avatar, ()=>{
  28. this.onClickEditAvatar()
  29. })
  30. this.onButtonListen(this.node_region, ()=>{
  31. GameManager.showChangeArea()
  32. })
  33. this.onButtonListen(this.btn_save, ()=>{
  34. this.requestSaveUserInfo()
  35. })
  36. this.initData()
  37. }
  38. private initData() {
  39. let user_data = userDataManager.user_data
  40. this.avatar_url = user_data.avatarUrl
  41. tools.loadRemoteImg(user_data.avatarUrl, (r)=>{
  42. this.img_avatar.getComponent(Sprite).spriteFrame = r.sf
  43. })
  44. if(user_data.photo_frame_img && user_data.photo_frame_img.length>0) {
  45. tools.loadRemoteImg(user_data.photo_frame_img, (r)=>{
  46. this.img_avatar_border.getComponent(Sprite).spriteFrame = r.sf
  47. })
  48. }
  49. this.editbox_name.string = user_data.nickName
  50. this.lab_region.getComponent(Label).string = user_data.province_name + ' - ' + user_data.city_name
  51. if(tools.sys_config.k_region==0) {
  52. this.node_region.active = false
  53. }
  54. }
  55. private onClickEditAvatar() {
  56. SdkUtil.choosSystemImage((filePath)=>{
  57. let fromdata = {'stype': 2}
  58. uiManager.Instance().showLoading()
  59. http.uploadFile(config.API.upload_img, filePath, fromdata, null,(err,d)=>{
  60. uiManager.Instance().hideLoading()
  61. if(!err){
  62. let data = JSON.parse(d)
  63. if(data.code===config.status.SUCCESS){
  64. // console.log('data=',data.content)
  65. this.avatar_url = data.content.surl
  66. tools.loadRemoteImg(this.avatar_url, (res)=>{
  67. this.img_avatar.getComponent(Sprite).spriteFrame = res.sf
  68. })
  69. }
  70. }
  71. })
  72. })
  73. }
  74. private requestSaveUserInfo() {
  75. if(this.editbox_name.string.length<=0) {
  76. uiManager.showToast('请填写昵称')
  77. return
  78. }
  79. let is_change:boolean = false
  80. let user_data = userDataManager.user_data
  81. if(user_data.avatarUrl!=this.avatar_url) {
  82. is_change = true
  83. }
  84. if(user_data.nickName!=this.editbox_name.string) {
  85. is_change = true
  86. }
  87. if(is_change) {
  88. let opt = {'avatarUrl':this.avatar_url,'nickName':this.editbox_name.string}
  89. uiManager.Instance().showLoading()
  90. http.post(config.API.up_user_info,opt,(err,d)=>{
  91. uiManager.Instance().hideLoading()
  92. if(!err){
  93. let nd = JSON.parse(d)
  94. if(nd.code === config.status.SUCCESS){
  95. // console.log("修改用户信息", nd.content)
  96. uiManager.showToast('用户信息修改成功')
  97. let content = nd.content
  98. userDataManager.user_data.avatarUrl = content.avatarUrl
  99. userDataManager.user_data.nickName = content.nickName
  100. ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_USER_INFO)
  101. }
  102. }
  103. })
  104. } else {
  105. this.close()
  106. }
  107. }
  108. }