Explorar el Código

Merge branch 'main' of http://git.ddse.io:3000/tomy/JD_iOS into main

# Conflicts:
#	Koala/Koala.xcodeproj/project.pbxproj
刘千军 hace 11 meses
padre
commit
b48a6da6a2
Se han modificado 100 ficheros con 4010 adiciones y 20 borrados
  1. BIN
      .DS_Store
  2. 52 0
      Koala/Koala.xcodeproj/project.pbxproj
  3. 1 1
      Koala/Koala.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist
  4. BIN
      Koala/Koala.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate
  5. 55 4
      Koala/Koala/Modular/Information/C/InformationFlashViewController.swift
  6. 57 13
      Koala/Koala/Modular/Information/V/InformationFlashCell.swift
  7. 2 1
      Koala/Koala/Modular/JDAssets/V/JDAccountTypeCheckCell.swift
  8. 10 0
      Koala/Koala/Modular/JDMine/V/JDMineHeaderView.swift
  9. 340 0
      Koala/Koala/Modular/JDMine/V/JDMineInviteCell.swift
  10. 284 0
      Koala/Koala/Modular/JDMine/V/JDMineInviteHeaderView.swift
  11. 219 0
      Koala/Koala/Modular/JDMine/V/JDMineInviteSecionHeaderView.swift
  12. 331 0
      Koala/Koala/Modular/JDMine/V/JDMineJoinUsCell.swift
  13. 125 0
      Koala/Koala/Modular/JDMine/V/JDMineUserInfoCell.swift
  14. 243 0
      Koala/Koala/Modular/JDMine/V/JDMineVipCell.swift
  15. 247 0
      Koala/Koala/Modular/JDMine/V/JDMineVipOpenMindCell.swift
  16. 126 0
      Koala/Koala/Modular/JDMine/VC/JDMineInvitePosterViewController.swift
  17. 153 0
      Koala/Koala/Modular/JDMine/VC/JDMineInviteViewController.swift
  18. 187 0
      Koala/Koala/Modular/JDMine/VC/JDMineJoinUsViewController.swift
  19. 149 0
      Koala/Koala/Modular/JDMine/VC/JDMineModifyGenderViewController.swift
  20. 143 0
      Koala/Koala/Modular/JDMine/VC/JDMineModifyNickNameViewController.swift
  21. 149 0
      Koala/Koala/Modular/JDMine/VC/JDMineModifyRemarkViewController.swift
  22. 206 0
      Koala/Koala/Modular/JDMine/VC/JDMineQrcodeViewController.swift
  23. 206 0
      Koala/Koala/Modular/JDMine/VC/JDMineUserInfoViewController.swift
  24. 153 1
      Koala/Koala/Modular/JDMine/VC/JDMineVIPViewController.swift
  25. 22 0
      Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/Contents.json
  26. BIN
      Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/路径备份 5@2x.png
  27. BIN
      Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/路径备份 5@3x.png
  28. 22 0
      Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/Contents.json
  29. BIN
      Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/火备份@2x.png
  30. BIN
      Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/火备份@3x.png
  31. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/Contents.json
  32. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/编组 20@2x.png
  33. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/编组 20@3x.png
  34. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/Contents.json
  35. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/编组 20@2x(1).png
  36. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/编组 20@3x(1).png
  37. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/Contents.json
  38. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/编组 20备份 3@2x.png
  39. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/编组 20备份 3@3x.png
  40. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/Contents.json
  41. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/形状@2x.png
  42. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/形状@3x.png
  43. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/Contents.json
  44. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/编组 19@2x.png
  45. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/编组 19@3x.png
  46. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/Contents.json
  47. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/编组 3@2x.png
  48. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/编组 3@3x.png
  49. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/Contents.json
  50. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/位图@2x.png
  51. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/位图@3x.png
  52. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/Contents.json
  53. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/编组 5@2x.png
  54. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/编组 5@3x.png
  55. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/Contents.json
  56. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/位图@2x(1).png
  57. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/位图@3x(1).png
  58. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/Contents.json
  59. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/编组 23@2x.png
  60. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/编组 23@3x.png
  61. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/Contents.json
  62. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/编组 20@2x.png
  63. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/编组 20@3x.png
  64. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/Contents.json
  65. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/编组 20@2x(1).png
  66. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/编组 20@3x(1).png
  67. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/Contents.json
  68. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/编组 20备份 2@2x.png
  69. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/编组 20备份 2@3x.png
  70. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/Contents.json
  71. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/编组 10@2x.png
  72. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/编组 10@3x.png
  73. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/Contents.json
  74. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/位图@2x.png
  75. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/位图@3x.png
  76. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/Contents.json
  77. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/代理商管理@2x.png
  78. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/代理商管理@3x.png
  79. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/Contents.json
  80. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/编组@2x.png
  81. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/编组@3x.png
  82. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/Contents.json
  83. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/形状@2x.png
  84. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/形状@3x.png
  85. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/Contents.json
  86. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/路径备份 5@2x.png
  87. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/路径备份 5@3x.png
  88. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/Contents.json
  89. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/形状备份 10@2x.png
  90. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/形状备份 10@3x.png
  91. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/Contents.json
  92. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/复制@2x.png
  93. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/复制@3x.png
  94. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/Contents.json
  95. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/形状@2x.png
  96. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/形状@3x.png
  97. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/Contents.json
  98. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/编组 20@2x.png
  99. BIN
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/编组 20@3x.png
  100. 22 0
      Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_1.imageset/Contents.json

BIN
.DS_Store


+ 52 - 0
Koala/Koala.xcodeproj/project.pbxproj

@@ -35,6 +35,19 @@
 		041D4F222AD2CAEA008ABDF7 /* JDMineJoinUsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041D4F212AD2CAEA008ABDF7 /* JDMineJoinUsViewController.swift */; };
 		041D4F242AD2CB04008ABDF7 /* JDMineActiveViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041D4F232AD2CB04008ABDF7 /* JDMineActiveViewController.swift */; };
 		041D4F262AD2CB9F008ABDF7 /* JDMineVIPViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041D4F252AD2CB9F008ABDF7 /* JDMineVIPViewController.swift */; };
+		041D4F282AD392DE008ABDF7 /* JDMineJoinUsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041D4F272AD392DE008ABDF7 /* JDMineJoinUsCell.swift */; };
+		04B46A8D2AD7BEA700421177 /* JDMineModifyNickNameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B46A8C2AD7BEA700421177 /* JDMineModifyNickNameViewController.swift */; };
+		04B46A8F2AD7C67400421177 /* JDMineQrcodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B46A8E2AD7C67400421177 /* JDMineQrcodeViewController.swift */; };
+		04B46A912AD7D3BC00421177 /* JDMineModifyGenderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B46A902AD7D3BC00421177 /* JDMineModifyGenderViewController.swift */; };
+		04B46A932AD7D72300421177 /* JDMineModifyRemarkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B46A922AD7D72300421177 /* JDMineModifyRemarkViewController.swift */; };
+		04C283102AD5233200FC04AC /* JDMineVipOpenMindCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C2830F2AD5233200FC04AC /* JDMineVipOpenMindCell.swift */; };
+		04C283142AD5371300FC04AC /* JDMineInviteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C283132AD5371300FC04AC /* JDMineInviteCell.swift */; };
+		04C283162AD5522200FC04AC /* JDMineInviteSecionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C283152AD5522200FC04AC /* JDMineInviteSecionHeaderView.swift */; };
+		04C283182AD55A8700FC04AC /* JDMineInviteHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C283172AD55A8700FC04AC /* JDMineInviteHeaderView.swift */; };
+		04C2831A2AD67E3400FC04AC /* JDMineInvitePosterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C283192AD67E3400FC04AC /* JDMineInvitePosterViewController.swift */; };
+		04C2831C2AD69C3F00FC04AC /* JDMineUserInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C2831B2AD69C3F00FC04AC /* JDMineUserInfoViewController.swift */; };
+		04C2831E2AD6A02600FC04AC /* JDMineUserInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C2831D2AD6A02600FC04AC /* JDMineUserInfoCell.swift */; };
+		04C4CB1A2AD51420004CA35E /* JDMineVipCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C4CB192AD51420004CA35E /* JDMineVipCell.swift */; };
 		04CEE2722AB4311F00FAA760 /* JDTradeAccountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04CEE2712AB4311F00FAA760 /* JDTradeAccountModel.swift */; };
 		04CEE2752AB5786100FAA760 /* MarketNoticeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04CEE2742AB5786100FAA760 /* MarketNoticeModel.swift */; };
 		04CEE2772AB5CA8600FAA760 /* MarketCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04CEE2762AB5CA8600FAA760 /* MarketCompanyModel.swift */; };
@@ -797,6 +810,19 @@
 		041D4F212AD2CAEA008ABDF7 /* JDMineJoinUsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineJoinUsViewController.swift; sourceTree = "<group>"; };
 		041D4F232AD2CB04008ABDF7 /* JDMineActiveViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineActiveViewController.swift; sourceTree = "<group>"; };
 		041D4F252AD2CB9F008ABDF7 /* JDMineVIPViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineVIPViewController.swift; sourceTree = "<group>"; };
+		041D4F272AD392DE008ABDF7 /* JDMineJoinUsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineJoinUsCell.swift; sourceTree = "<group>"; };
+		04B46A8C2AD7BEA700421177 /* JDMineModifyNickNameViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineModifyNickNameViewController.swift; sourceTree = "<group>"; };
+		04B46A8E2AD7C67400421177 /* JDMineQrcodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineQrcodeViewController.swift; sourceTree = "<group>"; };
+		04B46A902AD7D3BC00421177 /* JDMineModifyGenderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineModifyGenderViewController.swift; sourceTree = "<group>"; };
+		04B46A922AD7D72300421177 /* JDMineModifyRemarkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineModifyRemarkViewController.swift; sourceTree = "<group>"; };
+		04C2830F2AD5233200FC04AC /* JDMineVipOpenMindCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineVipOpenMindCell.swift; sourceTree = "<group>"; };
+		04C283132AD5371300FC04AC /* JDMineInviteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineInviteCell.swift; sourceTree = "<group>"; };
+		04C283152AD5522200FC04AC /* JDMineInviteSecionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineInviteSecionHeaderView.swift; sourceTree = "<group>"; };
+		04C283172AD55A8700FC04AC /* JDMineInviteHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineInviteHeaderView.swift; sourceTree = "<group>"; };
+		04C283192AD67E3400FC04AC /* JDMineInvitePosterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineInvitePosterViewController.swift; sourceTree = "<group>"; };
+		04C2831B2AD69C3F00FC04AC /* JDMineUserInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineUserInfoViewController.swift; sourceTree = "<group>"; };
+		04C2831D2AD6A02600FC04AC /* JDMineUserInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineUserInfoCell.swift; sourceTree = "<group>"; };
+		04C4CB192AD51420004CA35E /* JDMineVipCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDMineVipCell.swift; sourceTree = "<group>"; };
 		04CEE2712AB4311F00FAA760 /* JDTradeAccountModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JDTradeAccountModel.swift; sourceTree = "<group>"; };
 		04CEE2742AB5786100FAA760 /* MarketNoticeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketNoticeModel.swift; sourceTree = "<group>"; };
 		04CEE2762AB5CA8600FAA760 /* MarketCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketCompanyModel.swift; sourceTree = "<group>"; };
@@ -1821,6 +1847,11 @@
 			isa = PBXGroup;
 			children = (
 				04D38E992AA5D3970047EF9C /* JDMineViewController.swift */,
+				04C2831B2AD69C3F00FC04AC /* JDMineUserInfoViewController.swift */,
+				04B46A8C2AD7BEA700421177 /* JDMineModifyNickNameViewController.swift */,
+				04B46A8E2AD7C67400421177 /* JDMineQrcodeViewController.swift */,
+				04B46A902AD7D3BC00421177 /* JDMineModifyGenderViewController.swift */,
+				04B46A922AD7D72300421177 /* JDMineModifyRemarkViewController.swift */,
 				04CEE2972ABBCC8A00FAA760 /* JDFinancialRecordsMainViewController.swift */,
 				04CEE2992ABBCE7B00FAA760 /* JDDepositRecordsViewController.swift */,
 				04CEE2A72ABC35C700FAA760 /* JDMineServiceViewController.swift */,
@@ -1829,6 +1860,7 @@
 				04CEE2AF2ABD1D3600FAA760 /* JDCreateWorkOrderViewController.swift */,
 				04CEE2B72ABD3ACA00FAA760 /* JDWorkOrderDetailViewController.swift */,
 				041D4F1F2AD2CADC008ABDF7 /* JDMineInviteViewController.swift */,
+				04C283192AD67E3400FC04AC /* JDMineInvitePosterViewController.swift */,
 				041D4F212AD2CAEA008ABDF7 /* JDMineJoinUsViewController.swift */,
 				041D4F232AD2CB04008ABDF7 /* JDMineActiveViewController.swift */,
 				041D4F252AD2CB9F008ABDF7 /* JDMineVIPViewController.swift */,
@@ -1840,6 +1872,7 @@
 			isa = PBXGroup;
 			children = (
 				04D38E9C2AA6B80D0047EF9C /* JDMineMenuButton.swift */,
+				04C2831D2AD6A02600FC04AC /* JDMineUserInfoCell.swift */,
 				04D38E9E2AA6C31F0047EF9C /* JDMineCell.swift */,
 				04CEE29B2ABBCF1200FAA760 /* JDDepositRecordCell.swift */,
 				04CEE29D2ABBD80900FAA760 /* JDExchangeRecordCell.swift */,
@@ -1848,6 +1881,12 @@
 				04CEE2B92ABD3C4400FAA760 /* JDWorkOrderDetailHeaderView.swift */,
 				04CEE2BB2ABD41DA00FAA760 /* JDWorkOrderDetailCell.swift */,
 				041D4F1D2AD2B0FC008ABDF7 /* JDMineHeaderView.swift */,
+				041D4F272AD392DE008ABDF7 /* JDMineJoinUsCell.swift */,
+				04C4CB192AD51420004CA35E /* JDMineVipCell.swift */,
+				04C2830F2AD5233200FC04AC /* JDMineVipOpenMindCell.swift */,
+				04C283132AD5371300FC04AC /* JDMineInviteCell.swift */,
+				04C283172AD55A8700FC04AC /* JDMineInviteHeaderView.swift */,
+				04C283152AD5522200FC04AC /* JDMineInviteSecionHeaderView.swift */,
 			);
 			path = V;
 			sourceTree = "<group>";
