edit_user_info.ts 4.5 KB

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