@@ -4004,6 +4043,7 @@
 				6CDC5AFA29CDFBFD00E60730 /* FlashHistoryRecordCell.swift in Sources */,
 				04D38E762A9EE8A10047EF9C /* JXSegmentedTitleCell.swift in Sources */,
 				6C86530329ACF3E400A2E7FB /* TDStatisticsRecordListCell.swift in Sources */,
+				04B46A8F2AD7C67400421177 /* JDMineQrcodeViewController.swift in Sources */,
 				6CA7134F2959F6AC0047F450 /* ForgotPasswordViewModel.swift in Sources */,
 				6C86531929B4E0E500A2E7FB /* TalentReportViewController.swift in Sources */,
 				6CD200BB29E8447C00F0966D /* AWalletRecordListCell.swift in Sources */,
@@ -4021,6 +4061,7 @@
 				6C2FFCBC29618250005B8180 /* FreezeAccountViewModel.swift in Sources */,
 				04CEE2922AB9990900FAA760 /* JDAFiatDepositsCell.swift in Sources */,
 				6CC37FE0298FB0330079FA5C /* AssetsDealViewModel.swift in Sources */,
+				04C283182AD55A8700FC04AC /* JDMineInviteHeaderView.swift in Sources */,
 				6C3717DE29AA52D8000DDD8B /* TalentDetailsView.swift in Sources */,
 				6C00A90B242D918D00CE9ADB /* OperationalSkinData.swift in Sources */,
 				6C2FFCAA29608447005B8180 /* AsunBasicAttributes.swift in Sources */,
@@ -4076,6 +4117,7 @@
 				6CA71338295861890047F450 /* CountrySelectPopView.swift in Sources */,
 				6C4AFACA299AA16000508EA7 /* WithdrawalsRemarkPopView.swift in Sources */,
 				6C4AFB4129A8FC3A00508EA7 /* DealTalentViewController.swift in Sources */,
+				04C2831A2AD67E3400FC04AC /* JDMineInvitePosterViewController.swift in Sources */,
 				04D38ECB2AB2AEE50047EF9C /* JDKLineFooterView.swift in Sources */,
 				6C8652F629AA6E9D00A2E7FB /* TDStatisticsProfitCell.swift in Sources */,
 				6C4AFB5029AA1F1100508EA7 /* MyCopyingViewController.swift in Sources */,
@@ -4116,6 +4158,7 @@
 				04D38E6A2A9EE8A10047EF9C /* JXSegmentedIndicatorImageView.swift in Sources */,
 				6C4AFB4829A8FDEA00508EA7 /* DealTalentHeaderView.swift in Sources */,
 				6CC3B6462A192D6000D77D03 /* CopyingSetViewController.swift in Sources */,
+				041D4F282AD392DE008ABDF7 /* JDMineJoinUsCell.swift in Sources */,
 				6C00A98D2433313300CE9ADB /* HXImageListViewController.swift in Sources */,
 				6C00A904242D918D00CE9ADB /* UIButton+CategoryClass.swift in Sources */,
 				6C00A9AF2434A18B00CE9ADB /* HDRunTime.swift in Sources */,
@@ -4168,6 +4211,7 @@
 				6CDC5B1529D0814E00E60730 /* AssetsProxyHeaderView.swift in Sources */,
 				6CC8024329968A2300C36373 /* AWithdrawalsViewController.swift in Sources */,
 				6CBB62EB2AD8295C0045A4C9 /* MDOptionsViewModel.swift in Sources */,
+				04B46A8D2AD7BEA700421177 /* JDMineModifyNickNameViewController.swift in Sources */,
 				041D4EE42ABEBA0C008ABDF7 /* JDAFiatAccountListPopView.swift in Sources */,
 				6CA71342295889260047F450 /* RegisterViewModel.swift in Sources */,
 				6C4AFAED299FE01600508EA7 /* APaymentMethodViewController.swift in Sources */,
@@ -4225,6 +4269,7 @@
 				04D38EB22AAB19E80047EF9C /* JDHomeMenuCell.swift in Sources */,
 				6CBB62D72AD828170045A4C9 /* MDFinanceView.swift in Sources */,
 				6C7F446A29556B2600DC6771 /* BaseViewModel.swift in Sources */,
+				04C2831C2AD69C3F00FC04AC /* JDMineUserInfoViewController.swift in Sources */,
 				04CEE2722AB4311F00FAA760 /* JDTradeAccountModel.swift in Sources */,
 				6CA7133D29587BE10047F450 /* CountrySelectCell.swift in Sources */,
 				6CC37FDA298FAFE30079FA5C /* AssetsSavingsView.swift in Sources */,
@@ -4267,8 +4312,10 @@
 				6CBDC90E297AE04C003E068F /* CTKLineUpsDownsCell.swift in Sources */,
 				6C00A98B2433313300CE9ADB /* HXImagePickerController.swift in Sources */,
 				6C00A98A2433313300CE9ADB /* HXAlbumListViewController.swift in Sources */,
+				04C4CB1A2AD51420004CA35E /* JDMineVipCell.swift in Sources */,
 				6C00A901242D918D00CE9ADB /* UILable+CategoryClass.swift in Sources */,
 				6C10F08D29DB087700B79491 /* UpdateView.swift in Sources */,
+				04C283142AD5371300FC04AC /* JDMineInviteCell.swift in Sources */,
 				6C00A8FF242D918D00CE9ADB /* UINavigation+categoryClass.swift in Sources */,
 				6CA71322295807740047F450 /* BaseInputView.swift in Sources */,
 				6C3717D729AA4914000DDD8B /* MCHeaderView.swift in Sources */,
@@ -4300,6 +4347,7 @@
 				6CA7131A29572DD70047F450 /* LoginView.swift in Sources */,
 				04CEE2AC2ABC3B6100FAA760 /* JDWorkOrderListViewController.swift in Sources */,
 				041D4EEE2AC155F1008ABDF7 /* JDDealViewController.swift in Sources */,
+				04B46A912AD7D3BC00421177 /* JDMineModifyGenderViewController.swift in Sources */,
 				6CDC5B1A29D08CA600E60730 /* AssetsProxyListCell.swift in Sources */,
 				6C4AFAE9299E870400508EA7 /* AFiatWithdrawalsListCell.swift in Sources */,
 				6CDC5AEF29CC9C7600E60730 /* AFiatDepositsPayWayPopView.swift in Sources */,
@@ -4351,6 +4399,7 @@
 				6C00A907242D918D00CE9ADB /* UIViewControllerProtocal.swift in Sources */,
 				6C00A8FD242D918D00CE9ADB /* String+CategoryClass.swift in Sources */,
 				6C4AFB0429A0FFCB00508EA7 /* HoldModel.swift in Sources */,
+				04C2831E2AD6A02600FC04AC /* JDMineUserInfoCell.swift in Sources */,
 				04D38E222A9DDE3C0047EF9C /* InfomationViewController.swift in Sources */,
 				6C2FFCC2296182E3005B8180 /* FreezeAccountCell.swift in Sources */,
 				6CA7131C295737170047F450 /* LoginTopView.swift in Sources */,
@@ -4364,6 +4413,7 @@
 				6CD54793297064BF00373723 /* OperationalSymbolSocketManager.swift in Sources */,
 				6C6B7DAA296B19C600067FA3 /* BaseListCurrencyHeaderView.swift in Sources */,
 				6C7A1AEE29F80B26004CFBE3 /* CreditsHeaderView.swift in Sources */,
+				04C283102AD5233200FC04AC /* JDMineVipOpenMindCell.swift in Sources */,
 				04D38E6B2A9EE8A10047EF9C /* JXSegmentedIndicatorBackgroundView.swift in Sources */,
 				6C353682297D68BD003BB632 /* DealModel.swift in Sources */,
 				6CA9FF31295DCEB90097ABA6 /* SecuritySettingsViewController.swift in Sources */,
@@ -4419,11 +4469,13 @@
 				04CEE2962ABAE9CC00FAA760 /* JDAFiatWithdrawalsCell.swift in Sources */,
 				6CBB62CD2AD81EC80045A4C9 /* MarketDetailViewController.swift in Sources */,
 				6CBB62CA2AD6EFD80045A4C9 /* MarketOptionsListCell.swift in Sources */,
+				04B46A932AD7D72300421177 /* JDMineModifyRemarkViewController.swift in Sources */,
 				04D38E612A9EE8A10047EF9C /* JXSegmentedCollectionView.swift in Sources */,
 				6CDC5B0629CF164500E60730 /* AHistoryDetaisHeaderView.swift in Sources */,
 				04D38EC72AB29A0A0047EF9C /* JDKLineBuySellRateView.swift in Sources */,
 				6CA71312295717990047F450 /* MineViewCell.swift in Sources */,
 				04D38EBA2AAECE0C0047EF9C /* JDTradeViewController.swift in Sources */,
+				04C283162AD5522200FC04AC /* JDMineInviteSecionHeaderView.swift in Sources */,
 				6CC802312995330B00C36373 /* ASelsectCurrencyViewController.swift in Sources */,
 				6C10F10A29E1638400B79491 /* FeedbackViewController.swift in Sources */,
 				041D4F092AC4367E008ABDF7 /* JDAccountTypeCheckCell.swift in Sources */,

+ 1 - 1
Koala/Koala.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>Koala.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>15</integer>
+			<integer>18</integer>
 		</dict>
 	</dict>
 </dict>

BIN
Koala/Koala.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate


+ 55 - 4
Koala/Koala/Modular/Information/C/InformationFlashViewController.swift

@@ -96,9 +96,60 @@ extension InformationFlashViewController : UITableViewDataSource{
     
     func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
         
-   
-            
-            return UIView()
+        let view = UIView(frame: CGRectMake(0, 0, SCREEN_WIDTH, 50))
+        view.backgroundColor = .white
+        
+        let dateBgView = UIView()
+        dateBgView.backgroundColor = .white
+        dateBgView.layer.masksToBounds = true
+        dateBgView.layer.cornerRadius = 3
+        dateBgView.layer.borderColor = _color("#DADADA&#DADADA").cgColor
+        dateBgView.layer.borderWidth = 1
+        view.addSubview(dateBgView)
+        dateBgView.snp.makeConstraints { make in
+            make.centerY.equalTo(view)
+            make.left.equalTo(view.snp.left).offset(13)
+            make.size.equalTo(CGSize(width: 21, height: 21))
+        }
+        
+        let line  = UIView()
+        line.backgroundColor = MainBackGroundColor
+        dateBgView.addSubview(line)
+        line.snp.makeConstraints { make in
+            make.centerX.equalTo(dateBgView)
+            make.top.equalTo(dateBgView.snp.top).offset(4)
+            make.size.equalTo(CGSize(width: 7.8, height: 1))
+        }
+        
+        let now = Date()
+        let calendar = Calendar.current
+//        let year = calendar.component(.year, from: now) // 获取当前年份
+//        let month = calendar.component(.month, from: now) // 获取当前月份
+        let day = calendar.component(.day, from: now) // 获取当前日期
+        let dateLb = UILabel()
+        dateLb.textColor = _color("#232323&#232323")
+        dateLb.setTextFont(.PFSM, 12)
+        dateLb.textAlignment = .center
+        dateLb.text = "\(day)"
+        dateBgView.addSubview(dateLb)
+        dateLb.snp.makeConstraints { make in
+            make.centerX.equalTo(dateBgView)
+            make.top.equalTo(line.snp.bottom).offset(0)
+        }
+        
+        
+        
+        let todayLb = UILabel()
+        todayLb.textColor = _color("#232323&#232323")
+        todayLb.setTextFont(.PFSR, 12)
+        todayLb.text = switchLanguage("今天")
+        view.addSubview(todayLb)
+        todayLb.snp.makeConstraints { make in
+            make.centerY.equalTo(dateBgView)
+            make.left.equalTo(dateBgView.snp.right).offset(9)
+        }
+        
+        return view
         
         
     }
@@ -120,7 +171,7 @@ extension InformationFlashViewController : UITableViewDelegate{
     func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
         
 
-        return 0.0001
+        return 50
   
         
     }

+ 57 - 13
Koala/Koala/Modular/Information/V/InformationFlashCell.swift

@@ -44,32 +44,76 @@ class InformationFlashCell: BaseTableViewCell {
         return v
     }()
     
+    lazy var pointView : UIView = {
+        let v = UIView()
+        
+        v.backgroundColor = .white
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 4
+        v.layer.borderWidth = 1
+        v.layer.borderColor = MainBackGroundColor.cgColor
+        
+        return v
+    }()
     
+    lazy var lineView : JXDashLineView = {
+        let v = JXDashLineView(frame: CGRect(x: 0, y: 0, width: 1.4, height: 200), lineLength: 4, lineSpacing: 3, lineColor: _color("#E3E3E3&#E3E3E3"), lineHeight: 60)
+        
+        return v
+    }()
+    
+    
+    lazy var shareBtn : UIButton = {
+        let v = UIButton(type: .custom)
+        v.setImage(_image("Infomation_share&Infomation_share"), for: .normal)
+        v.setTitle(switchLanguage("分享"), for: .normal)
+        v.setTitleColor(_color("#7E7E7E&#7E7E7E"), for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 10)
+        v.layoutButtonEdgeInsetStyle(type: .left, space: 4)
+        return v
+    }()
     
     override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
         super.init(style: style, reuseIdentifier: reuseIdentifier)
 
+        contentView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.top.bottom.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(24)
+            make.width.equalTo(2)
+        }
+        
+        contentView.addSubview(pointView)
+        pointView.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(20)
+            make.top.equalTo(contentView.snp.top)
+            make.size.equalTo(CGSize(width: 8, height: 8))
+        }
+        contentView.addSubview(timeLb)
+        
+        timeLb.snp.makeConstraints { make in
+            make.centerY.equalTo(pointView)
+            make.left.equalTo(pointView.snp.right).offset(12)
+        }
+        
         contentView.addSubview(titleLb)
         titleLb.snp.makeConstraints { make in
-            make.top.equalTo(contentView.snp.top).offset(17)
-            make.left.equalTo(contentView.snp.left).offset(18)
+            make.top.equalTo(timeLb.snp.bottom).offset(8)
+            make.left.equalTo(timeLb.snp.left)
             make.right.equalTo(contentView.snp.right).offset(-18)
         }
         
-        contentView.addSubview(nickNameLb)
-        nickNameLb.snp.makeConstraints { make in
-            make.left.equalTo(titleLb.snp.left)
-            make.top.equalTo(titleLb.snp.bottom).offset(12)
-            make.bottom.equalTo(contentView.snp.bottom).offset(-1)
-        }
+
         
+        contentView.addSubview(shareBtn)
+        shareBtn.snp.makeConstraints { make in
+            make.right.equalTo(contentView.snp.right).offset(-14)
+            make.top.equalTo(titleLb.snp.bottom).offset(10)
+            make.size.equalTo(CGSize(width: 40, height: 12))
+            make.bottom.equalTo(contentView.snp.bottom).offset(-18)
+        }
         
-        contentView.addSubview(timeLb)
         
-        timeLb.snp.makeConstraints { make in
-            make.centerY.equalTo(nickNameLb)
-            make.left.equalTo(nickNameLb.snp.right).offset(23)
-        }
     }
     
     required init?(coder aDecoder: NSCoder) {

+ 2 - 1
Koala/Koala/Modular/JDAssets/V/JDAccountTypeCheckCell.swift

@@ -14,7 +14,8 @@ class JDAccountTypeCheckCell: BaseTableViewCell {
     lazy var titleLb : UILabel = {
         let v = UILabel()
         v.textColor = UIColor.pg_color(withHexString: "333333")
-        v.font = .boldSystemFont(ofSize: 18)
+
+        v.setTextFont(.PFSM, 18)
         return v
     }()
     

+ 10 - 0
Koala/Koala/Modular/JDMine/V/JDMineHeaderView.swift

@@ -62,9 +62,19 @@ class JDMineHeaderView: BaseView {
     lazy var avatarBtn : UIButton = {
         let v = UIButton(type: .custom)
         v.setBackgroundImage(Base_Avtor_Image, for: .normal)
+        
+        v.addTarget(self, action: #selector(avatarAction), for: .touchUpInside)
         return v
     }()
     
+    @objc func avatarAction() ->Void {
+        
+        let vc = JDMineUserInfoViewController()
+        
+        currentVc()?.navigationController?.pushViewController(vc, animated: true)
+        
+    }
+    
     lazy var nameBtn : UIButton = {
 
         let v = UIButton(type: .custom )

+ 340 - 0
Koala/Koala/Modular/JDMine/V/JDMineInviteCell.swift

@@ -0,0 +1,340 @@
+//
+//  JDMineInviteCell.swift
+//  Koala
+//
+//  Created by mac on 2023/10/10.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineInviteRecordCell: BaseTableViewCell {
+    
+    
+    lazy var nameLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("User7441")
+        return v
+    }()
+    
+    lazy var timeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("2023-08-24 21:48")
+        return v
+    }()
+    
+    lazy var statusLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("在途中")
+        return v
+    }()
+    
+    lazy var lineView : UIView = {
+        
+        let v = UIView()
+        
+        v.backgroundColor = _color("#EEEEEE&#EEEEEE")
+    
+        return v
+        
+    }()
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(nameLb)
+        nameLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(34)
+        }
+        
+        contentView.addSubview(timeLb)
+        timeLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(121)
+        }
+        
+        contentView.addSubview(statusLb)
+        statusLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(SCREEN_WIDTH-90)
+        }
+        
+        contentView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.bottom.equalTo(contentView)
+            make.height.equalTo(1)
+        }
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+class JDMineRewardRecordCell: BaseTableViewCell {
+    
+    lazy var timeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("2023-08-24 21:48")
+        return v
+    }()
+    
+    lazy var typeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("抵扣券")
+        return v
+    }()
+    
+    lazy var statusLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#0BB44B&#0BB44B")
+        v.setTextFont(.PFSR, 13)
+        v.text = switchLanguage("已发放")
+        return v
+    }()
+    
+    lazy var lineView : UIView = {
+        
+        let v = UIView()
+        
+        v.backgroundColor = _color("#EEEEEE&#EEEEEE")
+    
+        return v
+        
+    }()
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+       
+        
+        contentView.addSubview(timeLb)
+        timeLb.snp.makeConstraints { make in
+            
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(34)
+            
+        }
+        
+        contentView.addSubview(typeLb)
+        typeLb.snp.makeConstraints { make in
+            
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(168)
+        }
+        
+        contentView.addSubview(statusLb)
+        statusLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(SCREEN_WIDTH-90)
+        }
+        
+        contentView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.bottom.equalTo(contentView)
+            make.height.equalTo(1)
+        }
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+
+class JDMineInviteCouponCell: BaseTableViewCell {
+    
+    
+    lazy var bgIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_couponBg&jdmine_invite_couponBg")
+        
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.setTextFont(.PFSR, 16)
+        v.textAlignment = .left
+        v.text = switchLanguage("抵扣券 0 张")
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.textAlignment = .left
+        v.numberOfLines = 0
+        v.text = switchLanguage("每位好友净存款》=1000 USD后可 \n获得 100 USD  抵扣券")
+        return v
+    }()
+    
+    lazy var getBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("立即领取"), for: .normal)
+        v.setTitleColor(.white, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+        
+//        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(bgIv)
+        bgIv.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(13)
+            make.right.equalTo(contentView.snp.right).offset(-13)
+            make.top.equalTo(contentView.snp.top).offset(10)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-10)
+            make.height.equalTo(138)
+        }
+        
+        bgIv.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.left.equalTo(bgIv.snp.left).offset(17)
+            make.top.equalTo(bgIv.snp.top).offset(16)
+        }
+        
+        bgIv.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(titleLb.snp.left)
+            make.top.equalTo(titleLb.snp.bottom).offset(9)
+        }
+        
+        bgIv.addSubview(getBtn)
+        getBtn.snp.makeConstraints { make in
+            make.left.equalTo(titleLb.snp.left)
+            make.top.equalTo(subTitleLb.snp.bottom).offset(10)
+            make.size.equalTo(CGSize(width: 87, height: 35))
+        }
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+
+
+
+
+class JDMineInviteFooterView : BaseView {
+    
+    lazy var inviteBgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#F7FAFE&#F7FAFE")
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 10
+        return v
+    }()
+    
+    lazy var inviteLinkLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.setTextFont(.PFSR, 14)
+        v.text = "邀请链接:https://m.jiduzq.com/rf/T8GB55"
+        return v
+    }()
+    
+    lazy var copyBtn  : UIButton = {
+        let v = UIButton(type: .custom)
+        v.setImage(_image("jdmine_invite_copy&jdmine_invite_copy"), for: .normal)
+        
+        return v
+    }()
+    
+    
+    lazy var inviteBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("立即邀请"), for: .normal)
+        v.setTitleColor(.white, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+        v.addTarget(self, action: #selector(inviteAction), for: .touchUpInside)
+        return v
+    }()
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        self.addSubview(inviteBgView)
+        inviteBgView.snp.makeConstraints { make in
+            make.left.equalTo(self.snp.left).offset(19)
+            make.right.equalTo(self.snp.right).offset(-19)
+            make.top.equalTo(self.snp.top).offset(19)
+            make.height.equalTo(48)
+        }
+        
+        
+        inviteBgView.addSubview(copyBtn)
+        copyBtn.snp.makeConstraints { make in
+            make.centerY.equalTo(inviteBgView)
+            make.right.equalTo(inviteBgView.snp.right).offset(-13)
+            make.size.equalTo(CGSize(width: 18, height: 18))
+        }
+        
+        inviteBgView.addSubview(inviteLinkLb)
+        inviteLinkLb.snp.makeConstraints { make in
+            make.centerY.equalTo(inviteBgView)
+            make.left.equalTo(inviteBgView.snp.left).offset(12)
+            make.right.equalTo(copyBtn.snp.left).offset(-20)
+        }
+        
+        self.addSubview(inviteBtn)
+        inviteBtn.snp.makeConstraints { make in
+            make.left.equalTo(self.snp.left).offset(13)
+            make.right.equalTo(self.snp.right).offset(-13)
+            make.top.equalTo(inviteBgView.snp.bottom).offset(21)
+            make.height.equalTo(44)
+        }
+    }
+    
+    
+    @objc func inviteAction() ->Void {
+        
+        let vc = JDMineInvitePosterViewController()
+        
+        currentVc()?.navigationController?.pushViewController(vc, animated: true)
+        
+    }
+    
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+

+ 284 - 0
Koala/Koala/Modular/JDMine/V/JDMineInviteHeaderView.swift

@@ -0,0 +1,284 @@
+//
+//  JDMineInviteHeaderView.swift
+//  Koala
+//
+//  Created by mac on 2023/10/10.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineInviteHeaderView: BaseView {
+
+    lazy var bgIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_topbg&jdmine_invite_topbg")
+        return v
+    }()
+    
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        
+        v.delegate = self
+        v.dataSource = self
+
+        v.allowsSelection = true
+        v.allowsMultipleSelection = false
+        v.showsVerticalScrollIndicator = false
+        v.showsHorizontalScrollIndicator = false
+        v.estimatedRowHeight = 100
+        
+        v.register(JDMineInviteHeaderCell.self, forCellReuseIdentifier: JDMineInviteHeaderCell.description())
+
+        v.separatorStyle = .none
+        
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 12
+        
+        let bgLayer1 = CALayer()
+        bgLayer1.frame = v.bounds
+        bgLayer1.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1).cgColor
+        v.layer.addSublayer(bgLayer1)
+        // shadowCode
+        v.layer.shadowColor = UIColor(red: 0.88, green: 0.88, blue: 0.88, alpha: 0.5).cgColor
+        v.layer.shadowOffset = CGSize(width: 1, height: 4)
+        v.layer.shadowOpacity = 1
+        v.layer.shadowRadius = 13
+     
+        return v
+        
+    }()
+    
+    
+    var titleAry = [switchLanguage("邀请好友注册"), switchLanguage("好友入金"),switchLanguage("邀请好友注册")]
+    
+    var subTitleAry = [switchLanguage("好友可获得1000 USD 新人大礼包"),
+                       switchLanguage("你可获得100 USD 抵扣券"),
+                       switchLanguage("好友可获得1000 USD 新人大礼包")]
+    
+    var iconAry = ["jdmine_invite_0", "jdmine_invite_1", "jdmine_invite_2"]
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        self.addSubview(bgIv)
+        bgIv.snp.makeConstraints { make in
+            make.top.left.right.equalTo(self)
+            make.height.equalTo(385)
+        }
+        
+        self.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            make.left.equalTo(self.snp.left).offset(19)
+            make.right.equalTo(self.snp.right).offset(-19)
+            make.bottom.equalTo(self.snp.bottom).offset(-10)
+            make.height.equalTo(84*3)
+        }
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+}
+
+
+extension JDMineInviteHeaderView : UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        
+        return titleAry.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+     
+        let cell = tableView.dequeueReusableCell(withIdentifier: JDMineInviteHeaderCell.description()) as! JDMineInviteHeaderCell
+        cell.iconIv.image = UIImage(named: iconAry[indexPath.row])
+        cell.titleLb.text = titleAry[indexPath.row]
+        cell.subTitleLb.text = subTitleAry[indexPath.row]
+        
+        if indexPath.row == 0 {
+            
+            cell.topLineIv.isHidden = true
+            
+        } else if indexPath.row == 2 {
+            
+            cell.bottomLineIv.isHidden = true
+        }
+        
+        return cell
+        
+    }
+
+}
+
+
+
+
+extension JDMineInviteHeaderView : UITableViewDelegate {
+    
+ 
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        
+        return 84
+    
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.deselectRow(at: indexPath, animated: true)
+        
+      
+    }
+}
+
+class JDMineInviteHeaderCell: BaseTableViewCell {
+  
+    lazy var pointView : UIView = {
+        
+        let v = UIView()
+        v.backgroundColor = MainBackGroundColor
+        
+        v.layer.masksToBounds  = true
+        v.layer.cornerRadius = 4.5
+        
+        return v
+        
+    }()
+    
+    lazy var topLineIv : JXDashLineView = {
+        let v = JXDashLineView(frame: CGRect(x: 0, y: 0, width: 1.4, height: 45), lineLength: 4, lineSpacing: 3, lineColor: _color("#E3E3E3&#E3E3E3"), lineHeight: 60)
+        
+        return v
+    }()
+    
+    lazy var bottomLineIv : JXDashLineView = {
+        let v = JXDashLineView(frame: CGRect(x: 0, y:0, width: 1.4, height: 45), lineLength: 4, lineSpacing: 3, lineColor: _color("#E3E3E3&#E3E3E3"), lineHeight: 60)
+        
+        return v
+    }()
+    
+    lazy var  iconIv : UIImageView = {
+        
+        let v = UIImageView()
+        
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 32
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.setTextFont(.PFSR, 16)
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.numberOfLines = 2
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView .addSubview(pointView)
+        pointView.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(27)
+            make.size.equalTo(CGSize(width: 9, height: 9))
+        }
+        
+        contentView.addSubview(topLineIv)
+        topLineIv.snp.makeConstraints { make in
+            make.top.equalTo(contentView.snp.top)
+            make.bottom.equalTo(pointView.snp.top).offset(-2)
+            make.centerX.equalTo(pointView)
+            make.width.equalTo(1)
+        }
+        
+        contentView.addSubview(bottomLineIv)
+        bottomLineIv.snp.makeConstraints { make in
+            make.bottom.equalTo(contentView.snp.bottom)
+            make.top.equalTo(pointView.snp.bottom).offset(2)
+            make.centerX.equalTo(pointView)
+            make.width.equalTo(1)
+        }
+        
+        
+        contentView.addSubview(iconIv)
+        iconIv.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(pointView.snp.right).offset(22)
+            make.size.equalTo(CGSize(width: 62, height: 51))
+            make.top.equalTo(contentView.snp.top).offset(18)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-18)
+        }
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.left.equalTo(iconIv.snp.right).offset(13)
+            make.top.equalTo(iconIv.snp.top).offset(4)
+            make.right.equalTo(contentView.snp.right).offset(-18)
+        }
+        
+        contentView.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(titleLb.snp.left)
+            make.right.equalTo(contentView.snp.right).offset(-18)
+            make.top.equalTo(titleLb.snp.bottom).offset(8)
+        }
+        
+    }
+    
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+
+
+class JXDashLineView: UIView {
+    private var lineLength: CGFloat = 1
+    private var lineSpacing: CGFloat = 5
+    private var lineColor: UIColor!
+    private var lineHeight: CGFloat!
+
+    init(frame: CGRect, lineLength: CGFloat = 1, lineSpacing: CGFloat = 5, lineColor: UIColor = .black, lineHeight: CGFloat = 50) {
+        super.init(frame: frame)
+        backgroundColor = UIColor.white
+        self.lineLength = lineLength
+        self.lineSpacing = lineSpacing
+        self.lineColor = lineColor
+        self.lineHeight = frame.size.height
+    }
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    override func draw(_ rect: CGRect) {
+        // Drawing code
+        let context = UIGraphicsGetCurrentContext()
+        context?.beginPath()
+        context?.setLineWidth(1.4)
+        context?.setStrokeColor(lineColor.cgColor)
+        let lengths = [lineLength, lineSpacing]
+        context?.setLineDash(phase: 0, lengths: lengths)
+        context?.move(to: CGPoint(x: 0, y: 0))
+        context?.addLine(to: CGPoint(x: 0, y: lineHeight))
+        context?.strokePath()
+        context?.closePath()
+    }
+}
+

+ 219 - 0
Koala/Koala/Modular/JDMine/V/JDMineInviteSecionHeaderView.swift

@@ -0,0 +1,219 @@
+//
+//  JDMineInviteSecionHeaderView.swift
+//  Koala
+//
+//  Created by mac on 2023/10/10.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+
+import UIKit
+
+class JDMineInviteSecionHeaderView: BaseView {
+    
+    lazy var lineView : UIView = {
+        let v = UIView()
+        v.backgroundColor = MainBackGroundColor
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = .black
+        v.setTextFont(.PFSM, 15)
+        v.text = switchLanguage("邀请记录")
+        return v
+    }()
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#F7FAFE&#F7FAFE")
+        return v
+    }()
+    
+    lazy var nameLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("好友名称")
+        return v
+    }()
+    
+    lazy var timeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("时间")
+        return v
+    }()
+    
+    lazy var statusLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("状态")
+        return v
+    }()
+    
+    
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        self.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.left.equalTo(self.snp.left).offset(19)
+            make.top.equalTo(self.snp.top).offset(11)
+            make.size.equalTo(CGSize(width: 4, height: 16))
+        }
+        
+        self.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerY.equalTo(lineView)
+            make.left.equalTo(lineView.snp.right).offset(4)
+        }
+        
+        self.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.top.equalTo(lineView.snp.bottom).offset(14)
+            make.left.equalTo(self.snp.left).offset(19)
+            make.right.equalTo(self.snp.right).offset(-19)
+            make.height.equalTo(30)
+        }
+        
+        self.addSubview(nameLb)
+        nameLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(34)
+        }
+        
+        self.addSubview(timeLb)
+        timeLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(121)
+        }
+        
+        self.addSubview(statusLb)
+        statusLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(SCREEN_WIDTH-90)
+        }
+        
+        
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+
+class JDMineRewardSecionHeaderView: BaseView {
+    
+    lazy var lineView : UIView = {
+        let v = UIView()
+        v.backgroundColor = MainBackGroundColor
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = .black
+        v.setTextFont(.PFSM, 15)
+        v.text = switchLanguage("奖励记录")
+        return v
+    }()
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#F7FAFE&#F7FAFE")
+        return v
+    }()
+    
+   
+    
+    lazy var timeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("时间")
+        return v
+    }()
+    
+    lazy var typeLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("奖励类型")
+        return v
+    }()
+    
+    
+    lazy var statusLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.text = switchLanguage("状态")
+        return v
+    }()
+    
+    
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        self.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.left.equalTo(self.snp.left).offset(19)
+            make.top.equalTo(self.snp.top).offset(11)
+            make.size.equalTo(CGSize(width: 4, height: 16))
+        }
+        
+        self.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerY.equalTo(lineView)
+            make.left.equalTo(lineView.snp.right).offset(4)
+        }
+        
+        self.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.top.equalTo(lineView.snp.bottom).offset(14)
+            make.left.equalTo(self.snp.left).offset(19)
+            make.right.equalTo(self.snp.right).offset(-19)
+            make.height.equalTo(30)
+        }
+        
+        
+        self.addSubview(timeLb)
+        timeLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(34)
+            
+        }
+        
+        
+        self.addSubview(typeLb)
+        typeLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(168)
+        }
+        
+        
+        self.addSubview(statusLb)
+        statusLb.snp.makeConstraints { make in
+            make.centerY.equalTo(bgView)
+            make.left.equalTo(self.snp.left).offset(SCREEN_WIDTH-90)
+        }
+        
+        
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}

+ 331 - 0
Koala/Koala/Modular/JDMine/V/JDMineJoinUsCell.swift

@@ -0,0 +1,331 @@
+//
+//  JDMineJoinUsCell.swift
+//  Koala
+//
+//  Created by mac on 2023/10/9.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineJoinUsCell: BaseTableViewCell {
+            
+    
+    lazy var  iconIv : UIImageView = {
+        
+        let v = UIImageView()
+        
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 32
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.setTextFont(.PFSR, 16)
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 12)
+        v.numberOfLines = 2
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(iconIv)
+        iconIv.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(15)
+            make.size.equalTo(CGSize(width: 64, height: 64))
+            make.top.equalTo(contentView.snp.top).offset(18)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-18)
+        }
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.left.equalTo(iconIv.snp.right).offset(13)
+            make.top.equalTo(iconIv.snp.top).offset(4)
+            make.right.equalTo(contentView.snp.right).offset(-18)
+        }
+        
+        contentView.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(titleLb.snp.left)
+            make.right.equalTo(contentView.snp.right).offset(-18)
+            make.top.equalTo(titleLb.snp.bottom).offset(8)
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+    override var frame:CGRect{
+        didSet {
+            
+            var newFrame = frame
+            newFrame.origin.x += 14
+            newFrame.size.width -= 28
+            newFrame.origin.y += 6
+            newFrame.size.height -= 12
+            super.frame = newFrame
+            
+            contentView.layer.masksToBounds = true
+            contentView.layer.cornerRadius = 10
+            contentView.layer.borderColor = UIColor.pg_color(withHexString: "EBEBEB").cgColor
+            contentView.layer.borderWidth = 1
+            
+        }
+    }
+    
+}
+
+class JDMineJoinUsMidCell: BaseTableViewCell {
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.font = .boldSystemFont(ofSize: 28)
+        v.textAlignment = .center
+        v.text = switchLanguage("业内最高返佣")
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .center
+        v.numberOfLines = 0
+        v.text = switchLanguage("跟随 极度小二 每月提升被动收入,如果您是内容创作者、社区长、社媒博主等意见领袖,极度将帮您实现影响力变现。轻松赚取高额返佣,增加被动收益!")
+        return v
+    }()
+    
+    lazy var nowBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("立即赚钱"), for: .normal)
+        v.setTitleColor(.white, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+//        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    lazy var title2Lb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.font = .boldSystemFont(ofSize: 18)
+        v.textAlignment = .center
+        v.text = switchLanguage("为什么加入 极度 代理商计划?")
+        return v
+    }()
+    
+    lazy var subTitle2Lb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .center
+        v.numberOfLines = 0
+        v.text = switchLanguage("极度为代理商提供业内最高返佣,并打造安全、透明、便捷的交易环境")
+        return v
+    }()
+    
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(contentView.snp.top).offset(28)
+        }
+        
+        contentView.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.top.equalTo(titleLb.snp.bottom).offset(18)
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+        }
+        
+        contentView.addSubview(nowBtn)
+        nowBtn.snp.makeConstraints { make in
+            make.top.equalTo(subTitleLb.snp.bottom).offset(29)
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.height.equalTo(44)
+        }
+        
+        
+        contentView.addSubview(title2Lb)
+        title2Lb.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(nowBtn.snp.bottom).offset(33)
+            
+        }
+        
+        contentView.addSubview(subTitle2Lb)
+        subTitle2Lb.snp.makeConstraints { make in
+            make.top.equalTo(title2Lb.snp.bottom).offset(18)
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-11)
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+class JDMineJoinUsDelegateCell: BaseTableViewCell {
+    
+    
+    lazy var  bgIv : UIImageView = {
+        
+        let v = UIImageView()
+        v.image = _image("jdmine_join_delegateBg&jdmine_join_delegateBg")
+        return v
+    }()
+    
+    lazy var  iconIv : UIImageView = {
+        
+        let v = UIImageView()
+        v.image = _image("Login_Logo&Login_Logo")
+        return v
+    }()
+    
+    lazy var  midIconIv : UIImageView = {
+        
+        let v = UIImageView()
+        v.image = _image("jdmine_join_delegateIcon&jdmine_join_delegateIcon")
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#000000&#000000")
+        v.font = .boldSystemFont(ofSize: 28)
+        v.textAlignment = .center
+        v.text = switchLanguage("业内最高返佣")
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .center
+        v.numberOfLines = 0
+        v.text = switchLanguage("高达50%现货和合约交易手续费返佣")
+        return v
+    }()
+    
+    lazy var nowBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("成为代理商"), for: .normal)
+        v.setImage(_image("jdmine_join_manager&jdmine_join_manager"), for: .normal)
+        v.backgroundColor = .white
+        v.setTitleColor(MainBackGroundColor, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 6
+        v.layer.borderColor = MainBackGroundColor.cgColor
+        v.layer.borderWidth = 1
+        v.layoutButtonEdgeInsetStyle(type: .left, space: 6)
+//        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(bgIv)
+        bgIv.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.top.equalTo(contentView)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-8)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.height.equalTo(332)
+        }
+        
+        contentView.addSubview(iconIv)
+        iconIv.snp.makeConstraints { make in
+            make.top.equalTo(bgIv.snp.top).offset(15)
+            make.left.equalTo(bgIv.snp.left).offset(14)
+            make.size.equalTo(CGSize(width: 81, height: 18))
+        }
+        
+        contentView.addSubview(midIconIv)
+        midIconIv.snp.makeConstraints { make in
+            make.top.equalTo(bgIv.snp.top).offset(21)
+            make.centerX.equalTo(contentView)
+            make.size.equalTo(CGSize(width: 207, height: 137))
+        }
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(midIconIv.snp.bottom).offset(19)
+        }
+        
+        contentView.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(titleLb.snp.bottom).offset(13)
+        }
+        
+        contentView.addSubview(nowBtn)
+        nowBtn.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(subTitleLb.snp.bottom).offset(19)
+            make.size.equalTo(CGSize(width: 153, height: 44))
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+}
+
+
+
+class JDMineJoinUsHeaderView: BaseView {
+    
+    lazy var bgIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_join_topbg&jdmine_join_topbg")
+        return v
+    }()
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        self.addSubview(bgIv)
+        bgIv.snp.makeConstraints { make in
+            make.edges.equalTo(self)
+        }
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+}

+ 125 - 0
Koala/Koala/Modular/JDMine/V/JDMineUserInfoCell.swift

@@ -0,0 +1,125 @@
+//
+//  JDMineUserInfoCell.swift
+//  Koala
+//
+//  Created by mac on 2023/10/11.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineUserInfoCell: BaseTableViewCell {
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.setTextFont(.PFSR, 16)
+        v.textColor = _color("#333333&#333333")
+        
+        return v
+    }()
+    
+    lazy var valueLb : UILabel = {
+        let v = UILabel()
+        v.setTextFont(.PFSR, 14)
+        v.textColor = _color("#A1A1A1&#A1A1A1")
+        v.text = "2774851"
+        return v
+    }()
+    
+    lazy var lineView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#EDF2F7&#EDF2F7")
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(18)
+        }
+        
+        contentView.addSubview(valueLb)
+        valueLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.right.equalTo(contentView.snp.right).offset(-10)
+        }
+        
+        contentView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.bottom.equalTo(contentView.snp.bottom)
+            make.left.equalTo(contentView.snp.left).offset(18)
+            make.right.equalTo(contentView.snp.right).offset(-0)
+            make.height.equalTo(1)
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+    
+}
+
+
+class JDMineUserInfoAvatarCell: BaseTableViewCell {
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.setTextFont(.PFSR, 16)
+        v.textColor = _color("#333333&#333333")
+        
+        return v
+    }()
+    
+    lazy var avatarIv : UIImageView = {
+        let v = UIImageView()
+        
+        
+        return v
+    }()
+    
+    lazy var lineView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#EDF2F7&#EDF2F7")
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.left.equalTo(contentView.snp.left).offset(18)
+        }
+        
+        contentView.addSubview(avatarIv)
+        avatarIv.snp.makeConstraints { make in
+            make.centerY.equalTo(contentView)
+            make.right.equalTo(contentView.snp.right).offset(-10)
+            make.size.equalTo(CGSize(width: 30, height: 30))
+        }
+        
+        contentView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.bottom.equalTo(contentView.snp.bottom)
+            make.left.equalTo(contentView.snp.left).offset(18)
+            make.right.equalTo(contentView.snp.right).offset(-0)
+            make.height.equalTo(1)
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+    
+}

+ 243 - 0
Koala/Koala/Modular/JDMine/V/JDMineVipCell.swift

@@ -0,0 +1,243 @@
+//
+//  JDMineVipCell.swift
+//  Koala
+//
+//  Created by mac on 2023/10/10.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineVipCell: BaseTableViewCell {
+    
+    lazy var avatarIv : UIImageView = {
+        let v = UIImageView()
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 21.5
+        v.image = Base_Avtor_Image
+        return v
+    }()
+    
+    lazy var nameLb : UILabel = {
+        let v = UILabel()
+        v.textColor = .black
+        v.setTextFont(.PFSL, 20)
+        v.text = "极度股神"
+        return v
+    }()
+    
+    
+    lazy var subTipLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#737373&#737373")
+        v.setTextFont(.PFSR, 14)
+        v.text = "专注技术面"
+        return v
+    }()
+    
+    lazy var vipIconIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_vip_off&jdmine_vip_off")
+        return v
+    }()
+    
+    lazy var vipCardBgView : UIImageView = {
+        
+        let v = UIImageView()
+        v.image = _image("jdmine_vip_cardbg&jdmine_vip_cardbg")
+        return v
+        
+    }()
+    
+    
+    lazy var vipTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#FBF0CF&#FBF0CF")
+        v.setTextFont(.PFSR, 23)
+        v.text = switchLanguage("极度会员卡")
+        return v
+    }()
+    
+    lazy var vipSubTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#FBF0CF&#FBF0CF")
+        v.setTextFont(.PFSR, 14)
+        v.text = switchLanguage("尊享五大特权")
+        return v
+    }()
+    
+    lazy var vipLevelIv : UIImageView = {
+        let v = UIImageView()
+        
+        v.image = _image("jdmine_vip_icon&jdmine_vip_icon")
+        return v
+    }()
+    
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(avatarIv)
+        avatarIv.snp.makeConstraints { make in
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.top.equalTo(contentView.snp.top).offset(22)
+            make.size.equalTo(CGSize(width: 43, height: 43))
+        }
+        
+        contentView.addSubview(nameLb)
+        nameLb.snp.makeConstraints { make in
+            make.left.equalTo(avatarIv.snp.right).offset(7)
+            make.top.equalTo(avatarIv.snp.top).offset(-2)
+        }
+        
+        contentView.addSubview(vipIconIv)
+        vipIconIv.snp.makeConstraints { make in
+            make.centerY.equalTo(nameLb)
+            make.left.equalTo(nameLb.snp.right).offset(7)
+            make.size.equalTo(CGSize(width: 52, height: 21))
+        }
+        
+        contentView.addSubview(subTipLb)
+        subTipLb.snp.makeConstraints { make in
+            make.left.equalTo(nameLb.snp.left)
+            make.bottom.equalTo(avatarIv.snp.bottom)
+        }
+        
+        
+        contentView.addSubview(vipCardBgView)
+        vipCardBgView.snp.makeConstraints { make in
+            make.top.equalTo(avatarIv.snp.bottom).offset(0)
+            make.left.equalTo(contentView.snp.left).offset(0)
+            make.right.equalTo(contentView.snp.right).offset(0)
+            make.height.equalTo(140)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-10)
+        }
+        
+        contentView.addSubview(vipTitleLb)
+        vipTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(vipCardBgView.snp.left).offset(33)
+            make.top.equalTo(vipCardBgView.snp.top).offset(49)
+        }
+        
+        contentView.addSubview(vipSubTitleLb)
+        vipSubTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(vipTitleLb.snp.left)
+            make.top.equalTo(vipTitleLb.snp.bottom).offset(12)
+        }
+        
+        contentView.addSubview(vipLevelIv)
+        vipLevelIv.snp.makeConstraints { make in
+            make.centerY.equalTo(vipCardBgView)
+            make.right.equalTo(vipCardBgView.snp.right).offset(-29)
+            make.size.equalTo(CGSize(width: 76, height: 59))
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+}
+
+
+class JDMineVipMidCell: BaseTableViewCell {
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#F7FAFE&#F7FAFE")
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius  = 12
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#474747&#474747")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .left
+        v.text = switchLanguage("满足以下条件之一,可直接成为极度VIP会员:")
+        return v
+    }()
+    
+    lazy var subTitleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#888888&#888888")
+        v.setTextFont(.PFSR, 13)
+        v.textAlignment = .left
+        v.numberOfLines = 0
+        v.text = switchLanguage("1、存款达 1 万 USD 或等价货币;\n2、交易额达 10万 USD 或等价货币")
+        return v
+    }()
+    
+    lazy var nowBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = .white
+        v.setTitle(switchLanguage("立即存款 免费获取"), for: .normal)
+        v.setTitleColor(MainBackGroundColor, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+        v.layer.borderWidth = 1
+        v.layer.borderColor = MainBackGroundColor.cgColor
+//        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    lazy var tipLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#CACACA&#CACACA")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .center
+        v.text = switchLanguage("—— VIP尊享 ——")
+        return v
+    }()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.top.equalTo(contentView.snp.top).offset(6)
+            make.left.equalTo(contentView.snp.left).offset(19)
+            make.right.equalTo(contentView.snp.right).offset(-19)
+            make.height.equalTo(169)
+        }
+        
+        bgView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.left.equalTo(bgView.snp.left).offset(17)
+            make.top.equalTo(bgView.snp.top).offset(17)
+        }
+        
+        bgView.addSubview(subTitleLb)
+        subTitleLb.snp.makeConstraints { make in
+            make.left.equalTo(titleLb.snp.left)
+            make.top.equalTo(titleLb.snp.bottom).offset(9)
+        }
+        bgView.addSubview(nowBtn)
+        nowBtn.snp.makeConstraints { make in
+            make.top.equalTo(subTitleLb.snp.bottom).offset(26)
+            make.left.equalTo(bgView.snp.left).offset(17)
+            make.right.equalTo(bgView.snp.right).offset(-17)
+            make.height.equalTo(44)
+        }
+        
+        contentView.addSubview(tipLb)
+        tipLb.snp.makeConstraints { make in
+            make.centerX.equalTo(contentView)
+            make.top.equalTo(bgView.snp.bottom).offset(20)
+            make.bottom.equalTo(contentView.snp.bottom).offset(-8)
+        }
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+    
+}

+ 247 - 0
Koala/Koala/Modular/JDMine/V/JDMineVipOpenMindCell.swift

@@ -0,0 +1,247 @@
+//
+//  JDMineVipOpenMindCell.swift
+//  Koala
+//
+//  Created by mac on 2023/10/10.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineVipOpenMindCell: BaseTableViewCell {
+    
+    
+    lazy var collectionView : UICollectionView = {
+        
+        let layout = UICollectionViewFlowLayout.init()
+        
+//        let itemWH = (Int(UIScreen.main.bounds.width) - 12) / 2
+        let itemW = (SCREEN_WIDTH - 38 - 18)/4
+        
+        layout.minimumInteritemSpacing = 6
+        layout.itemSize = CGSizeMake(CGFloat(itemW), 89)
+        layout.sectionInset = UIEdgeInsets.init(top: 0, left: 19, bottom: 0, right: 19)
+        
+        
+        let v = UICollectionView(frame: .zero, collectionViewLayout: layout)
+        v.backgroundColor = .white
+        v.isScrollEnabled = false
+        v.showsHorizontalScrollIndicator = false
+        v.showsVerticalScrollIndicator = false
+        v.delegate = self
+        v.dataSource = self
+        v.register(JDMineVipItemCell.classForCoder(), forCellWithReuseIdentifier: JDMineVipItemCell.description())
+        return v
+    }()
+    
+    lazy var bottomView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        
+        return v
+    }()
+    
+    lazy var amountLb : UILabel = {
+        let v = UILabel()
+        v.textColor = MainBackGroundColor
+        v.setTextFont(.PFSR, 28)
+        v.text = "12 USD"
+        return v
+    }()
+    
+    lazy var balanceLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 14)
+        v.text = "USD钱包余额 1888.50 USD"
+        return v
+    }()
+    
+    lazy var onBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("立即开通"), for: .normal)
+        v.setTitleColor(.white, for: .normal)
+        v.titleLabel?.setTextFont(.PFSR, 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+//        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    lazy var lineView : UIView = {
+        let v = UIView()
+        v.backgroundColor = _color("#E3E3E3&#E3E3E3")
+        return v
+    }()
+    
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        contentView.addSubview(collectionView)
+        collectionView.snp.makeConstraints { make in
+            make.top.equalTo(contentView.snp.top).offset(5)
+            make.left.right.equalTo(contentView)
+            make.height.equalTo(100)
+//            make.bottom.equalTo(contentView)
+        }
+        
+        contentView.addSubview(bottomView)
+        bottomView.snp.makeConstraints { make in
+            make.left.right.bottom.equalTo(contentView)
+            make.top.equalTo(collectionView.snp.bottom).offset(5)
+            make.height.equalTo(90)
+        }
+        bottomView.addSubview(lineView)
+        lineView.snp.makeConstraints { make in
+            make.top.left.right.equalTo(bottomView)
+            make.height.equalTo(1)
+        }
+        
+        bottomView.addSubview(amountLb)
+        amountLb.snp.makeConstraints { make in
+            make.left.equalTo(bottomView.snp.left).offset(22)
+            make.top.equalTo(bottomView.snp.top).offset(18)
+        }
+        
+        bottomView.addSubview(balanceLb)
+        balanceLb.snp.makeConstraints { make in
+            make.left.equalTo(amountLb.snp.left)
+            make.top.equalTo(amountLb.snp.bottom).offset(7)
+        }
+        bottomView.addSubview(onBtn)
+        onBtn.snp.makeConstraints { make in
+            make.right.equalTo(bottomView.snp.right).offset(-18)
+            make.top.equalTo(amountLb.snp.top)
+            make.size.equalTo(CGSize(width: 102, height: 44))
+        }
+        
+        
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+
+}
+
+extension JDMineVipOpenMindCell : UICollectionViewDataSource{
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+//        return titleAry.count
+        return 4
+    }
+    
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        
+        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: JDMineVipItemCell.description(), for: indexPath) as! JDMineVipItemCell
+//        cell.backgroundColor = MainBackGroundColor
+//        cell.titleLb.text = titleAry[indexPath.item]
+//        cell.iconIv.image = UIImage(named: iconAry[indexPath.item])
+
+        return cell
+    }
+    
+    
+    
+}
+
+extension JDMineVipOpenMindCell : UICollectionViewDelegate{
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+    
+    }
+}
+
+
+class JDMineVipItemCell: UICollectionViewCell {
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        v.layer.masksToBounds = true
+        v.layer.borderColor = _color("#EEEEEE&#EEEEEE").cgColor
+        v.layer.borderWidth = 1
+        v.layer.cornerRadius = 10
+        return v
+    }()
+    
+    lazy var monthLb : UILabel = {
+        let v = UILabel()
+        v.backgroundColor = _color("#FAFAFA&#FAFAFA")
+        v.textColor = _color("#A3A3A3&#A3A3A3")
+        v.setTextFont(.PFSR, 10)
+        v.text = "1个月"
+        v.textAlignment = .center
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 10
+        v.layer.borderColor = _color("#E4E4E4&#E4E4E4").cgColor
+        v.layer.borderWidth = 0.6
+        return v
+        
+    }()
+    
+    lazy var priceLb : UILabel = {
+        
+        let v = UILabel()
+        
+        v.setTextFont(.PFSR, 18)
+        v.textColor = MainBackGroundColor
+
+        v.textAlignment = .center
+        v.text = "12 USD"
+        return v
+        
+    }()
+    
+    
+    lazy var originalPriceLb : UILabel = {
+        
+        let v = UILabel()
+        
+        v.setTextFont(.PFSR, 11)
+        v.textColor = _color("#D0D0D0&#D0D0D0")
+        v.text = "39 USD"
+
+        v.textAlignment = .center
+        
+        return v
+        
+    }()
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        
+        contentView.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.edges.equalTo(contentView)
+        }
+        
+        bgView.addSubview(monthLb)
+        monthLb.snp.makeConstraints { make in
+            make.top.right.equalTo(bgView)
+            make.size.equalTo(CGSize(width: 37, height: 20))
+        }
+        
+        bgView.addSubview(priceLb)
+        priceLb.snp.makeConstraints { make in
+            make.top.equalTo(monthLb.snp.bottom).offset(6)
+            make.centerX.equalTo(bgView)
+        }
+        
+        bgView.addSubview(originalPriceLb)
+        originalPriceLb.snp.makeConstraints { make in
+            make.centerX.equalTo(bgView)
+            make.top.equalTo(priceLb.snp.bottom).offset(12)
+        }
+        
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+}

+ 126 - 0
Koala/Koala/Modular/JDMine/VC/JDMineInvitePosterViewController.swift

@@ -0,0 +1,126 @@
+//
+//  JDMineInvitePosterViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/11.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineInvitePosterViewController: BaseViewController {
+    
+    lazy var bgView : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_poster_bg&jdmine_invite_poster_bg")
+        
+        return v
+    }()
+    
+    lazy var logoIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_poster_logo&jdmine_invite_poster_logo")
+        return v
+    }()
+    
+    lazy var titleLb : UILabel = {
+        let v = UILabel()
+        v.textColor = .white
+        v.setTextFont(.PFSR, 30)
+        v.textAlignment = .center
+        v.numberOfLines = 0
+        v.text = switchLanguage("港股/美股/A股/黄金\n一站式投资平台\n尊享50倍最高免息配资")
+        return v
+    }()
+    
+    lazy var midIconIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_poster_icon&jdmine_invite_poster_icon")
+        return v
+    }()
+    
+    lazy var qrView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 12
+        
+        return v
+    }()
+    
+    lazy var qrLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#030303&#030303")
+        v.setTextFont( .PFSR, 18)
+        v.text = switchLanguage("邀请码:U1AF1542")
+        return v
+    }()
+    
+    lazy var qrIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_poster_qrbg&jdmine_invite_poster_qrbg")
+        
+        return v
+    }()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.myNavigationBar.title_Label.text = ""
+        self.myNavigationBar.title_Label.textColor = .white
+        self.myNavigationBar.left_Button.setImage(_image("Base_White_Back&Base_White_Back"), for: .normal)
+        self.myNavigationBar.backgroundColor = .clear
+        self.myNavigationBar.back_ImageView.isHidden = true
+        self.myNavigationBar.left_ImageView.isHidden = true
+        self.myNavigationBar.left_SuperView.backgroundColor = .clear
+        
+        self.view.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.edges.equalTo(self.view)
+        }
+        
+        bgView.addSubview(logoIv)
+        logoIv.snp.makeConstraints { make in
+            make.top.equalTo(bgView.snp.top).offset(StatusBarHeight + hxip_navigationBarHeight)
+            make.left.equalTo(bgView.snp.left).offset(27)
+            make.size.equalTo(CGSizeMake(117, 26))
+        }
+        
+        bgView.addSubview(titleLb)
+        titleLb.snp.makeConstraints { make in
+            make.top.equalTo(logoIv.snp.bottom).offset(82)
+            make.centerX.equalTo(bgView)
+        }
+        
+        bgView.addSubview(midIconIv)
+        midIconIv.snp.makeConstraints { make in
+            make.centerX.equalTo(bgView)
+            make.top.equalTo(titleLb.snp.bottom).offset(50)
+            make.size.equalTo(CGSize(width: 287, height: 279))
+        }
+        
+        bgView.addSubview(qrView)
+        qrView.snp.makeConstraints { make in
+            make.left.equalTo(bgView.snp.left).offset(25)
+            make.right.equalTo(bgView.snp.right).offset(-25)
+            make.bottom.equalTo(bgView.snp.bottom).offset(-25)
+            make.height.equalTo(106)
+        }
+        
+        qrView.addSubview(qrLb)
+        qrLb.snp.makeConstraints { make in
+            make.centerY.equalTo(qrView)
+            make.left.equalTo(qrView.snp.left).offset(19)
+        }
+        
+        qrView.addSubview(qrIv)
+        qrIv.snp.makeConstraints { make in
+            make.centerY.equalTo(qrView)
+            make.right.equalTo(qrView.snp.right).offset(12)
+            make.size.equalTo(CGSize(width: 83, height: 83))
+        }
+        
+        
+        self.view.bringSubviewToFront(self.myNavigationBar)
+    }
+}

+ 153 - 0
Koala/Koala/Modular/JDMine/VC/JDMineInviteViewController.swift

@@ -12,10 +12,163 @@ import UIKit
 class JDMineInviteViewController: BaseViewController {
     
     
+    lazy var headerView : JDMineInviteHeaderView = {
+        let v = JDMineInviteHeaderView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 623))
+        
+        return v
+    }()
+    
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        
+        v.delegate = self
+        v.dataSource = self
+
+        v.tableHeaderView = headerView
+        v.tableFooterView = footerView
+        v.allowsSelection = true
+        v.allowsMultipleSelection = false
+        v.showsVerticalScrollIndicator = false
+        v.showsHorizontalScrollIndicator = false
+        v.estimatedRowHeight = 100
+        v.estimatedSectionHeaderHeight = 80
+        v.register(JDMineInviteCouponCell.self, forCellReuseIdentifier: JDMineInviteCouponCell.description())
+        v.register(JDMineInviteRecordCell.self, forCellReuseIdentifier: JDMineInviteRecordCell.description())
+        v.register(JDMineRewardRecordCell.self, forCellReuseIdentifier: JDMineRewardRecordCell.description())
+        v.separatorStyle = .none
+        return v
+        
+    }()
+    
+    lazy var footerView : JDMineInviteFooterView = {
+        
+        let v = JDMineInviteFooterView(frame: CGRectMake(0, 0, SCREEN_WIDTH, 156))
+        
+        return v
+    }()
+    
+    
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         self.myNavigationBar.title_Label.text = "邀请好友"
+        self.myNavigationBar.title_Label.textColor = .white
+        self.myNavigationBar.left_Button.setImage(_image("Base_White_Back&Base_White_Back"), for: .normal)
+        self.myNavigationBar.backgroundColor = .clear
+        self.myNavigationBar.back_ImageView.isHidden = true
+        self.myNavigationBar.left_ImageView.isHidden = true
+        self.myNavigationBar.left_SuperView.backgroundColor = .clear
+
+        self.view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            
+            make.top.equalTo(self.view.snp.top).offset(-StatusBarHeight)
+            make.left.right.bottom.equalTo(self.view)
+
+        }
+        
+        self.view.bringSubviewToFront(self.myNavigationBar)
+        
+    }
+
+}
+
+extension JDMineInviteViewController {
+    
+}
+
+extension JDMineInviteViewController : UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 3
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         
+        if section == 0 {
+            return 1
+        }else if section == 1 {
+            return 3
+        }else {
+            
+           return 3
+        }
     }
     
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+     
+        if indexPath.section == 0 {
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineInviteCouponCell.description()) as! JDMineInviteCouponCell
+             
+            return cell
+        } else if  indexPath.section == 1 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineInviteRecordCell.description()) as! JDMineInviteRecordCell
+
+            return cell
+            
+        } else {
+            
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineRewardRecordCell.description()) as! JDMineRewardRecordCell
+
+            return cell
+        }
+    }
+
+}
+
+
+
+
+extension JDMineInviteViewController : UITableViewDelegate {
+    
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        
+        if section == 0{
+            
+            return UIView()
+        } else if section == 1{
+            
+            let v = JDMineInviteSecionHeaderView(frame: CGRectMake(0, 0, SCREEN_WIDTH, 80))
+            
+            return v
+        } else {
+            
+            let v = JDMineRewardSecionHeaderView(frame: CGRectMake(0, 0, SCREEN_WIDTH, 80))
+            
+            return v
+        }
+    
+    }
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        
+        if section == 0 {
+            return 0.0001
+        }
+        
+        return 80
+        
+    }
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        
+        if indexPath.section == 0  {
+            
+            return -1
+            
+        } else {
+            return 36
+        }
+    
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.deselectRow(at: indexPath, animated: true)
+        
+      
+    }
 }
+

+ 187 - 0
Koala/Koala/Modular/JDMine/VC/JDMineJoinUsViewController.swift

@@ -11,11 +11,198 @@ import UIKit
 
 class JDMineJoinUsViewController: BaseViewController {
     
+    lazy var headerView : JDMineJoinUsHeaderView = {
+        let v = JDMineJoinUsHeaderView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 364))
+        
+        return v
+    }()
+    
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        
+        v.delegate = self
+        v.dataSource = self
+
+        
+//        if #available(iOS 15.0, *) {
+//            v.sectionHeaderTopPadding  = 0
+//        } else {
+//            // Fallback on earlier versions
+//        }
+        v.tableHeaderView = headerView
+        v.tableFooterView = footerView
+        v.allowsSelection = true
+        v.allowsMultipleSelection = false
+        v.showsVerticalScrollIndicator = false
+        v.showsHorizontalScrollIndicator = false
+        v.estimatedRowHeight = 100
+        v.register(JDMineJoinUsCell.self, forCellReuseIdentifier: JDMineJoinUsCell.description())
+        v.register(JDMineJoinUsMidCell.self, forCellReuseIdentifier: JDMineJoinUsMidCell.description())
+        v.register(JDMineJoinUsDelegateCell.self, forCellReuseIdentifier: JDMineJoinUsDelegateCell.description())
+        v.separatorStyle = .none
+        return v
+        
+    }()
+    
+    lazy var footerView : UIView = {
+        
+        let v = UIView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 60))
+        v.addSubview(joinUsBtn)
+        joinUsBtn.snp.makeConstraints { make in
+            make.left.equalTo(v.snp.left).offset(17)
+            make.right.equalTo(v.snp.right).offset(-17)
+            make.centerY.equalTo(v)
+            make.height.equalTo(44)
+        }
+        
+        return v
+    }()
+    
+    lazy var joinUsBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setTitle(switchLanguage("立即加入") , for: .normal)
+        v.setTitleColor(.white, for: .normal)
+        v.titleLabel?.font = .systemFont(ofSize: 16)
+        v.layer.masksToBounds = true
+        
+        v.layer.cornerRadius = 6
+        v.addTarget(self, action: #selector(joinUsAction), for: .touchUpInside)
+        return v
+    }()
+    
+    
     
     override func viewDidLoad() {
         super.viewDidLoad()
         self.myNavigationBar.title_Label.text = "加入我们"
+        self.myNavigationBar.title_Label.textColor = .white
+        self.myNavigationBar.left_Button.setImage(_image("Base_White_Back&Base_White_Back"), for: .normal)
+        self.myNavigationBar.backgroundColor = .clear
+        self.myNavigationBar.back_ImageView.isHidden = true
+        self.myNavigationBar.left_ImageView.isHidden = true
+        self.myNavigationBar.left_SuperView.backgroundColor = .clear
+//        self.view.addSubview(joinUsBtn)
+//        joinUsBtn.snp.makeConstraints { make in
+//            make.left.equalTo(self.view.snp.left).offset(17)
+//            make.right.equalTo(self.view.snp.right).offset(-17)
+//            make.bottom.equalTo(self.view.snp.bottom).offset(-34)
+//            make.height.equalTo(44)
+//        }
+        
+        self.view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            
+            make.top.equalTo(self.view.snp.top).offset(-StatusBarHeight)
+            make.left.right.bottom.equalTo(self.view)
+//            make.bottom.equalTo(joinUsBtn.snp.top)
+//            make.left.right.bottom.equalTo(self.view)
+//            make.top.equalTo(self.myNavigationBar.snp.bottom)
+//            make.top.equalTo(self.view.snp.top).offset(-StatusBarHeight)
+        }
+        
+        self.view.bringSubviewToFront(self.myNavigationBar)
+        
+    }
+    
+    var titleAry = [switchLanguage("代理商计划增值服务"), switchLanguage("丰富的线下活动"),switchLanguage("拓展内容支持")]
+    
+    var subTitleAry = [switchLanguage("极度多维度、全方位扶持每一位代理商,帮其提升被动收"),
+                       switchLanguage("极度高层见面会、业内顶级峰会门票、各种体育与娱乐赛事"),
+                       switchLanguage("我们为您提供通俗易懂的创意视频脚本示例让您的分享与众不同您只需要拍摄录制并将其分享给您的粉丝")]
+    
+    var iconAry = ["jdmine_join_0", "jdmine_join_1", "jdmine_join_2"]
+    
+    
+    
+}
+
+extension JDMineJoinUsViewController {
+    
+    @objc func joinUsAction() ->Void {
+        
+        
+    }
+}
+
+extension JDMineJoinUsViewController : UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 3
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         
+        if section == 0 {
+            return 1
+        }else if section == 1 {
+            return 1
+        }else {
+            
+            return titleAry.count
+        }
     }
     
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+     
+        if indexPath.section == 0 {
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineJoinUsMidCell.description()) as! JDMineJoinUsMidCell
+             
+            return cell
+        } else if  indexPath.section == 1 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineJoinUsDelegateCell.description()) as! JDMineJoinUsDelegateCell
+            
+            return cell
+             
+        } else {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineJoinUsCell.description()) as! JDMineJoinUsCell
+            cell.iconIv.image = UIImage(named: iconAry[indexPath.row])
+            cell.titleLb.text = titleAry[indexPath.row]
+            cell.subTitleLb.text = subTitleAry[indexPath.row]
+            
+            return cell
+        }
+    }
+
 }
+
+
+
+
+extension JDMineJoinUsViewController : UITableViewDelegate {
+    
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        
+       
+            return UIView()
+
+    }
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        
+    
+            return 0.00001
+ 
+    }
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        
+        if indexPath.section == 2 {
+            
+            return 120
+        } else {
+            return -1
+        }
+    
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.deselectRow(at: indexPath, animated: true)
+        
+      
+    }
+}
+

+ 149 - 0
Koala/Koala/Modular/JDMine/VC/JDMineModifyGenderViewController.swift

@@ -0,0 +1,149 @@
+//
+//  JDMineModifyGenderViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/12.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineModifyGenderViewController: BaseViewController {
+
+    
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        v.backgroundColor = .white
+        v.delegate = self
+        v.dataSource = self
+        v.separatorStyle = .none
+        v.tableFooterView = UIView()
+        v.register(JDAccountTypeCheckCell.self, forCellReuseIdentifier: JDAccountTypeCheckCell.description())
+//        v.ly_emptyView = emptyView
+        return v
+            
+    }()
+    
+    var selectIndex : Int = 0
+    
+    lazy var typeList : [String] = ["男","女", "保密"]
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.myNavigationBar.title_Label.text = switchLanguage("设置性别")
+ 
+        self.view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            make.top.equalTo(self.myNavigationBar.snp.bottom)
+            make.left.right.bottom.equalTo(self.view)
+        }
+        
+
+        mySwitchLanguage()
+        mySwitchSkin()
+        // Do any additional setup after loading the view.
+    }
+    
+    override func subView() {
+
+        
+    }
+    
+    override func updateViewConstraints() {
+        super.updateViewConstraints()
+       
+    }
+    
+    
+    override func mySwitchLanguage() {
+
+    }
+    
+    override func mySwitchSkin() {
+
+        
+        self.view.backgroundColor = _color("#F6FAFE&#F6FAFE")
+
+      
+        
+    }
+
+
+   
+
+}
+
+extension JDMineModifyGenderViewController {
+    
+
+}
+
+
+extension JDMineModifyGenderViewController : UITableViewDelegate,UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+      
+        return typeList.count
+    }
+    
+    
+    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
+        
+ 
+        
+        return UIView()
+        
+    }
+    
+    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
+        return 0
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return 62
+    
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        
+
+            
+        let cell = tableView.dequeueReusableCell(withIdentifier: JDAccountTypeCheckCell.description()) as! JDAccountTypeCheckCell
+        
+        cell.titleLb.setTextFont(.PFSR, 16)
+        
+        cell.titleLb.text = typeList[indexPath.row]
+        
+        if indexPath.row == selectIndex {
+            cell.checkIv.image = UIImage(named: "jd_check")
+        }else{
+            cell.checkIv.image = UIImage(named: "jd_uncheck")
+        }
+        
+      
+        return cell
+
+    }
+    
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        
+        self.selectIndex = indexPath.row
+        
+        self.tableView.reloadData()
+        
+//        currentVc()?.navigationController?.popViewController(animated: true)
+    }
+    
+    
+}
+
+
+
+

+ 143 - 0
Koala/Koala/Modular/JDMine/VC/JDMineModifyNickNameViewController.swift

@@ -0,0 +1,143 @@
+//
+//  JDMineModifyNickNameViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/12.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineModifyNickNameViewController: BaseViewController {
+
+//    @IBOutlet weak var inputBgView: UIView!
+//    @IBOutlet weak var hintLab: UILabel!
+//
+//    lazy var inView:BaseInputView = {
+//        let inView:BaseInputView = BaseInputView()
+//        return inView
+//    }()
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        return v
+    }()
+    
+    lazy var nicknameTF : UITextField  = {
+        
+        let v = UITextField()
+        
+        v.textColor = _color("#333333&#333333")
+        v.placeholder = switchLanguage("昵称")
+        v.setTextFont(.PFSR, 16)
+        v.rightViewMode = .always
+        v.clearButtonMode = .always
+        
+        return v
+        
+    }()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.myNavigationBar.title_Label.text = switchLanguage("设置昵称")
+        self.myNavigationBar.right_SuperView.isHidden = false
+        self.myNavigationBar.right_Button.setTitle(switchLanguage("保存")+"  ", for: .normal)
+        self.myNavigationBar.right_Button.setTitleColor(MainBackGroundColor, for: .normal)
+        self.myNavigationBar.right_Button.setTextFont(.PFSM, 15)
+        self.myNavigationBar.right_Button.addTarget(self, action: #selector(clickRightBtnAction), for: .touchUpInside)
+        
+        self.view.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.left.right.equalTo(self.view)
+            make.top.equalTo(self.myNavigationBar.snp.bottom)
+            make.height.equalTo(50)
+        }
+        
+        bgView.addSubview(nicknameTF)
+        nicknameTF.snp.makeConstraints { make in
+            make.top.bottom.equalTo(bgView)
+            make.left.equalTo(bgView.snp.left).offset(18)
+            make.right.equalTo(bgView.snp.right).offset(-18)
+        }
+        
+        
+//        self.inputBgView.addSubview(self.inView)
+//
+//        self.inView.snp.makeConstraints { make in
+//            make.edges.equalToSuperview()
+//        }
+        
+        mySwitchLanguage()
+        mySwitchSkin()
+        // Do any additional setup after loading the view.
+    }
+    
+    override func subView() {
+//        self.hintLab.setTextFont(.PFSR, 12)
+        
+    }
+    
+    override func updateViewConstraints() {
+        super.updateViewConstraints()
+       
+    }
+    
+    
+    override func mySwitchLanguage() {
+//        hintLab.text = switchLanguage("昵称包含1-24位字符(包含数字,字符和空格),且每个月只能修改一次")
+//        self.inView.setTextPlaceholder(text: switchLanguage("昵称"))
+    }
+    
+    override func mySwitchSkin() {
+
+        
+        self.view.backgroundColor = _color("#F6FAFE&#F6FAFE")
+//        hintLab.textColor = MidTextColor
+      
+        
+    }
+
+
+   
+
+}
+
+extension JDMineModifyNickNameViewController {
+    func netUserImName() -> Void {
+        let text = self.nicknameTF.text ?? "" //self.inView.textField.text ?? ""
+        guard text.length > 0 else {
+            ProgressHUD.showMessage(status: switchLanguage("请输入昵称"))
+            return
+        }
+        let textCount = text.unicodeScalars
+        guard textCount.count < 24 else {
+            ProgressHUD.showMessage(status: switchLanguage("昵称1-24位字符"))
+            return
+        }
+
+        var paramDict:[String:Any] = [String:Any]()
+        paramDict = ["im_name":text]
+        NetWork.NetWorkInstance.requestData(requestType: .Post, URLString: netForUserImName,parameters:paramDict, success: {[weak self] (errno,result) in
+            ProgressHUD.showSuccess(status: switchLanguage("保存成功"))
+            OperationalUserInfoData.refreshUserInfoComplete {
+                self?.navigationController?.popViewController(animated: true)
+            }
+
+        }) { (errno,result) in
+
+            ProgressHUD.showError(status: result as! String)
+        }
+        
+    }
+    
+    
+
+}
+
+extension JDMineModifyNickNameViewController{
+    @objc func clickRightBtnAction(){
+        self.netUserImName()
+    }
+}

+ 149 - 0
Koala/Koala/Modular/JDMine/VC/JDMineModifyRemarkViewController.swift

@@ -0,0 +1,149 @@
+//
+//  JDMineModifyRemarkViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/12.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineModifyRemarkViewController: BaseViewController {
+
+//    @IBOutlet weak var inputBgView: UIView!
+//    @IBOutlet weak var hintLab: UILabel!
+//
+//    lazy var inView:BaseInputView = {
+//        let inView:BaseInputView = BaseInputView()
+//        return inView
+//    }()
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        return v
+    }()
+    lazy var textView : UITextView = {
+        let v = JDTextView(frame: .zero)
+        v.backgroundColor = UIColor.white
+        v.placeHolder = switchLanguage("介绍自己的投资经验,风格或领域")
+        v.placeHolderColor = _color("#B0B0B0&#B0B0B0")
+        v.font = UIFont.systemFont(ofSize: 14)
+        return v
+    }()
+    
+    lazy var tipLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#B0B0B0&#B0B0B0")
+        v.setTextFont(.PFSR, 13)
+        v.textAlignment = .center
+        v.text = switchLanguage("例如;美股研究员/新股专家/量化交易员")
+        
+        return v
+    }()
+    
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.myNavigationBar.title_Label.text = switchLanguage("个人简介")
+        self.myNavigationBar.right_SuperView.isHidden = false
+        self.myNavigationBar.right_Button.setTitle(switchLanguage("完成")+"  ", for: .normal)
+        self.myNavigationBar.right_Button.setTitleColor(MainBackGroundColor, for: .normal)
+        self.myNavigationBar.right_Button.setTextFont(.PFSM, 15)
+        self.myNavigationBar.right_Button.addTarget(self, action: #selector(clickRightBtnAction), for: .touchUpInside)
+        
+        self.view.addSubview(bgView)
+        bgView.snp.makeConstraints { make in
+            make.left.right.equalTo(self.view)
+            make.top.equalTo(self.myNavigationBar.snp.bottom)
+            make.height.equalTo(165)
+        }
+        
+        bgView.addSubview(textView)
+        textView.snp.makeConstraints { make in
+            make.top.equalTo(bgView.snp.top).offset(15)
+            make.left.equalTo(bgView.snp.left).offset(18)
+            make.right.equalTo(bgView.snp.right).offset(-18)
+            make.bottom.equalTo(bgView.snp.bottom).offset(-15)
+        }
+        
+        self.view.addSubview(tipLb)
+        tipLb.snp.makeConstraints { make in
+            make.left.equalTo(self.view.snp.left).offset(18)
+            make.top.equalTo(bgView.snp.bottom).offset(15)
+        }
+        
+
+        
+        mySwitchLanguage()
+        mySwitchSkin()
+        // Do any additional setup after loading the view.
+    }
+    
+    override func subView() {
+//        self.hintLab.setTextFont(.PFSR, 12)
+        
+    }
+    
+    override func updateViewConstraints() {
+        super.updateViewConstraints()
+       
+    }
+    
+    
+    override func mySwitchLanguage() {
+
+    }
+    
+    override func mySwitchSkin() {
+
+        
+        self.view.backgroundColor = _color("#F6FAFE&#F6FAFE")
+//        hintLab.textColor = MidTextColor
+      
+        
+    }
+
+
+   
+
+}
+
+extension JDMineModifyRemarkViewController {
+    func netUserImName() -> Void {
+//        let text = self.nicknameTF.text ?? "" //self.inView.textField.text ?? ""
+//        guard text.length > 0 else {
+//            ProgressHUD.showMessage(status: switchLanguage("请输入昵称"))
+//            return
+//        }
+//        let textCount = text.unicodeScalars
+//        guard textCount.count < 24 else {
+//            ProgressHUD.showMessage(status: switchLanguage("昵称1-24位字符"))
+//            return
+//        }
+//
+//        var paramDict:[String:Any] = [String:Any]()
+//        paramDict = ["im_name":text]
+//        NetWork.NetWorkInstance.requestData(requestType: .Post, URLString: netForUserImName,parameters:paramDict, success: {[weak self] (errno,result) in
+//            ProgressHUD.showSuccess(status: switchLanguage("保存成功"))
+//            OperationalUserInfoData.refreshUserInfoComplete {
+//                self?.navigationController?.popViewController(animated: true)
+//            }
+//
+//        }) { (errno,result) in
+//
+//            ProgressHUD.showError(status: result as! String)
+//        }
+//
+    }
+    
+    
+
+}
+
+extension JDMineModifyRemarkViewController{
+    @objc func clickRightBtnAction(){
+        self.netUserImName()
+    }
+}

+ 206 - 0
Koala/Koala/Modular/JDMine/VC/JDMineQrcodeViewController.swift

@@ -0,0 +1,206 @@
+//
+//  JDMineQrcodeViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/12.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineQrcodeViewController: BaseViewController {
+    
+    
+    lazy var bgView : UIView = {
+        let v = UIView()
+        v.backgroundColor = .white
+        
+        return v
+    }()
+    
+    
+    lazy var avatarIv : UIImageView = {
+        let v = UIImageView()
+        v.image = Base_Avtor_Image
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 18
+        return v
+    }()
+    
+    lazy var nicknameLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#333333&#333333")
+        v.setTextFont(.PFSR, 16)
+        v.text = "nickname"
+        
+        return v
+    }()
+    
+    lazy var qrcodeIV : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("jdmine_invite_poster_qrbg&jdmine_invite_poster_qrbg")
+        
+        return v
+    }()
+    
+    lazy var tipLb : UILabel = {
+        let v = UILabel()
+        v.textColor = _color("#AAAAAA&#AAAAAA")
+        v.setTextFont(.PFSR, 14)
+        v.textAlignment = .center
+        v.text = switchLanguage("扫一扫,加极友")
+        
+        return v
+    }()
+    
+    lazy var logoIv : UIImageView = {
+        let v = UIImageView()
+        v.image = _image("Login_Logo&Login_Logo")
+        return v
+    }()
+    
+    lazy var saveBtn: UIButton = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = .white
+        v.setImage(_image("jdmine_qrcode_save&jdmine_qrcode_save"), for: .normal)
+        v.setTitle(switchLanguage("保存"), for: .normal)
+        v.titleLabel?.setTextFont(.PFSM, 14)
+        v.setTitleColor(MainBackGroundColor, for: .normal)
+        
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 6
+        v.layer.borderColor = MainBackGroundColor.cgColor
+        v.layer.borderWidth = 0.8
+        v.addTarget(self, action: #selector(saveAction), for: .touchUpInside)
+        return v
+    }()
+    
+    lazy var shareBtn : UIButton  = {
+        let v = UIButton(type: .custom)
+        v.backgroundColor = MainBackGroundColor
+        v.setImage(_image("jdmine_qrcode_share&jdmine_qrcode_share"), for: .normal)
+        v.setTitle(switchLanguage("分享"), for: .normal)
+        v.titleLabel?.setTextFont(.PFSM, 14)
+        v.setTitleColor(.white, for: .normal)
+        
+        v.layer.masksToBounds = true
+        v.layer.cornerRadius = 6
+//        v.layer.borderColor = MainBackGroundColor.cgColor
+//        v.layer.borderWidth = 0.8
+        v.addTarget(self, action: #selector(shareAction), for: .touchUpInside)
+        return v
+    }()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.myNavigationBar.title_Label.text = switchLanguage("二维码名片")
+        self.myNavigationBar.right_SuperView.isHidden = false
+        
+        self.myNavigationBar.right_Button.setImage(_image("jdmine_qrcode_scan&jdmine_qrcode_scan"), for: .normal)
+//        self.myNavigationBar.right_Button.setTitle(switchLanguage("保存")+"  ", for: .normal)
+//        self.myNavigationBar.right_Button.setTitleColor(MainBackGroundColor, for: .normal)
+//        self.myNavigationBar.right_Button.setTextFont(.PFSM, 15)
+        self.myNavigationBar.right_Button.addTarget(self, action: #selector(clickRightBtnAction), for: .touchUpInside)
+        
+        
+        self.view.addSubview(bgView)
+        
+        bgView.snp.makeConstraints { make in
+            
+            make.top.equalTo(self.myNavigationBar.snp.bottom).offset(15)
+            make.left.equalTo(self.view.snp.left).offset(18)
+            make.right.equalTo(self.view.snp.right).offset(-18)
+            make.height.equalTo(458)
+        }
+        
+        bgView.addSubview(avatarIv)
+        avatarIv.snp.makeConstraints { make in
+            make.left.equalTo(bgView.snp.left).offset(18)
+            make.top.equalTo(bgView.snp.top).offset(17)
+            make.size.equalTo(CGSize(width: 36, height: 36))
+        }
+        
+        bgView.addSubview(nicknameLb)
+        nicknameLb.snp.makeConstraints { make in
+            make.centerY.equalTo(avatarIv)
+            make.left.equalTo(avatarIv.snp.right).offset(7)
+        }
+        
+        bgView.addSubview(qrcodeIV)
+        qrcodeIV.snp.makeConstraints { make in
+            make.centerX.equalTo(bgView)
+            make.top.equalTo(avatarIv.snp.bottom).offset(50)
+            make.size.equalTo(CGSize(width: 233, height: 233))
+        }
+        
+        bgView.addSubview(tipLb)
+        tipLb.snp.makeConstraints { make in
+            make.centerX.equalTo(bgView)
+            make.top.equalTo(qrcodeIV.snp.bottom).offset(6)
+        }
+        
+        bgView.addSubview(logoIv)
+        logoIv.snp.makeConstraints { make in
+            make.centerX.equalTo(bgView)
+            make.bottom.equalTo(bgView.snp.bottom).offset(-28)
+            make.size.equalTo(CGSize(width: 116, height: 26))
+        }
+        
+        self.view.addSubview(saveBtn)
+        saveBtn.snp.makeConstraints { make in
+            make.top.equalTo(bgView.snp.bottom).offset(33)
+            make.left.equalTo(self.view.snp.left).offset(18)
+            make.right.equalTo(self.view.snp.centerX).offset(-9)
+            make.height.equalTo(40)
+        }
+        
+        
+        self.view.addSubview(shareBtn)
+        shareBtn.snp.makeConstraints { make in
+            make.top.equalTo(bgView.snp.bottom).offset(33)
+            make.right.equalTo(self.view.snp.right).offset(-18)
+            make.left.equalTo(self.view.snp.centerX).offset(9)
+            make.height.equalTo(40)
+        }
+        mySwitchSkin()
+        
+        
+    }
+    
+    
+    override func mySwitchLanguage() {
+//        hintLab.text = switchLanguage("昵称包含1-24位字符(包含数字,字符和空格),且每个月只能修改一次")
+//        self.inView.setTextPlaceholder(text: switchLanguage("昵称"))
+    }
+    
+    override func mySwitchSkin() {
+
+        
+        self.view.backgroundColor = _color("#F6FAFE&#F6FAFE")
+//        hintLab.textColor = MidTextColor
+      
+        
+    }
+    
+}
+
+extension JDMineQrcodeViewController {
+    
+    @objc func saveAction() ->Void {
+        
+        
+    }
+    
+    
+    
+    @objc func shareAction() ->Void {
+        
+        
+    }
+    
+    
+    @objc func clickRightBtnAction() ->Void {
+        
+    }
+}

+ 206 - 0
Koala/Koala/Modular/JDMine/VC/JDMineUserInfoViewController.swift

@@ -0,0 +1,206 @@
+//
+//  JDMineUserInfoViewController.swift
+//  Koala
+//
+//  Created by mac on 2023/10/11.
+//  Copyright © 2023 刘千军. All rights reserved.
+//
+
+import Foundation
+import UIKit
+
+class JDMineUserInfoViewController: BaseViewController {
+    
+    
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        
+        v.delegate = self
+        v.dataSource = self
+        v.allowsSelection = true
+        v.allowsMultipleSelection = false
+        v.showsVerticalScrollIndicator = false
+        v.showsHorizontalScrollIndicator = false
+        v.register(JDMineUserInfoAvatarCell.self, forCellReuseIdentifier: JDMineUserInfoAvatarCell.description())
+        v.register(JDMineUserInfoCell.self, forCellReuseIdentifier: JDMineUserInfoCell.description())
+        v.separatorStyle = .none
+        return v
+        
+    }()
+    
+    var titleAry = [switchLanguage("头像") ,switchLanguage("昵称") , switchLanguage("ID") , switchLanguage("二维码名片"),switchLanguage("性别"),switchLanguage("个人简介"),switchLanguage("主页背景图")]
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        self.myNavigationBar.title_Label.text = switchLanguage("个人信息")
+        
+        self.view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalTo(self.view)
+            make.top.equalTo(self.myNavigationBar.snp.bottom)
+        }
+        
+    }
+}
+
+
+extension JDMineUserInfoViewController : UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        
+       
+            
+            return titleAry.count
+        
+        
+    }
+    
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        
+
+        if indexPath.row == 0 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineUserInfoAvatarCell.description())  as! JDMineUserInfoAvatarCell
+                
+            cell.titleLb.text = titleAry[indexPath.row]
+          
+            cell.avatarIv.image = Base_Avtor_Image
+            cell.accessoryType = .disclosureIndicator
+            return cell
+            
+        }else if indexPath.row == 2 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineUserInfoCell.description())  as! JDMineUserInfoCell
+                
+            cell.titleLb.text = titleAry[indexPath.row]
+          
+//            cell.accessoryType = .disclosureIndicator
+            
+            cell.accessoryView = UIImageView(image: _image("jdmine_userinfo_copy&jdmine_userinfo_copy"))
+            
+            return cell
+            
+        }
+        else if indexPath.row == 3 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineUserInfoAvatarCell.description())  as! JDMineUserInfoAvatarCell
+                
+            cell.titleLb.text = titleAry[indexPath.row]
+          
+            cell.avatarIv.image = _image("jdmine_userinfo_qr&jdmine_userinfo_qr")
+            cell.avatarIv.snp.updateConstraints { make in
+                make.size.equalTo(CGSize(width: 15, height: 15))
+            }
+            cell.accessoryType = .disclosureIndicator
+            return cell
+            
+        } else if indexPath.row == 6 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineUserInfoAvatarCell.description())  as! JDMineUserInfoAvatarCell
+                
+            cell.titleLb.text = titleAry[indexPath.row]
+          
+            cell.avatarIv.backgroundColor = MainBackGroundColor
+            cell.avatarIv.snp.updateConstraints { make in
+                make.size.equalTo(CGSize(width: 64, height: 34))
+            }
+            cell.accessoryType = .disclosureIndicator
+            return cell
+            
+            
+        }
+        
+            
+        let cell = tableView.dequeueReusableCell(withIdentifier: JDMineUserInfoCell.description())  as! JDMineUserInfoCell
+            
+        cell.titleLb.text = titleAry[indexPath.row]
+      
+        if indexPath.row == 4 {
+            
+            cell.valueLb.text = switchLanguage("男")
+        }
+        
+        cell.accessoryType = .disclosureIndicator
+        return cell
+    
+    }
+
+}
+
+
+extension JDMineUserInfoViewController : UITableViewDelegate {
+    
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        
+        return 52.0
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.deselectRow(at: indexPath, animated: true)
+        
+        if  indexPath.row == 0 {
+            
+            if OperationalUserInfoData.getLogin() {
+                PhotoManager.shared().show { (index, imageData) in
+                    
+                    print( imageData)
+//                    self?.viewModel.imageData = imageData
+//                    self?.viewModel.uploadAvtar()
+                }
+                return
+            }else{
+                self.navigationController?.pushViewController(LoginViewController(), animated: true)
+            }
+        } else if indexPath.row == 1 {
+            
+            if OperationalUserInfoData.getLogin() {
+                self.navigationController?.pushViewController(JDMineModifyNickNameViewController(), animated: true)
+            }else{
+                self.navigationController?.pushViewController(LoginViewController(), animated: true)
+            }
+            
+        } else if indexPath.row == 2 {
+            
+            UIPasteboard.general.string = ""
+            ProgressHUD.showInfo(status: switchLanguage("已复制到剪切板"))
+            
+        } else if indexPath.row == 3 {
+            
+            if OperationalUserInfoData.getLogin() {
+                self.navigationController?.pushViewController(JDMineQrcodeViewController(), animated: true)
+            }else{
+                self.navigationController?.pushViewController(LoginViewController(), animated: true)
+            }
+            
+        } else if indexPath.row == 4 {
+            
+            
+            if OperationalUserInfoData.getLogin() {
+                self.navigationController?.pushViewController(JDMineModifyGenderViewController(), animated: true)
+            }else{
+                self.navigationController?.pushViewController(LoginViewController(), animated: true)
+            }
+            
+        } else if indexPath.row == 5 {
+            
+            if OperationalUserInfoData.getLogin() {
+                self.navigationController?.pushViewController(JDMineModifyRemarkViewController(), animated: true)
+            }else{
+                self.navigationController?.pushViewController(LoginViewController(), animated: true)
+            }
+            
+        }
+        
+        
+        print("111")
+    }
+}
+

+ 153 - 1
Koala/Koala/Modular/JDMine/VC/JDMineVIPViewController.swift

@@ -10,9 +10,161 @@ import Foundation
 class JDMineVIPViewController: BaseViewController {
     
     
+
+    lazy var tableView : UITableView = {
+        
+        let v = UITableView(frame: .zero, style: .plain)
+        
+        v.delegate = self
+        v.dataSource = self
+
+        
+//        if #available(iOS 15.0, *) {
+//            v.sectionHeaderTopPadding  = 0
+//        } else {
+//            // Fallback on earlier versions
+//        }
+//        v.tableFooterView = footerView
+        v.allowsSelection = true
+        v.allowsMultipleSelection = false
+        v.showsVerticalScrollIndicator = false
+        v.showsHorizontalScrollIndicator = false
+        v.estimatedRowHeight = 100
+        v.register(JDMineVipCell.self, forCellReuseIdentifier: JDMineVipCell.description())
+        v.register(JDMineJoinUsCell.self, forCellReuseIdentifier: JDMineJoinUsCell.description())
+        v.register(JDMineVipMidCell.self, forCellReuseIdentifier: JDMineVipMidCell.description())
+        v.register(JDMineVipOpenMindCell.self, forCellReuseIdentifier: JDMineVipOpenMindCell.description())
+        v.separatorStyle = .none
+        return v
+        
+    }()
+    
+    
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-        self.myNavigationBar.title_Label.text = "会员中心"
+        self.myNavigationBar.title_Label.text = "VIP详情"
+
+        
+        self.view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+    
+            make.left.right.bottom.equalTo(self.view)
+            make.top.equalTo(self.myNavigationBar.snp.bottom)
+
+        }
+        
+    }
+    
+    var titleAry = [switchLanguage("免费阅读牛股情报"), switchLanguage("每个月10万美金免息融资额度"),switchLanguage("交易手续费折扣") , switchLanguage("融资杠杆倍数高于普通用户"),switchLanguage("极度VIP大礼包")]
+    
+    var subTitleAry = [switchLanguage("免费阅读情报社区的牛股密性,第一时间掌握行情资讯"),
+                       switchLanguage("金额在10万元以内的融资,免除前三日利息,金额在10万元以上的融资,享受融资利息8折优惠"),
+                       switchLanguage("每笔交易,手续费享受8折优惠,每100万元交易将节省3000元手续费。"),
+    switchLanguage("普通用户仅能享受最高50倍融资杠杆服务,极度VIP会员最高可享受100倍融资杠杆服务。"),switchLanguage("更多惊喜,更多优惠券,尽在极度VIP大礼包")]
+    
+    var iconAry = ["jdmine_vip_0", "jdmine_vip_1", "jdmine_vip_2", "jdmine_vip_3", "jdmine_vip_4"]
+    
+    
+    
+}
+
+extension JDMineVIPViewController {
+    
+    @objc func joinUsAction() ->Void {
+        
         
     }
 }
+
+extension JDMineVIPViewController : UITableViewDataSource {
+    
+    func numberOfSections(in tableView: UITableView) -> Int {
+        return 4
+    }
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        
+        if section == 0 {
+            return 1
+        }else if section == 1 {
+            return 1
+        }else if section == 2 {
+            
+            return titleAry.count
+        }else {
+            return 1
+        }
+             
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+     
+        if indexPath.section == 0 {
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineVipCell.description()) as! JDMineVipCell
+             
+            return cell
+        } else if  indexPath.section == 1 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineVipMidCell.description()) as! JDMineVipMidCell
+
+            return cell
+            
+            
+             
+        } else if indexPath.section == 2 {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineJoinUsCell.description()) as! JDMineJoinUsCell
+            cell.iconIv.image = UIImage(named: iconAry[indexPath.row])
+            cell.titleLb.text = titleAry[indexPath.row]
+            cell.subTitleLb.text = subTitleAry[indexPath.row]
+            
+            return cell
+        }else {
+            
+            let cell = tableView.dequeueReusableCell(withIdentifier: JDMineVipOpenMindCell.description()) as! JDMineVipOpenMindCell
+            
+            return cell
+        }
+             
+    }
+
+}
+
+
+
+
+extension JDMineVIPViewController : UITableViewDelegate {
+    
+    
+    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+        
+       
+            return UIView()
+
+    }
+    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+        
+    
+            return 0.00001
+ 
+    }
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        
+        if indexPath.section == 2 {
+            
+            return 116
+        } else {
+            return -1
+        }
+    
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.deselectRow(at: indexPath, animated: true)
+        
+      
+    }
+}
+

+ 22 - 0
Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "路径备份 5@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "路径备份 5@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/路径备份 5@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/Base/Base_White_Back.imageset/路径备份 5@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "火备份@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "火备份@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/火备份@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/Infomation/Infomation_share.imageset/火备份@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/编组 20@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_0.imageset/编组 20@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x(1).png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x(1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/编组 20@2x(1).png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_1.imageset/编组 20@3x(1).png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20备份 3@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20备份 3@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/编组 20备份 3@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_2.imageset/编组 20备份 3@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "形状@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "形状@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/形状@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_copy.imageset/形状@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 19@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 19@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/编组 19@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_couponBg.imageset/编组 19@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 3@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 3@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/编组 3@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_bg.imageset/编组 3@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "位图@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "位图@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/位图@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_icon.imageset/位图@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 5@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 5@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/编组 5@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_logo.imageset/编组 5@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "位图@2x(1).png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "位图@3x(1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/位图@2x(1).png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_poster_qrbg.imageset/位图@3x(1).png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 23@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 23@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/编组 23@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_invite_topbg.imageset/编组 23@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/编组 20@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_0.imageset/编组 20@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x(1).png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x(1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/编组 20@2x(1).png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_1.imageset/编组 20@3x(1).png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20备份 2@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20备份 2@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/编组 20备份 2@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_2.imageset/编组 20备份 2@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 10@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 10@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/编组 10@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateBg.imageset/编组 10@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "位图@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "位图@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/位图@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_delegateIcon.imageset/位图@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "代理商管理@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "代理商管理@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/代理商管理@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_manager.imageset/代理商管理@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/编组@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_join_topbg.imageset/编组@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "形状@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "形状@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/形状@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_save.imageset/形状@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "路径备份 5@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "路径备份 5@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/路径备份 5@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_scan.imageset/路径备份 5@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "形状备份 10@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "形状备份 10@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/形状备份 10@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_qrcode_share.imageset/形状备份 10@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "复制@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "复制@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/复制@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_copy.imageset/复制@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "形状@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "形状@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/形状@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_userinfo_qr.imageset/形状@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/编组 20@2x.png


BIN
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_0.imageset/编组 20@3x.png


+ 22 - 0
Koala/Koala/Other/Assets.xcassets/JDMine/jdmine_vip_1.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "编组 20@2x(1).png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "编组 20@3x(1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio