31个文件已修改
12个文件已删除
56个文件已添加
| | |
| | | 1304B85D2A4EB0F8000D4F2E /* SearchBannerCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1304B85B2A4EB0F8000D4F2E /* SearchBannerCCell.xib */; }; |
| | | 1304B8602A4EB59F000D4F2E /* SearchStoreListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1304B85E2A4EB59F000D4F2E /* SearchStoreListVC.swift */; }; |
| | | 1304B8612A4EB59F000D4F2E /* SearchStoreListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1304B85F2A4EB59F000D4F2E /* SearchStoreListVC.xib */; }; |
| | | 130A59302D9406A40094D92D /* CardCenterSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130A592F2D9406A40094D92D /* CardCenterSheetView.swift */; }; |
| | | 130A59322D9406AB0094D92D /* CardCenterSheetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130A59312D9406AB0094D92D /* CardCenterSheetView.xib */; }; |
| | | 130CE4532A4823AC00394384 /* StudentMedalCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130CE4512A4823AC00394384 /* StudentMedalCCell.swift */; }; |
| | | 130CE4542A4823AC00394384 /* StudentMedalCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130CE4522A4823AC00394384 /* StudentMedalCCell.xib */; }; |
| | | 130CE4572A4925AB00394384 /* StudentVideoCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130CE4552A4925AB00394384 /* StudentVideoCCell.swift */; }; |
| | |
| | | 130EC17E2AD3905F003CA9BA /* BindPhoneVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130EC17C2AD3905F003CA9BA /* BindPhoneVC.xib */; }; |
| | | 130EC1802AD3F6AF003CA9BA /* CommonAlertSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130EC17F2AD3F6AF003CA9BA /* CommonAlertSheetView.swift */; }; |
| | | 130EC1822AD3F6C0003CA9BA /* CommonAlertSheetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130EC1812AD3F6C0003CA9BA /* CommonAlertSheetView.xib */; }; |
| | | 1314FF922D93F8730070E83A /* CardCenterDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1314FF912D93F8730070E83A /* CardCenterDetailVC.xib */; }; |
| | | 1314FF932D93F8730070E83A /* CardCenterDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1314FF902D93F8730070E83A /* CardCenterDetailVC.swift */; }; |
| | | 131732B72A405DED00F722AF /* YardDetailDateTimeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131732B62A405DED00F722AF /* YardDetailDateTimeVC.swift */; }; |
| | | 131732BA2A405EF800F722AF /* CalendarDateTimeTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131732B82A405EF800F722AF /* CalendarDateTimeTCell.swift */; }; |
| | | 131732BB2A405EF800F722AF /* CalendarDateTimeTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 131732B92A405EF800F722AF /* CalendarDateTimeTCell.xib */; }; |
| | | 1319386B2AC2EC8300FC63F1 /* WeChatTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1319386A2AC2EC8300FC63F1 /* WeChatTools.swift */; }; |
| | | 13240EED2D94F197008944A0 /* StudentInfo_6_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13240EEC2D94F197008944A0 /* StudentInfo_6_TCell.xib */; }; |
| | | 13240EEE2D94F197008944A0 /* StudentInfo_6_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13240EEB2D94F197008944A0 /* StudentInfo_6_TCell.swift */; }; |
| | | 13240EF02D94F8AD008944A0 /* StudentChoose3View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13240EEF2D94F8AD008944A0 /* StudentChoose3View.swift */; }; |
| | | 13240EF22D94F8B6008944A0 /* StudentChoose3View.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13240EF12D94F8B6008944A0 /* StudentChoose3View.xib */; }; |
| | | 1324D3562B8DE4CA00F168A8 /* WorldCupRecordVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1324D3552B8DE4CA00F168A8 /* WorldCupRecordVC.swift */; }; |
| | | 1324D3582B8DE50000F168A8 /* WorldCupRankVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1324D3572B8DE50000F168A8 /* WorldCupRankVC.swift */; }; |
| | | 1324D35B2B8DE5EA00F168A8 /* WorldCupRecordTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1324D3592B8DE5EA00F168A8 /* WorldCupRecordTCell.swift */; }; |
| | |
| | | 134BD52C2A6008BA00786819 /* YYPaymentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5202A6008BA00786819 /* YYPaymentManager.swift */; }; |
| | | 134BD52D2A6008BA00786819 /* YYPaymentResultModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5212A6008BA00786819 /* YYPaymentResultModel.swift */; }; |
| | | 134BD52E2A6008BA00786819 /* YYPayRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134BD5222A6008BA00786819 /* YYPayRequest.swift */; }; |
| | | 134D0BF02DA76C0E003D79C3 /* StudentInfo_2_2_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134D0BEF2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.xib */; }; |
| | | 134D0BF12DA76C0E003D79C3 /* StudentInfo_2_2_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134D0BEE2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.swift */; }; |
| | | 134EC5DA2D9567D400D6F82B /* CardCenterAddUserVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134EC5D82D9567D400D6F82B /* CardCenterAddUserVC.swift */; }; |
| | | 134EC5DB2D9567D400D6F82B /* CardCenterAddUserVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134EC5D92D9567D400D6F82B /* CardCenterAddUserVC.xib */; }; |
| | | 134EC5DD2D96400100D6F82B /* MyCardListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134EC5DC2D96400100D6F82B /* MyCardListVC.swift */; }; |
| | | 134EC5E02D9645EB00D6F82B /* MyCardTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134EC5DE2D9645EB00D6F82B /* MyCardTCell.swift */; }; |
| | | 134EC5E12D9645EB00D6F82B /* MyCardTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134EC5DF2D9645EB00D6F82B /* MyCardTCell.xib */; }; |
| | | 134F87702B90AAD100962CE3 /* JudgeListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 134F876E2B90AAD100962CE3 /* JudgeListVC.swift */; }; |
| | | 134F87712B90AAD100962CE3 /* JudgeListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134F876F2B90AAD100962CE3 /* JudgeListVC.xib */; }; |
| | | 1350BF172ADFD1D9007FC49F /* RatingBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1350BF162ADFD1D9007FC49F /* RatingBar.swift */; }; |
| | |
| | | 13DA7D4C2AAEFD630085ABF9 /* CommonWebVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DA7D4A2AAEFD630085ABF9 /* CommonWebVC.swift */; }; |
| | | 13DA7D4D2AAEFD630085ABF9 /* CommonWebVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13DA7D4B2AAEFD630085ABF9 /* CommonWebVC.xib */; }; |
| | | 13DA7D4F2AAF03F90085ABF9 /* CommonScanQRCodeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13DA7D4E2AAF03F90085ABF9 /* CommonScanQRCodeVC.swift */; }; |
| | | 13E82AAB2D93C32B006116E3 /* CardCenterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E82AAA2D93C32B006116E3 /* CardCenterVC.swift */; }; |
| | | 13E82AAF2D93CE32006116E3 /* CardCenterTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13E82AAE2D93CE32006116E3 /* CardCenterTCell.xib */; }; |
| | | 13E82AB02D93CE32006116E3 /* CardCenterTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E82AAD2D93CE32006116E3 /* CardCenterTCell.swift */; }; |
| | | 13EAF3772AB406C3000A6F07 /* GamesListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EAF3762AB406C3000A6F07 /* GamesListVC.swift */; }; |
| | | 13EAF3792AB4162A000A6F07 /* GamesSubListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EAF3782AB4162A000A6F07 /* GamesSubListVC.swift */; }; |
| | | 13EAF37D2AB42CFD000A6F07 /* GamesTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EAF37B2AB42CFD000A6F07 /* GamesTCell.swift */; }; |
| | |
| | | 13F88B062B8F46EA0055317B /* WorldCupListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F88B042B8F46EA0055317B /* WorldCupListVC.xib */; }; |
| | | 13F88B092B8F4A0B0055317B /* WorldCupHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F88B082B8F4A0B0055317B /* WorldCupHeadView.swift */; }; |
| | | 13F88B0B2B8F4A1A0055317B /* WorldCupHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F88B0A2B8F4A1A0055317B /* WorldCupHeadView.xib */; }; |
| | | 13F8D1EE2D96529500E90519 /* MyCardItemVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13F8D1ED2D96529500E90519 /* MyCardItemVC.xib */; }; |
| | | 13F8D1EF2D96529500E90519 /* MyCardItemVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F8D1EC2D96529500E90519 /* MyCardItemVC.swift */; }; |
| | | 13FB93B92A5C028D009F558A /* FinanceTrafer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FB93B82A5C028D009F558A /* FinanceTrafer.swift */; }; |
| | | 13FBB8D62A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FBB8D42A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.swift */; }; |
| | | 13FBB8D72A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13FBB8D52A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.xib */; }; |
| | |
| | | 1304B85E2A4EB59F000D4F2E /* SearchStoreListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchStoreListVC.swift; sourceTree = "<group>"; }; |
| | | 1304B85F2A4EB59F000D4F2E /* SearchStoreListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SearchStoreListVC.xib; sourceTree = "<group>"; }; |
| | | 1306580A2B22C1BB008B2500 /* WanPaiRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WanPaiRelease.entitlements; sourceTree = "<group>"; }; |
| | | 130A592F2D9406A40094D92D /* CardCenterSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCenterSheetView.swift; sourceTree = "<group>"; }; |
| | | 130A59312D9406AB0094D92D /* CardCenterSheetView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardCenterSheetView.xib; sourceTree = "<group>"; }; |
| | | 130CE4512A4823AC00394384 /* StudentMedalCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentMedalCCell.swift; sourceTree = "<group>"; }; |
| | | 130CE4522A4823AC00394384 /* StudentMedalCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentMedalCCell.xib; sourceTree = "<group>"; }; |
| | | 130CE4552A4925AB00394384 /* StudentVideoCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentVideoCCell.swift; sourceTree = "<group>"; }; |
| | |
| | | 130EC17C2AD3905F003CA9BA /* BindPhoneVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BindPhoneVC.xib; sourceTree = "<group>"; }; |
| | | 130EC17F2AD3F6AF003CA9BA /* CommonAlertSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonAlertSheetView.swift; sourceTree = "<group>"; }; |
| | | 130EC1812AD3F6C0003CA9BA /* CommonAlertSheetView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CommonAlertSheetView.xib; sourceTree = "<group>"; }; |
| | | 1314FF902D93F8730070E83A /* CardCenterDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCenterDetailVC.swift; sourceTree = "<group>"; }; |
| | | 1314FF912D93F8730070E83A /* CardCenterDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardCenterDetailVC.xib; sourceTree = "<group>"; }; |
| | | 131732B62A405DED00F722AF /* YardDetailDateTimeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YardDetailDateTimeVC.swift; sourceTree = "<group>"; }; |
| | | 131732B82A405EF800F722AF /* CalendarDateTimeTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarDateTimeTCell.swift; sourceTree = "<group>"; }; |
| | | 131732B92A405EF800F722AF /* CalendarDateTimeTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CalendarDateTimeTCell.xib; sourceTree = "<group>"; }; |
| | | 131938692AC2D9B700FC63F1 /* WanPaiDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WanPaiDebug.entitlements; sourceTree = "<group>"; }; |
| | | 1319386A2AC2EC8300FC63F1 /* WeChatTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeChatTools.swift; sourceTree = "<group>"; }; |
| | | 13240EEB2D94F197008944A0 /* StudentInfo_6_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentInfo_6_TCell.swift; sourceTree = "<group>"; }; |
| | | 13240EEC2D94F197008944A0 /* StudentInfo_6_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentInfo_6_TCell.xib; sourceTree = "<group>"; }; |
| | | 13240EEF2D94F8AD008944A0 /* StudentChoose3View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentChoose3View.swift; sourceTree = "<group>"; }; |
| | | 13240EF12D94F8B6008944A0 /* StudentChoose3View.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentChoose3View.xib; sourceTree = "<group>"; }; |
| | | 1324D3552B8DE4CA00F168A8 /* WorldCupRecordVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorldCupRecordVC.swift; sourceTree = "<group>"; }; |
| | | 1324D3572B8DE50000F168A8 /* WorldCupRankVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorldCupRankVC.swift; sourceTree = "<group>"; }; |
| | | 1324D3592B8DE5EA00F168A8 /* WorldCupRecordTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorldCupRecordTCell.swift; sourceTree = "<group>"; }; |
| | |
| | | 134BD5212A6008BA00786819 /* YYPaymentResultModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YYPaymentResultModel.swift; sourceTree = "<group>"; }; |
| | | 134BD5222A6008BA00786819 /* YYPayRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YYPayRequest.swift; sourceTree = "<group>"; }; |
| | | 134BD5332A60099B00786819 /* WanPai-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WanPai-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; |
| | | 134D0BEE2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentInfo_2_2_TCell.swift; sourceTree = "<group>"; }; |
| | | 134D0BEF2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentInfo_2_2_TCell.xib; sourceTree = "<group>"; }; |
| | | 134EC5D82D9567D400D6F82B /* CardCenterAddUserVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCenterAddUserVC.swift; sourceTree = "<group>"; }; |
| | | 134EC5D92D9567D400D6F82B /* CardCenterAddUserVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardCenterAddUserVC.xib; sourceTree = "<group>"; }; |
| | | 134EC5DC2D96400100D6F82B /* MyCardListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCardListVC.swift; sourceTree = "<group>"; }; |
| | | 134EC5DE2D9645EB00D6F82B /* MyCardTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCardTCell.swift; sourceTree = "<group>"; }; |
| | | 134EC5DF2D9645EB00D6F82B /* MyCardTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyCardTCell.xib; sourceTree = "<group>"; }; |
| | | 134F876E2B90AAD100962CE3 /* JudgeListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JudgeListVC.swift; sourceTree = "<group>"; }; |
| | | 134F876F2B90AAD100962CE3 /* JudgeListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = JudgeListVC.xib; sourceTree = "<group>"; }; |
| | | 1350BF162ADFD1D9007FC49F /* RatingBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RatingBar.swift; sourceTree = "<group>"; }; |
| | |
| | | 13DA7D4A2AAEFD630085ABF9 /* CommonWebVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonWebVC.swift; sourceTree = "<group>"; }; |
| | | 13DA7D4B2AAEFD630085ABF9 /* CommonWebVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CommonWebVC.xib; sourceTree = "<group>"; }; |
| | | 13DA7D4E2AAF03F90085ABF9 /* CommonScanQRCodeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonScanQRCodeVC.swift; sourceTree = "<group>"; }; |
| | | 13E82AAA2D93C32B006116E3 /* CardCenterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCenterVC.swift; sourceTree = "<group>"; }; |
| | | 13E82AAD2D93CE32006116E3 /* CardCenterTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCenterTCell.swift; sourceTree = "<group>"; }; |
| | | 13E82AAE2D93CE32006116E3 /* CardCenterTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardCenterTCell.xib; sourceTree = "<group>"; }; |
| | | 13EAF3762AB406C3000A6F07 /* GamesListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamesListVC.swift; sourceTree = "<group>"; }; |
| | | 13EAF3782AB4162A000A6F07 /* GamesSubListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamesSubListVC.swift; sourceTree = "<group>"; }; |
| | | 13EAF37B2AB42CFD000A6F07 /* GamesTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamesTCell.swift; sourceTree = "<group>"; }; |
| | |
| | | 13F88B042B8F46EA0055317B /* WorldCupListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WorldCupListVC.xib; sourceTree = "<group>"; }; |
| | | 13F88B082B8F4A0B0055317B /* WorldCupHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorldCupHeadView.swift; sourceTree = "<group>"; }; |
| | | 13F88B0A2B8F4A1A0055317B /* WorldCupHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WorldCupHeadView.xib; sourceTree = "<group>"; }; |
| | | 13F8D1EC2D96529500E90519 /* MyCardItemVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCardItemVC.swift; sourceTree = "<group>"; }; |
| | | 13F8D1ED2D96529500E90519 /* MyCardItemVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MyCardItemVC.xib; sourceTree = "<group>"; }; |
| | | 13FB93B82A5C028D009F558A /* FinanceTrafer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinanceTrafer.swift; sourceTree = "<group>"; }; |
| | | 13FBB8D42A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchStoreDetailFeedbackVC.swift; sourceTree = "<group>"; }; |
| | | 13FBB8D52A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SearchStoreDetailFeedbackVC.xib; sourceTree = "<group>"; }; |
| | |
| | | path = CCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130A592E2D94068B0094D92D /* View */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130A592F2D9406A40094D92D /* CardCenterSheetView.swift */, |
| | | 130A59312D9406AB0094D92D /* CardCenterSheetView.xib */, |
| | | ); |
| | | path = View; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 130E40282A4EC32D003A3D75 /* View */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | |
| | | 138ED7972AF3A5BE0001F2EF /* CustomPointAnnotationView.swift */, |
| | | ); |
| | | path = View; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1314FF8F2D93F8580070E83A /* VC */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13E82AAA2D93C32B006116E3 /* CardCenterVC.swift */, |
| | | 1314FF902D93F8730070E83A /* CardCenterDetailVC.swift */, |
| | | 1314FF912D93F8730070E83A /* CardCenterDetailVC.xib */, |
| | | 134EC5D82D9567D400D6F82B /* CardCenterAddUserVC.swift */, |
| | | 134EC5D92D9567D400D6F82B /* CardCenterAddUserVC.xib */, |
| | | ); |
| | | path = VC; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13272DC92A4006B500AC6481 /* View */ = { |
| | |
| | | 13F88AFC2B8F29F10055317B /* StudentInfo_4_TCell.xib */, |
| | | 13FF80F32B90AE8400B70178 /* JudgeTCell.swift */, |
| | | 13FF80F42B90AE8400B70178 /* JudgeTCell.xib */, |
| | | 13240EEB2D94F197008944A0 /* StudentInfo_6_TCell.swift */, |
| | | 13240EEC2D94F197008944A0 /* StudentInfo_6_TCell.xib */, |
| | | 134EC5DE2D9645EB00D6F82B /* MyCardTCell.swift */, |
| | | 134EC5DF2D9645EB00D6F82B /* MyCardTCell.xib */, |
| | | ); |
| | | path = TCell; |
| | | sourceTree = "<group>"; |
| | |
| | | path = VC; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13E82AA92D93C300006116E3 /* CardCenter */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 130A592E2D94068B0094D92D /* View */, |
| | | 1314FF8F2D93F8580070E83A /* VC */, |
| | | 13E82AAC2D93CE1F006116E3 /* TCell */, |
| | | ); |
| | | path = CardCenter; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13E82AAC2D93CE1F006116E3 /* TCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13E82AAD2D93CE32006116E3 /* CardCenterTCell.swift */, |
| | | 13E82AAE2D93CE32006116E3 /* CardCenterTCell.xib */, |
| | | ); |
| | | path = TCell; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 13EAF37A2AB42CEE000A6F07 /* TCell */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | |
| | | 138A25AF2B91CE8E00B2EE49 /* StudentInfo_5_TCell.xib */, |
| | | 1371CD042BA3E7F2007E0849 /* StudentInfo_2_1_TCell.swift */, |
| | | 1371CD052BA3E7F2007E0849 /* StudentInfo_2_1_TCell.xib */, |
| | | 134D0BEE2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.swift */, |
| | | 134D0BEF2DA76C0E003D79C3 /* StudentInfo_2_2_TCell.xib */, |
| | | ); |
| | | path = TCell; |
| | | sourceTree = "<group>"; |
| | |
| | | 13638ACC2B95AE8900ABDD0D /* StudentChoose2View.xib */, |
| | | 133FAE972B96F651005CF2F2 /* CommonYearsPickerView.swift */, |
| | | 133FAE992B96F658005CF2F2 /* CommonYearsPickerView.xib */, |
| | | 13240EEF2D94F8AD008944A0 /* StudentChoose3View.swift */, |
| | | 13240EF12D94F8B6008944A0 /* StudentChoose3View.xib */, |
| | | ); |
| | | path = View; |
| | | sourceTree = "<group>"; |
| | |
| | | 8DFA9B782A31722300E99281 /* Root */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 13E82AA92D93C300006116E3 /* CardCenter */, |
| | | 137B86672AB3F02A00C4D01B /* Games */, |
| | | 138D8B8A2A3FFE1D009DCA9E /* Yard */, |
| | | 8DC3BE0D2A38038F00C91B7F /* Activity */, |
| | |
| | | 13D871112B90B7C2006B81AF /* MatchDetailVC.xib */, |
| | | 138A25A62B91CC2300B2EE49 /* StudentsManagerListVC.swift */, |
| | | 138A25A72B91CC2300B2EE49 /* StudentsManagerListVC.xib */, |
| | | 134EC5DC2D96400100D6F82B /* MyCardListVC.swift */, |
| | | 13F8D1EC2D96529500E90519 /* MyCardItemVC.swift */, |
| | | 13F8D1ED2D96529500E90519 /* MyCardItemVC.xib */, |
| | | ); |
| | | path = VC; |
| | | sourceTree = "<group>"; |
| | |
| | | 139A39EE2A41349800737AFB /* YardBookingTCell.xib in Resources */, |
| | | 13ECD42F2B8DD82C00187EE9 /* WorldCupTCell.xib in Resources */, |
| | | 8DA51DFC2A32C6D00085F4BA /* StoresChooseView.xib in Resources */, |
| | | 134D0BF02DA76C0E003D79C3 /* StudentInfo_2_2_TCell.xib in Resources */, |
| | | 138D8B942A4000D2009DCA9E /* YardTCell.xib in Resources */, |
| | | 8D6810EC2A3710D8004486DE /* StudentChooseView.xib in Resources */, |
| | | 1371CD0B2BA44584007E0849 /* QRWithTitlePreview.xib in Resources */, |
| | |
| | | 13477DC32B8C9F28002E69FB /* MeQRCodeVC.xib in Resources */, |
| | | 13EAF3822AB43657000A6F07 /* GamesIntruduceView.xib in Resources */, |
| | | 8DFA9B922A317DE900E99281 /* WelfareVC.xib in Resources */, |
| | | 13240EED2D94F197008944A0 /* StudentInfo_6_TCell.xib in Resources */, |
| | | 13F88B062B8F46EA0055317B /* WorldCupListVC.xib in Resources */, |
| | | 1371CD072BA3E7F2007E0849 /* StudentInfo_2_1_TCell.xib in Resources */, |
| | | 13B640C12A54108B00EA33ED /* UploadImgCCell.xib in Resources */, |
| | | 8D8DEDF32A31DDC500F2C7FA /* CouponCCell.xib in Resources */, |
| | | 13F8D1EE2D96529500E90519 /* MyCardItemVC.xib in Resources */, |
| | | 138D8B8F2A3FFE36009DCA9E /* YardListVC.xib in Resources */, |
| | | 130EC17E2AD3905F003CA9BA /* BindPhoneVC.xib in Resources */, |
| | | 8D4905AE2A31AE7100E38513 /* JoinMemberIntroduceVC.xib in Resources */, |
| | |
| | | 13BEEAEB2A4D92A200685667 /* ExchangeRecordTCell.xib in Resources */, |
| | | 8DF184412A3327EE0095687B /* Common_1_CCell.xib in Resources */, |
| | | 13A501922A4D6EA600FF6763 /* CoinStoreCCell.xib in Resources */, |
| | | 134EC5DB2D9567D400D6F82B /* CardCenterAddUserVC.xib in Resources */, |
| | | 8D6D58D52A3997250003CFE6 /* StoresInfoView.xib in Resources */, |
| | | 13477DCB2B8CA1C1002E69FB /* MyQRCodeTCell.xib in Resources */, |
| | | 8D5C150C2A31885B00A8BCC9 /* CommonAlertView.xib in Resources */, |
| | | 1376A6A22A4A7E1E00D4C851 /* CourseChargeTCell.xib in Resources */, |
| | | 13E82AAF2D93CE32006116E3 /* CardCenterTCell.xib in Resources */, |
| | | 130A59322D9406AB0094D92D /* CardCenterSheetView.xib in Resources */, |
| | | 13D7D6242A4EBBCF000136BD /* SearchStoreTCell.xib in Resources */, |
| | | 1393B3932A4ACDB200B73072 /* CourseExerciseSubListVC.xib in Resources */, |
| | | 13426D682B8F20AB0032338B /* WorldCupContentDetailVC.xib in Resources */, |
| | |
| | | 13927C792B97338C00223A21 /* FinishWorldCupMatchView.xib in Resources */, |
| | | 13CCC4BD2A4A820100DEDF19 /* StudentCourseDetailHeadView.xib in Resources */, |
| | | 8D5C150D2A31885B00A8BCC9 /* AgreentView.xib in Resources */, |
| | | 134EC5E12D9645EB00D6F82B /* MyCardTCell.xib in Resources */, |
| | | 130EC1822AD3F6C0003CA9BA /* CommonAlertSheetView.xib in Resources */, |
| | | 137D2C3D2B8F630F001E34BF /* WorldCupContentApplyInputVC.xib in Resources */, |
| | | 137D2C372B8F5B8E001E34BF /* WorldCupContentApplyVC.xib in Resources */, |
| | | 1314FF922D93F8730070E83A /* CardCenterDetailVC.xib in Resources */, |
| | | 1304B8562A4EAA81000D4F2E /* CustomerContentDetailVC.xib in Resources */, |
| | | 137801A42A3C644200414959 /* CourseVideoDetailVC.xib in Resources */, |
| | | 13921C012B8C838700BED781 /* FindItemCCell.xib in Resources */, |
| | |
| | | 8D44E4F82A331DF800E7010E /* CourseDetailApplyVC.xib in Resources */, |
| | | 8D79A5942A395BF40029874B /* ActivityStudentListVC.xib in Resources */, |
| | | 13FBB8D72A4ED96C00FF70DB /* SearchStoreDetailFeedbackVC.xib in Resources */, |
| | | 13240EF22D94F8B6008944A0 /* StudentChoose3View.xib in Resources */, |
| | | 1304B8522A4EA5ED000D4F2E /* CustomerContentQATCell.xib in Resources */, |
| | | 1304B8612A4EB59F000D4F2E /* SearchStoreListVC.xib in Resources */, |
| | | 137801942A3B0D3C00414959 /* CourseOnlineCCell.xib in Resources */, |
| | |
| | | 13D7BA9B2A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift in Sources */, |
| | | 8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */, |
| | | 130EC1802AD3F6AF003CA9BA /* CommonAlertSheetView.swift in Sources */, |
| | | 1314FF932D93F8730070E83A /* CardCenterDetailVC.swift in Sources */, |
| | | 138BE81C2AF0E41400FECE44 /* SocketManager.swift in Sources */, |
| | | 13D7D6232A4EBBCF000136BD /* SearchStoreTCell.swift in Sources */, |
| | | 8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */, |
| | |
| | | 8DAEB54B2A30593C00814766 /* BaseVC.swift in Sources */, |
| | | 1387B6662A4AB66300BF2F2E /* CourseBookingListVC.swift in Sources */, |
| | | 8DAEB54E2A305A0100814766 /* Colors.swift in Sources */, |
| | | 130A59302D9406A40094D92D /* CardCenterSheetView.swift in Sources */, |
| | | 132876682A49A4CB00FC9122 /* StudentReportVC.swift in Sources */, |
| | | 13426D672B8F20AB0032338B /* WorldCupContentDetailVC.swift in Sources */, |
| | | 133A61882A4E7A200066C4E6 /* CustomerSubListVC.swift in Sources */, |
| | |
| | | 8DC99C882A3701CE00D0F04E /* CouponChooseView.swift in Sources */, |
| | | 8D44E4F72A331DF800E7010E /* CourseDetailApplyVC.swift in Sources */, |
| | | 8D6D6AF22A32D6F800DCA2C6 /* CourseListVC.swift in Sources */, |
| | | 134EC5E02D9645EB00D6F82B /* MyCardTCell.swift in Sources */, |
| | | 13BEEAE52A4D8DFB00685667 /* WelfareExchangeRecordListVC.swift in Sources */, |
| | | 8DF184402A3327EE0095687B /* Common_1_CCell.swift in Sources */, |
| | | 13DA7D4C2AAEFD630085ABF9 /* CommonWebVC.swift in Sources */, |
| | |
| | | 1393B3962A4AD03A00B73072 /* CourseExerciseTCell.swift in Sources */, |
| | | 13B2DEFC2AE12A7E00FCD31E /* LaunchImageHelper.swift in Sources */, |
| | | 137546402A57F545001FA77A /* UserModel.swift in Sources */, |
| | | 13240EF02D94F8AD008944A0 /* StudentChoose3View.swift in Sources */, |
| | | 13019C7D2A42ADA2004880CD /* CourseInfoVC.swift in Sources */, |
| | | 138D8B8E2A3FFE36009DCA9E /* YardListVC.swift in Sources */, |
| | | 13A9F8B12B0F2DC400ADF402 /* TransitionUtil.swift in Sources */, |
| | |
| | | 8D5C150E2A31885B00A8BCC9 /* CommonAlertView.swift in Sources */, |
| | | 139A39F62A4139E000737AFB /* WelfareWeeklyListVC.swift in Sources */, |
| | | 1324D3562B8DE4CA00F168A8 /* WorldCupRecordVC.swift in Sources */, |
| | | 134D0BF12DA76C0E003D79C3 /* StudentInfo_2_2_TCell.swift in Sources */, |
| | | 133435032A40407200F23951 /* CalendarItemCCell.swift in Sources */, |
| | | 13CE11D42AF25C6400F6ACA4 /* UCCateDecorationView.swift in Sources */, |
| | | 8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */, |
| | |
| | | 133A61862A4E78340066C4E6 /* CustomerListVC.swift in Sources */, |
| | | 133E223C2AFB37020045B544 /* StoresInfo_2_View.swift in Sources */, |
| | | 13A7F72C2AB7E0EC000B3436 /* CourseEXPVC.swift in Sources */, |
| | | 134EC5DD2D96400100D6F82B /* MyCardListVC.swift in Sources */, |
| | | 136B63982A4ECDD900E594F9 /* SearchStoreDetail_1_TCell.swift in Sources */, |
| | | 8D4905A92A31A6EC00E38513 /* HomeCCell.swift in Sources */, |
| | | 8D6D58CF2A3972A80003CFE6 /* ActivitySignupListVC.swift in Sources */, |
| | |
| | | 13801CBE2A4D20D20041454D /* ChooseStoreView.swift in Sources */, |
| | | 137801932A3B0D3C00414959 /* CourseOnlineCCell.swift in Sources */, |
| | | 13675FF72B8CBDD400085A66 /* WorldCupMenuVC.swift in Sources */, |
| | | 13F8D1EF2D96529500E90519 /* MyCardItemVC.swift in Sources */, |
| | | 1371CD062BA3E7F2007E0849 /* StudentInfo_2_1_TCell.swift in Sources */, |
| | | 138A25B02B91CE8E00B2EE49 /* StudentInfo_5_TCell.swift in Sources */, |
| | | 1324D35B2B8DE5EA00F168A8 /* WorldCupRecordTCell.swift in Sources */, |
| | | 136FD9AD2A4C2F0500933B7C /* RechargeItemCCell.swift in Sources */, |
| | | 8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */, |
| | | 13E82AAB2D93C32B006116E3 /* CardCenterVC.swift in Sources */, |
| | | 137801862A3B01FA00414959 /* ActivitySignupDetailVC.swift in Sources */, |
| | | 134EC5DA2D9567D400D6F82B /* CardCenterAddUserVC.swift in Sources */, |
| | | 137801A32A3C644200414959 /* CourseVideoDetailVC.swift in Sources */, |
| | | 13EC6DDC2A493D23009FC09A /* WelfareCoinCCell.swift in Sources */, |
| | | 13BEEAE72A4D927100685667 /* WelfareExchangeRecordSubListVC.swift in Sources */, |
| | | 138D8B932A4000D2009DCA9E /* YardTCell.swift in Sources */, |
| | | 13E82AB02D93CE32006116E3 /* CardCenterTCell.swift in Sources */, |
| | | 13240EEE2D94F197008944A0 /* StudentInfo_6_TCell.swift in Sources */, |
| | | 1304B8552A4EAA81000D4F2E /* CustomerContentDetailVC.swift in Sources */, |
| | | 13F88AFD2B8F29F10055317B /* StudentInfo_4_TCell.swift in Sources */, |
| | | 135772AC2AB1B11400EA3544 /* YardBookingDetailVC.swift in Sources */, |
| | |
| | | CODE_SIGN_ENTITLEMENTS = WanPai/WanPaiDebug.entitlements; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
| | | CODE_SIGN_STYLE = Manual; |
| | | CURRENT_PROJECT_VERSION = 13; |
| | | CURRENT_PROJECT_VERSION = 16; |
| | | DEVELOPMENT_TEAM = ""; |
| | | "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2MWV8K39DV; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/WanPai/YYPaymentManager/WeChatPay", |
| | | ); |
| | | MARKETING_VERSION = 2.0.3; |
| | | MARKETING_VERSION = 2.0.6; |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | |
| | | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| | | SUPPORTS_MACCATALYST = NO; |
| | | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SWIFT_EMIT_LOC_STRINGS = YES; |
| | | SWIFT_OBJC_BRIDGING_HEADER = "WanPai-Bridging-Header.h"; |
| | | SWIFT_VERSION = 5.0; |
| | |
| | | CODE_SIGN_ENTITLEMENTS = WanPai/WanPaiRelease.entitlements; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; |
| | | CODE_SIGN_STYLE = Manual; |
| | | CURRENT_PROJECT_VERSION = 13; |
| | | CURRENT_PROJECT_VERSION = 16; |
| | | DEVELOPMENT_TEAM = ""; |
| | | "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2MWV8K39DV; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/WanPai/YYPaymentManager/WeChatPay", |
| | | ); |
| | | MARKETING_VERSION = 2.0.3; |
| | | MARKETING_VERSION = 2.0.6; |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | |
| | | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| | | SUPPORTS_MACCATALYST = NO; |
| | | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; |
| | | SWIFT_EMIT_LOC_STRINGS = YES; |
| | | SWIFT_OBJC_BRIDGING_HEADER = "WanPai-Bridging-Header.h"; |
| | | SWIFT_VERSION = 5.0; |
| | |
| | | |
| | | let tabBar = BaseTabBarVC() |
| | | let homeNav = BaseNav(rootViewController: HomeVC()) |
| | | homeNav.tabBarItem = UITabBarItem(title: "加入玩湃", image: UIImage(named: "tabbar_home"), selectedImage: UIImage(named: "tabbar_home_s")!.withRenderingMode(.alwaysOriginal)) |
| | | homeNav.tabBarItem = UITabBarItem(title: "玩湃公园", image: UIImage(named: "tabbar_home"), selectedImage: UIImage(named: "tabbar_home_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let clouseNav = BaseNav(rootViewController: CourseVC()) |
| | | clouseNav.tabBarItem = UITabBarItem(title: "玩湃运动营", image: UIImage(named: "tabbar_course"), selectedImage: UIImage(named: "tabbar_course_s")!.withRenderingMode(.alwaysOriginal)) |
| | | clouseNav.tabBarItem = UITabBarItem(title: "我的运动营", image: UIImage(named: "tabbar_course"), selectedImage: UIImage(named: "tabbar_course_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let welfareVCNav = BaseNav(rootViewController: WelfareVC()) |
| | | welfareVCNav.tabBarItem = UITabBarItem(title: "使用福利", image: UIImage(named: "tabbar_welfare"), selectedImage: UIImage(named: "tabbar_welfare_s")!.withRenderingMode(.alwaysOriginal)) |
| | | // let welfareVCNav = BaseNav(rootViewController: WelfareVC()) |
| | | // welfareVCNav.tabBarItem = UITabBarItem(title: "使用福利", image: UIImage(named: "tabbar_welfare"), selectedImage: UIImage(named: "tabbar_welfare_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let carderCenterVCNav = BaseNav(rootViewController: CardCenterVC()) |
| | | carderCenterVCNav.tabBarItem = UITabBarItem(title: "惠民卡", image: UIImage(named: "tabbar_welfare"), selectedImage: UIImage(named: "tabbar_welfare_s")!.withRenderingMode(.alwaysOriginal)) |
| | | |
| | | let searchVCNav = BaseNav(rootViewController: SearchVC()) |
| | | searchVCNav.tabBarItem = UITabBarItem(title: "搜索玩湃", image: UIImage(named: "tabbar_search"), selectedImage: UIImage(named: "tabbar_search_s")!.withRenderingMode(.alwaysOriginal)) |
| | | tabBar.viewControllers = [homeNav,clouseNav,welfareVCNav,searchVCNav] |
| | | searchVCNav.tabBarItem = UITabBarItem(title: "我的玩湃", image: UIImage(named: "tabbar_search"), selectedImage: UIImage(named: "tabbar_search_s")!.withRenderingMode(.alwaysOriginal)) |
| | | tabBar.viewControllers = [homeNav,carderCenterVCNav,clouseNav,searchVCNav] |
| | | sceneDelegate?.window?.rootViewController = tabBar |
| | | sceneDelegate?.window?.rootViewController?.view.addSubview(snapView!) |
| | | sceneDelegate?.window?.makeKeyAndVisible() |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "Group@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "Group@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_add_large_1@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "btn_add_large_1@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_delete_2@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "btn_delete_2@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "btn_s_setting@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "btn_s_setting@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_card_item@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_card_item@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "icon_card_mask@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "icon_card_mask@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "me_card@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "me_card@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "user_default@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "author" : "xcode", |
| | | "version" : 1 |
| | | } |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_course@2x.png", |
| | | "filename" : "Combined Shape@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_course@3x.png", |
| | | "filename" : "Combined Shape@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_course_s@2x.png", |
| | | "filename" : "Combined Shape@2x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_course_s@3x.png", |
| | | "filename" : "Combined Shape@3x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_profile@2x.png", |
| | | "filename" : "我的@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_profile@3x.png", |
| | | "filename" : "我的@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_profile_s@2x.png", |
| | | "filename" : "我的@2x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_profile_s@3x.png", |
| | | "filename" : "我的@3x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_welfare@2x.png", |
| | | "filename" : "H5-个人中心-优惠卡券@2x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_welfare@3x.png", |
| | | "filename" : "H5-个人中心-优惠卡券@3x(1).png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_welfare_s@2x.png", |
| | | "filename" : "H5-个人中心-优惠卡券@2x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "filename" : "tabbar_welfare_s@3x.png", |
| | | "filename" : "H5-个人中心-优惠卡券@3x.png", |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | |
| | | |
| | | |
| | | /// 需要透明Nav的VC |
| | | private var lucencyVCs = [RechargeRecordVC.self,RechargeCenterVC.self] |
| | | private var lucencyVCs = [RechargeRecordVC.self,RechargeCenterVC.self] |
| | | |
| | | /// 世界杯风格 |
| | | private var worldCupVCs = [SearchVC.self,WorldCupVC.self,WorldCupHeaderVC.self,WorldCupMenuVC.self,WorldCupContentVC.self,WorldCupRecordVC.self,WorldCupRankVC.self,WorldCupListVC.self,WorldCupContentApplyVC.self,WorldCupContentApplyInputVC.self,WorldCupContentDetailVC.self] |
| | | private var worldCupVCs = [WorldCupVC.self,WorldCupHeaderVC.self,WorldCupMenuVC.self,WorldCupContentVC.self,WorldCupRecordVC.self,WorldCupRankVC.self,WorldCupListVC.self,WorldCupContentApplyVC.self,WorldCupContentApplyInputVC.self,WorldCupContentDetailVC.self] |
| | | |
| | | private let img = UIImage.jq_gradient([UIColor(hexStr: "#FD8C02"),UIColor(hexStr: "#FD7202")], size: CGSize(width: JQ_ScreenW, height: JQ_NavBarHeight), radius: 0, locations: [0,1], direction: .vertical) |
| | | |
| | |
| | | self.navigationBar.shadowImage = UIImage() |
| | | self.navigationBar.isTranslucent = true |
| | | self.delegate = self |
| | | // self.popDelegate = self.interactivePopGestureRecognizer?.delegate |
| | | self.interactivePopGestureRecognizer?.delegate = self |
| | | |
| | | |
| | |
| | | return |
| | | } |
| | | |
| | | if viewController.classForCoder == CardCenterVC.self{ |
| | | if #available(iOS 15.0, *) { |
| | | navigationBar.standardAppearance.backgroundImage = img |
| | | navigationBar.scrollEdgeAppearance?.backgroundImage = img |
| | | }else{ |
| | | navigationBar.setBackgroundImage(img, for: .default) |
| | | } |
| | | return |
| | | } |
| | | |
| | | let status = lucencyVCs.contains(where: {$0 == viewController.classForCoder}) |
| | | if (navigationController.viewControllers.count == 1 || status) && !(viewController is WelfareVC){ |
| | | if #available(iOS 15.0, *) { |
| | |
| | | view_btns.isHidden = true |
| | | webView.navigationDelegate = self |
| | | |
| | | yy_popBlock = {[unowned self] in |
| | | NotificationCenter.default.post(name: Noti_showSheetView, object: nil) |
| | | self.navigationController?.popViewController(animated: true) |
| | | } |
| | | |
| | | if type != .other{ |
| | | title = type.titleStr |
| | | |
| | |
| | | title = type.titleStr |
| | | } |
| | | |
| | | if !content.isEmpty{ |
| | | webView.loadHTMLString(content!.jq_wrapHtml(), baseURL: nil) |
| | | return |
| | | } |
| | | |
| | | Services.queryProtocol(type,progress: false).subscribe(onNext: {[weak self] result in |
| | | if let text = result.data?.jq_wrapHtml(edge: .init(top: 5, left:0, bottom: 0, right: 0)){ |
| | | self?.webView.loadHTMLString(text, baseURL: nil) |
| | |
| | | case recharge //充值 |
| | | case goods(ExchangeType) |
| | | case activity |
| | | case huiminCard |
| | | case worldCup |
| | | } |
| | | |
| | |
| | | |
| | | case worldcupDetail = 9 |
| | | |
| | | case huimin = 10 |
| | | |
| | | case nothing = -999 |
| | | |
| | | var defaultImg:UIImage{ |
| | |
| | | var birthday = "" |
| | | var headImg = "" |
| | | var height:Double = 0 |
| | | var idCard:String? |
| | | var idCard:String = "" |
| | | var name = "" |
| | | var phone:String? |
| | | var phone:String = "" |
| | | var sex:GenderType = .man |
| | | var weight:Double = 0 |
| | | |
| | | var stuId:Int? |
| | | } |
| | | |
| | | struct StudentProfile1Model:HandyJSON{ |
| | | struct StudentProfile1Model:HandyJSON,Hashable{ |
| | | var birthday = "" |
| | | var isNot = 2 //1. 是默认 2. 不是默认 |
| | | var stuAge:Int = 0 |
| | |
| | | var storeCoverDrawing = "" |
| | | } |
| | | |
| | | struct ActivityDetailPartModel:HandyJSON{ |
| | | struct ActivityDetailPartModel:HandyJSON,Hashable{ |
| | | var age = 0 |
| | | var id = 0 |
| | | var idcard = "" |
| | |
| | | var isBind = 0 |
| | | } |
| | | |
| | | struct HuiminCardModel:HandyJSON{ |
| | | var cardList = [HuiminCardItemModel]() |
| | | var introduce:String = "" |
| | | var showType = 0 //1展示富文本内容 2展示惠民卡列表 |
| | | } |
| | | |
| | | struct HuiminCardItemModel:HandyJSON{ |
| | | var cover = "" |
| | | var id = 0 |
| | | var isBuy = 0 |
| | | } |
| | | |
| | | struct HuiminCardDetailModel:HandyJSON{ |
| | | var agreementSettings = [HuiminCardDetailAgreementModel]() |
| | | var banner: String = "" |
| | | var buyCover: String = "" |
| | | var buyRemark: String = "" |
| | | var endTime: String = "" |
| | | var grantCount: Int = 0 |
| | | var huiMinName: String = "" |
| | | var huiMinType: Int = 0 |
| | | var id: Int = 0 |
| | | var introduce: String = "" |
| | | var qrCode:String = "" |
| | | var isBuy: Int = 0 |
| | | var limitCount: Int = 0 |
| | | var salesMoney: Double = 0 |
| | | var sort: String = "" |
| | | var startTime: String = "" |
| | | var status: Int = 0 |
| | | var storeId: Int = 0 |
| | | var unBuyCover: String = "" |
| | | var unBuyRemark: String = "" |
| | | var unUseTimes: String = "" |
| | | var useIds: String = "" |
| | | var useScope: Int = 0 |
| | | var useTimes: String = "" |
| | | var useWeeks: String = "" |
| | | } |
| | | |
| | | struct HuiminCardDetailAgreementModel:HandyJSON { |
| | | var agreementContent: String = "" |
| | | var agreementId: Int = 0 |
| | | var agreementName: String = "" |
| | | var id: Int = 0 |
| | | } |
| | | |
| | | struct HuiminCardMyItemModel:HandyJSON{ |
| | | var cardId: Int = 0 |
| | | var cover = "" |
| | | var endTime = "" |
| | | var id: Int = 0 |
| | | var isExpire: Int = 0 //是否过期 0否1是 |
| | | var isRefund: Int = 0 //是否可以退款 0否1是2退款中 |
| | | var paymentTime = "" |
| | | var status: Int = 0 //状态1待支付2使用中3已退款 |
| | | var salesMoney:Double = 0 |
| | | var studentId = "" |
| | | var studentList = [HuiminCardItemStuModel]() |
| | | } |
| | | |
| | | struct HuiminCardItemStuModel:HandyJSON{ |
| | | var appUserId: Int = 0 |
| | | var birthday:String = "" |
| | | var bmi: Int = 0 |
| | | var headImg:String = "" |
| | | var height: Int = 0 |
| | | var id: Int = 0 |
| | | var idCard:String = "" |
| | | var insertTime:String = "" |
| | | var isDefault: Int = 0 |
| | | var lateralSurface:String = "" |
| | | var name:String = "" |
| | | var phone:String = "" |
| | | var sex: Int = 0 |
| | | var state: Int = 0 |
| | | var weight: Int = 0 |
| | | } |
| | | |
| | | struct HuiminCardDetail_1_Model:HandyJSON{ |
| | | var cardId: Int = 0 |
| | | var endTime: String = "" |
| | | var huiminCard: HuiminCardDetailModel? |
| | | var introduce: String = "" |
| | | var qrCode: String = "" |
| | | var studentList = [HuiminCardItemStuModel]() |
| | | } |
| | | |
| | | struct HuiminCardRuleInfoModel:HandyJSON{ |
| | | var addUserRemark = "" |
| | | var id = 0 |
| | | var selectUserRemark = "" |
| | | var storeNoHuiminCardIntro = "" |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | var msg: String = "" |
| | | } |
| | | |
| | | protocol BaseResponseProtocol:HandyJSON{ |
| | | |
| | | } |
| | | |
| | | struct BaseResponseList<T :HandyJSON>: HandyJSON { |
| | | var list: [T] = [] |
| | | var totalSession:Int = 0 |
| | |
| | | |
| | | #if DEBUG |
| | | //let All_Url = "http://192.168.110.80:56666" //正式地址 |
| | | let All_Url = "http://8.137.22.229:56666" |
| | | let All_Url = "http://vbef9arg13uu.guyubao.com" |
| | | let Game_Url = "https://try.daowepark.com" |
| | | //let Socket_Url = "192.168.110.22" |
| | | #else |
| | |
| | | .append(key: "id", value: model.id) |
| | | .append(key: "idcard", value: model.idcard) |
| | | .append(key: "headImg",value: model.headImg) |
| | | .append(key:"isStudent",value:model.isStudent) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | |
| | | .append(key: "id", value: id) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | } |
| | | |
| | | extension Services{ |
| | | class func getHuiminAgreementAndList(page:Int,pageSize:Int = 20,storeId:Int)->Observable<BaseResponse<HuiminCardModel>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/getHuiminAgreementAndList") |
| | | .append(key: "pageNo", value: page) |
| | | .append(key: "pageSize", value: pageSize) |
| | | .append(key: "storeId", value: storeId) |
| | | return NetworkRequest.request(params: params, method: .post, progress: false) |
| | | } |
| | | |
| | | class func getHuiminDetail(id:Int,storeId:Int)->Observable<BaseResponse<HuiminCardDetailModel>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/getHuiminCardDetail") |
| | | .append(key: "id", value: id) |
| | | .append(key: "storeId", value: storeId) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | | class func getMyHuiminCard(page:Int,pageSize:Int = 20)->Observable<BaseResponse<[HuiminCardMyItemModel]>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/myHuiminCardList") |
| | | .append(key: "pageNo", value: page) |
| | | .append(key: "pageSize", value: pageSize) |
| | | return NetworkRequest.request(params: params, method: .post, progress: false) |
| | | } |
| | | |
| | | class func payHuiminCard(id:Int,payType:PayType,studentIds:String)->Observable<BaseResponse<PaymentModel>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/payHuiminCard") |
| | | .append(key: "id", value: id) |
| | | .append(key: "payType", value: payType.rawValue) |
| | | .append(key: "studentIds", value: studentIds) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | | class func myHuiminCardDetail(id:Int)->Observable<BaseResponse<HuiminCardDetail_1_Model>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/myHuiminCardDetail") |
| | | .append(key: "id", value: id) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | | class func myHuiminRefund(id:Int)->Observable<BaseResponse<HuiminCardDetail_1_Model>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/refund") |
| | | .append(key: "id", value: id) |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | |
| | | class func myHuiminRuleInfo()->Observable<BaseResponse<HuiminCardRuleInfoModel>>{ |
| | | let params = ParamsAppender.build(url: All_Url) |
| | | .interface(url: "/activity/huimin/getContentForStudent") |
| | | return NetworkRequest.request(params: params, method: .post, progress: true) |
| | | } |
| | | } |
| | | |
| | | extension Services{ |
| | |
| | | items.append(NormalSimpleModel(id: 1, name: "全部用户参与")) |
| | | items.append(NormalSimpleModel(id: 2, name: "仅限年度会员参与")) |
| | | items.append(NormalSimpleModel(id: 3, name: "仅限运动营成员参与")) |
| | | items.append(NormalSimpleModel(id: 4, name: "仅限队伍报名")) |
| | | courseSubTypeView = CourseSubTypeView.show(inView: self.view, afterView: btn_joinCondition, items: items,selectModel: selectSignupConditionModel) { [weak self] m in |
| | | sender.setTitle(m.name, for: .normal) |
| | | sender.isSelected = false |
| | |
| | | |
| | | switch m.status { |
| | | case .prepare: |
| | | |
| | | //不能取消 |
| | | if m.apply == 1{ |
| | | btn_cancel.isHidden = true;return |
| | | } |
| | | |
| | | let name = m.apply == 1 ? "取消":"已取消" |
| | | let color = m.apply == 1 ? Def_ThemeColor:UIColor(hexStr: "#C0C0C0") |
| | | btn_cancel.isUserInteractionEnabled = m.apply == 1 |
| | |
| | | btn_cancel.setImage(UIImage(named: "btn_cancel"), for: .normal) |
| | | } |
| | | |
| | | |
| | | case .ongoing: |
| | | //不能取消 |
| | | if m.apply == 1{ |
| | | btn_cancel.isHidden = true;return |
| | | } |
| | | |
| | | let endTime = Date.jq_StringToTimeInterval(m.registerEndTime, "yyyy-MM-dd HH:mm") |
| | | let a = Date.jq_CalByDays(startDate: Date(), endDate: Date(timeIntervalSince1970: endTime)) |
| | | if Date.jq_CalByEnum(startDate: Date(), endDate: Date(timeIntervalSince1970: endTime)).minute > 0{ |
| | | let name = m.apply == 1 ? "取消":"已取消" |
| | | let color = m.apply == 1 ? Def_ThemeColor:UIColor(hexStr: "#C0C0C0") |
| | |
| | | } |
| | | |
| | | case .over: |
| | | btn_cancel.isHidden = false |
| | | btn_cancel.setTitle("已结束", for: .normal) |
| | | btn_cancel.isUserInteractionEnabled = false |
| | | btn_cancel.backgroundColor = UIColor(hexStr: "#C0C0C0") |
| | | case .cancel: |
| | | btn_cancel.isHidden = false |
| | | btn_cancel.setTitle("已取消", for: .normal) |
| | | btn_cancel.isUserInteractionEnabled = false |
| | | btn_cancel.backgroundColor = UIColor(hexStr: "#C0C0C0") |
| | |
| | | tableView.register(UINib(nibName: "StudentInfo_2_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_2_TCell") |
| | | let moreBtnAttributeding = AttributedStringbuilder.build().add(string: "查看更多", withFont: UIFont.systemFont(ofSize: 12, weight: .medium), withColor: Def_ThemeColor).underLine(color: Def_ThemeColor).mutableAttributedString |
| | | btn_moreMatchStore.setAttributedTitle(moreBtnAttributeding, for: .normal) |
| | | btn_cancel.isHidden = true |
| | | } |
| | | |
| | | @IBAction func matchStoreAction(_ sender: UIButton) { |
New file |
| | |
| | | // |
| | | // CardCenterTCell.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/26. |
| | | // |
| | | |
| | | import UIKit |
| | | import SDWebImage |
| | | |
| | | class CardCenterTCell: UITableViewCell { |
| | | |
| | | @IBOutlet weak var img_bg: UIImageView! |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | img_bg.cornerRadius = 10 |
| | | } |
| | | |
| | | |
| | | func setHuiminCardItemModel(_ model:HuiminCardItemModel){ |
| | | img_bg.sd_setImage(with: URL(string: model.cover)) |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="305" id="KGk-i7-Jjw" customClass="CardCenterTCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="744" height="305"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> |
| | | <rect key="frame" x="0.0" y="0.0" width="744" height="305"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleAspectFill" translatesAutoresizingMaskIntoConstraints="NO" id="qoX-GF-JqO"> |
| | | <rect key="frame" x="20" y="0.0" width="704" height="285"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_card_mask" translatesAutoresizingMaskIntoConstraints="NO" id="B5d-EI-Qow"> |
| | | <rect key="frame" x="0.0" y="0.0" width="704" height="285"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="B5d-EI-Qow" firstAttribute="leading" secondItem="qoX-GF-JqO" secondAttribute="leading" id="8tU-q8-yzI"/> |
| | | <constraint firstItem="B5d-EI-Qow" firstAttribute="top" secondItem="qoX-GF-JqO" secondAttribute="top" id="HOz-It-sNj"/> |
| | | <constraint firstAttribute="bottom" secondItem="B5d-EI-Qow" secondAttribute="bottom" id="O5P-V4-5bm"/> |
| | | <constraint firstAttribute="trailing" secondItem="B5d-EI-Qow" secondAttribute="trailing" id="vJD-FB-k2U"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="qoX-GF-JqO" secondAttribute="trailing" constant="20" id="NyC-Hg-r3J"/> |
| | | <constraint firstAttribute="bottom" secondItem="qoX-GF-JqO" secondAttribute="bottom" constant="20" id="Z11-wO-SyL"/> |
| | | <constraint firstItem="qoX-GF-JqO" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="kgj-nB-pR9"/> |
| | | <constraint firstItem="qoX-GF-JqO" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="20" id="ro3-KW-P00"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <connections> |
| | | <outlet property="img_bg" destination="B5d-EI-Qow" id="s3S-hE-bX3"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="453.43511450381675" y="94.014084507042256"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_card_mask" width="350" height="140"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // CardCenterAddUserVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/27. |
| | | // |
| | | |
| | | import UIKit |
| | | import QMUIKit |
| | | import JQTools |
| | | |
| | | class CardCenterAddUserVC: BaseVC { |
| | | |
| | | @IBOutlet weak var img_profile: UIImageView! |
| | | @IBOutlet weak var tf_name: QMUITextField! |
| | | @IBOutlet weak var tf_gender: UITextField! |
| | | @IBOutlet weak var tf_idCard: UITextField! |
| | | @IBOutlet weak var tf_phone: QMUITextField! |
| | | @IBOutlet weak var btn_complete: UIButton! |
| | | @IBOutlet weak var label_rule: UILabel! |
| | | var studentModel = StudentProfileModel() |
| | | |
| | | var profileImg:UIImage? |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "添加人员" |
| | | |
| | | studentModel.headImg = "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/b768075b77c248a189d48bcd60b6a3f8.jpg" |
| | | img_profile.sd_setImage(with: URL(string: studentModel.headImg)) |
| | | |
| | | yy_popBlock = {[unowned self] in |
| | | self.navigationController?.popViewController(animated: true, { |
| | | NotificationCenter.default.post(name: Noti_hiddenCardCenter_Add, object: false) |
| | | }) |
| | | } |
| | | |
| | | let idCardView = IDCardView() |
| | | idCardView.box.bind { [weak self] text in |
| | | self?.tf_idCard.text = text |
| | | } |
| | | tf_idCard.inputView = idCardView |
| | | |
| | | let tap = UITapGestureRecognizer(target: self, action: #selector(userImgUploadAction)) |
| | | img_profile.isUserInteractionEnabled = true |
| | | img_profile.addGestureRecognizer(tap) |
| | | |
| | | Services.myHuiminRuleInfo().subscribe(onNext: {[unowned self]data in |
| | | self.label_rule.text = data.data?.addUserRemark.jq_filterFromHTML_1() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | override func setUI() { |
| | | tf_gender.delegate = self |
| | | } |
| | | |
| | | override func viewDidLayoutSubviews() { |
| | | super.viewDidLayoutSubviews() |
| | | let colors = [UIColor(hexStr: "#FD8C02").cgColor, |
| | | UIColor(hexStr: "#FD7202").cgColor,] |
| | | btn_complete.jq_gradientNibColor(colorArr: colors, cornerRadius: 20) |
| | | btn_complete.cornerRadius = 20 |
| | | } |
| | | |
| | | |
| | | |
| | | @objc func userImgUploadAction(){ |
| | | JQ_ImagePickerTool.getSharedInstance().singleImage({ [weak self] image in |
| | | self?.img_profile.image = image |
| | | self?.profileImg = image |
| | | }, clipSize: CGSize(width: JQ_ScreenW, height: JQ_ScreenW)) |
| | | } |
| | | |
| | | |
| | | @IBAction func completeAction(_ sender: UIButton) { |
| | | |
| | | // guard profileImg != nil else { |
| | | // alertError(msg: "请上传人员头像");return |
| | | // } |
| | | |
| | | guard !tf_name.text!.isEmpty else {alertError(msg: tf_name.placeholder!);return} |
| | | |
| | | guard !tf_gender.text!.isEmpty else {alertError(msg: "请选择性别");return} |
| | | |
| | | if tf_gender.text?.isEmpty ?? true{ |
| | | alertError(msg: "请选择性别");return |
| | | } |
| | | |
| | | if tf_idCard.text?.isEmpty ?? true{ |
| | | alertError(msg: "请输入身份证号");return |
| | | } |
| | | |
| | | studentModel.name = tf_name.text ?? "" |
| | | studentModel.idCard = tf_idCard.text ?? "" |
| | | studentModel.phone = tf_phone.text ?? "" |
| | | |
| | | if profileImg != nil{ |
| | | showHUD("正在上传头像") |
| | | profileImg!.uploadImgToService().subscribe(onNext: { [weak self] imgUrl in |
| | | // guard let weakSelf = self else { return } |
| | | self?.studentModel.headImg = imgUrl |
| | | hiddenHUD() |
| | | self?.publishData() |
| | | }, onError: { error in |
| | | hiddenHUD() |
| | | alertError(msg: error.localizedDescription) |
| | | }).disposed(by: disposeBag) |
| | | }else{ |
| | | publishData() |
| | | } |
| | | } |
| | | |
| | | private func publishData(){ |
| | | Services.addParticipant(studentModel).subscribe(onNext: {[weak self] data in |
| | | self?.addStudentSuccess(text: "添加成功") |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | private func addStudentSuccess(text:String){ |
| | | alertSuccess(msg: text) |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+1) { |
| | | NotificationCenter.default.post(name: Noti_hiddenCardCenter_Add, object: false) |
| | | // NotificationCenter.default.post(name: StudentUpdate_Nofi, object: ["needShow":true]) |
| | | self.navigationController?.popViewController() |
| | | } |
| | | } |
| | | |
| | | deinit{ |
| | | JQ_ImagePickerTool.destroy() |
| | | } |
| | | } |
| | | |
| | | extension CardCenterAddUserVC:UITextFieldDelegate{ |
| | | func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { |
| | | |
| | | if textField == tf_gender{ |
| | | let alertVC = UIAlertController(title: "性别", message: nil, preferredStyle: .actionSheet) |
| | | alertVC.addAction(UIAlertAction(title: "男", style: .default) { _ in |
| | | self.tf_gender.text = "男" |
| | | self.studentModel.sex = .man |
| | | }) |
| | | |
| | | alertVC.addAction(UIAlertAction(title: "女", style: .default) { _ in |
| | | self.tf_gender.text = "女" |
| | | self.studentModel.sex = .woman |
| | | }) |
| | | |
| | | alertVC.addAction(UIAlertAction(title: "取消", style: .cancel)) |
| | | present(alertVC, animated: true) |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CardCenterAddUserVC" customModule="WanPai" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="btn_complete" destination="H8r-kG-QaS" id="AJW-me-57m"/> |
| | | <outlet property="img_profile" destination="DWX-NA-H7i" id="3Wa-7B-ble"/> |
| | | <outlet property="label_rule" destination="jlC-ya-Z7x" id="XHU-R3-7tU"/> |
| | | <outlet property="tf_gender" destination="L0m-wg-Lsi" id="vM5-Hn-I3H"/> |
| | | <outlet property="tf_idCard" destination="GOW-Rm-Eeu" id="Gqx-hP-oyf"/> |
| | | <outlet property="tf_name" destination="lvW-A7-Zz2" id="sK0-E7-pUe"/> |
| | | <outlet property="tf_phone" destination="BYw-dm-CjF" id="7Ah-8T-yJH"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | </connections> |
| | | </placeholder> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="zHX-4j-dCx"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="351"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IWS-eK-baw"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="151"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_add_large_1" translatesAutoresizingMaskIntoConstraints="NO" id="DWX-NA-H7i"> |
| | | <rect key="frame" x="145.66666666666666" y="24.666666666666671" width="102" height="102"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="102" id="BaO-nt-VUP"/> |
| | | <constraint firstAttribute="width" constant="102" id="w1O-iX-7S6"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="51"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="DWX-NA-H7i" firstAttribute="centerY" secondItem="IWS-eK-baw" secondAttribute="centerY" id="bPC-RQ-SGZ"/> |
| | | <constraint firstItem="DWX-NA-H7i" firstAttribute="centerX" secondItem="IWS-eK-baw" secondAttribute="centerX" id="f2o-N0-YRJ"/> |
| | | <constraint firstAttribute="height" constant="151" id="tNs-Uu-0DY"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mxP-f1-ysF"> |
| | | <rect key="frame" x="0.0" y="151" width="393" height="50"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="cJv-Jv-05E"> |
| | | <rect key="frame" x="15" y="19" width="12" height="12"/> |
| | | </imageView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZBp-z0-Tvb"> |
| | | <rect key="frame" x="14" y="49.666666666666686" width="365" height="0.3333333333333357"/> |
| | | <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="0.40000000000000002" id="gjw-t3-HPR"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ilj-PF-IZh"> |
| | | <rect key="frame" x="30" y="16.666666666666657" width="28" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="lvW-A7-Zz2" customClass="QMUITextField"> |
| | | <rect key="frame" x="120" y="0.0" width="263" height="49.666666666666664"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="6"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="ZBp-z0-Tvb" secondAttribute="trailing" constant="14" id="0uJ-6o-qAf"/> |
| | | <constraint firstAttribute="trailing" secondItem="lvW-A7-Zz2" secondAttribute="trailing" constant="10" id="2C8-2O-MHr"/> |
| | | <constraint firstItem="cJv-Jv-05E" firstAttribute="centerY" secondItem="mxP-f1-ysF" secondAttribute="centerY" id="4eJ-Vq-KP3"/> |
| | | <constraint firstItem="ZBp-z0-Tvb" firstAttribute="top" secondItem="lvW-A7-Zz2" secondAttribute="bottom" id="5vz-aX-7KJ"/> |
| | | <constraint firstAttribute="bottom" secondItem="ZBp-z0-Tvb" secondAttribute="bottom" id="JSL-it-55L"/> |
| | | <constraint firstItem="lvW-A7-Zz2" firstAttribute="top" secondItem="mxP-f1-ysF" secondAttribute="top" id="Nqz-yh-MDL"/> |
| | | <constraint firstItem="Ilj-PF-IZh" firstAttribute="centerY" secondItem="cJv-Jv-05E" secondAttribute="centerY" id="SVv-HK-MMF"/> |
| | | <constraint firstItem="ZBp-z0-Tvb" firstAttribute="leading" secondItem="mxP-f1-ysF" secondAttribute="leading" constant="14" id="aOP-GD-ouC"/> |
| | | <constraint firstItem="cJv-Jv-05E" firstAttribute="leading" secondItem="mxP-f1-ysF" secondAttribute="leading" constant="15" id="fOP-VO-yEL"/> |
| | | <constraint firstAttribute="height" constant="50" id="nRm-c8-vNF"/> |
| | | <constraint firstItem="lvW-A7-Zz2" firstAttribute="leading" secondItem="mxP-f1-ysF" secondAttribute="leading" constant="120" id="otC-q9-Ujs"/> |
| | | <constraint firstItem="Ilj-PF-IZh" firstAttribute="leading" secondItem="cJv-Jv-05E" secondAttribute="trailing" constant="3" id="p8e-iT-l7q"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xcj-df-uEI"> |
| | | <rect key="frame" x="0.0" y="201" width="393" height="50"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="EI1-bL-f2F"> |
| | | <rect key="frame" x="15" y="19" width="12" height="12"/> |
| | | </imageView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="384-Hn-thC"> |
| | | <rect key="frame" x="14" y="49.666666666666686" width="365" height="0.3333333333333357"/> |
| | | <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="0.40000000000000002" id="nua-CF-bkK"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="性别" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BB8-xb-nT6"> |
| | | <rect key="frame" x="30" y="16.666666666666686" width="28" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请选择" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="L0m-wg-Lsi"> |
| | | <rect key="frame" x="120" y="0.0" width="233" height="49.666666666666664"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | </textField> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="6bQ-Ue-jug"> |
| | | <rect key="frame" x="366" y="21" width="13" height="8"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="384-Hn-thC" firstAttribute="leading" secondItem="xcj-df-uEI" secondAttribute="leading" constant="14" id="6hU-Gt-MbD"/> |
| | | <constraint firstAttribute="trailing" secondItem="6bQ-Ue-jug" secondAttribute="trailing" constant="14" id="BZA-Nj-JNW"/> |
| | | <constraint firstItem="384-Hn-thC" firstAttribute="top" secondItem="L0m-wg-Lsi" secondAttribute="bottom" id="KpP-pc-8dk"/> |
| | | <constraint firstItem="L0m-wg-Lsi" firstAttribute="top" secondItem="xcj-df-uEI" secondAttribute="top" id="PKq-Vf-TF3"/> |
| | | <constraint firstItem="L0m-wg-Lsi" firstAttribute="leading" secondItem="xcj-df-uEI" secondAttribute="leading" constant="120" id="S7d-WV-2iA"/> |
| | | <constraint firstItem="EI1-bL-f2F" firstAttribute="leading" secondItem="xcj-df-uEI" secondAttribute="leading" constant="15" id="T8U-8B-uMn"/> |
| | | <constraint firstAttribute="trailing" secondItem="384-Hn-thC" secondAttribute="trailing" constant="14" id="aDy-Z5-B7s"/> |
| | | <constraint firstItem="6bQ-Ue-jug" firstAttribute="centerY" secondItem="xcj-df-uEI" secondAttribute="centerY" id="aox-Jf-ean"/> |
| | | <constraint firstAttribute="bottom" secondItem="384-Hn-thC" secondAttribute="bottom" id="dNM-Mr-ngc"/> |
| | | <constraint firstAttribute="height" constant="50" id="jpj-dP-YFN"/> |
| | | <constraint firstItem="BB8-xb-nT6" firstAttribute="centerY" secondItem="EI1-bL-f2F" secondAttribute="centerY" id="nxV-KC-n3t"/> |
| | | <constraint firstItem="BB8-xb-nT6" firstAttribute="leading" secondItem="EI1-bL-f2F" secondAttribute="trailing" constant="3" id="pYu-Yx-ctb"/> |
| | | <constraint firstItem="EI1-bL-f2F" firstAttribute="centerY" secondItem="xcj-df-uEI" secondAttribute="centerY" id="snS-0Q-vrs"/> |
| | | <constraint firstAttribute="trailing" secondItem="L0m-wg-Lsi" secondAttribute="trailing" constant="40" id="ugC-mo-8it"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VPf-dF-RZL"> |
| | | <rect key="frame" x="0.0" y="251" width="393" height="50"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BlX-1M-rRX"> |
| | | <rect key="frame" x="14" y="49.666666666666686" width="365" height="0.3333333333333357"/> |
| | | <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="0.40000000000000002" id="XoF-3o-kdn"/> |
| | | </constraints> |
| | | </view> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="GOW-Rm-Eeu"> |
| | | <rect key="frame" x="120" y="0.0" width="233" height="49.666666666666664"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="numberPad"/> |
| | | </textField> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="cto-uX-pJg"> |
| | | <rect key="frame" x="14" y="16.666666666666686" width="70.666666666666671" height="17"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="gBC-6R-nbS"> |
| | | <rect key="frame" x="0.0" y="0.0" width="12" height="17"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身份证号" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HvJ-L3-pii"> |
| | | <rect key="frame" x="14.999999999999996" y="0.0" width="55.666666666666657" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="GOW-Rm-Eeu" secondAttribute="trailing" constant="40" id="Gpa-w3-pcW"/> |
| | | <constraint firstItem="BlX-1M-rRX" firstAttribute="leading" secondItem="VPf-dF-RZL" secondAttribute="leading" constant="14" id="L7U-4R-Kjr"/> |
| | | <constraint firstItem="BlX-1M-rRX" firstAttribute="top" secondItem="GOW-Rm-Eeu" secondAttribute="bottom" id="Q8M-rh-LIG"/> |
| | | <constraint firstItem="GOW-Rm-Eeu" firstAttribute="leading" secondItem="VPf-dF-RZL" secondAttribute="leading" constant="120" id="SzG-sM-BUL"/> |
| | | <constraint firstItem="cto-uX-pJg" firstAttribute="leading" secondItem="VPf-dF-RZL" secondAttribute="leading" constant="14" id="T0S-fC-AFv"/> |
| | | <constraint firstAttribute="bottom" secondItem="BlX-1M-rRX" secondAttribute="bottom" id="aaC-66-tN2"/> |
| | | <constraint firstAttribute="trailing" secondItem="BlX-1M-rRX" secondAttribute="trailing" constant="14" id="gQp-uK-jwa"/> |
| | | <constraint firstAttribute="height" constant="50" id="pOH-AM-suW"/> |
| | | <constraint firstItem="cto-uX-pJg" firstAttribute="centerY" secondItem="VPf-dF-RZL" secondAttribute="centerY" id="rGv-id-ohP"/> |
| | | <constraint firstItem="GOW-Rm-Eeu" firstAttribute="top" secondItem="VPf-dF-RZL" secondAttribute="top" id="uR8-ta-2NB"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xiE-VZ-cR5"> |
| | | <rect key="frame" x="0.0" y="301" width="393" height="50"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Epl-ON-Wxp"> |
| | | <rect key="frame" x="14" y="49.666666666666686" width="365" height="0.3333333333333357"/> |
| | | <color key="backgroundColor" red="0.83137254900000002" green="0.83137254900000002" blue="0.83137254900000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="0.40000000000000002" id="Fsp-W6-o0l"/> |
| | | </constraints> |
| | | </view> |
| | | <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入联系方式" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BYw-dm-CjF" customClass="QMUITextField"> |
| | | <rect key="frame" x="120" y="0.0" width="233" height="49.666666666666664"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="numberPad"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength"> |
| | | <integer key="value" value="11"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </textField> |
| | | <stackView opaque="NO" contentMode="scaleToFill" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="b8P-3m-rMQ"> |
| | | <rect key="frame" x="13.999999999999996" y="16.666666666666686" width="55.666666666666657" height="17"/> |
| | | <subviews> |
| | | <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="0RW-Qf-OgE"> |
| | | <rect key="frame" x="0.0" y="0.0" width="0.0" height="17"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联系方式" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="noU-cz-mpb"> |
| | | <rect key="frame" x="0.0" y="0.0" width="55.666666666666664" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="b8P-3m-rMQ" firstAttribute="centerY" secondItem="xiE-VZ-cR5" secondAttribute="centerY" id="MVl-fl-ScG"/> |
| | | <constraint firstItem="BYw-dm-CjF" firstAttribute="top" secondItem="xiE-VZ-cR5" secondAttribute="top" id="ORY-bZ-BZ9"/> |
| | | <constraint firstAttribute="trailing" secondItem="BYw-dm-CjF" secondAttribute="trailing" constant="40" id="Pok-zr-xPb"/> |
| | | <constraint firstItem="b8P-3m-rMQ" firstAttribute="leading" secondItem="xiE-VZ-cR5" secondAttribute="leading" constant="14" id="Qeg-YD-cWI"/> |
| | | <constraint firstItem="Epl-ON-Wxp" firstAttribute="leading" secondItem="xiE-VZ-cR5" secondAttribute="leading" constant="14" id="Ro9-1E-UXj"/> |
| | | <constraint firstAttribute="trailing" secondItem="Epl-ON-Wxp" secondAttribute="trailing" constant="14" id="biK-2y-DPI"/> |
| | | <constraint firstAttribute="bottom" secondItem="Epl-ON-Wxp" secondAttribute="bottom" id="c5r-f2-8rb"/> |
| | | <constraint firstItem="BYw-dm-CjF" firstAttribute="leading" secondItem="xiE-VZ-cR5" secondAttribute="leading" constant="120" id="oah-lc-2tz"/> |
| | | <constraint firstAttribute="height" constant="50" id="u8j-bK-dpu"/> |
| | | <constraint firstItem="Epl-ON-Wxp" firstAttribute="top" secondItem="BYw-dm-CjF" secondAttribute="bottom" id="xwL-XF-d1j"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请选择您要绑定使用本张“惠民卡”的人员,如果您是第1次购买,请点击右上角”添加人员“添加使用者”" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jlC-ya-Z7x"> |
| | | <rect key="frame" x="14" y="421" width="365" height="28.666666666666686"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/> |
| | | <color key="textColor" name="FE6E0D"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="H8r-kG-QaS"> |
| | | <rect key="frame" x="102" y="655" width="189" height="40"/> |
| | | <color key="backgroundColor" name="FE6E0D"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="189" id="2RY-iN-hct"/> |
| | | <constraint firstAttribute="height" constant="40" id="gHV-Sj-i1G"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="确认"/> |
| | | <connections> |
| | | <action selector="completeAction:" destination="-1" eventType="touchUpInside" id="3lg-kh-zLp"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="zHX-4j-dCx" secondAttribute="trailing" id="0AC-NB-Efc"/> |
| | | <constraint firstItem="zHX-4j-dCx" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="8Zg-E4-EJS"/> |
| | | <constraint firstItem="jlC-ya-Z7x" firstAttribute="top" secondItem="zHX-4j-dCx" secondAttribute="bottom" constant="11" id="MWY-u2-AiH"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="jlC-ya-Z7x" secondAttribute="trailing" constant="14" id="Tgv-f4-tBY"/> |
| | | <constraint firstItem="jlC-ya-Z7x" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="XF4-kg-ZxN"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="H8r-kG-QaS" secondAttribute="bottom" constant="123" id="mLh-nv-CL6"/> |
| | | <constraint firstItem="H8r-kG-QaS" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="nQQ-3t-54M"/> |
| | | <constraint firstItem="zHX-4j-dCx" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" id="xs7-5f-hel"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="139" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_add_large_1" width="112" height="112"/> |
| | | <image name="icon_down_arrow" width="13" height="8"/> |
| | | <image name="icon_item_p" width="12" height="12"/> |
| | | <namedColor name="FE6E0D"> |
| | | <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // CardCenterDetailVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/26. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | import WebKit |
| | | import Combine |
| | | |
| | | class CardCenterDetailVC: BaseVC { |
| | | |
| | | @IBOutlet weak var btn_payment: UIButton! |
| | | @IBOutlet weak var biew_bottom: UIView! |
| | | @IBOutlet weak var view_banner: UIView! |
| | | @IBOutlet weak var label_cardName: UILabel! |
| | | @IBOutlet weak var label_price: UILabel! |
| | | @IBOutlet weak var label_useInfo: UILabel! |
| | | @IBOutlet weak var label_limit: UILabel! |
| | | @IBOutlet weak var webView: WKWebView! |
| | | @IBOutlet weak var cons_web_hei: NSLayoutConstraint! |
| | | |
| | | private var id:Int! |
| | | private var storeId:Int! |
| | | private var subscriptions = Set<AnyCancellable>() |
| | | private var detailModel:HuiminCardDetailModel? |
| | | |
| | | private lazy var bannerView:CommonBannerView = { |
| | | let v = CommonBannerView() |
| | | return v |
| | | }() |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "惠民卡详情" |
| | | |
| | | Services.getHuiminDetail(id: id, storeId: storeId).subscribe(onNext: {[unowned self]data in |
| | | if let m = data.data{ |
| | | self.detailModel = m |
| | | self.label_cardName.text = m.huiMinName |
| | | self.label_price.attributedText = AttributedStringbuilder.build().add(string: "¥", withFont: .systemFont(ofSize: 20, weight: .medium), withColor: UIColor(hexStr: "#EE0B0B")) |
| | | .add(string: m.salesMoney.jq_unit(), withFont: .systemFont(ofSize: 20, weight: .medium), withColor: UIColor(hexStr: "#EE0B0B")) |
| | | .add(string:"/人", withFont: .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexStr: "#EE0B0B")).mutableAttributedString |
| | | self.label_useInfo.text = m.unBuyRemark |
| | | self.label_limit.text = m.buyRemark |
| | | self.webView.loadHTMLString(m.introduce.jq_wrapHtml(), baseURL: nil) |
| | | |
| | | let imgs = m.banner.components(separatedBy: ",") |
| | | var items = [CommonBannerModel]() |
| | | for (index,img) in imgs.enumerated(){ |
| | | items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl)) |
| | | } |
| | | bannerView.setItems(items: items) |
| | | |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | required init(id:Int,storeId:Int){ |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.id = id |
| | | self.storeId = storeId |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func setUI() { |
| | | btn_payment.cornerRadius = 20 |
| | | biew_bottom.jq_addShadows(shadowColor: .black.withAlphaComponent(0.06), corner: 3, radius: 5, offset: CGSizeMake(10, -10), opacity: 1) |
| | | |
| | | view_banner.addSubview(bannerView) |
| | | bannerView.frame = CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.56) |
| | | } |
| | | |
| | | override func setRx() { |
| | | self.webView.scrollView.publisher(for: \.contentSize).sink {[unowned self] size in |
| | | self.cons_web_hei.constant = size.height |
| | | }.store(in: &subscriptions) |
| | | } |
| | | |
| | | @IBAction func buyNowAction(_ sender: UIButton) { |
| | | guard let m = detailModel else { return } |
| | | CardCenterSheetView.show(m) |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CardCenterDetailVC" customModule="WanPai" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="biew_bottom" destination="UvH-yi-oet" id="Eva-x8-GL1"/> |
| | | <outlet property="btn_payment" destination="J4B-Wp-1lb" id="bvo-go-i37"/> |
| | | <outlet property="cons_web_hei" destination="mNq-vI-2Xl" id="OqX-Ow-YIY"/> |
| | | <outlet property="label_cardName" destination="gem-q8-tP4" id="RGx-1X-h0S"/> |
| | | <outlet property="label_limit" destination="aY2-I8-jwa" id="TL7-5E-isk"/> |
| | | <outlet property="label_price" destination="kbe-fI-u7Z" id="cxJ-Sm-PFC"/> |
| | | <outlet property="label_useInfo" destination="R3I-hK-J6L" id="xVA-dl-VoM"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_banner" destination="svJ-l8-0wE" id="er9-8g-WBX"/> |
| | | <outlet property="webView" destination="Kgb-Eb-ct0" id="fm8-z2-a1y"/> |
| | | </connections> |
| | | </placeholder> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5u-yC-3lm"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="674"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="neQ-Hk-azv"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="556.33333333333337"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="svJ-l8-0wE"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="221.66666666666666"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="svJ-l8-0wE" secondAttribute="height" multiplier="1:0.564" id="zUA-Wf-OLz"/> |
| | | </constraints> |
| | | </view> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Tsv-eq-RRP"> |
| | | <rect key="frame" x="0.0" y="221.66666666666669" width="393" height="234.66666666666669"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MRq-zG-DKW"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="53"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="H5g-yH-jhe"> |
| | | <rect key="frame" x="13" y="52" width="380" height="1"/> |
| | | <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="qMQ-oy-FX8"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gem-q8-tP4"> |
| | | <rect key="frame" x="13.999999999999998" y="0.0" width="16.333333333333329" height="52"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="¥0/人" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kbe-fI-u7Z"> |
| | | <rect key="frame" x="40.333333333333343" y="15.666666666666627" width="338.66666666666663" height="20.333333333333329"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <color key="textColor" red="0.93333333333333335" green="0.043137254901960784" blue="0.043137254901960784" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="53" id="55v-Qv-XpC"/> |
| | | <constraint firstAttribute="trailing" secondItem="H5g-yH-jhe" secondAttribute="trailing" id="C3r-OK-Hj0"/> |
| | | <constraint firstItem="kbe-fI-u7Z" firstAttribute="leading" secondItem="gem-q8-tP4" secondAttribute="trailing" constant="10" id="C8A-P0-pbq"/> |
| | | <constraint firstItem="kbe-fI-u7Z" firstAttribute="centerY" secondItem="gem-q8-tP4" secondAttribute="centerY" id="Dnj-k0-EtY"/> |
| | | <constraint firstAttribute="bottom" secondItem="H5g-yH-jhe" secondAttribute="bottom" id="MkK-hd-nUm"/> |
| | | <constraint firstItem="gem-q8-tP4" firstAttribute="leading" secondItem="MRq-zG-DKW" secondAttribute="leading" constant="14" id="YhF-Rl-zT9"/> |
| | | <constraint firstAttribute="trailing" secondItem="kbe-fI-u7Z" secondAttribute="trailing" constant="14" id="a5K-hN-FTN"/> |
| | | <constraint firstItem="kbe-fI-u7Z" firstAttribute="centerY" secondItem="gem-q8-tP4" secondAttribute="centerY" id="ear-GE-xZU"/> |
| | | <constraint firstItem="gem-q8-tP4" firstAttribute="top" secondItem="MRq-zG-DKW" secondAttribute="top" id="hVL-9t-Ve6"/> |
| | | <constraint firstItem="H5g-yH-jhe" firstAttribute="top" secondItem="gem-q8-tP4" secondAttribute="bottom" id="w0e-xb-vYW"/> |
| | | <constraint firstItem="H5g-yH-jhe" firstAttribute="leading" secondItem="MRq-zG-DKW" secondAttribute="leading" constant="13" id="yvM-jx-xyh"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="l89-wo-ZXq"> |
| | | <rect key="frame" x="0.0" y="53.000000000000007" width="393" height="98.666666666666686"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Dk-bv-8cZ"> |
| | | <rect key="frame" x="13" y="97.666666666666629" width="380" height="1"/> |
| | | <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="SQf-IX-8EA"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="使用说明" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="exf-iq-DtT"> |
| | | <rect key="frame" x="14" y="14" width="365" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="jXo-GP-OTd"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1231231123123112312311231231123123112312311231231123123112312311231231" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R3I-hK-J6L"> |
| | | <rect key="frame" x="14" y="48" width="365" height="33.666666666666657"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="R3I-hK-J6L" firstAttribute="leading" secondItem="l89-wo-ZXq" secondAttribute="leading" constant="14" id="2tZ-L3-KEG"/> |
| | | <constraint firstAttribute="trailing" secondItem="8Dk-bv-8cZ" secondAttribute="trailing" id="7sS-N4-THQ"/> |
| | | <constraint firstAttribute="trailing" secondItem="exf-iq-DtT" secondAttribute="trailing" constant="14" id="Alj-jO-gTb"/> |
| | | <constraint firstItem="8Dk-bv-8cZ" firstAttribute="leading" secondItem="l89-wo-ZXq" secondAttribute="leading" constant="13" id="B4r-L0-9Dl"/> |
| | | <constraint firstAttribute="trailing" secondItem="R3I-hK-J6L" secondAttribute="trailing" constant="14" id="Jq8-jw-zmI"/> |
| | | <constraint firstItem="exf-iq-DtT" firstAttribute="leading" secondItem="l89-wo-ZXq" secondAttribute="leading" constant="14" id="VYy-i4-uS0"/> |
| | | <constraint firstItem="exf-iq-DtT" firstAttribute="top" secondItem="l89-wo-ZXq" secondAttribute="top" constant="14" id="W01-AY-2LT"/> |
| | | <constraint firstItem="8Dk-bv-8cZ" firstAttribute="top" secondItem="R3I-hK-J6L" secondAttribute="bottom" constant="16" id="ajg-ew-Cuh"/> |
| | | <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="53" id="jay-oI-x2J"/> |
| | | <constraint firstItem="R3I-hK-J6L" firstAttribute="top" secondItem="exf-iq-DtT" secondAttribute="bottom" constant="12" id="sVF-6S-uzt"/> |
| | | <constraint firstAttribute="bottom" secondItem="8Dk-bv-8cZ" secondAttribute="bottom" id="vc7-om-CzV"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HXu-4C-sU8"> |
| | | <rect key="frame" x="0.0" y="151.66666666666663" width="393" height="83"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uvP-gJ-d1J"> |
| | | <rect key="frame" x="13" y="82.000000000000057" width="380" height="1"/> |
| | | <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="ecK-aa-VGv"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="使用期限" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wev-ky-Z67"> |
| | | <rect key="frame" x="14" y="14" width="365" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="3EH-pU-J2Q"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aY2-I8-jwa"> |
| | | <rect key="frame" x="14" y="48" width="365" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="uvP-gJ-d1J" secondAttribute="trailing" id="0Ps-40-kcx"/> |
| | | <constraint firstItem="aY2-I8-jwa" firstAttribute="leading" secondItem="HXu-4C-sU8" secondAttribute="leading" constant="14" id="4bh-it-ELD"/> |
| | | <constraint firstAttribute="bottom" secondItem="uvP-gJ-d1J" secondAttribute="bottom" id="CHI-hI-ofO"/> |
| | | <constraint firstItem="aY2-I8-jwa" firstAttribute="top" secondItem="wev-ky-Z67" secondAttribute="bottom" constant="12" id="QE4-Wt-Em9"/> |
| | | <constraint firstItem="uvP-gJ-d1J" firstAttribute="top" secondItem="aY2-I8-jwa" secondAttribute="bottom" constant="16" id="RQL-KA-HdW"/> |
| | | <constraint firstAttribute="trailing" secondItem="wev-ky-Z67" secondAttribute="trailing" constant="14" id="VkJ-wf-EgT"/> |
| | | <constraint firstItem="wev-ky-Z67" firstAttribute="leading" secondItem="HXu-4C-sU8" secondAttribute="leading" constant="14" id="WrS-WJ-uOa"/> |
| | | <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="53" id="X3e-KH-RIo"/> |
| | | <constraint firstAttribute="trailing" secondItem="aY2-I8-jwa" secondAttribute="trailing" constant="14" id="jFs-73-wKV"/> |
| | | <constraint firstItem="uvP-gJ-d1J" firstAttribute="leading" secondItem="HXu-4C-sU8" secondAttribute="leading" constant="13" id="mRB-sg-sAp"/> |
| | | <constraint firstItem="wev-ky-Z67" firstAttribute="top" secondItem="HXu-4C-sU8" secondAttribute="top" constant="14" id="xJJ-HZ-A8r"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kgb-Eb-ct0"> |
| | | <rect key="frame" x="0.0" y="456.33333333333337" width="393" height="100"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="100" id="mNq-vI-2Xl"/> |
| | | </constraints> |
| | | <wkWebViewConfiguration key="configuration"> |
| | | <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/> |
| | | <wkPreferences key="preferences"/> |
| | | </wkWebViewConfiguration> |
| | | </wkWebView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="Kgb-Eb-ct0" secondAttribute="bottom" id="8Br-LB-gZe"/> |
| | | <constraint firstItem="Kgb-Eb-ct0" firstAttribute="top" secondItem="Tsv-eq-RRP" secondAttribute="bottom" id="BPV-w2-jWQ"/> |
| | | <constraint firstItem="svJ-l8-0wE" firstAttribute="leading" secondItem="neQ-Hk-azv" secondAttribute="leading" id="Gfh-Am-vbk"/> |
| | | <constraint firstItem="Kgb-Eb-ct0" firstAttribute="leading" secondItem="neQ-Hk-azv" secondAttribute="leading" id="RsL-cl-nKF"/> |
| | | <constraint firstAttribute="trailing" secondItem="svJ-l8-0wE" secondAttribute="trailing" id="UY8-4v-JeS"/> |
| | | <constraint firstAttribute="trailing" secondItem="Tsv-eq-RRP" secondAttribute="trailing" id="VMZ-Tc-XjM"/> |
| | | <constraint firstAttribute="trailing" secondItem="Kgb-Eb-ct0" secondAttribute="trailing" id="bzT-g2-b4j"/> |
| | | <constraint firstItem="Tsv-eq-RRP" firstAttribute="top" secondItem="svJ-l8-0wE" secondAttribute="bottom" id="cw0-8H-uz1"/> |
| | | <constraint firstItem="Tsv-eq-RRP" firstAttribute="leading" secondItem="neQ-Hk-azv" secondAttribute="leading" id="gbo-od-pfZ"/> |
| | | <constraint firstItem="svJ-l8-0wE" firstAttribute="top" secondItem="neQ-Hk-azv" secondAttribute="top" id="vap-kq-lD7"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="neQ-Hk-azv" firstAttribute="leading" secondItem="j5u-yC-3lm" secondAttribute="leading" id="A7a-Jn-gZU"/> |
| | | <constraint firstAttribute="trailing" secondItem="neQ-Hk-azv" secondAttribute="trailing" id="DFM-4A-WGp"/> |
| | | <constraint firstItem="neQ-Hk-azv" firstAttribute="centerX" secondItem="j5u-yC-3lm" secondAttribute="centerX" id="KA5-pV-v0C"/> |
| | | <constraint firstAttribute="bottom" secondItem="neQ-Hk-azv" secondAttribute="bottom" id="XOJ-K4-KTM"/> |
| | | <constraint firstItem="neQ-Hk-azv" firstAttribute="top" secondItem="j5u-yC-3lm" secondAttribute="top" id="nUa-mi-90Y"/> |
| | | </constraints> |
| | | </scrollView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UvH-yi-oet"> |
| | | <rect key="frame" x="0.0" y="743" width="393" height="75"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="J4B-Wp-1lb"> |
| | | <rect key="frame" x="16" y="18" width="361" height="40"/> |
| | | <color key="backgroundColor" name="FE6E0D"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="GKq-jh-TSe"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="立即购买"/> |
| | | <connections> |
| | | <action selector="buyNowAction:" destination="-1" eventType="touchUpInside" id="RpL-MQ-uQM"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="J4B-Wp-1lb" firstAttribute="top" secondItem="UvH-yi-oet" secondAttribute="top" constant="18" id="8PR-5K-ltq"/> |
| | | <constraint firstAttribute="trailing" secondItem="J4B-Wp-1lb" secondAttribute="trailing" constant="16" id="b1O-GZ-4tY"/> |
| | | <constraint firstItem="J4B-Wp-1lb" firstAttribute="leading" secondItem="UvH-yi-oet" secondAttribute="leading" constant="16" id="jBq-AP-odU"/> |
| | | <constraint firstAttribute="height" constant="75" id="kLz-kg-CZ7"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="j5u-yC-3lm" secondAttribute="trailing" id="He2-uT-VpD"/> |
| | | <constraint firstItem="UvH-yi-oet" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="JnU-j0-Hu4"/> |
| | | <constraint firstItem="j5u-yC-3lm" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="OCo-Pd-NTM"/> |
| | | <constraint firstItem="j5u-yC-3lm" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="R6x-AT-THf"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="UvH-yi-oet" secondAttribute="bottom" id="S2y-aO-qg5"/> |
| | | <constraint firstItem="UvH-yi-oet" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="Tec-Xf-CBm"/> |
| | | <constraint firstItem="UvH-yi-oet" firstAttribute="top" secondItem="j5u-yC-3lm" secondAttribute="bottom" constant="10" id="zUe-kf-xyW"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="43.511450381679388" y="19.718309859154932"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <namedColor name="FE6E0D"> |
| | | <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // CardCenterVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/26. |
| | | // |
| | | |
| | | import UIKit |
| | | import MJRefresh |
| | | import WebKit |
| | | import JQTools |
| | | |
| | | class CardCenterVC: BaseVC { |
| | | |
| | | private var sotreId:Int? |
| | | private var tableView:UITableView! |
| | | private var webView:WKWebView! |
| | | private var page:Int = 1 |
| | | private var model:HuiminCardModel? |
| | | |
| | | override func viewDidAppear(_ animated: Bool) { |
| | | super.viewDidAppear(animated) |
| | | if let storeStr = UserDefaults.standard.object(forKey: "CurrentStore") as? String{ |
| | | if let deserModel = HomeStoreModel.deserialize(from: storeStr){ |
| | | self.sotreId = deserModel.storeId |
| | | tableView.mj_header = MJRefreshNormalHeader(refreshingBlock: {[unowned self] in |
| | | self.getData() |
| | | }) |
| | | tableView.mj_header?.ignoredScrollViewContentInsetTop = 30 |
| | | tableView.mj_header?.beginRefreshing() |
| | | } |
| | | } |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "惠民卡" |
| | | } |
| | | |
| | | override func setRx() { |
| | | NotificationCenter.default.rx.notification(UpdateCurrentStore_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[unowned self] _ in |
| | | self.getData() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | private func getData(){ |
| | | page = 1 |
| | | Services.getHuiminAgreementAndList(page: page, storeId: sotreId!).subscribe(onNext: {data in |
| | | self.model = data.data |
| | | if data.data?.showType == 2{ |
| | | self.webView.isHidden = true |
| | | self.tableView.reloadData() |
| | | }else{ |
| | | self.webView.isHidden = true |
| | | |
| | | self.webView.isHidden = false |
| | | let htmlString = data.data?.introduce.jq_wrapHtml() ?? "" |
| | | self.webView.loadHTMLString(htmlString, baseURL: nil) |
| | | } |
| | | self.tableView.mj_header?.endRefreshing() |
| | | },onError: { _ in |
| | | self.tableView.mj_header?.endRefreshing() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | override func setUI() { |
| | | |
| | | tableView = UITableView(frame: .zero, style: .plain) |
| | | tableView.showsVerticalScrollIndicator = false |
| | | tableView.separatorStyle = .none |
| | | tableView.contentInset = UIEdgeInsets(top: 31, left: 0, bottom: 0, right: 0) |
| | | tableView.register(UINib(nibName: "CardCenterTCell", bundle: nil), forCellReuseIdentifier: "_CardCenterTCell") |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | |
| | | view.addSubview(tableView) |
| | | tableView.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | |
| | | let configuration = WKWebViewConfiguration() |
| | | webView = WKWebView(frame: .zero, configuration: configuration) |
| | | webView.isHidden = true |
| | | view.addSubview(webView) |
| | | webView.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension CardCenterVC:UITableViewDelegate{ |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | let model = model!.cardList[indexPath.row] |
| | | let vc = CardCenterDetailVC(id:model.id,storeId: sotreId!) |
| | | push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | extension CardCenterVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return model?.cardList.count ?? 0 |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let model = model!.cardList[indexPath.row] |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_CardCenterTCell") as! CardCenterTCell |
| | | cell.setHuiminCardItemModel(model) |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return (JQ_ScreenW - 40) * 0.4841 + 20 |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // CardCenterSheetView.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/26. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | import QMUIKit |
| | | import RxSwift |
| | | import RxSwift |
| | | import RxRelay |
| | | import Combine |
| | | |
| | | let Noti_hiddenCardCenter_Add = Notification.Name.init("Noti_hiddenCardCenter_Add") |
| | | let Noti_showSheetView = Notification.Name.init("Noti_showSheetView") |
| | | |
| | | class CardCenterSheetView: UIView,JQNibView{ |
| | | |
| | | @IBOutlet weak var cons_bottom: NSLayoutConstraint! |
| | | @IBOutlet weak var tableView: UITableView! |
| | | @IBOutlet weak var cons_table_height: NSLayoutConstraint! |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var btn_buyment: UIButton! |
| | | @IBOutlet weak var btn_addUser: QMUIButton! |
| | | @IBOutlet weak var text_view: UITextView! |
| | | @IBOutlet weak var label_price: UILabel! |
| | | @IBOutlet weak var btn_agreement: UIButton! |
| | | @IBOutlet weak var text_view_height: NSLayoutConstraint! |
| | | @IBOutlet weak var label_rule: UILabel! |
| | | |
| | | |
| | | let disposeBag = DisposeBag() |
| | | private var subscriptions = Set<AnyCancellable>() |
| | | private var model:HuiminCardDetailModel? |
| | | private var selectStudents = [StudentProfile1Model]() |
| | | private var students = [StudentProfile1Model]() |
| | | |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | btn_addUser.imagePosition = .right |
| | | btn_addUser.spacingBetweenImageAndTitle = 3 |
| | | cons_bottom.constant = -(JQ_ScreenW * 1.1) |
| | | text_view.isScrollEnabled = false |
| | | text_view.isEditable = false |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.separatorStyle = .none |
| | | tableView.isScrollEnabled = false |
| | | tableView.register(UINib(nibName: "StudentInfo_6_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_6_TCell") |
| | | |
| | | text_view.isHidden = true |
| | | btn_agreement.isHidden = true |
| | | label_rule.isHidden = true |
| | | |
| | | text_view.automaticallyAdjustsScrollIndicatorInsets = false |
| | | text_view.contentInset = .init(top: -8, left: 0, bottom: 0, right: 0) |
| | | alpha = 0 |
| | | layoutIfNeeded() |
| | | text_view.delegate = self |
| | | label_price.font = UIFont(name: "DIN Alternate Bold", size: 24) |
| | | |
| | | tableView.publisher(for: \.contentSize).sink {[unowned self] size in |
| | | if size.height > 250{ |
| | | self.tableView.isScrollEnabled = true |
| | | }else{ |
| | | self.tableView.isScrollEnabled = false |
| | | } |
| | | self.cons_table_height.constant = min(250,size.height) |
| | | }.store(in: &subscriptions) |
| | | |
| | | text_view.publisher(for: \.contentSize).sink {[unowned self] size in |
| | | self.text_view_height.constant = size.height |
| | | }.store(in: &subscriptions) |
| | | |
| | | NotificationCenter.default.rx.notification(Noti_hiddenCardCenter_Add).take(until: self.rx.deallocated).subscribe(onNext: {[unowned self] noti in |
| | | guard let state = noti.object as? Bool else { return } |
| | | self.alpha = state ? 0:1 |
| | | }).disposed(by: disposeBag) |
| | | |
| | | |
| | | NotificationCenter.default.rx.notification(StudentUpdate_Nofi, object: nil).subscribe(onNext: {value in |
| | | var needShow = true |
| | | if let v = value.object as? [String:Bool]{ |
| | | needShow = v["needShow"] ?? true |
| | | } |
| | | self.alpha = 1 |
| | | self.getStudentList(needShow) |
| | | }).disposed(by: disposeBag) |
| | | |
| | | |
| | | NotificationCenter.default.rx.notification(Noti_showSheetView, object: nil).subscribe(onNext: {value in |
| | | self.alpha = 1 |
| | | }).disposed(by: disposeBag) |
| | | |
| | | |
| | | Services.myHuiminRuleInfo().subscribe(onNext: {[unowned self]data in |
| | | self.label_rule.text = data.data?.selectUserRemark.jq_filterFromHTML_1() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | static func show(_ model:HuiminCardDetailModel){ |
| | | let studentChooseView = CardCenterSheetView.jq_loadNibView() |
| | | studentChooseView.model = model |
| | | studentChooseView.frame = sceneDelegate?.window?.frame ?? .zero |
| | | |
| | | sceneDelegate?.window?.addSubview(studentChooseView) |
| | | studentChooseView.cons_bottom.constant = 0 |
| | | |
| | | let font:UIFont = .systemFont(ofSize: 12, weight: .medium) |
| | | let normalColor:UIColor = .black.withAlphaComponent(0.6) |
| | | let linkColor:UIColor = UIColor(hexString: "#0078CD")!.withAlphaComponent(0.7) |
| | | |
| | | studentChooseView.label_price.text = 0.currency() |
| | | studentChooseView.label_price.font = UIFont.init(name: "DIN Alternate Bold", size: 24) |
| | | |
| | | let attributedStringbuilder = AttributedStringbuilder.build() |
| | | attributedStringbuilder.add(string: "我已阅读并同意", withFont: font, withColor: normalColor) |
| | | for (index,v) in model.agreementSettings.enumerated(){ |
| | | attributedStringbuilder.addLink(string: "《\(v.agreementName)》", url: URL(string: "wanpai://page?index=\(index)")!, withFont: font, linkColor: linkColor) |
| | | } |
| | | studentChooseView.text_view.attributedText = attributedStringbuilder.mutableAttributedString |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | studentChooseView.alpha = 1 |
| | | studentChooseView.layoutIfNeeded() |
| | | } |
| | | studentChooseView.getStudentList() |
| | | |
| | | } |
| | | |
| | | private func getStudentList(_ needShow:Bool = true){ |
| | | Services.startCourceStudentList().subscribe(onNext: {data in |
| | | self.students = data.data ?? [] |
| | | if (data.data?.count ?? 0) > 0 && needShow{ |
| | | StudentChoose3View.show(defaultStu: Set(self.selectStudents)) { m in |
| | | self.selectStudents = m.shuffled() |
| | | self.tableView.reloadData() |
| | | self.updatePrice() |
| | | } |
| | | } |
| | | }).disposed(by: self.disposeBag) |
| | | } |
| | | |
| | | private func updatePrice(){ |
| | | let totalMoney = (model?.salesMoney ?? 0) * Double(selectStudents.count) |
| | | label_price.text = totalMoney.currency() |
| | | |
| | | self.text_view.isHidden = self.selectStudents.count > 0 ? false:true |
| | | self.btn_agreement.isHidden = self.selectStudents.count > 0 ? false:true |
| | | self.label_rule.isHidden = self.selectStudents.count > 0 ? false:true |
| | | } |
| | | |
| | | @IBAction func addPersionAction(_ sender: QMUIButton) { |
| | | if students.count == 0{ |
| | | NotificationCenter.default.post(name: Noti_hiddenCardCenter_Add, object: true) |
| | | let vc = CardCenterAddUserVC() |
| | | JQ_currentNavigationController().pushViewController(vc) |
| | | }else{ |
| | | StudentChoose3View.show(defaultStu: Set(selectStudents)) { m in |
| | | self.selectStudents = m.shuffled() |
| | | self.tableView.reloadData() |
| | | self.updatePrice() |
| | | } |
| | | } |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: UIButton) { |
| | | |
| | | self.cons_bottom.constant = -(JQ_ScreenW * 1.1) |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.layoutIfNeeded() |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | |
| | | @IBAction func agreementAction(_ sender: UIButton) { |
| | | sender.isSelected = !sender.isSelected |
| | | } |
| | | |
| | | @IBAction func buyNowAction(_ sender: UIButton) { |
| | | |
| | | guard let m = model else{return} |
| | | |
| | | guard btn_agreement.isSelected else { |
| | | let v = m.agreementSettings.map { m in |
| | | return "《\(m.agreementName)》" |
| | | }.joined(separator: " ") |
| | | alertError(msg: "请先阅读协议\(v)");return |
| | | } |
| | | |
| | | guard selectStudents.count != 0 else{ |
| | | alertError(msg: "请选择人员");return |
| | | } |
| | | |
| | | let totalMoney = (model?.salesMoney ?? 0) * Double(selectStudents.count) |
| | | updatePrice() |
| | | |
| | | let studentIds = selectStudents.map({"\($0.stuId)"}).joined(separator: ",") |
| | | |
| | | PaymentView.show(enumType: .huiminCard, money: (ali: totalMoney, wx: totalMoney, coin: nil, course: nil, integral: nil)) {[unowned self] type in |
| | | Services.payHuiminCard(id: m.id, payType: type, studentIds: studentIds).subscribe(onNext: { data in |
| | | if let m = data.data{ |
| | | |
| | | self.cons_bottom.constant = -(JQ_ScreenW * 1.1) |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.layoutIfNeeded() |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | switch type { |
| | | case .wechat: |
| | | YYPaymentManager.shared.sendPaymentRequest(YYWeChatPayRequest(partnerId: m.partnerid, prepayId: m.prepayid, package: m.package, nonceStr: m.noncestr, timeStamp: m.timestamp, sign: m.sign)) { result in |
| | | switch result { |
| | | case .success: |
| | | let vc = PaymentResultVC(result: .success, objType: .huimin) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .cancel: |
| | | let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .huimin) {[unowned self] in |
| | | self.buyNowAction(self.btn_buyment) |
| | | } |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .failure(_): |
| | | let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .huimin){[unowned self] in |
| | | self.buyNowAction(self.btn_buyment) |
| | | } |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | case .aliPay: |
| | | YYPaymentManager.shared.sendPaymentRequest(YYAlipayRequest(orderString: data.data?.orderString ?? "")) { result in |
| | | switch result { |
| | | case .success: |
| | | let vc = PaymentResultVC(result: .success, objType: .huimin) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .cancel: |
| | | let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .huimin) {[unowned self] in |
| | | self.buyNowAction(self.btn_buyment) |
| | | } |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | case .failure(_): |
| | | let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .huimin){[unowned self] in |
| | | self.buyNowAction(self.btn_buyment) |
| | | } |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | } |
| | | default: |
| | | let vc = PaymentResultVC(result: .success, objType: .huimin) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | } |
| | | } |
| | | } |
| | | |
| | | }).disposed(by: self.disposeBag) |
| | | } |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | DispatchQueue.main.asyncAfter(wallDeadline: .now()+0.1) { |
| | | self.view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) |
| | | } |
| | | } |
| | | } |
| | | |
| | | extension CardCenterSheetView:UITextViewDelegate{ |
| | | func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { |
| | | // 处理链接点击事件 |
| | | guard let index = Int(URL.jq_params?["index"] ?? "") else { |
| | | return false |
| | | } |
| | | |
| | | self.alpha = 0 |
| | | |
| | | let sub = model!.agreementSettings[index] |
| | | |
| | | let vc = CommonWebVC(type: .user, customTitle: sub.agreementName, content: sub.agreementContent, needBackBtn: true) |
| | | JQ_currentViewController().jq_push(vc: vc) |
| | | |
| | | return false // 返回 false 表示不进一步处理链接(例如,不自动打开链接) |
| | | } |
| | | } |
| | | |
| | | extension CardCenterSheetView:UITableViewDelegate{ |
| | | |
| | | } |
| | | |
| | | extension CardCenterSheetView:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return selectStudents.count |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_6_TCell", for: indexPath) as! StudentInfo_6_TCell |
| | | cell.indexPath = indexPath |
| | | cell.activityDetailPartModel = selectStudents[indexPath.row] |
| | | cell.deleteAt = {[unowned self]index in |
| | | self.selectStudents.remove(at: index) |
| | | tableView.reloadData() |
| | | self.updatePrice() |
| | | } |
| | | return cell |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CardCenterSheetView" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dmv-6M-oIS"> |
| | | <rect key="frame" x="0.0" y="414.33333333333326" width="393" height="437.66666666666674"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="立即购买" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7ML-ec-5XF"> |
| | | <rect key="frame" x="160.66666666666666" y="25" width="71.666666666666657" height="21"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="21" id="9ye-ZB-S9C"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uUb-ON-HeD"> |
| | | <rect key="frame" x="353" y="24.666666666666686" width="20" height="22"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_close_2"/> |
| | | <connections> |
| | | <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="ylB-lM-GZG"/> |
| | | </connections> |
| | | </button> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Ue-WJ-3bR"> |
| | | <rect key="frame" x="0.0" y="320.66666666666669" width="393" height="75"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8Uw-le-5KY"> |
| | | <rect key="frame" x="199" y="17.666666666666629" width="180" height="40"/> |
| | | <color key="backgroundColor" name="FE6E0D"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="PXe-Lj-sGt"/> |
| | | <constraint firstAttribute="width" constant="180" id="ZCC-Vd-WLr"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="立即购买"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="20"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="buyNowAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="JTo-ke-B3X"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="合计" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uK1-uX-Auk"> |
| | | <rect key="frame" x="14" y="29" width="28" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2GF-2e-CsH"> |
| | | <rect key="frame" x="52" y="27" width="20.666666666666671" height="21"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <color key="textColor" name="FE6E0D"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IdW-Zc-7HK"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="1"/> |
| | | <color key="backgroundColor" red="0.89411764705882346" green="0.89411764705882346" blue="0.89411764705882346" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="wwZ-uS-NOf"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="2GF-2e-CsH" firstAttribute="centerY" secondItem="uK1-uX-Auk" secondAttribute="centerY" id="1AH-eD-aGv"/> |
| | | <constraint firstAttribute="height" constant="75" id="71e-AZ-RgY"/> |
| | | <constraint firstItem="8Uw-le-5KY" firstAttribute="centerY" secondItem="1Ue-WJ-3bR" secondAttribute="centerY" id="UCe-pY-E7h"/> |
| | | <constraint firstItem="uK1-uX-Auk" firstAttribute="centerY" secondItem="1Ue-WJ-3bR" secondAttribute="centerY" id="Vhc-s6-is8"/> |
| | | <constraint firstItem="IdW-Zc-7HK" firstAttribute="leading" secondItem="1Ue-WJ-3bR" secondAttribute="leading" id="W9T-qw-OSy"/> |
| | | <constraint firstItem="2GF-2e-CsH" firstAttribute="leading" secondItem="uK1-uX-Auk" secondAttribute="trailing" constant="10" id="esn-ln-4Dv"/> |
| | | <constraint firstItem="uK1-uX-Auk" firstAttribute="leading" secondItem="1Ue-WJ-3bR" secondAttribute="leading" constant="14" id="ga3-Ff-Nt8"/> |
| | | <constraint firstAttribute="trailing" secondItem="8Uw-le-5KY" secondAttribute="trailing" constant="14" id="pE3-ZN-bBv"/> |
| | | <constraint firstAttribute="trailing" secondItem="IdW-Zc-7HK" secondAttribute="trailing" id="xcQ-T6-S1D"/> |
| | | <constraint firstItem="IdW-Zc-7HK" firstAttribute="top" secondItem="1Ue-WJ-3bR" secondAttribute="top" id="ztr-GG-LHP"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="绑定人员" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iMf-wL-jMK"> |
| | | <rect key="frame" x="13.999999999999996" y="76" width="55.666666666666657" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="vno-0K-HcC"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t1u-Um-DQ1" customClass="QMUIButton"> |
| | | <rect key="frame" x="306" y="76" width="72" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="添加人员" image="btn_add_1"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.56999999999999995" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="addPersionAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="0ee-F8-unF"/> |
| | | </connections> |
| | | </button> |
| | | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="xf9-5v-5BE"> |
| | | <rect key="frame" x="14" y="118.00000000000006" width="365" height="80"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="80" id="iVi-HV-o6B"/> |
| | | </constraints> |
| | | </tableView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="请选择您要绑定使用本张“惠民卡”的人员,如果您是第1次购买,请点击右上角”添加人员“添加使用者”" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D3R-6U-qpx"> |
| | | <rect key="frame" x="14" y="211.00000000000006" width="365" height="33.666666666666657"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/> |
| | | <color key="textColor" name="FE6E0D"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kB3-1G-xSk"> |
| | | <rect key="frame" x="14" y="267.66666666666669" width="22" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="2nW-js-vH8"/> |
| | | <constraint firstAttribute="width" constant="22" id="Pao-2s-Csu"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_select_u"/> |
| | | <state key="selected" image="btn_select"/> |
| | | <connections> |
| | | <action selector="agreementAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="cnR-h4-hGJ"/> |
| | | </connections> |
| | | </button> |
| | | <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="6do-vD-Z6i"> |
| | | <rect key="frame" x="42" y="271.66666666666669" width="337" height="35"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="35" id="3KD-xV-b9j"/> |
| | | </constraints> |
| | | <color key="textColor" systemColor="labelColor"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> |
| | | </textView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="D3R-6U-qpx" firstAttribute="leading" secondItem="Dmv-6M-oIS" secondAttribute="leading" constant="14" id="2ju-1P-nqD"/> |
| | | <constraint firstAttribute="trailing" secondItem="t1u-Um-DQ1" secondAttribute="trailing" constant="15" id="7MF-gl-Q4o"/> |
| | | <constraint firstItem="1Ue-WJ-3bR" firstAttribute="leading" secondItem="Dmv-6M-oIS" secondAttribute="leading" id="8Em-Dm-2F5"/> |
| | | <constraint firstAttribute="trailing" secondItem="6do-vD-Z6i" secondAttribute="trailing" constant="14" id="LJp-gD-UQS"/> |
| | | <constraint firstItem="uUb-ON-HeD" firstAttribute="centerY" secondItem="7ML-ec-5XF" secondAttribute="centerY" id="N4H-rH-5fq"/> |
| | | <constraint firstItem="iMf-wL-jMK" firstAttribute="leading" secondItem="Dmv-6M-oIS" secondAttribute="leading" constant="14" id="Qwl-g4-VYv"/> |
| | | <constraint firstItem="6do-vD-Z6i" firstAttribute="top" secondItem="D3R-6U-qpx" secondAttribute="bottom" constant="27" id="UsW-bP-DUr"/> |
| | | <constraint firstItem="kB3-1G-xSk" firstAttribute="top" secondItem="6do-vD-Z6i" secondAttribute="top" constant="-4" id="W4H-tB-cRX"/> |
| | | <constraint firstItem="xf9-5v-5BE" firstAttribute="top" secondItem="iMf-wL-jMK" secondAttribute="bottom" constant="25" id="Wiu-U5-E5e"/> |
| | | <constraint firstAttribute="trailing" secondItem="xf9-5v-5BE" secondAttribute="trailing" constant="14" id="ZlM-RF-sA1"/> |
| | | <constraint firstItem="t1u-Um-DQ1" firstAttribute="centerY" secondItem="iMf-wL-jMK" secondAttribute="centerY" id="ZnK-Em-vsN"/> |
| | | <constraint firstItem="6do-vD-Z6i" firstAttribute="leading" secondItem="kB3-1G-xSk" secondAttribute="trailing" constant="6" id="ap8-x2-7SJ"/> |
| | | <constraint firstItem="D3R-6U-qpx" firstAttribute="top" secondItem="xf9-5v-5BE" secondAttribute="bottom" constant="13" id="dCv-Az-tC0"/> |
| | | <constraint firstItem="kB3-1G-xSk" firstAttribute="leading" secondItem="Dmv-6M-oIS" secondAttribute="leading" constant="14" id="iTW-cN-d6Q"/> |
| | | <constraint firstItem="iMf-wL-jMK" firstAttribute="top" secondItem="7ML-ec-5XF" secondAttribute="bottom" constant="30" id="j6A-Ho-eBK"/> |
| | | <constraint firstItem="xf9-5v-5BE" firstAttribute="leading" secondItem="Dmv-6M-oIS" secondAttribute="leading" constant="14" id="k7e-jC-AiQ"/> |
| | | <constraint firstItem="7ML-ec-5XF" firstAttribute="centerX" secondItem="Dmv-6M-oIS" secondAttribute="centerX" id="lND-vS-cjZ"/> |
| | | <constraint firstAttribute="trailing" secondItem="uUb-ON-HeD" secondAttribute="trailing" constant="20" id="oAU-Jw-UDh"/> |
| | | <constraint firstAttribute="bottomMargin" secondItem="1Ue-WJ-3bR" secondAttribute="bottom" id="poN-6s-FIl"/> |
| | | <constraint firstAttribute="trailing" secondItem="D3R-6U-qpx" secondAttribute="trailing" constant="14" id="tmn-Lh-8ME"/> |
| | | <constraint firstItem="7ML-ec-5XF" firstAttribute="top" secondItem="Dmv-6M-oIS" secondAttribute="top" constant="25" id="wH2-Xr-ENO"/> |
| | | <constraint firstAttribute="trailing" secondItem="1Ue-WJ-3bR" secondAttribute="trailing" id="x2M-A9-Abk"/> |
| | | <constraint firstItem="1Ue-WJ-3bR" firstAttribute="top" secondItem="6do-vD-Z6i" secondAttribute="bottom" constant="14" id="xGO-kZ-eUd"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="Dmv-6M-oIS" secondAttribute="bottom" id="Fxh-4P-J6S"/> |
| | | <constraint firstAttribute="trailing" secondItem="Dmv-6M-oIS" secondAttribute="trailing" id="P7p-sp-rQH"/> |
| | | <constraint firstItem="Dmv-6M-oIS" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="rsj-k1-fRh"/> |
| | | </constraints> |
| | | <connections> |
| | | <outlet property="btn_addUser" destination="t1u-Um-DQ1" id="s4z-Qy-eSE"/> |
| | | <outlet property="btn_agreement" destination="kB3-1G-xSk" id="BeF-6D-b2C"/> |
| | | <outlet property="btn_buyment" destination="8Uw-le-5KY" id="5th-Af-0vn"/> |
| | | <outlet property="cons_bottom" destination="Fxh-4P-J6S" id="tL1-cE-rzk"/> |
| | | <outlet property="cons_table_height" destination="iVi-HV-o6B" id="wRr-JR-xIi"/> |
| | | <outlet property="label_price" destination="2GF-2e-CsH" id="ssf-5c-ZY4"/> |
| | | <outlet property="label_rule" destination="D3R-6U-qpx" id="qJH-wV-706"/> |
| | | <outlet property="tableView" destination="xf9-5v-5BE" id="2O6-DY-WIQ"/> |
| | | <outlet property="text_view" destination="6do-vD-Z6i" id="Upf-Ni-H2g"/> |
| | | <outlet property="text_view_height" destination="3KD-xV-b9j" id="6gl-JL-Ff5"/> |
| | | <outlet property="view_container" destination="Dmv-6M-oIS" id="bca-kH-Mbv"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="136.64122137404578" y="19.718309859154932"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_add_1" width="16" height="16"/> |
| | | <image name="btn_close_2" width="20" height="20"/> |
| | | <image name="btn_select" width="20" height="20"/> |
| | | <image name="btn_select_u" width="20" height="20"/> |
| | | <namedColor name="FE6E0D"> |
| | | <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <systemColor name="labelColor"> |
| | | <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
| | |
| | | guard tf_height.text != "0" else {alertError(msg: "请输入正确的身高");return} |
| | | guard tf_weight.text != "0" else {alertError(msg: "请输入正确的体重");return} |
| | | |
| | | if !tf_phone.isEmpty || identityPhone{ |
| | | if !view_phone.isHidden{ |
| | | guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return} |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | override func setRx() { |
| | | // NotificationCenter.default.rx.notification(StudentUpdate_Nofi).take(until: self.rx.deallocated).subscribe(onNext: { [weak self] data in |
| | | // guard let weakSelf = self else { return } |
| | | // Services.startCourseHome().subscribe(onNext: {[weak self] data in |
| | | // if let model = data.data{ |
| | | // if model.isThere == 1{ |
| | | // UserDefaults.standard.setValue(model.stuId, forKey: "currentStuId") |
| | | // UserDefaults.standard.synchronize() |
| | | // let courseInfoVC = CourseInfoVC() |
| | | // courseInfoVC.startClouseHomeModel = model |
| | | // let clouseNav = BaseNav(rootViewController: courseInfoVC) |
| | | // clouseNav.tabBarItem = UITabBarItem(title: "玩湃运动营", image: UIImage(named: "tabbar_course"), selectedImage: UIImage(named: "tabbar_course_s")!.withRenderingMode(.alwaysOriginal)) |
| | | // self?.tabBarController?.viewControllers![1] = clouseNav |
| | | // }else{ |
| | | // let courseVC = CourseVC() |
| | | // courseVC.startClouseHomeModel = model |
| | | // let clouseNav = BaseNav(rootViewController: courseVC) |
| | | // clouseNav.tabBarItem = UITabBarItem(title: "玩湃运动营", image: UIImage(named: "tabbar_course"), selectedImage: UIImage(named: "tabbar_course_s")!.withRenderingMode(.alwaysOriginal)) |
| | | // self?.tabBarController?.viewControllers![1] = clouseNav |
| | | // } |
| | | // } |
| | | // }).disposed(by: weakSelf.disposeBag) |
| | | // }).disposed(by: disposeBag) |
| | | |
| | | } |
| | | |
| | | @IBAction func addStudentAction(_ sender: QMUIButton) { |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | |
| | | var type:HomeItemType = .worldcup |
| | | var isOpen:Int = 0 |
| | | var sort:Int = 0 |
| | | var displayType:Int = 0 //1:横屏 2:竖屏 |
| | | var backgroundImage:String = "" |
| | | var cellHeight:Double = 270 |
| | | var imageSize:CGSize = .zero |
| | | var id = 0 |
| | | } |
| | | |
| | |
| | | var model = "" |
| | | var sort = 0 |
| | | var cellHeight:Double = 270 |
| | | var displayType:Int = 0 //1:横屏 2:竖屏 |
| | | var imageSize:CGSize = .zero |
| | | } |
| | | |
| | | struct NormalSimpleModel:HandyJSON{ |
| | |
| | | var name = "" |
| | | |
| | | } |
| | | |
| | | |
| | | extension CGSize{ |
| | | var radio:Double{ |
| | | get{ |
| | | return self.width / self.height |
| | | } |
| | | } |
| | | } |
| | |
| | | private var layout:FlowLayout! |
| | | @IBOutlet weak var label_store: UILabel! |
| | | private var items = Array<Any>() |
| | | private var items_1 = [InnerItemModel]() |
| | | private var storeModel:HomeStoreModel? |
| | | private var storeId:Int? |
| | | private var currentLocal:CLLocation? |
| | | |
| | | |
| | | struct InnerItemModel{ |
| | | var contents = [Any]() |
| | | var displayType = 2 // 1:横屏 2:竖屏 |
| | | } |
| | | |
| | | override func viewDidAppear(_ animated: Bool) { |
| | | super.viewDidAppear(animated) |
| | |
| | | view.backgroundColor = UIColor(hexStr: "EEF0F3",darkStr: nil) |
| | | |
| | | layout = FlowLayout() |
| | | layout.sectionInset = UIEdgeInsets(top: 14, left: 34, bottom: 14, right: 34) |
| | | collectionView.collectionViewLayout = layout |
| | | collectionView.delegate = self |
| | | collectionView.dataSource = self |
| | |
| | | private func downloadImgs(){ |
| | | let group = DispatchGroup() |
| | | let queue = DispatchQueue(label: "imgRadio") |
| | | let w = (view.frame.width - 78.0) / 2.0 |
| | | for item in items{ |
| | | if let m = item as? HomeStoreConfigModel{ |
| | | queue.async(group: group){ () in |
| | |
| | | SDWebImageDownloader.shared.downloadImage(with: URL(string: m.backgroundImage), options: .useNSURLCache) { _, _,_ in |
| | | } completed: { image, data, error, status in |
| | | |
| | | m.imageSize = image?.size ?? .zero |
| | | guard !m.backgroundImage.isEmpty else { |
| | | m.cellHeight = 100 |
| | | if image?.size.width ?? 0 > image?.size.height ?? 0{ |
| | | m.displayType = 1 |
| | | }else{ |
| | | m.displayType = 2 |
| | | } |
| | | group.leave() |
| | | return |
| | | } |
| | | |
| | | if let img = image{ |
| | | m.cellHeight = w / (img.size.width / img.size.height) |
| | | }else{ |
| | | m.cellHeight = w / (m.type.defaultImg.size.width / m.type.defaultImg.size.height) |
| | | } |
| | | group.leave() |
| | | } |
| | | return |
| | | } |
| | | if let data = SDImageCache.shared.diskCache.data(forKey: m.backgroundImage),let img = UIImage(data: data){ |
| | | m.cellHeight = w / (img.size.width / img.size.height) |
| | | m.imageSize = img.size |
| | | if img.size.width > img.size.height{ |
| | | m.displayType = 1 |
| | | }else{ |
| | | m.displayType = 2 |
| | | } |
| | | group.leave() |
| | | } |
| | | } |
| | |
| | | guard SDImageCache.shared.diskImageDataExists(withKey: m.backgroundImage) else { |
| | | SDWebImageDownloader.shared.downloadImage(with: URL(string: m.backgroundImage), options: .useNSURLCache) { _, _,_ in |
| | | } completed: { image, data, error, status in |
| | | if let img = image{ |
| | | m.cellHeight = w / (img.size.width / img.size.height) |
| | | }else{ |
| | | m.cellHeight = 100 |
| | | } |
| | | if let img = image{ |
| | | m.imageSize = img.size |
| | | if img.size.width > img.size.height{ |
| | | m.displayType = 1 |
| | | }else{ |
| | | m.displayType = 2 |
| | | } |
| | | } |
| | | group.leave() |
| | | } |
| | | return |
| | | } |
| | | |
| | | if let data = SDImageCache.shared.diskCache.data(forKey: m.backgroundImage),let img = UIImage(data: data){ |
| | | m.cellHeight = w / (img.size.width / img.size.height) |
| | | m.imageSize = img.size |
| | | if img.size.width > img.size.height{ |
| | | m.displayType = 1 |
| | | }else{ |
| | | m.displayType = 2 |
| | | } |
| | | group.leave() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | group.notify(queue: .main) { |
| | | group.notify(queue: .main) {[unowned self] in |
| | | self.items_1.removeAll() |
| | | self.items = self.items.sorted { v1, v2 in |
| | | |
| | | var sort1 = 0 |
| | |
| | | return sort1 < sort2 |
| | | } |
| | | |
| | | let v = self.items.compactMap { any in |
| | | _ = self.items.compactMap { any in |
| | | if let m = any as? HomeStoreTopBannerModel{ |
| | | return "\(m.sort)" |
| | | } |
| | |
| | | } |
| | | return "" |
| | | } |
| | | |
| | | |
| | | var displayItems_row = [Any]() //竖 |
| | | |
| | | for v in self.items{ |
| | | |
| | | var displayT:Int = 0 |
| | | |
| | | if let m = v as? HomeStoreTopBannerModel{ |
| | | displayT = m.displayType |
| | | } |
| | | |
| | | if let m = v as? HomeStoreConfigModel{ |
| | | displayT = m.displayType |
| | | } |
| | | |
| | | if displayT == 1{ //横 |
| | | if !displayItems_row.isEmpty{ //添加竖,清除竖 |
| | | self.items_1.append(InnerItemModel(contents: displayItems_row, displayType: 2)) |
| | | displayItems_row.removeAll() |
| | | } |
| | | self.items_1.append(InnerItemModel(contents: [v], displayType: displayT)) |
| | | }else { |
| | | displayItems_row.append(v) |
| | | } |
| | | } |
| | | self.items_1.append(InnerItemModel(contents: displayItems_row, displayType: 2)) |
| | | |
| | | self.layout.collectionView?.reloadData() |
| | | self.collectionView.reloadData() |
| | |
| | | |
| | | extension HomeVC:UICollectionViewDelegate,UICollectionViewDelegateWaterFlowLayout{ |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, colum section: Int) -> Int { |
| | | return 2 |
| | | if items_1[section].displayType == 1{ |
| | | return 1 |
| | | }else{ |
| | | return 2 |
| | | } |
| | | } |
| | | |
| | | func numberOfSections(in collectionView: UICollectionView) -> Int { |
| | | return items_1.count |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacing section: Int) -> CGFloat { |
| | | return 10 |
| | |
| | | return UIEdgeInsets(top: 0, left: 34, bottom: 14, right: 34) |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, itemWidth: CGFloat, caculateHeight indexPath: IndexPath) -> CGFloat { |
| | | let item = items[indexPath.row] |
| | | if let m = item as? HomeStoreConfigModel{ |
| | | return m.cellHeight |
| | | } |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, itemWidth: CGFloat, caculateHeight indexPath: IndexPath) -> CGFloat { |
| | | |
| | | if let m = item as? HomeStoreTopBannerModel{ |
| | | return m.cellHeight |
| | | } |
| | | return 200 |
| | | } |
| | | let v = items_1[indexPath.section] |
| | | |
| | | let item = v.contents[indexPath.row] |
| | | if let m = item as? HomeStoreConfigModel{ |
| | | |
| | | if m.displayType == 2{ |
| | | return (JQ_ScreenW - 78) / 2 / m.imageSize.aspectRatio |
| | | } |
| | | |
| | | return (JQ_ScreenW - 78) / m.imageSize.aspectRatio |
| | | } |
| | | |
| | | if let m = item as? HomeStoreTopBannerModel{ |
| | | if m.displayType == 2{ |
| | | return (JQ_ScreenW - 78) / 2 / m.imageSize.aspectRatio |
| | | } |
| | | |
| | | return (JQ_ScreenW - 78) / m.imageSize.aspectRatio |
| | | } |
| | | return 0 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| | | |
| | |
| | | }else{ |
| | | alertError(msg: "当前门店获取失败") |
| | | } |
| | | case .huimin: |
| | | let vc = CardCenterVC() |
| | | push(vc: vc) |
| | | case .nothing: |
| | | break |
| | | } |
| | |
| | | extension HomeVC:UICollectionViewDataSource{ |
| | | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_HomeCCell", for: indexPath) as! HomeCCell |
| | | guard indexPath.row < items.count else {return cell} |
| | | let item = items[indexPath.row] |
| | | |
| | | let item_1 = items_1[indexPath.section] |
| | | let item = item_1.contents[indexPath.row] |
| | | |
| | | if let m = item as? HomeStoreConfigModel{ |
| | | cell.img.sd_setImage(with: URL(string: m.backgroundImage), placeholderImage: nil, options: .lowPriority) |
| | |
| | | if let m = item as? HomeStoreTopBannerModel{ |
| | | cell.img.sd_setImage(with: URL(string: m.backgroundImage), placeholderImage: nil, options: .lowPriority) |
| | | } |
| | | cell.img.cornerRadius = 10 |
| | | cell.cornerRadius = 10 |
| | | cell.layer.masksToBounds = true |
| | | |
| | | return cell |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| | | return items.count |
| | | return items_1[section].contents.count |
| | | } |
| | | } |
| | | |
| | |
| | | guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return} |
| | | guard !tf_verify.text!.isEmpty else {alertError(msg: tf_verify.placeholder!);return} |
| | | |
| | | #if !DEBUG |
| | | guard btn_reader.isSelected else {alert(msg: "请阅读并同意《隐私协议》《用户协议》《运动安全告知书》");return} |
| | | #endif |
| | | |
| | | |
| | | Services.login(phone: tf_phone.text!, verity: tf_verify.text!, type: type).subscribe(onNext: {[weak self] data in |
| | |
| | | |
| | | @IBAction func readAgreentAction(_ sender: UIButton) { |
| | | |
| | | var temp = [String]() |
| | | |
| | | let v1 = UserDefaults.standard.value(forKey: "agreent_1") |
| | | let v2 = UserDefaults.standard.value(forKey: "agreent_2") |
| | | let v3 = UserDefaults.standard.value(forKey: "agreent_3") |
| | | |
| | | if v1 == nil{temp.append("《隐私协议》")} |
| | | if v2 == nil{temp.append("《用户协议》")} |
| | | if v3 == nil{temp.append("《运动营告知书》")} |
| | | |
| | | if temp.count > 0{ |
| | | alert(msg: String(format: "请阅读并同意 %@", temp.joined(separator: ",")));return |
| | | } |
| | | //用户协议、隐私协议:点击勾选即可,不再强制阅读。 |
| | | // var temp = [String]() |
| | | // |
| | | // let v1 = UserDefaults.standard.value(forKey: "agreent_1") |
| | | // let v2 = UserDefaults.standard.value(forKey: "agreent_2") |
| | | // let v3 = UserDefaults.standard.value(forKey: "agreent_3") |
| | | // |
| | | // if v1 == nil{temp.append("《隐私协议》")} |
| | | // if v2 == nil{temp.append("《用户协议》")} |
| | | // if v3 == nil{temp.append("《运动营告知书》")} |
| | | // |
| | | // if temp.count > 0{ |
| | | // alert(msg: String(format: "请阅读并同意 %@", temp.joined(separator: ",")));return |
| | | // } |
| | | |
| | | sender.isSelected = !sender.isSelected |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | |
| | | <rect key="frame" x="122.66666666666669" y="79" width="148" height="72"/> |
| | | </imageView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cAB-q2-f9Z"> |
| | | <rect key="frame" x="113.33333333333333" y="183" width="166.66666666666669" height="25"/> |
| | | <rect key="frame" x="115.66666666666669" y="183" width="162" height="25"/> |
| | | <subviews> |
| | | <button opaque="NO" tag="10" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fEr-ZJ-pMj"> |
| | | <rect key="frame" x="0.0" y="0.0" width="74" height="25"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="72" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="密码登录"> |
| | |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="|" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QH3-h0-THD"> |
| | | <rect key="frame" x="74.000000000000014" y="0.0" width="18.666666666666671" height="25"/> |
| | | <rect key="frame" x="71.999999999999986" y="0.0" width="18" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" name="FE6E0D"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Bgw-Aw-FZm"> |
| | | <rect key="frame" x="92.666666666666686" y="0.0" width="74" height="25"/> |
| | | <rect key="frame" x="89.999999999999986" y="0.0" width="72.000000000000014" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="短信登录"> |
| | |
| | | </constraints> |
| | | </stackView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ej3-Zy-UxP"> |
| | | <rect key="frame" x="140.33333333333334" y="376" width="112.33333333333334" height="25"/> |
| | | <rect key="frame" x="142.66666666666666" y="376" width="108" height="25"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" selected="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hI1-WH-dqa"> |
| | | <rect key="frame" x="0.0" y="0.0" width="50" height="25"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="48" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="修改密码"> |
| | |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="|" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Pxy-q7-vhk"> |
| | | <rect key="frame" x="50" y="0.0" width="12.333333333333336" height="25"/> |
| | | <rect key="frame" x="48" y="0.0" width="12" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <color key="textColor" name="FE6E0D"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="anK-cQ-sSd"> |
| | | <rect key="frame" x="62.333333333333314" y="0.0" width="50" height="25"/> |
| | | <rect key="frame" x="60" y="0.0" width="48" height="25"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="忘记密码"> |
| | |
| | | </connections> |
| | | </button> |
| | | <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Peu-H2-2Bj"> |
| | | <rect key="frame" x="231" y="11.666666666666686" width="62" height="27"/> |
| | | <rect key="frame" x="233" y="11.666666666666686" width="60" height="27"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="获取验证码"> |
| | |
| | | <rect key="frame" x="0.0" y="716" width="393" height="102"/> |
| | | <subviews> |
| | | <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ikk-sm-4Sm"> |
| | | <rect key="frame" x="146.66666666666666" y="42" width="100" height="50"/> |
| | | <rect key="frame" x="147.66666666666666" y="42" width="98" height="50"/> |
| | | <subviews> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="AA4-J4-8iR" customClass="QMUIButton"> |
| | | <rect key="frame" x="0.0" y="0.0" width="100" height="50"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="98" height="50"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="微信登录" image="btn_wechat"> |
| | |
| | | </subviews> |
| | | </stackView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="其他登录方式" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cqp-2p-rC6"> |
| | | <rect key="frame" x="159.66666666666666" y="10" width="73.666666666666657" height="17"/> |
| | | <rect key="frame" x="160.66666666666666" y="10" width="71.666666666666657" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="DBH-wO-NS0"/> |
| | | </constraints> |
| | |
| | | } |
| | | } |
| | | |
| | | var studentProfile1Model:StudentProfile1Model!{ |
| | | didSet{ |
| | | label_name.text = studentProfile1Model.stuName |
| | | label_idCard.text = studentProfile1Model.idCard |
| | | label_age.text = "\(studentProfile1Model.stuAge)岁" |
| | | label_phone.text = studentProfile1Model.stuPhone |
| | | } |
| | | } |
| | | |
| | | var isChoose:Bool!{ |
| | | didSet{ |
| | | img_radio.isHidden = !isChoose |
New file |
| | |
| | | // |
| | | // StudentInfo_2_2_TCell.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/4/10. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class StudentInfo_2_2_TCell: UITableViewCell { |
| | | |
| | | @IBOutlet weak var img_radio: UIImageView! |
| | | @IBOutlet weak var label_name: UILabel! |
| | | @IBOutlet weak var label_idCard: UILabel! |
| | | @IBOutlet weak var label_age: UILabel! |
| | | @IBOutlet weak var label_phone: UILabel! |
| | | @IBOutlet weak var view_container: UIView! |
| | | |
| | | var indexPath:IndexPath? |
| | | var activityDetailPartModel:ActivityDetailPartModel!{ |
| | | didSet{ |
| | | label_name.text = activityDetailPartModel.name |
| | | label_idCard.text = activityDetailPartModel.idcard |
| | | label_age.text = "\(activityDetailPartModel.age)岁" |
| | | label_phone.text = activityDetailPartModel.phone |
| | | } |
| | | } |
| | | |
| | | var studentProfile1Model:StudentProfile1Model!{ |
| | | didSet{ |
| | | label_name.text = studentProfile1Model.stuName |
| | | label_idCard.text = studentProfile1Model.idCard |
| | | label_age.text = "\(studentProfile1Model.stuAge)岁" |
| | | label_phone.text = studentProfile1Model.stuPhone |
| | | } |
| | | } |
| | | |
| | | var isChoose:Bool!{ |
| | | didSet{ |
| | | img_radio.isHidden = !isChoose |
| | | } |
| | | } |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="175" id="KGk-i7-Jjw" customClass="StudentInfo_2_2_TCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="452" height="175"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> |
| | | <rect key="frame" x="0.0" y="0.0" width="452" height="175"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iMY-N1-d3T"> |
| | | <rect key="frame" x="7" y="7" width="438" height="76"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9JI-Yn-uXK"> |
| | | <rect key="frame" x="10" y="13" width="35" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="iox-WP-vsd"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bk4-LT-DaF"> |
| | | <rect key="frame" x="45" y="14.666666666666668" width="13.333333333333336" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身份证号:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="24Q-hh-Z6a"> |
| | | <rect key="frame" x="114" y="13" width="72" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="21Z-ZI-Vee"/> |
| | | <constraint firstAttribute="width" constant="72" id="ybQ-yH-Qbl"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="fah-xK-FSz"> |
| | | <rect key="frame" x="186" y="14.666666666666668" width="215" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="年龄:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uh7-sA-5LR"> |
| | | <rect key="frame" x="10" y="44" width="35" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="4dQ-cQ-Ovh"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ezm-4z-UG1"> |
| | | <rect key="frame" x="45" y="45.666666666666664" width="13.333333333333336" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联系电话:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R2n-gm-ODg"> |
| | | <rect key="frame" x="114.00000000000001" y="44" width="62.666666666666671" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="FzH-Fx-WnE"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="20L-Gl-uQa"> |
| | | <rect key="frame" x="176.66666666666666" y="45.666666666666664" width="13.333333333333343" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_select_u" translatesAutoresizingMaskIntoConstraints="NO" id="gO4-5n-OA7"> |
| | | <rect key="frame" x="411" y="13" width="20" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="WSd-HN-a8P"/> |
| | | <constraint firstAttribute="width" constant="20" id="hTM-Qh-1F7"/> |
| | | </constraints> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="1" green="0.90588235289999997" blue="0.80000000000000004" alpha="0.080000000000000002" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="9JI-Yn-uXK" firstAttribute="top" secondItem="iMY-N1-d3T" secondAttribute="top" constant="13" id="1Jg-R9-FNO"/> |
| | | <constraint firstAttribute="height" constant="76" id="3Z5-u0-ohD"/> |
| | | <constraint firstItem="bk4-LT-DaF" firstAttribute="leading" secondItem="9JI-Yn-uXK" secondAttribute="trailing" id="49a-8U-uXt"/> |
| | | <constraint firstItem="Ezm-4z-UG1" firstAttribute="centerY" secondItem="uh7-sA-5LR" secondAttribute="centerY" id="6Gu-0b-IID"/> |
| | | <constraint firstItem="R2n-gm-ODg" firstAttribute="leading" secondItem="24Q-hh-Z6a" secondAttribute="leading" id="6M0-rO-OBj"/> |
| | | <constraint firstItem="fah-xK-FSz" firstAttribute="centerY" secondItem="24Q-hh-Z6a" secondAttribute="centerY" id="EFP-ue-ciH"/> |
| | | <constraint firstItem="gO4-5n-OA7" firstAttribute="centerY" secondItem="9JI-Yn-uXK" secondAttribute="centerY" id="Eal-s5-jTS"/> |
| | | <constraint firstItem="fah-xK-FSz" firstAttribute="leading" secondItem="24Q-hh-Z6a" secondAttribute="trailing" id="HBB-XX-5qq"/> |
| | | <constraint firstItem="24Q-hh-Z6a" firstAttribute="centerY" secondItem="9JI-Yn-uXK" secondAttribute="centerY" id="LWl-jS-mfM"/> |
| | | <constraint firstItem="R2n-gm-ODg" firstAttribute="centerY" secondItem="uh7-sA-5LR" secondAttribute="centerY" id="Lgm-VP-iiX"/> |
| | | <constraint firstAttribute="trailing" secondItem="gO4-5n-OA7" secondAttribute="trailing" constant="7" id="T8S-IO-KE1"/> |
| | | <constraint firstItem="24Q-hh-Z6a" firstAttribute="leading" secondItem="iMY-N1-d3T" secondAttribute="leading" constant="114" id="WNi-sA-42n"/> |
| | | <constraint firstItem="uh7-sA-5LR" firstAttribute="leading" secondItem="iMY-N1-d3T" secondAttribute="leading" constant="10" id="aE4-C6-3xw"/> |
| | | <constraint firstItem="bk4-LT-DaF" firstAttribute="centerY" secondItem="9JI-Yn-uXK" secondAttribute="centerY" id="dNu-rj-xgl"/> |
| | | <constraint firstItem="20L-Gl-uQa" firstAttribute="leading" secondItem="R2n-gm-ODg" secondAttribute="trailing" id="j1t-u4-CZM"/> |
| | | <constraint firstItem="uh7-sA-5LR" firstAttribute="top" secondItem="9JI-Yn-uXK" secondAttribute="bottom" constant="11" id="lQR-QW-h2I"/> |
| | | <constraint firstItem="gO4-5n-OA7" firstAttribute="leading" secondItem="fah-xK-FSz" secondAttribute="trailing" constant="10" id="qWX-Tl-SC3"/> |
| | | <constraint firstItem="9JI-Yn-uXK" firstAttribute="leading" secondItem="iMY-N1-d3T" secondAttribute="leading" constant="10" id="t5N-vf-Lni"/> |
| | | <constraint firstItem="Ezm-4z-UG1" firstAttribute="leading" secondItem="uh7-sA-5LR" secondAttribute="trailing" id="uhr-e8-pWE"/> |
| | | <constraint firstItem="20L-Gl-uQa" firstAttribute="centerY" secondItem="R2n-gm-ODg" secondAttribute="centerY" id="zLV-NZ-H23"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="borderColor"> |
| | | <color key="value" red="0.99215686270000003" green="0.47450980390000003" blue="0.0078431372550000003" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="borderWidth"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="iMY-N1-d3T" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7" id="T50-dv-wtU"/> |
| | | <constraint firstAttribute="bottom" secondItem="iMY-N1-d3T" secondAttribute="bottom" constant="7" id="dYj-8u-Y7f"/> |
| | | <constraint firstAttribute="trailing" secondItem="iMY-N1-d3T" secondAttribute="trailing" constant="7" id="oJe-Ca-far"/> |
| | | <constraint firstItem="iMY-N1-d3T" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="7" id="slJ-Fk-Ozq"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <viewLayoutGuide key="safeArea" id="njF-e1-oar"/> |
| | | <connections> |
| | | <outlet property="img_radio" destination="gO4-5n-OA7" id="ieY-Ta-GzO"/> |
| | | <outlet property="label_age" destination="Ezm-4z-UG1" id="bRj-q0-E37"/> |
| | | <outlet property="label_idCard" destination="fah-xK-FSz" id="2Ky-Ty-WFI"/> |
| | | <outlet property="label_name" destination="bk4-LT-DaF" id="Rm7-MU-lQ8"/> |
| | | <outlet property="label_phone" destination="20L-Gl-uQa" id="bF1-6q-Shp"/> |
| | | <outlet property="view_container" destination="iMY-N1-d3T" id="xly-Va-DNH"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="172.51908396946564" y="66.549295774647888"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_select_u" width="20" height="20"/> |
| | | </resources> |
| | | </document> |
| | |
| | | case games //游戏 |
| | | case exchange //替换 |
| | | case recharge //充值 |
| | | case huimin //惠民 |
| | | } |
| | | |
| | | |
| | |
| | | label_content.text = "支付成功" |
| | | case .none:break |
| | | } |
| | | case .huimin: |
| | | btn_backHome.isHidden = true |
| | | collectionView.isHidden = true |
| | | switch result { |
| | | case .fail(let str,let code): |
| | | btn_again.setTitle("再次支付", for: .normal) |
| | | btn_back.setTitle("返回", for: .normal) |
| | | label_content.text = str |
| | | case .success: |
| | | NotificationCenter.default.post(name: UpdateCurrentStore_Noti, object: nil) |
| | | btn_again.isHidden = false |
| | | btn_again.setTitle("查看惠民卡", for: .normal) |
| | | btn_back.setTitleColor(Def_ThemeColor, for: .normal) |
| | | btn_back.backgroundColor = .white |
| | | btn_back.setTitle("返回首页", for: .normal) |
| | | btn_back.jq_borderColor = Def_ThemeColor |
| | | btn_back.jq_borderWidth = 1 |
| | | label_content.text = "购买成功" |
| | | case .none:break |
| | | } |
| | | |
| | | case .exchange: |
| | | switch result { |
| | |
| | | case "查看排名": |
| | | let vc = WorldCupVC() |
| | | jumpAndRemoveSelfVC(vc) |
| | | case "查看惠民卡": |
| | | let vc = MyCardListVC() |
| | | jumpAndRemoveSelfVC(vc) |
| | | case "查看预约": |
| | | let vc = YardBookingListVC() |
| | | jumpAndRemoveSelfVC(vc) |
| | |
| | | jumpAndRemoveSelfVC(vc) |
| | | } |
| | | case "再次支付": |
| | | if objType == .courseApply || objType == .worldCup{ |
| | | if objType == .courseApply || objType == .worldCup || objType == .huimin{ |
| | | navigationController?.popViewController(animated: true, {[weak self] in |
| | | self?.againClouse?() |
| | | }) |
| | |
| | | @IBAction func backAction(_ sender: UIButton) { |
| | | |
| | | if sender.titleLabel?.text == "返回首页"{ |
| | | |
| | | if objType == .huimin{ |
| | | for v in navigationController?.viewControllers ?? []{ |
| | | if v is CardCenterVC{ |
| | | navigationController?.popToViewController(v, animated: true);break |
| | | } |
| | | } |
| | | return |
| | | } |
| | | |
| | | navigationController?.qmui_popToRootViewController(animated: true, completion: { |
| | | JQ_currentViewController().tabBarController?.selectedIndex = 0 |
| | | }) |
New file |
| | |
| | | // |
| | | // StudentChoose3View.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/27. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | import QMUIKit |
| | | import RxSwift |
| | | import RxCocoa |
| | | import HandyJSON |
| | | |
| | | class StudentChoose3View: UIView,JQNibView{ |
| | | |
| | | @IBOutlet weak var tableView: UITableView! |
| | | @IBOutlet weak var btn_add: QMUIButton! |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var cons_bottom: NSLayoutConstraint! |
| | | @IBOutlet weak var cons_tableHei: NSLayoutConstraint! |
| | | |
| | | private var clickClouse:((Set<StudentProfile1Model>)->Void)! |
| | | private var needAddClouse:(()->Void)! |
| | | private var disposeBag = DisposeBag() |
| | | private var selectStudents = Set<StudentProfile1Model>() |
| | | private var viewModel = StudentExchangeViewModel() |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | cons_bottom.constant = -(JQ_ScreenW * 1.1) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.separatorStyle = .none |
| | | tableView.showsVerticalScrollIndicator = false |
| | | tableView.showsHorizontalScrollIndicator = false |
| | | btn_add.spacingBetweenImageAndTitle = 4 |
| | | btn_add.imagePosition = .right |
| | | alpha = 0 |
| | | layoutIfNeeded() |
| | | setRx() |
| | | |
| | | NotificationCenter.default.rx.notification(Noti_hiddenCardCenter_Add).take(until: self.rx.deallocated).subscribe(onNext: {[unowned self] noti in |
| | | guard let state = noti.object as? Bool else { return } |
| | | self.alpha = state ? 0:1 |
| | | self.viewModel.beginRefresh() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | static func show(defaultStu:Set<StudentProfile1Model>? = nil,clickClouse:@escaping (Set<StudentProfile1Model>)->Void){ |
| | | let studentChooseView = StudentChoose3View.jq_loadNibView() |
| | | if defaultStu != nil{ |
| | | studentChooseView.selectStudents = defaultStu! |
| | | } |
| | | studentChooseView.tableView.register(UINib(nibName: "StudentInfo_2_2_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_2_2_TCell") |
| | | studentChooseView.frame = sceneDelegate?.window?.frame ?? .zero |
| | | studentChooseView.clickClouse = clickClouse |
| | | sceneDelegate?.window?.addSubview(studentChooseView) |
| | | studentChooseView.cons_bottom.constant = 0 |
| | | studentChooseView.viewModel.configure(studentChooseView.tableView,needMore: false) |
| | | studentChooseView.viewModel.beginRefresh() |
| | | |
| | | UIView.animate(withDuration: 0.4) { |
| | | studentChooseView.alpha = 1 |
| | | studentChooseView.layoutIfNeeded() |
| | | studentChooseView.tableView.reloadData() |
| | | } |
| | | } |
| | | |
| | | private func setRx(){ |
| | | viewModel.dataSource.subscribe(onNext: {[weak self] data in |
| | | let hei = min(360,Double(data.count) * 90.0) |
| | | self?.cons_tableHei.constant = hei |
| | | UIView.animate(withDuration: 0.4) { |
| | | self?.layoutIfNeeded() |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | NotificationCenter.default.rx.notification(StudentUpdate_Nofi, object: nil).subscribe(onNext: {_ in |
| | | self.viewModel.beginRefresh() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | @IBAction func closeAction(_ sender: UIButton) { |
| | | closeAction() |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | DispatchQueue.main.asyncAfter(wallDeadline: .now()+0.1) { |
| | | self.view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20) |
| | | } |
| | | } |
| | | |
| | | private func closeAction(){ |
| | | self.cons_bottom.constant = -(JQ_ScreenW * 1.1) |
| | | UIView.animate(withDuration: 0.4) { |
| | | self.alpha = 0 |
| | | self.layoutIfNeeded() |
| | | } completion: { _ in |
| | | self.removeFromSuperview() |
| | | } |
| | | } |
| | | @IBAction func addPersionAction(_ sender: Any) { |
| | | NotificationCenter.default.post(name: Noti_hiddenCardCenter_Add, object: true) |
| | | let vc = CardCenterAddUserVC() |
| | | JQ_currentNavigationController().pushViewController(vc) |
| | | } |
| | | |
| | | @IBAction func completeAction(_ sender: UIButton) { |
| | | guard !selectStudents.isEmpty else { |
| | | alert(msg: "请选择");return |
| | | } |
| | | clickClouse!(selectStudents) |
| | | closeAction() |
| | | } |
| | | } |
| | | |
| | | extension StudentChoose3View:UITableViewDelegate{ |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | let item = viewModel.dataSource.value[indexPath.row] |
| | | |
| | | if selectStudents.contains(item){ |
| | | selectStudents.remove(item) |
| | | }else{ |
| | | selectStudents.insert(item) |
| | | } |
| | | tableView.reloadData() |
| | | } |
| | | } |
| | | |
| | | extension StudentChoose3View:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return viewModel.dataSource.value.count |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_2_2_TCell") as! StudentInfo_2_2_TCell |
| | | cell.indexPath = indexPath |
| | | cell.studentProfile1Model = viewModel.dataSource.value[indexPath.row] |
| | | cell.img_radio.isHidden = false |
| | | |
| | | let isSelect = selectStudents.contains(viewModel.dataSource.value[indexPath.row]) |
| | | |
| | | cell.img_radio.image = UIImage(named: isSelect ? "btn_select" : "btn_select_u") |
| | | if isSelect{ |
| | | cell.view_container.borderColor = UIColor(hexString: "#FD7902")?.withAlphaComponent(0.28) |
| | | cell.img_radio.isHidden = false |
| | | }else{ |
| | | cell.view_container.borderColor = UIColor(hexString: "#ADADAD")?.withAlphaComponent(0.28) |
| | | cell.img_radio.isHidden = true |
| | | } |
| | | |
| | | return cell |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="StudentChoose3View" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9yz-Qc-Cau"> |
| | | <rect key="frame" x="0.0" y="515" width="393" height="337"/> |
| | | <subviews> |
| | | <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="RVR-I2-WIW"> |
| | | <rect key="frame" x="0.0" y="55" width="393" height="166"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="166" id="avm-S6-ZNq"/> |
| | | </constraints> |
| | | </tableView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kok-Iq-wbY"> |
| | | <rect key="frame" x="100" y="237" width="193" height="40"/> |
| | | <color key="backgroundColor" name="FE6E0D"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="Npf-BG-cbb"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="确认"> |
| | | <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </state> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="20"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | <connections> |
| | | <action selector="completeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="HjH-mE-ZuH"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DSm-33-mVo" customClass="QMUIButton"> |
| | | <rect key="frame" x="306" y="23" width="72" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="B2b-1b-rhb"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="添加人员" image="btn_add_1"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.56999999999999995" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="addPersionAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="T3h-5J-DpR"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="Kok-Iq-wbY" secondAttribute="trailing" constant="100" id="2t6-u5-lt8"/> |
| | | <constraint firstItem="Kok-Iq-wbY" firstAttribute="leading" secondItem="9yz-Qc-Cau" secondAttribute="leading" constant="100" id="42A-F9-mL2"/> |
| | | <constraint firstAttribute="trailing" secondItem="RVR-I2-WIW" secondAttribute="trailing" id="4l4-n1-iIi"/> |
| | | <constraint firstAttribute="bottomMargin" secondItem="Kok-Iq-wbY" secondAttribute="bottom" constant="18" id="ICh-yU-E5x"/> |
| | | <constraint firstItem="RVR-I2-WIW" firstAttribute="leading" secondItem="9yz-Qc-Cau" secondAttribute="leading" id="WY0-F8-PsD"/> |
| | | <constraint firstItem="DSm-33-mVo" firstAttribute="top" secondItem="9yz-Qc-Cau" secondAttribute="top" constant="23" id="dsL-wg-Yk0"/> |
| | | <constraint firstItem="RVR-I2-WIW" firstAttribute="top" secondItem="DSm-33-mVo" secondAttribute="bottom" constant="7" id="hZS-Ui-rG0"/> |
| | | <constraint firstAttribute="trailing" secondItem="DSm-33-mVo" secondAttribute="trailing" constant="15" id="jbx-3W-n73"/> |
| | | <constraint firstItem="Kok-Iq-wbY" firstAttribute="top" secondItem="RVR-I2-WIW" secondAttribute="bottom" constant="16" id="l4f-q6-6ip"/> |
| | | </constraints> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uKH-36-7Ze"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="456"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <connections> |
| | | <action selector="closeAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="cwa-3Q-Pyu"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/> |
| | | <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="9yz-Qc-Cau" secondAttribute="trailing" id="Hl3-TY-Za3"/> |
| | | <constraint firstAttribute="bottom" secondItem="9yz-Qc-Cau" secondAttribute="bottom" id="Sxv-J1-E4B"/> |
| | | <constraint firstItem="uKH-36-7Ze" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" id="TuZ-wR-mdw"/> |
| | | <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="uKH-36-7Ze" secondAttribute="trailing" id="bdP-OP-KUJ"/> |
| | | <constraint firstItem="9yz-Qc-Cau" firstAttribute="top" secondItem="uKH-36-7Ze" secondAttribute="bottom" id="gdn-da-dpM"/> |
| | | <constraint firstItem="9yz-Qc-Cau" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="qoT-0I-skc"/> |
| | | <constraint firstItem="uKH-36-7Ze" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="rdG-6M-CUG"/> |
| | | </constraints> |
| | | <connections> |
| | | <outlet property="btn_add" destination="DSm-33-mVo" id="jTr-Zg-DSH"/> |
| | | <outlet property="cons_bottom" destination="Sxv-J1-E4B" id="FZP-9d-3Lu"/> |
| | | <outlet property="cons_tableHei" destination="avm-S6-ZNq" id="ha2-cb-a8z"/> |
| | | <outlet property="tableView" destination="RVR-I2-WIW" id="EXr-9d-rA2"/> |
| | | <outlet property="view_container" destination="9yz-Qc-Cau" id="fsV-0r-d2e"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="139" y="21"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_add_1" width="16" height="16"/> |
| | | <namedColor name="FE6E0D"> |
| | | <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
| | |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | |
| | | class SearchBannerCCell: UICollectionViewCell { |
| | | @IBOutlet weak var img_cover: UIImageView! |
| | | @IBOutlet weak var label_distance: UILabel! |
| | | @IBOutlet weak var label_title: UILabel! |
| | | @IBOutlet weak var label_address: UILabel! |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | |
| | | var startClouseExploreItemModel:StartClouseExploreModel!{ |
| | | didSet{ |
| | | img_cover.sd_setImage(with: URL(string: startClouseExploreItemModel.storeImg)) |
| | |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | // Initialization code |
| | | |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | img_cover.jq_addCorners(corner: [.topLeft,.topRight], radius: 10) |
| | | view_container.jq_addShadows(shadowColor: .black.withAlphaComponent(0.1), corner: 10, radius: 5, offset: CGSize(width: 0, height: 5), opacity: 1) |
| | | view_container.layer.masksToBounds = false |
| | | } |
| | | |
| | | } |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_SearchBannerCCell" id="gTV-IL-0wX" customClass="SearchBannerCCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="382" height="187"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="382" height="320"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> |
| | | <rect key="frame" x="0.0" y="0.0" width="382" height="187"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="382" height="320"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="pTu-5i-L13"> |
| | | <rect key="frame" x="0.0" y="0.0" width="382" height="187"/> |
| | | <color key="backgroundColor" systemColor="systemGray6Color"/> |
| | | </imageView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rfe-En-Xee"> |
| | | <rect key="frame" x="0.0" y="122" width="382" height="65"/> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="thJ-IX-chT"> |
| | | <rect key="frame" x="5" y="5" width="372" height="310"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Ad-qv-y5J"> |
| | | <rect key="frame" x="10" y="6" width="362" height="18"/> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="pTu-5i-L13"> |
| | | <rect key="frame" x="0.0" y="0.0" width="372" height="220"/> |
| | | <color key="backgroundColor" systemColor="systemGray6Color"/> |
| | | </imageView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rfe-En-Xee"> |
| | | <rect key="frame" x="0.0" y="220" width="372" height="90"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Ad-qv-y5J"> |
| | | <rect key="frame" x="10" y="6" width="352" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="0SY-Gz-SGL"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9qr-cP-39L"> |
| | | <rect key="frame" x="10" y="24" width="352" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="u6Y-3Q-yTC"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="neg-i1-S7H"> |
| | | <rect key="frame" x="10" y="44" width="352" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="fP5-Ou-fL0"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="10"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.69999999999999996" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="0SY-Gz-SGL"/> |
| | | <constraint firstItem="neg-i1-S7H" firstAttribute="top" secondItem="9qr-cP-39L" secondAttribute="bottom" constant="2" id="41b-A1-o3H"/> |
| | | <constraint firstItem="7Ad-qv-y5J" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="6BZ-vk-orz"/> |
| | | <constraint firstAttribute="height" constant="90" id="7TH-uK-bAy"/> |
| | | <constraint firstItem="7Ad-qv-y5J" firstAttribute="top" secondItem="Rfe-En-Xee" secondAttribute="top" constant="6" id="N1b-m0-E3f"/> |
| | | <constraint firstItem="neg-i1-S7H" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="TJQ-yf-Jth"/> |
| | | <constraint firstItem="9qr-cP-39L" firstAttribute="top" secondItem="7Ad-qv-y5J" secondAttribute="bottom" id="Y4p-px-8RG"/> |
| | | <constraint firstAttribute="trailing" secondItem="neg-i1-S7H" secondAttribute="trailing" constant="10" id="ZbX-ch-zpZ"/> |
| | | <constraint firstAttribute="trailing" secondItem="7Ad-qv-y5J" secondAttribute="trailing" constant="10" id="fdv-4U-3AR"/> |
| | | <constraint firstItem="9qr-cP-39L" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="h41-qb-zN9"/> |
| | | <constraint firstAttribute="trailing" secondItem="9qr-cP-39L" secondAttribute="trailing" constant="10" id="qAf-XV-tjp"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="13"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9qr-cP-39L"> |
| | | <rect key="frame" x="10" y="24" width="362" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="u6Y-3Q-yTC"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="13"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="neg-i1-S7H"> |
| | | <rect key="frame" x="10" y="44" width="362" height="18"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="18" id="fP5-Ou-fL0"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="11"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="0.78000000000000003" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.41999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="neg-i1-S7H" firstAttribute="top" secondItem="9qr-cP-39L" secondAttribute="bottom" constant="2" id="41b-A1-o3H"/> |
| | | <constraint firstItem="7Ad-qv-y5J" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="6BZ-vk-orz"/> |
| | | <constraint firstAttribute="height" constant="65" id="7TH-uK-bAy"/> |
| | | <constraint firstItem="7Ad-qv-y5J" firstAttribute="top" secondItem="Rfe-En-Xee" secondAttribute="top" constant="6" id="N1b-m0-E3f"/> |
| | | <constraint firstItem="neg-i1-S7H" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="TJQ-yf-Jth"/> |
| | | <constraint firstItem="9qr-cP-39L" firstAttribute="top" secondItem="7Ad-qv-y5J" secondAttribute="bottom" id="Y4p-px-8RG"/> |
| | | <constraint firstAttribute="trailing" secondItem="neg-i1-S7H" secondAttribute="trailing" constant="10" id="ZbX-ch-zpZ"/> |
| | | <constraint firstAttribute="trailing" secondItem="7Ad-qv-y5J" secondAttribute="trailing" constant="10" id="fdv-4U-3AR"/> |
| | | <constraint firstItem="9qr-cP-39L" firstAttribute="leading" secondItem="Rfe-En-Xee" secondAttribute="leading" constant="10" id="h41-qb-zN9"/> |
| | | <constraint firstAttribute="trailing" secondItem="9qr-cP-39L" secondAttribute="trailing" constant="10" id="qAf-XV-tjp"/> |
| | | <constraint firstAttribute="bottom" secondItem="Rfe-En-Xee" secondAttribute="bottom" id="3JP-kY-tuw"/> |
| | | <constraint firstAttribute="trailing" secondItem="Rfe-En-Xee" secondAttribute="trailing" id="HbQ-5h-QeL"/> |
| | | <constraint firstItem="Rfe-En-Xee" firstAttribute="top" secondItem="pTu-5i-L13" secondAttribute="bottom" id="Q15-Cp-2NB"/> |
| | | <constraint firstItem="pTu-5i-L13" firstAttribute="top" secondItem="thJ-IX-chT" secondAttribute="top" id="am4-b2-Iig"/> |
| | | <constraint firstAttribute="trailing" secondItem="pTu-5i-L13" secondAttribute="trailing" id="cuK-XL-GLL"/> |
| | | <constraint firstItem="Rfe-En-Xee" firstAttribute="leading" secondItem="thJ-IX-chT" secondAttribute="leading" id="dZF-Eo-Jra"/> |
| | | <constraint firstItem="pTu-5i-L13" firstAttribute="leading" secondItem="thJ-IX-chT" secondAttribute="leading" id="sqK-vd-Q5B"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </view> |
| | | <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstItem="pTu-5i-L13" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="0ZL-Hc-JnK"/> |
| | | <constraint firstAttribute="trailing" secondItem="Rfe-En-Xee" secondAttribute="trailing" id="8dM-sr-xM4"/> |
| | | <constraint firstAttribute="bottom" secondItem="pTu-5i-L13" secondAttribute="bottom" id="INa-nT-hdk"/> |
| | | <constraint firstItem="Rfe-En-Xee" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="Whl-GY-69a"/> |
| | | <constraint firstItem="pTu-5i-L13" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Zy7-OI-m3p"/> |
| | | <constraint firstAttribute="trailing" secondItem="pTu-5i-L13" secondAttribute="trailing" id="gbV-7j-Ilv"/> |
| | | <constraint firstAttribute="bottom" secondItem="Rfe-En-Xee" secondAttribute="bottom" id="z1u-HX-mA9"/> |
| | | <constraint firstItem="thJ-IX-chT" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="0Fn-kk-MDN"/> |
| | | <constraint firstAttribute="trailing" secondItem="thJ-IX-chT" secondAttribute="trailing" constant="5" id="87p-7b-Nmg"/> |
| | | <constraint firstAttribute="bottom" secondItem="thJ-IX-chT" secondAttribute="bottom" constant="5" id="Jac-BX-gdA"/> |
| | | <constraint firstItem="thJ-IX-chT" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="faG-NX-NIM"/> |
| | | </constraints> |
| | | <size key="customSize" width="382" height="187"/> |
| | | <size key="customSize" width="382" height="320"/> |
| | | <connections> |
| | | <outlet property="img_cover" destination="pTu-5i-L13" id="RBl-ek-ybz"/> |
| | | <outlet property="label_address" destination="neg-i1-S7H" id="1vD-Gd-e0N"/> |
| | | <outlet property="label_distance" destination="7Ad-qv-y5J" id="DYi-sG-VUW"/> |
| | | <outlet property="label_title" destination="9qr-cP-39L" id="rdg-3J-NFv"/> |
| | | <outlet property="view_container" destination="thJ-IX-chT" id="iYY-QF-ouM"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="316.03053435114504" y="126.40845070422536"/> |
| | | <point key="canvasLocation" x="316.03053435114504" y="173.2394366197183"/> |
| | | </collectionViewCell> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | <systemColor name="systemGray6Color"> |
| | | <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </systemColor> |
New file |
| | |
| | | // |
| | | // MyCardTCell.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/28. |
| | | // |
| | | |
| | | import UIKit |
| | | import JQTools |
| | | import RxRelay |
| | | import RxSwift |
| | | |
| | | class MyCardTCell: UITableViewCell { |
| | | |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var btn_refund: UIButton! |
| | | @IBOutlet weak var img: UIImageView! |
| | | @IBOutlet weak var label_title: UILabel! |
| | | @IBOutlet weak var label_subTitle: UILabel! |
| | | private var model:HuiminCardMyItemModel? |
| | | private var disposeBag = DisposeBag() |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | btn_refund.borderWidth = 1 |
| | | btn_refund.jq_borderColor = UIColor(hexString: "#C8C8C8") |
| | | btn_refund.cornerRadius = 2 |
| | | |
| | | view_container.jq_addShadows(shadowColor: .black.withAlphaComponent(0.1), corner: 10, radius: 5, offset: CGSize(width: 0, height: 10), opacity: 1) |
| | | |
| | | } |
| | | |
| | | override func layoutSubviews() { |
| | | super.layoutSubviews() |
| | | img.jq_addCorners(corner: [.topRight,.topLeft], radius: 10, width: JQ_ScreenW - 40, height: 220) |
| | | } |
| | | |
| | | @IBAction func refundAction(_ sender: UIButton) { |
| | | guard let m = model else { return } |
| | | guard m.isRefund == 1 else {return} |
| | | guard m.isExpire == 0 else {return} |
| | | guard m.status == 2 else{return} |
| | | |
| | | if m.isRefund == 2{ |
| | | alert(msg: "正在退款流程中");return |
| | | } |
| | | |
| | | let attributedStringbuilder = AttributedStringbuilder.build() |
| | | .add(string: "退款金额:\(m.salesMoney.currency())\n\n", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexStr: "#FE7D03")) |
| | | .add(string: "确认退款吗?确认后支付金额将原路返回!", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: .black.withAlphaComponent(0.8)).mutableAttributedString |
| | | |
| | | |
| | | CommonAlertView.show(title: "提示", attribute: attributedStringbuilder, isSingle: false) {[unowned self] state in |
| | | if state{ |
| | | Services.myHuiminRefund(id: m.id).subscribe(onNext: {data in |
| | | alertSuccess(msg: "已发起退款申请") |
| | | DispatchQueue.main.asyncAfter(wallDeadline: .now()+1.0) { |
| | | NotificationCenter.default.post(name: Noti_MyCard_Refresh, object: nil) |
| | | } |
| | | }).disposed(by: self.disposeBag) |
| | | } |
| | | } |
| | | } |
| | | |
| | | func setModel(_ model:HuiminCardMyItemModel){ |
| | | self.model = model |
| | | img.sd_setImage(with: URL(string: model.cover)) |
| | | if model.isExpire == 0{ |
| | | label_subTitle.text = "有效期至:" + model.endTime |
| | | }else{ |
| | | label_subTitle.text = "已过期" |
| | | } |
| | | |
| | | label_title.text = model.studentList.map({$0.name}).joined(separator: ",") |
| | | |
| | | |
| | | if model.isRefund == 2{ |
| | | btn_refund.setTitle("退款中", for: .normal) |
| | | view_container.alpha = 1 |
| | | }else{ |
| | | btn_refund.setTitle("退款", for: .normal) |
| | | view_container.alpha = 1 |
| | | } |
| | | |
| | | if model.status == 3{ |
| | | btn_refund.setTitle("已退款", for: .normal) |
| | | } |
| | | |
| | | if model.status == 3 || model.isExpire == 1{ |
| | | view_container.alpha = 0.5 |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="275" id="KGk-i7-Jjw" customClass="MyCardTCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="320" height="275"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> |
| | | <rect key="frame" x="0.0" y="0.0" width="320" height="275"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xRS-EW-0ze"> |
| | | <rect key="frame" x="20" y="0.0" width="280" height="255"/> |
| | | <subviews> |
| | | <view contentMode="scaleAspectFill" translatesAutoresizingMaskIntoConstraints="NO" id="nf4-Ou-Ude"> |
| | | <rect key="frame" x="0.0" y="0.0" width="280" height="200"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_card_mask" translatesAutoresizingMaskIntoConstraints="NO" id="GpB-g5-DS4"> |
| | | <rect key="frame" x="0.0" y="0.0" width="280" height="200"/> |
| | | </imageView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="GpB-g5-DS4" firstAttribute="leading" secondItem="nf4-Ou-Ude" secondAttribute="leading" id="DKA-xF-uvr"/> |
| | | <constraint firstAttribute="bottom" secondItem="GpB-g5-DS4" secondAttribute="bottom" id="UKr-Hp-mpb"/> |
| | | <constraint firstAttribute="trailing" secondItem="GpB-g5-DS4" secondAttribute="trailing" id="Y9x-OJ-U8x"/> |
| | | <constraint firstAttribute="height" constant="200" id="vMj-JC-qaG"/> |
| | | <constraint firstItem="GpB-g5-DS4" firstAttribute="top" secondItem="nf4-Ou-Ude" secondAttribute="top" id="vfi-Bb-rfu"/> |
| | | </constraints> |
| | | </view> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jhO-J2-YDG"> |
| | | <rect key="frame" x="180" y="219" width="86" height="31"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="31" id="F4l-gV-mMp"/> |
| | | <constraint firstAttribute="width" constant="86" id="iFH-3G-iJc"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="退款"> |
| | | <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="refundAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="N31-03-eW6"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zUg-yp-Y13"> |
| | | <rect key="frame" x="14" y="214" width="160" height="19.333333333333343"/> |
| | | <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oOa-ct-EVe"> |
| | | <rect key="frame" x="14" y="235.33333333333334" width="156" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="17" id="nSz-8n-8Gv"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.62" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="oOa-ct-EVe" firstAttribute="top" secondItem="zUg-yp-Y13" secondAttribute="bottom" constant="2" id="43O-Ph-nvu"/> |
| | | <constraint firstAttribute="trailing" secondItem="jhO-J2-YDG" secondAttribute="trailing" constant="14" id="8Dn-fM-3Pk"/> |
| | | <constraint firstItem="zUg-yp-Y13" firstAttribute="top" secondItem="nf4-Ou-Ude" secondAttribute="bottom" constant="14" id="9Fn-Uq-Nfo"/> |
| | | <constraint firstItem="zUg-yp-Y13" firstAttribute="leading" secondItem="xRS-EW-0ze" secondAttribute="leading" constant="14" id="9sU-SB-Tdf"/> |
| | | <constraint firstItem="nf4-Ou-Ude" firstAttribute="leading" secondItem="xRS-EW-0ze" secondAttribute="leading" id="HHa-5d-5et"/> |
| | | <constraint firstItem="oOa-ct-EVe" firstAttribute="leading" secondItem="zUg-yp-Y13" secondAttribute="leading" id="Ja9-az-DZr"/> |
| | | <constraint firstItem="nf4-Ou-Ude" firstAttribute="top" secondItem="xRS-EW-0ze" secondAttribute="top" id="MZF-1v-h69"/> |
| | | <constraint firstItem="jhO-J2-YDG" firstAttribute="top" secondItem="nf4-Ou-Ude" secondAttribute="bottom" constant="19" id="Mq5-Fy-6W0"/> |
| | | <constraint firstAttribute="trailing" secondItem="nf4-Ou-Ude" secondAttribute="trailing" id="dVg-fS-sM7"/> |
| | | <constraint firstItem="jhO-J2-YDG" firstAttribute="leading" secondItem="oOa-ct-EVe" secondAttribute="trailing" constant="10" id="feh-3a-EpC"/> |
| | | <constraint firstItem="jhO-J2-YDG" firstAttribute="leading" secondItem="zUg-yp-Y13" secondAttribute="trailing" constant="6" id="sMO-qK-kIq"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="xRS-EW-0ze" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="20" id="BUg-Lw-Z6q"/> |
| | | <constraint firstItem="xRS-EW-0ze" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="ExS-ty-oIf"/> |
| | | <constraint firstAttribute="trailing" secondItem="xRS-EW-0ze" secondAttribute="trailing" constant="20" id="eZq-xS-rJA"/> |
| | | <constraint firstAttribute="bottom" secondItem="xRS-EW-0ze" secondAttribute="bottom" constant="20" id="n5W-PO-zOr"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <connections> |
| | | <outlet property="btn_refund" destination="jhO-J2-YDG" id="i1Q-o0-j0R"/> |
| | | <outlet property="img" destination="GpB-g5-DS4" id="WDc-Rb-08i"/> |
| | | <outlet property="label_subTitle" destination="oOa-ct-EVe" id="zec-ke-0xQ"/> |
| | | <outlet property="label_title" destination="zUg-yp-Y13" id="AWF-35-mcb"/> |
| | | <outlet property="view_container" destination="xRS-EW-0ze" id="LKd-wp-xIx"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="138.93129770992365" y="101.05633802816902"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="icon_card_mask" width="350" height="140"/> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // StudentInfo_5_TCell.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/27. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | class StudentInfo_6_TCell: UITableViewCell { |
| | | |
| | | var activityDetailPartModel:StudentProfile1Model?{ |
| | | didSet{ |
| | | if let model = activityDetailPartModel{ |
| | | label_name.text = model.stuName |
| | | label_age.text = "\(model.stuAge)岁" |
| | | label_idCard.text = model.idCard |
| | | label_phone.text = model.stuPhone |
| | | } |
| | | } |
| | | } |
| | | |
| | | @IBOutlet weak var label_name: UILabel! |
| | | @IBOutlet weak var label_age: UILabel! |
| | | @IBOutlet weak var label_idCard: UILabel! |
| | | @IBOutlet weak var label_phone: UILabel! |
| | | var indexPath:IndexPath! |
| | | |
| | | var deleteAt:((Int)->Void)? |
| | | |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | selectionStyle = .none |
| | | } |
| | | |
| | | @IBAction func deleteAction(_ sender: UIButton) { |
| | | deleteAt?(indexPath.row) |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="99" id="KGk-i7-Jjw" customClass="StudentInfo_6_TCell" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="335" height="99"/> |
| | | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
| | | <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" ambiguous="YES" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> |
| | | <rect key="frame" x="0.0" y="0.0" width="335" height="99"/> |
| | | <autoresizingMask key="autoresizingMask"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mhn-bL-c9i"> |
| | | <rect key="frame" x="0.0" y="7" width="335" height="76"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k3U-VF-Ek5"> |
| | | <rect key="frame" x="10" y="13" width="35" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="EPv-7B-TV2"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TQX-sL-JEf"> |
| | | <rect key="frame" x="45" y="14.666666666666668" width="13.333333333333336" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="身份证号:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MSZ-pv-bOP"> |
| | | <rect key="frame" x="114" y="13" width="72" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="4WG-hx-b46"/> |
| | | <constraint firstAttribute="width" constant="72" id="4is-ST-CXs"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="sM5-6t-fh6"> |
| | | <rect key="frame" x="186" y="14.666666666666668" width="13.333333333333343" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="年龄:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Cc-fb-yer"> |
| | | <rect key="frame" x="10" y="44" width="35" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="8GV-z0-s6m"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iHh-hx-4e0"> |
| | | <rect key="frame" x="45" y="45.666666666666664" width="13.333333333333336" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联系电话:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AT3-xC-UbC"> |
| | | <rect key="frame" x="114.00000000000001" y="44" width="62.666666666666671" height="20"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="20" id="sgD-hW-okN"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AHW-Bs-DOD"> |
| | | <rect key="frame" x="176.66666666666666" y="45.666666666666664" width="13.333333333333343" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hJS-GP-gXV"> |
| | | <rect key="frame" x="302" y="46" width="20" height="22"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_delete_2"/> |
| | | <connections> |
| | | <action selector="deleteAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="pCf-qi-abS"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="3Ji-CP-IpC"/> |
| | | <color key="backgroundColor" red="1" green="0.90588235289999997" blue="0.80000000000000004" alpha="0.080000000000000002" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="iHh-hx-4e0" firstAttribute="leading" secondItem="4Cc-fb-yer" secondAttribute="trailing" id="75Y-e2-Qng"/> |
| | | <constraint firstItem="sM5-6t-fh6" firstAttribute="centerY" secondItem="MSZ-pv-bOP" secondAttribute="centerY" id="7Jl-i8-BHU"/> |
| | | <constraint firstItem="TQX-sL-JEf" firstAttribute="centerY" secondItem="k3U-VF-Ek5" secondAttribute="centerY" id="AWT-BT-heY"/> |
| | | <constraint firstItem="AHW-Bs-DOD" firstAttribute="centerY" secondItem="AT3-xC-UbC" secondAttribute="centerY" id="ICm-7H-Tjg"/> |
| | | <constraint firstItem="k3U-VF-Ek5" firstAttribute="top" secondItem="mhn-bL-c9i" secondAttribute="top" constant="13" id="L48-Ci-L0b"/> |
| | | <constraint firstItem="4Cc-fb-yer" firstAttribute="leading" secondItem="mhn-bL-c9i" secondAttribute="leading" constant="10" id="L8o-Qp-kdr"/> |
| | | <constraint firstItem="MSZ-pv-bOP" firstAttribute="leading" secondItem="mhn-bL-c9i" secondAttribute="leading" constant="114" id="NCP-OF-g7R"/> |
| | | <constraint firstItem="AT3-xC-UbC" firstAttribute="leading" secondItem="MSZ-pv-bOP" secondAttribute="leading" id="Nxo-kt-bpF"/> |
| | | <constraint firstAttribute="height" constant="76" id="OhT-1v-z9N"/> |
| | | <constraint firstItem="MSZ-pv-bOP" firstAttribute="centerY" secondItem="k3U-VF-Ek5" secondAttribute="centerY" id="SEM-cr-Jgo"/> |
| | | <constraint firstItem="AHW-Bs-DOD" firstAttribute="leading" secondItem="AT3-xC-UbC" secondAttribute="trailing" id="bU5-TC-eY6"/> |
| | | <constraint firstItem="sM5-6t-fh6" firstAttribute="leading" secondItem="MSZ-pv-bOP" secondAttribute="trailing" id="f25-5Y-iKf"/> |
| | | <constraint firstItem="TQX-sL-JEf" firstAttribute="leading" secondItem="k3U-VF-Ek5" secondAttribute="trailing" id="h1h-JB-ovl"/> |
| | | <constraint firstItem="iHh-hx-4e0" firstAttribute="centerY" secondItem="4Cc-fb-yer" secondAttribute="centerY" id="h7F-xa-2aC"/> |
| | | <constraint firstItem="k3U-VF-Ek5" firstAttribute="leading" secondItem="mhn-bL-c9i" secondAttribute="leading" constant="10" id="kUs-uX-XuE"/> |
| | | <constraint firstItem="3Ji-CP-IpC" firstAttribute="bottom" secondItem="hJS-GP-gXV" secondAttribute="bottom" constant="8" id="kZ0-Zi-wpC"/> |
| | | <constraint firstItem="AT3-xC-UbC" firstAttribute="centerY" secondItem="4Cc-fb-yer" secondAttribute="centerY" id="oGo-fa-rGU"/> |
| | | <constraint firstItem="4Cc-fb-yer" firstAttribute="top" secondItem="k3U-VF-Ek5" secondAttribute="bottom" constant="11" id="wWS-81-CMW"/> |
| | | <constraint firstItem="3Ji-CP-IpC" firstAttribute="trailing" secondItem="hJS-GP-gXV" secondAttribute="trailing" constant="13" id="x0W-FI-ZpL"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="borderColor"> |
| | | <color key="value" red="0.99215686270000003" green="0.47450980390000003" blue="0.0078431372550000003" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="borderWidth"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="4"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="mhn-bL-c9i" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7" id="Air-1L-RrE"/> |
| | | <constraint firstItem="mhn-bL-c9i" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="OJJ-SG-wSH"/> |
| | | <constraint firstAttribute="trailing" secondItem="mhn-bL-c9i" secondAttribute="trailing" id="WYw-KE-OUs"/> |
| | | <constraint firstAttribute="bottom" secondItem="mhn-bL-c9i" secondAttribute="bottom" constant="7" id="wMk-MJ-A7b"/> |
| | | </constraints> |
| | | </tableViewCellContentView> |
| | | <connections> |
| | | <outlet property="label_age" destination="iHh-hx-4e0" id="Vq5-zm-OU8"/> |
| | | <outlet property="label_idCard" destination="sM5-6t-fh6" id="VqS-C8-eCj"/> |
| | | <outlet property="label_name" destination="TQX-sL-JEf" id="Rxg-gq-oly"/> |
| | | <outlet property="label_phone" destination="AHW-Bs-DOD" id="BYc-fK-iTZ"/> |
| | | </connections> |
| | | <point key="canvasLocation" x="150.38167938931298" y="39.08450704225352"/> |
| | | </tableViewCell> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_delete_2" width="20" height="20"/> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MyCardItemVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/28. |
| | | // |
| | | |
| | | import UIKit |
| | | import WebKit |
| | | import JQTools |
| | | import Combine |
| | | |
| | | class MyCardItemVC: BaseVC { |
| | | @IBOutlet weak var label_time: UILabel! |
| | | @IBOutlet weak var imgCode: UIImageView! |
| | | @IBOutlet weak var webView: WKWebView! |
| | | @IBOutlet weak var cons_web_hei: NSLayoutConstraint! |
| | | @IBOutlet weak var view_bg_grand: UIView! |
| | | @IBOutlet weak var view_container: UIView! |
| | | private var subscriptions = Set<AnyCancellable>() |
| | | private var id:Int! |
| | | |
| | | init(id:Int) { |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.id = id |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "我的惠民卡" |
| | | |
| | | Services.myHuiminCardDetail(id: id).subscribe(onNext: {data in |
| | | if let m = data.data{ |
| | | |
| | | self.label_time.attributedText = AttributedStringbuilder.build().add(string: "该卡有效期至 ", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: .black) |
| | | .add(string: m.endTime, withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#ff7300")!).mutableAttributedString |
| | | |
| | | self.imgCode.image = UIImage.jq_GenerateQRCode(with: m.huiminCard?.qrCode ?? "", width: 250) |
| | | self.webView.loadHTMLString(m.introduce.jq_wrapHtml(), baseURL: nil) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | override func setUI() { |
| | | view.backgroundColor = UIColor(hexStr: "#F5F5F5") |
| | | view_container.jq_cornerRadius = 10 |
| | | let colors = [UIColor(hexStr: "#FD7202").cgColor, |
| | | UIColor.white.cgColor,] |
| | | view_bg_grand.jq_gradientColor(colorArr: colors, cornerRadius: 0, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: 400), locations: nil, clear: false) |
| | | } |
| | | |
| | | override func setRx() { |
| | | webView.publisher(for: \.scrollView.contentSize).sink {[unowned self] size in |
| | | self.cons_web_hei.constant = size.height |
| | | }.store(in: &subscriptions) |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Safe area layout guides" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MyCardItemVC" customModule="WanPai" customModuleProvider="target"> |
| | | <connections> |
| | | <outlet property="cons_web_hei" destination="MNE-uE-3VM" id="Q7H-jh-Lmv"/> |
| | | <outlet property="imgCode" destination="oxM-V6-RBZ" id="aBd-Lj-ob4"/> |
| | | <outlet property="label_time" destination="kZR-m1-pa5" id="nVr-pY-xR6"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_bg_grand" destination="6b1-tx-BuI" id="Yt5-XV-lDr"/> |
| | | <outlet property="view_container" destination="p5w-FE-4ga" id="cYO-wd-q2E"/> |
| | | <outlet property="webView" destination="rz3-cG-W2c" id="F2u-PJ-O4G"/> |
| | | </connections> |
| | | </placeholder> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6b1-tx-BuI"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="400"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="400" id="FYs-oc-V1o"/> |
| | | </constraints> |
| | | </view> |
| | | <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bvf-YV-Ozx"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="759"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5Md-qP-As0"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="465"/> |
| | | <subviews> |
| | | <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rz3-cG-W2c"> |
| | | <rect key="frame" x="0.0" y="365" width="393" height="100"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="100" id="MNE-uE-3VM"/> |
| | | </constraints> |
| | | <wkWebViewConfiguration key="configuration"> |
| | | <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/> |
| | | <wkPreferences key="preferences"/> |
| | | </wkWebViewConfiguration> |
| | | </wkWebView> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="p5w-FE-4ga"> |
| | | <rect key="frame" x="15" y="20" width="363" height="345"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="您的玩湃惠民卡入场二维码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lgX-3Z-YWn"> |
| | | <rect key="frame" x="74.333333333333329" y="20" width="214.33333333333337" height="21.666666666666671"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="calibratedRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="oxM-V6-RBZ"> |
| | | <rect key="frame" x="81.666666666666686" y="61.666666666666657" width="200" height="199.99999999999997"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="200" id="T4E-zx-rdu"/> |
| | | <constraint firstAttribute="width" constant="200" id="fwC-Hx-uzO"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kZR-m1-pa5"> |
| | | <rect key="frame" x="175" y="281.66666666666669" width="13" height="17"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="kZR-m1-pa5" firstAttribute="top" secondItem="oxM-V6-RBZ" secondAttribute="bottom" constant="20" id="CU7-Sr-fHt"/> |
| | | <constraint firstItem="oxM-V6-RBZ" firstAttribute="centerX" secondItem="p5w-FE-4ga" secondAttribute="centerX" id="J0X-rk-fWA"/> |
| | | <constraint firstItem="kZR-m1-pa5" firstAttribute="centerX" secondItem="p5w-FE-4ga" secondAttribute="centerX" id="MPg-jJ-Jii"/> |
| | | <constraint firstAttribute="width" secondItem="p5w-FE-4ga" secondAttribute="height" multiplier="1:0.95" id="RXn-EL-vpD"/> |
| | | <constraint firstItem="oxM-V6-RBZ" firstAttribute="top" secondItem="lgX-3Z-YWn" secondAttribute="bottom" constant="20" id="lf1-cD-09i"/> |
| | | <constraint firstItem="lgX-3Z-YWn" firstAttribute="centerX" secondItem="p5w-FE-4ga" secondAttribute="centerX" id="mwq-Im-LMk"/> |
| | | <constraint firstItem="lgX-3Z-YWn" firstAttribute="top" secondItem="p5w-FE-4ga" secondAttribute="top" constant="20" id="tIk-Kd-ufU"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstItem="rz3-cG-W2c" firstAttribute="top" secondItem="p5w-FE-4ga" secondAttribute="bottom" id="8iP-tT-E4x"/> |
| | | <constraint firstAttribute="trailing" secondItem="p5w-FE-4ga" secondAttribute="trailing" constant="15" id="9kB-1Q-a3p"/> |
| | | <constraint firstItem="p5w-FE-4ga" firstAttribute="leading" secondItem="5Md-qP-As0" secondAttribute="leading" constant="15" id="Nxf-hY-2kR"/> |
| | | <constraint firstAttribute="bottom" secondItem="rz3-cG-W2c" secondAttribute="bottom" id="YLK-J2-yHO"/> |
| | | <constraint firstAttribute="trailing" secondItem="rz3-cG-W2c" secondAttribute="trailing" id="oEo-H5-rO0"/> |
| | | <constraint firstItem="rz3-cG-W2c" firstAttribute="leading" secondItem="5Md-qP-As0" secondAttribute="leading" id="xAk-DE-2wk"/> |
| | | <constraint firstItem="p5w-FE-4ga" firstAttribute="top" secondItem="5Md-qP-As0" secondAttribute="top" constant="20" id="zza-TZ-RBd"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="5Md-qP-As0" secondAttribute="bottom" id="3lk-ch-a1l"/> |
| | | <constraint firstItem="5Md-qP-As0" firstAttribute="centerX" secondItem="bvf-YV-Ozx" secondAttribute="centerX" id="Es4-py-MLB"/> |
| | | <constraint firstItem="5Md-qP-As0" firstAttribute="top" secondItem="bvf-YV-Ozx" secondAttribute="top" id="NE0-3x-3TY"/> |
| | | <constraint firstItem="5Md-qP-As0" firstAttribute="leading" secondItem="bvf-YV-Ozx" secondAttribute="leading" id="clI-9q-tVj"/> |
| | | <constraint firstAttribute="trailing" secondItem="5Md-qP-As0" secondAttribute="trailing" id="lFx-f6-w6L"/> |
| | | </constraints> |
| | | </scrollView> |
| | | </subviews> |
| | | <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> |
| | | <color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstItem="bvf-YV-Ozx" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="1Wp-0w-XCx"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="6b1-tx-BuI" secondAttribute="trailing" id="Q4A-7Z-CcN"/> |
| | | <constraint firstItem="6b1-tx-BuI" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="dI2-pt-Bv8"/> |
| | | <constraint firstItem="bvf-YV-Ozx" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="eGH-Kn-cqZ"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="bvf-YV-Ozx" secondAttribute="trailing" id="k25-y4-DLj"/> |
| | | <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="bvf-YV-Ozx" secondAttribute="bottom" id="r7M-cm-wTA"/> |
| | | <constraint firstItem="6b1-tx-BuI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" id="sEi-DQ-Rjb"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="138.1679389312977" y="20.422535211267608"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | </systemColor> |
| | | </resources> |
| | | </document> |
New file |
| | |
| | | // |
| | | // MyCardListVC.swift |
| | | // WanPai |
| | | // |
| | | // Created by 无故事王国 on 2025/3/28. |
| | | // |
| | | |
| | | import UIKit |
| | | import RxSwift |
| | | import RxCocoa |
| | | import SnapKit |
| | | import MJRefresh |
| | | |
| | | class MyCardViewModel:RefreshModel<HuiminCardMyItemModel>{ |
| | | override func api() -> (Observable<BaseResponse<[HuiminCardMyItemModel]>>)? { |
| | | return Services.getMyHuiminCard(page: page) |
| | | } |
| | | } |
| | | |
| | | let Noti_MyCard_Refresh = Notification.Name.init("Noti_MyCard_Refresh") |
| | | |
| | | class MyCardListVC: BaseVC { |
| | | |
| | | private let viewModel = MyCardViewModel() |
| | | private var tableView:UITableView! |
| | | private var sotreId:Int? |
| | | private var model:HuiminCardModel? |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | title = "我的惠民卡" |
| | | |
| | | viewModel.dataSource.subscribe(onNext: {[unowned self] data in |
| | | if data.count == 1,let model = data.first,model.isExpire == 0,model.status == 2{ |
| | | let vc = MyCardItemVC(id: model.id) |
| | | self.push(vc: vc) |
| | | } |
| | | self.tableView.reloadData() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | override func setUI() { |
| | | tableView = UITableView(frame: .zero, style: .plain) |
| | | tableView.delegate = self |
| | | tableView.dataSource = self |
| | | tableView.dataSource = self |
| | | tableView.separatorStyle = .none |
| | | tableView.contentInset = UIEdgeInsets(top: 30, left: 0, bottom: 0, right: 0) |
| | | tableView.register(UINib(nibName: "MyCardTCell", bundle: nil), forCellReuseIdentifier: "_MyCardTCell") |
| | | view.addSubview(tableView) |
| | | |
| | | tableView.snp.makeConstraints { make in |
| | | make.edges.equalToSuperview() |
| | | } |
| | | |
| | | viewModel.configure(tableView) |
| | | tableView.mj_header?.ignoredScrollViewContentInsetTop = 30 |
| | | viewModel.beginRefresh() |
| | | |
| | | } |
| | | |
| | | override func setRx() { |
| | | NotificationCenter.default.rx.notification(Noti_MyCard_Refresh).take(until: self.rx.deallocated).subscribe(onNext: {[unowned self] _ in |
| | | self.viewModel.beginRefresh() |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | } |
| | | |
| | | extension MyCardListVC:UITableViewDelegate{ |
| | | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| | | let m = viewModel.dataSource.value[indexPath.row] |
| | | guard m.isExpire == 0 else{ |
| | | alert(msg: "该卡已过期");return |
| | | } |
| | | |
| | | if m.status == 3{ |
| | | alert(msg: "该卡已退款");return |
| | | } |
| | | |
| | | if m.isRefund == 2{ |
| | | alert(msg: "该卡正在退款中");return |
| | | } |
| | | |
| | | let vc = MyCardItemVC(id: m.id) |
| | | push(vc: vc) |
| | | } |
| | | } |
| | | |
| | | extension MyCardListVC:UITableViewDataSource{ |
| | | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| | | return viewModel.dataSource.value.count |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| | | let model = viewModel.dataSource.value[indexPath.row] |
| | | let cell = tableView.dequeueReusableCell(withIdentifier: "_MyCardTCell", for: indexPath) as! MyCardTCell |
| | | cell.setModel(model) |
| | | return cell |
| | | } |
| | | |
| | | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| | | return 290 |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | @IBOutlet weak var label_wpCoin: UILabel! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var btn_becomeVIP: UIButton! |
| | | var benefitHomeModel:BenefitHomeModel? |
| | | @IBOutlet weak var view_top: UIView! |
| | | @IBOutlet weak var coinCollectionView: UICollectionView! |
| | | @IBOutlet weak var btn_coupon: UIButton! |
| | | @IBOutlet weak var btn_shopping: UIButton! |
| | | var benefitHomeModel:BenefitHomeModel? |
| | | private var models = [StartClouseExploreModel]() |
| | | |
| | | // private var items = ["我的二维码","我的订场","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细","我的玩湃币"] |
| | | private var items = ["我的二维码","我的订场","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细"] |
| | | private var items = ["我的二维码","我的订场","社区世界杯","已报名活动","我的运动营","人员管理","我的券包","兑换记录","消费记录","积分明细","玩湃惠民卡"] |
| | | // private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_peoples","me_coupons","me_withdrawRec","me_consume","me_coin","me_payCoin","me_judge"] |
| | | private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_peoples","me_coupons","me_withdrawRec","me_consume","me_coin"] |
| | | private var itemsImg = ["me_code","me_yard","me_wordCup","me_activity","me_camp","me_peoples","me_coupons","me_withdrawRec","me_consume","me_coin","me_card"] |
| | | |
| | | override func viewDidDisappear(_ animated: Bool) { |
| | | super.viewDidDisappear(animated) |
| | |
| | | override func viewDidAppear(_ animated: Bool) { |
| | | super.viewDidAppear(animated) |
| | | getData() |
| | | // navigationController?.isNavigationBarHidden = true |
| | | } |
| | | |
| | | override func setUI() { |
| | | banner_collectionView.delegate = self |
| | | banner_collectionView.dataSource = self |
| | | banner_collectionView.register(UINib(nibName: "SearchBannerCCell", bundle: nil), forCellWithReuseIdentifier: "_SearchBannerCCell") |
| | | banner_collectionView.contentInset = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20) |
| | | func_collectionView.delegate = self |
| | | func_collectionView.dataSource = self |
| | | func_collectionView.register(UINib(nibName: "FindItemCCell", bundle: nil), forCellWithReuseIdentifier: "_FindItemCCell") |
| | | func_collectionView.contentInset = UIEdgeInsets(top: 25, left: 0, bottom: 25, right: 0) |
| | | |
| | | coinCollectionView.delegate = self |
| | | coinCollectionView.dataSource = self |
| | | coinCollectionView.register(UINib(nibName: "WelfareCoinCCell", bundle: nil), forCellWithReuseIdentifier: "_WelfareCoinCCell") |
| | | |
| | | |
| | | //临时隐藏会员功能按钮 |
| | |
| | | img_vipMedal.isHidden = true |
| | | btn_becomeVIP.isEnabled = false |
| | | //临时隐藏会员功能按钮 |
| | | let rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "btn_s_setting"), style: .plain, target: self, action: #selector(settingAction)) |
| | | rightBarButtonItem.tintColor = .white |
| | | navigationItem.rightBarButtonItem = rightBarButtonItem |
| | | } |
| | | |
| | | |
| | | override func viewDidLayoutSubviews() { |
| | | super.viewDidLayoutSubviews() |
| | | view_top.jq_addShadows(shadowColor: .black.withAlphaComponent(0.1), corner: 10, radius: 5, offset: CGSize(width: 10, height: 0), opacity: 1) |
| | | } |
| | | |
| | | private func getData(){ |
| | |
| | | //临时隐藏会员功能按钮 |
| | | |
| | | |
| | | if let coupon = model.image?.myConpons{ |
| | | self?.btn_coupon.sd_setImage(with: URL(string: coupon), for: .normal, placeholderImage: nil,context: nil) |
| | | } |
| | | |
| | | if let onlineShop = model.image?.onlineShop{ |
| | | self?.btn_shopping.sd_setImage(with: URL(string: onlineShop), for: .normal, placeholderImage: nil,context: nil) |
| | | } |
| | | |
| | | if model.referee == 1{ |
| | | if !weakSelf.items.contains(where: {$0 == "裁判入口"}){ |
| | | self?.items.append("裁判入口") |
| | |
| | | self?.func_collectionView.reloadData() |
| | | } |
| | | } |
| | | self?.coinCollectionView.reloadData() |
| | | } |
| | | }) { error in |
| | | |
| | | }.disposed(by: disposeBag) |
| | | |
| | | // Services.benefitHome().subscribe(onNext: {[weak self] data in |
| | | // if let model = data.data{ |
| | | // self?.benefitHomeModel = model |
| | | // |
| | | // } |
| | | // }) { error in |
| | | // |
| | | // }.disposed(by: disposeBag) |
| | | } |
| | | |
| | | |
| | | @IBAction func shoppingAction(_ sender: UIButton) { |
| | | CommonAlertView.show(title: "提示", content: "即将打开京东,是否继续?") { status in |
| | | if status{ |
| | | |
| | | if UIApplication.shared.canOpenURL(URL(string: "openApp.jdMobile://")!){ |
| | | let url = "openApp.jdMobile://virtual?params={\"category\":\"jump\",\"des\":\"jshopMain\",\"shopId\":\"15995015\",\"sourceType\":\"APP\",\"sourceValue\":\"1000\",\"landPageId\":\"iOS\"}" |
| | | UIApplication.shared.open(URL(string: url)!) |
| | | }else{ |
| | | let url = "https://shop.m.jd.com/shop/home?shopId=15995015" |
| | | UIApplication.shared.open(URL(string: url)!) |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @IBAction func couponsAction(_ sender: UIButton) { |
| | | let vc = WelfareCouponsListVC() |
| | | push(vc: vc) |
| | | } |
| | | |
| | | @IBAction func becomeVIPAction(_ sender: Any) { |
| | | let vc = JoinMemberIntroduceVC() |
| | | push(vc: vc) |
| | |
| | | case "我的玩湃币": |
| | | let vc = RechargeRecordVC(coin: benefitHomeModel?.wpCoin ?? 0,subtype: .coin) |
| | | push(vc: vc) |
| | | case "玩湃惠民卡": |
| | | let vc = MyCardListVC() |
| | | self.push(vc: vc) |
| | | case "裁判入口": |
| | | let vc = JudgeListVC() |
| | | push(vc: vc) |
| | |
| | | if collectionView == func_collectionView{ |
| | | return items.count |
| | | } |
| | | |
| | | if collectionView == coinCollectionView{ |
| | | return benefitHomeModel?.commodities.count ?? 0 |
| | | } |
| | | |
| | | return models.count |
| | | } |
| | | |
| | |
| | | cell.img_avar.image = UIImage(named: itemsImg[indexPath.row]) |
| | | return cell |
| | | } |
| | | |
| | | if collectionView == coinCollectionView{ |
| | | let model = benefitHomeModel!.commodities[indexPath.row] |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_WelfareCoinCCell", for: indexPath) as! WelfareCoinCCell |
| | | cell.label_name.text = model.commodityName |
| | | |
| | | switch model.redemptionMethod { |
| | | case 1: //积分 |
| | | cell.label_price.text = "\(model.integral)积分" |
| | | case 2: //现金+积分 |
| | | cell.label_price.text = "\(model.integral)积分+\(model.commodityPrice.currency())" |
| | | case 3://现金 |
| | | cell.label_price.text = "\(model.commodityPrice.currency())" |
| | | default: |
| | | cell.label_price.text = "" |
| | | } |
| | | |
| | | |
| | | cell.img_cover.sd_setImage(with: URL(string: model.commodityImg), placeholderImage: nil) |
| | | return cell |
| | | } |
| | | |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_SearchBannerCCell", for: indexPath) as! SearchBannerCCell |
| | | let model = models[indexPath.row] |
| | |
| | | if collectionView == func_collectionView{ |
| | | return 0 |
| | | } |
| | | return 0 |
| | | if collectionView == coinCollectionView{ |
| | | return 0 |
| | | } |
| | | return 14 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { |
| | | if collectionView == func_collectionView{ |
| | | return 0 |
| | | } |
| | | return 0 |
| | | if collectionView == coinCollectionView{ |
| | | return 0 |
| | | } |
| | | return 14 |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { |
| | | if collectionView == func_collectionView{ |
| | | return CGSize(width: JQ_ScreenW/4, height: 120) |
| | | } |
| | | return CGSize(width: JQ_ScreenW, height: JQ_ScreenW * 0.6541) |
| | | if collectionView == coinCollectionView{ |
| | | return CGSize(width: 144.0, height: 178) |
| | | } |
| | | return CGSize(width: JQ_ScreenW * 0.743, height: JQ_ScreenW * 0.743 * 0.931) |
| | | } |
| | | } |
| | | |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> |
| | | <device id="retina6_12" orientation="portrait" appearance="light"/> |
| | | <accessibilityOverrides/> |
| | | <dependencies> |
| | | <deployment identifier="iOS"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> |
| | | <capability name="Named colors" minToolsVersion="9.0"/> |
| | | <capability name="System colors in document resources" minToolsVersion="11.0"/> |
| | | <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
| | |
| | | <connections> |
| | | <outlet property="banner_collectionView" destination="GVG-mQ-5A4" id="keS-lx-iWt"/> |
| | | <outlet property="btn_becomeVIP" destination="ISP-Cr-8RW" id="vl4-vq-GSF"/> |
| | | <outlet property="btn_coupon" destination="YIA-v8-8qM" id="Lya-S8-ToX"/> |
| | | <outlet property="btn_shopping" destination="pZP-oL-WAW" id="JFV-qa-2Dz"/> |
| | | <outlet property="coinCollectionView" destination="PRF-Eg-Ph3" id="lgH-Hn-CSn"/> |
| | | <outlet property="func_collectionView" destination="pyk-ne-JeM" id="eQ5-10-Hci"/> |
| | | <outlet property="img_vipMedal" destination="reN-LL-PRO" id="WIl-zY-wuj"/> |
| | | <outlet property="label_coin" destination="TBO-dZ-vzH" id="aHo-fb-qUS"/> |
| | | <outlet property="label_coin" destination="HrO-l2-AhP" id="7oc-UI-ple"/> |
| | | <outlet property="label_userName" destination="Iaq-eP-lJ7" id="t4z-lA-fha"/> |
| | | <outlet property="label_vip" destination="qIB-bn-Xg1" id="Sq1-tH-0I7"/> |
| | | <outlet property="label_wpCoin" destination="ywf-si-kai" id="kQb-4s-4nT"/> |
| | | <outlet property="label_wpCoin" destination="k1z-ax-UOa" id="voK-lp-gqr"/> |
| | | <outlet property="scrollView" destination="Jbe-CY-MmI" id="MM5-aA-VjT"/> |
| | | <outlet property="user_avarImg" destination="IFx-3f-1QD" id="cmc-3A-1pW"/> |
| | | <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> |
| | | <outlet property="view_top" destination="1Yu-z5-de2" id="cMQ-Lz-ueU"/> |
| | | </connections> |
| | | </placeholder> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="852"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_home_3" translatesAutoresizingMaskIntoConstraints="NO" id="IhV-tR-DU2"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="206"/> |
| | | </imageView> |
| | | <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jbe-CY-MmI"> |
| | | <rect key="frame" x="0.0" y="59" width="393" height="759"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1y-Zq-96N"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="1160.3333333333333"/> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="2056"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Yu-z5-de2"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="300"/> |
| | | <rect key="frame" x="20" y="0.0" width="353" height="219"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="IFx-3f-1QD"> |
| | | <rect key="frame" x="26.000000000000007" y="23.666666666666679" width="98.666666666666686" height="98.333333333333314"/> |
| | | <rect key="frame" x="20" y="26" width="80" height="80"/> |
| | | <color key="backgroundColor" name="F6F6F6"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="98.5" id="0g6-gD-Ksh"/> |
| | | <constraint firstAttribute="height" constant="98.5" id="UCu-DG-iun"/> |
| | | <constraint firstAttribute="width" constant="80" id="0g6-gD-Ksh"/> |
| | | <constraint firstAttribute="height" constant="80" id="UCu-DG-iun"/> |
| | | </constraints> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="49.25"/> |
| | | <real key="value" value="40"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Iaq-eP-lJ7"> |
| | | <rect key="frame" x="138.66666666666666" y="57.000000000000007" width="19.333333333333343" height="26.333333333333336"/> |
| | | <rect key="frame" x="114" y="34" width="19.333333333333343" height="26.333333333333329"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="22"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <color key="textColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qIB-bn-Xg1"> |
| | | <rect key="frame" x="138.66666666666666" y="94.333333333333343" width="14" height="18"/> |
| | | <rect key="frame" x="133.66666666666666" y="71.333333333333343" width="14" height="18"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="15"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <color key="textColor" red="0.18823529411764706" green="0.32941176470588235" blue="0.38823529411764707" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_vip_medal" translatesAutoresizingMaskIntoConstraints="NO" id="reN-LL-PRO"> |
| | | <rect key="frame" x="166" y="92" width="21" height="23"/> |
| | | <rect key="frame" x="114" y="72" width="15.666666666666657" height="17"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="21" id="912-zr-umq"/> |
| | | <constraint firstAttribute="height" constant="23" id="D5U-Mo-93F"/> |
| | | <constraint firstAttribute="width" constant="15.550000000000001" id="912-zr-umq"/> |
| | | <constraint firstAttribute="height" constant="17" id="D5U-Mo-93F"/> |
| | | </constraints> |
| | | </imageView> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xGl-Vo-Gjm"> |
| | | <rect key="frame" x="322" y="54.333333333333329" width="37" height="37"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" image="btn_setting_find"/> |
| | | <connections> |
| | | <action selector="settingAction:" destination="-1" eventType="touchUpInside" id="hsF-IP-mlP"/> |
| | | </connections> |
| | | </button> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ywf-si-kai"> |
| | | <rect key="frame" x="41.666666666666657" y="192" width="119" height="46.333333333333343"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="46.5" id="cbL-nZ-eFp"/> |
| | | <constraint firstAttribute="width" constant="119" id="jaF-0A-wRM"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="23.25"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" name="FE6E0D"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="玩湃币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QKu-db-8Fs"> |
| | | <rect key="frame" x="76.666666666666671" y="163.66666666666666" width="49" height="19.333333333333343"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TBO-dZ-vzH"> |
| | | <rect key="frame" x="232" y="192" width="119" height="46.333333333333343"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="119" id="7lF-XU-ufo"/> |
| | | <constraint firstAttribute="height" constant="46.5" id="Twf-2f-oAl"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | <userDefinedRuntimeAttributes> |
| | | <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> |
| | | <real key="value" value="23.25"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="color" keyPath="ld_borderColorXIB"> |
| | | <color key="value" name="FE6E0D"/> |
| | | </userDefinedRuntimeAttribute> |
| | | <userDefinedRuntimeAttribute type="number" keyPath="ld_borderWidthXIB"> |
| | | <real key="value" value="1"/> |
| | | </userDefinedRuntimeAttribute> |
| | | </userDefinedRuntimeAttributes> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3pw-YC-Oys"> |
| | | <rect key="frame" x="275.33333333333331" y="163.66666666666666" width="32.666666666666686" height="19.333333333333343"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="16"/> |
| | | <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hBG-jc-I1P"> |
| | | <rect key="frame" x="72" y="244.33333333333331" width="58" height="29"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal" title="查看详情"> |
| | | <color key="titleColor" red="1" green="1" blue="1" alpha="0.29999999999999999" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="wpCoinDetailAction:" destination="-1" eventType="touchUpInside" id="MBO-4C-n3j"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DTA-Zx-9lB"> |
| | | <rect key="frame" x="232" y="192" width="119" height="46.333333333333343"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <state key="normal"> |
| | | <color key="titleColor" red="1" green="1" blue="1" alpha="0.29999999999999999" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </state> |
| | | <connections> |
| | | <action selector="coinDetailAction:" destination="-1" eventType="touchUpInside" id="VQC-F2-UZo"/> |
| | | </connections> |
| | | </button> |
| | | <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ISP-Cr-8RW"> |
| | | <rect key="frame" x="138.66666666666666" y="86.333333333333343" width="48.333333333333343" height="34"/> |
| | | <rect key="frame" x="114.00000000000001" y="68" width="33.666666666666671" height="25"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="25" id="y5G-jM-Ryx"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <connections> |
| | | <action selector="becomeVIPAction:" destination="-1" eventType="touchUpInside" id="HMh-UX-cau"/> |
| | | </connections> |
| | | </button> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kNs-Qt-WI7"> |
| | | <rect key="frame" x="0.0" y="126" width="353" height="1"/> |
| | | <color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="1" id="lRd-sv-rWF"/> |
| | | </constraints> |
| | | </view> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="31b-5d-IyP"> |
| | | <rect key="frame" x="0.0" y="147" width="353" height="50"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="f0d-9Z-W1o"> |
| | | <rect key="frame" x="0.0" y="0.0" width="176.66666666666666" height="50"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YKL-1Q-Eme"> |
| | | <rect key="frame" x="57.333333333333329" y="0.0" width="62" height="16"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coin_tiny" translatesAutoresizingMaskIntoConstraints="NO" id="RHv-Mp-pv9"> |
| | | <rect key="frame" x="0.0" y="1" width="14" height="14"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="14" id="SUr-kg-YIv"/> |
| | | <constraint firstAttribute="height" constant="14" id="ToT-LS-ftx"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="玩湃币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J1T-OB-0D3"> |
| | | <rect key="frame" x="20" y="0.0" width="42" height="16"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.18823529411764706" green="0.32941176470588235" blue="0.38823529411764707" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="J1T-OB-0D3" secondAttribute="trailing" id="AVx-RS-dao"/> |
| | | <constraint firstItem="J1T-OB-0D3" firstAttribute="leading" secondItem="RHv-Mp-pv9" secondAttribute="trailing" constant="6" id="IBe-0y-pTC"/> |
| | | <constraint firstAttribute="bottom" secondItem="J1T-OB-0D3" secondAttribute="bottom" id="Qo2-tl-fmz"/> |
| | | <constraint firstAttribute="height" constant="16" id="SFC-ze-TkA"/> |
| | | <constraint firstItem="RHv-Mp-pv9" firstAttribute="leading" secondItem="YKL-1Q-Eme" secondAttribute="leading" id="eIc-Gd-XVa"/> |
| | | <constraint firstItem="RHv-Mp-pv9" firstAttribute="centerY" secondItem="YKL-1Q-Eme" secondAttribute="centerY" id="gTn-Jb-RHh"/> |
| | | <constraint firstItem="J1T-OB-0D3" firstAttribute="top" secondItem="YKL-1Q-Eme" secondAttribute="top" id="mas-hh-mvh"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k1z-ax-UOa"> |
| | | <rect key="frame" x="81.333333333333329" y="20" width="14" height="24"/> |
| | | <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="20"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="k1z-ax-UOa" firstAttribute="top" secondItem="YKL-1Q-Eme" secondAttribute="bottom" constant="4" id="4Oc-Xg-H5t"/> |
| | | <constraint firstItem="YKL-1Q-Eme" firstAttribute="top" secondItem="f0d-9Z-W1o" secondAttribute="top" id="IL3-Yf-ze6"/> |
| | | <constraint firstItem="YKL-1Q-Eme" firstAttribute="centerX" secondItem="f0d-9Z-W1o" secondAttribute="centerX" id="hPd-MM-krn"/> |
| | | <constraint firstItem="k1z-ax-UOa" firstAttribute="centerX" secondItem="YKL-1Q-Eme" secondAttribute="centerX" id="p9f-5x-Lml"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JWj-Qj-Anm"> |
| | | <rect key="frame" x="176.66666666666663" y="0.0" width="176.33333333333337" height="50"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Uk-rS-9NJ"> |
| | | <rect key="frame" x="64.000000000000028" y="0.0" width="48" height="16"/> |
| | | <subviews> |
| | | <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_score" translatesAutoresizingMaskIntoConstraints="NO" id="Omc-lY-fMA"> |
| | | <rect key="frame" x="0.0" y="1" width="14" height="14"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" constant="14" id="ZcD-B7-D6C"/> |
| | | <constraint firstAttribute="height" constant="14" id="vKy-r4-qhk"/> |
| | | </constraints> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oc3-bi-CqP"> |
| | | <rect key="frame" x="20" y="0.0" width="28" height="16"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <color key="textColor" red="0.18823529410000001" green="0.3294117647" blue="0.38823529410000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="oc3-bi-CqP" secondAttribute="trailing" id="AJN-Yd-DIB"/> |
| | | <constraint firstItem="Omc-lY-fMA" firstAttribute="leading" secondItem="8Uk-rS-9NJ" secondAttribute="leading" id="EZJ-PL-FVE"/> |
| | | <constraint firstAttribute="height" constant="16" id="K9n-kT-dJ4"/> |
| | | <constraint firstItem="oc3-bi-CqP" firstAttribute="top" secondItem="8Uk-rS-9NJ" secondAttribute="top" id="Mh4-vh-uMY"/> |
| | | <constraint firstAttribute="bottom" secondItem="oc3-bi-CqP" secondAttribute="bottom" id="pVd-Lq-PzJ"/> |
| | | <constraint firstItem="Omc-lY-fMA" firstAttribute="centerY" secondItem="8Uk-rS-9NJ" secondAttribute="centerY" id="utP-Lm-Ppl"/> |
| | | <constraint firstItem="oc3-bi-CqP" firstAttribute="leading" secondItem="Omc-lY-fMA" secondAttribute="trailing" constant="6" id="zt8-4G-S74"/> |
| | | </constraints> |
| | | </view> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HrO-l2-AhP"> |
| | | <rect key="frame" x="81.000000000000028" y="20" width="14" height="24"/> |
| | | <fontDescription key="fontDescription" type="system" weight="heavy" pointSize="20"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstItem="8Uk-rS-9NJ" firstAttribute="top" secondItem="JWj-Qj-Anm" secondAttribute="top" id="Alk-4L-bgM"/> |
| | | <constraint firstItem="HrO-l2-AhP" firstAttribute="centerX" secondItem="8Uk-rS-9NJ" secondAttribute="centerX" id="CxG-Hf-LIF"/> |
| | | <constraint firstItem="HrO-l2-AhP" firstAttribute="top" secondItem="8Uk-rS-9NJ" secondAttribute="bottom" constant="4" id="GTx-Ua-8az"/> |
| | | <constraint firstItem="8Uk-rS-9NJ" firstAttribute="centerX" secondItem="JWj-Qj-Anm" secondAttribute="centerX" id="rK1-Za-UUO"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="50" id="HT1-tc-9eT"/> |
| | | </constraints> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" red="0.10588235294117647" green="0.22745098039215686" blue="0.52941176470588236" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="bottom" secondItem="ywf-si-kai" secondAttribute="bottom" constant="61.5" id="2Ey-PZ-oVs"/> |
| | | <constraint firstItem="ywf-si-kai" firstAttribute="centerX" secondItem="QKu-db-8Fs" secondAttribute="centerX" id="6rX-2G-Mrr"/> |
| | | <constraint firstItem="Iaq-eP-lJ7" firstAttribute="top" secondItem="IFx-3f-1QD" secondAttribute="top" constant="33.5" id="8T1-8Q-gib"/> |
| | | <constraint firstItem="kNs-Qt-WI7" firstAttribute="top" secondItem="IFx-3f-1QD" secondAttribute="bottom" constant="20" id="1ui-Ns-1hv"/> |
| | | <constraint firstItem="Iaq-eP-lJ7" firstAttribute="top" secondItem="IFx-3f-1QD" secondAttribute="top" constant="8" id="8T1-8Q-gib"/> |
| | | <constraint firstAttribute="trailing" secondItem="31b-5d-IyP" secondAttribute="trailing" id="8z3-xm-SaI"/> |
| | | <constraint firstItem="ISP-Cr-8RW" firstAttribute="leading" secondItem="reN-LL-PRO" secondAttribute="leading" id="9JE-Nn-JSZ"/> |
| | | <constraint firstItem="reN-LL-PRO" firstAttribute="centerY" secondItem="qIB-bn-Xg1" secondAttribute="centerY" id="BeY-KC-laa"/> |
| | | <constraint firstItem="IFx-3f-1QD" firstAttribute="top" secondItem="1Yu-z5-de2" secondAttribute="top" constant="23.5" id="E6N-4k-GPZ"/> |
| | | <constraint firstItem="qIB-bn-Xg1" firstAttribute="leading" secondItem="Iaq-eP-lJ7" secondAttribute="leading" id="JzW-jd-ATz"/> |
| | | <constraint firstAttribute="width" secondItem="1Yu-z5-de2" secondAttribute="height" multiplier="1:0.763" id="Kr8-62-LYF"/> |
| | | <constraint firstItem="ywf-si-kai" firstAttribute="top" secondItem="QKu-db-8Fs" secondAttribute="bottom" constant="9" id="L5f-Wd-uEY"/> |
| | | <constraint firstItem="TBO-dZ-vzH" firstAttribute="centerY" secondItem="ywf-si-kai" secondAttribute="centerY" id="LvV-6U-Pmw"/> |
| | | <constraint firstItem="TBO-dZ-vzH" firstAttribute="top" secondItem="3pw-YC-Oys" secondAttribute="bottom" constant="9" id="NGT-uL-LPH"/> |
| | | <constraint firstItem="reN-LL-PRO" firstAttribute="leading" secondItem="qIB-bn-Xg1" secondAttribute="trailing" constant="13.5" id="RG9-2c-y1p"/> |
| | | <constraint firstItem="IFx-3f-1QD" firstAttribute="top" secondItem="1Yu-z5-de2" secondAttribute="top" constant="26" id="E6N-4k-GPZ"/> |
| | | <constraint firstAttribute="width" secondItem="1Yu-z5-de2" secondAttribute="height" multiplier="1:0.62" id="Kr8-62-LYF"/> |
| | | <constraint firstItem="reN-LL-PRO" firstAttribute="centerY" secondItem="ISP-Cr-8RW" secondAttribute="centerY" id="Moz-Mc-Fig"/> |
| | | <constraint firstItem="qIB-bn-Xg1" firstAttribute="top" secondItem="Iaq-eP-lJ7" secondAttribute="bottom" constant="11" id="S1p-gw-G8F"/> |
| | | <constraint firstItem="hBG-jc-I1P" firstAttribute="centerX" secondItem="ywf-si-kai" secondAttribute="centerX" id="SKj-6E-fFA"/> |
| | | <constraint firstItem="ISP-Cr-8RW" firstAttribute="leading" secondItem="qIB-bn-Xg1" secondAttribute="leading" id="UMN-jk-7va"/> |
| | | <constraint firstItem="ISP-Cr-8RW" firstAttribute="centerY" secondItem="qIB-bn-Xg1" secondAttribute="centerY" id="XaT-uF-Irt"/> |
| | | <constraint firstItem="DTA-Zx-9lB" firstAttribute="leading" secondItem="TBO-dZ-vzH" secondAttribute="leading" id="Y4w-cg-kMC"/> |
| | | <constraint firstItem="hBG-jc-I1P" firstAttribute="top" secondItem="ywf-si-kai" secondAttribute="bottom" constant="6" id="ZRW-iT-ity"/> |
| | | <constraint firstItem="ywf-si-kai" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" constant="41.5" id="dy9-73-RcY"/> |
| | | <constraint firstItem="DTA-Zx-9lB" firstAttribute="trailing" secondItem="TBO-dZ-vzH" secondAttribute="trailing" id="eiR-Ml-1h8"/> |
| | | <constraint firstItem="IFx-3f-1QD" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" constant="26" id="hAd-UM-xF3"/> |
| | | <constraint firstItem="TBO-dZ-vzH" firstAttribute="centerX" secondItem="3pw-YC-Oys" secondAttribute="centerX" id="oWb-y0-H8A"/> |
| | | <constraint firstItem="DTA-Zx-9lB" firstAttribute="top" secondItem="TBO-dZ-vzH" secondAttribute="top" id="omr-1g-o8d"/> |
| | | <constraint firstAttribute="trailing" secondItem="TBO-dZ-vzH" secondAttribute="trailing" constant="42" id="qQN-dr-eUO"/> |
| | | <constraint firstItem="xGl-Vo-Gjm" firstAttribute="centerY" secondItem="IFx-3f-1QD" secondAttribute="centerY" id="tX3-fg-Fqb"/> |
| | | <constraint firstAttribute="trailing" secondItem="xGl-Vo-Gjm" secondAttribute="trailing" constant="34" id="uEs-l3-zLr"/> |
| | | <constraint firstItem="DTA-Zx-9lB" firstAttribute="bottom" secondItem="TBO-dZ-vzH" secondAttribute="bottom" id="uRS-D4-DDz"/> |
| | | <constraint firstItem="qIB-bn-Xg1" firstAttribute="leading" secondItem="reN-LL-PRO" secondAttribute="trailing" constant="4" id="SZL-Nh-HlX"/> |
| | | <constraint firstItem="qIB-bn-Xg1" firstAttribute="trailing" secondItem="ISP-Cr-8RW" secondAttribute="trailing" id="WTy-Kv-oLB"/> |
| | | <constraint firstAttribute="trailing" secondItem="kNs-Qt-WI7" secondAttribute="trailing" id="Y8t-8u-j3r"/> |
| | | <constraint firstItem="31b-5d-IyP" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" id="bOD-aX-1rq"/> |
| | | <constraint firstItem="kNs-Qt-WI7" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" id="fHo-mZ-IHP"/> |
| | | <constraint firstItem="IFx-3f-1QD" firstAttribute="leading" secondItem="1Yu-z5-de2" secondAttribute="leading" constant="20" id="hAd-UM-xF3"/> |
| | | <constraint firstItem="31b-5d-IyP" firstAttribute="top" secondItem="kNs-Qt-WI7" secondAttribute="bottom" constant="20" id="iZJ-wv-SUC"/> |
| | | <constraint firstItem="reN-LL-PRO" firstAttribute="leading" secondItem="Iaq-eP-lJ7" secondAttribute="leading" id="uUU-CP-izG"/> |
| | | <constraint firstItem="Iaq-eP-lJ7" firstAttribute="leading" secondItem="IFx-3f-1QD" secondAttribute="trailing" constant="14" id="x9S-au-83K"/> |
| | | <constraint firstItem="reN-LL-PRO" firstAttribute="trailing" secondItem="ISP-Cr-8RW" secondAttribute="trailing" id="zk3-fl-xGo"/> |
| | | </constraints> |
| | | </view> |
| | | <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="W2A-PE-Zq8"> |
| | | <rect key="frame" x="26" y="943.33333333333348" width="341" height="162"/> |
| | | <rect key="frame" x="26" y="1839" width="341" height="162"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Lz2-Km-ydI" customClass="TapBtn" customModule="WanPai" customModuleProvider="target"> |
| | | <rect key="frame" x="0.0" y="0.0" width="162.66666666666666" height="162"/> |
| | |
| | | <rect key="frame" x="15" y="15" width="45" height="38"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CONTACTS US" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0Md-SF-0cM"> |
| | | <rect key="frame" x="13.999999999999993" y="71.999999999999886" width="109.33333333333331" height="22"/> |
| | | <rect key="frame" x="13.999999999999993" y="72" width="109.33333333333331" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="HM2-qC-zym"/> |
| | | </constraints> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="客服中心" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y6t-EV-EyM"> |
| | | <rect key="frame" x="15" y="98.999999999999886" width="65.333333333333329" height="22"/> |
| | | <rect key="frame" x="14.999999999999996" y="99" width="63.666666666666657" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="duk-64-lzR"/> |
| | | </constraints> |
| | |
| | | <rect key="frame" x="15" y="15" width="48" height="36"/> |
| | | </imageView> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ABOUT US" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qdw-6R-Ebr"> |
| | | <rect key="frame" x="14" y="69.999999999999886" width="79.666666666666671" height="22"/> |
| | | <rect key="frame" x="14" y="70" width="79.666666666666671" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="xax-sJ-ZYz"/> |
| | | </constraints> |
| | |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="关于玩湃" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bus-yA-9bf"> |
| | | <rect key="frame" x="15" y="96.999999999999886" width="65.333333333333329" height="22"/> |
| | | <rect key="frame" x="14.999999999999996" y="97" width="63.666666666666657" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="Z4Q-9e-vKA"/> |
| | | </constraints> |
| | |
| | | </constraints> |
| | | </stackView> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="GVG-mQ-5A4"> |
| | | <rect key="frame" x="0.0" y="650" width="393" height="255.33333333333337"/> |
| | | <rect key="frame" x="0.0" y="649" width="393" height="294.66666666666674"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="GVG-mQ-5A4" secondAttribute="height" multiplier="1:0.65" id="X5h-hG-CdI"/> |
| | | <constraint firstAttribute="width" secondItem="GVG-mQ-5A4" secondAttribute="height" multiplier="1:0.75" id="X5h-hG-CdI"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="QDn-jj-8xs"> |
| | | <size key="itemSize" width="128" height="128"/> |
| | |
| | | </collectionViewFlowLayout> |
| | | </collectionView> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="pyk-ne-JeM"> |
| | | <rect key="frame" x="0.0" y="300" width="393" height="350"/> |
| | | <rect key="frame" x="0.0" y="249" width="393" height="400"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="350" id="jCJ-Yw-mTl"/> |
| | | <constraint firstAttribute="height" constant="400" id="jCJ-Yw-mTl"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="5aa-zU-PhM"> |
| | | <size key="itemSize" width="128" height="128"/> |
| | |
| | | <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> |
| | | </collectionViewFlowLayout> |
| | | </collectionView> |
| | | <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="rz1-cT-P3k"> |
| | | <rect key="frame" x="0.0" y="953.66666666666652" width="393" height="875.33333333333348"/> |
| | | <subviews> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="n2e-EW-nR7"> |
| | | <rect key="frame" x="0.0" y="0.0" width="393" height="226.33333333333334"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="积分兑换" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qkx-BY-Rhw"> |
| | | <rect key="frame" x="19.999999999999996" y="30.000000000000114" width="63.666666666666657" height="19.333333333333329"/> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <color key="textColor" red="0.28235294117647058" green="0.28235294117647058" blue="0.28235294117647058" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="PRF-Eg-Ph3"> |
| | | <rect key="frame" x="0.0" y="58.333333333333371" width="393" height="168"/> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="168" id="zXq-pu-qvv"/> |
| | | </constraints> |
| | | <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="YEu-Yn-kw4"> |
| | | <size key="itemSize" width="128" height="128"/> |
| | | <size key="headerReferenceSize" width="0.0" height="0.0"/> |
| | | <size key="footerReferenceSize" width="0.0" height="0.0"/> |
| | | <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> |
| | | </collectionViewFlowLayout> |
| | | </collectionView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="trailing" secondItem="PRF-Eg-Ph3" secondAttribute="trailing" id="1Yr-8G-Fmf"/> |
| | | <constraint firstItem="qkx-BY-Rhw" firstAttribute="leading" secondItem="n2e-EW-nR7" secondAttribute="leading" constant="20" id="8LT-gB-YXK"/> |
| | | <constraint firstAttribute="bottom" secondItem="PRF-Eg-Ph3" secondAttribute="bottom" id="JVS-IJ-all"/> |
| | | <constraint firstItem="PRF-Eg-Ph3" firstAttribute="top" secondItem="qkx-BY-Rhw" secondAttribute="bottom" constant="9" id="P1O-Wd-Jsx"/> |
| | | <constraint firstItem="qkx-BY-Rhw" firstAttribute="top" secondItem="n2e-EW-nR7" secondAttribute="top" constant="30" id="aqJ-KU-gnh"/> |
| | | <constraint firstItem="PRF-Eg-Ph3" firstAttribute="leading" secondItem="n2e-EW-nR7" secondAttribute="leading" id="k7O-aJ-pxF"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F9N-p2-J7G"> |
| | | <rect key="frame" x="0.0" y="226.33333333333337" width="393" height="324.33333333333326"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的券包" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Klc-Pw-u1s"> |
| | | <rect key="frame" x="29.999999999999996" y="0.0" width="63.666666666666657" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="Gma-xz-MnY"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YIA-v8-8qM"> |
| | | <rect key="frame" x="0.0" y="41" width="393" height="283"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="YIA-v8-8qM" secondAttribute="height" multiplier="1:0.72" id="Wlo-tQ-YVu"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <connections> |
| | | <action selector="couponsAction:" destination="-1" eventType="touchUpInside" id="XHj-NQ-XUi"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="F9N-p2-J7G" secondAttribute="height" multiplier="1:0.8256" id="34C-8h-a7D"/> |
| | | <constraint firstItem="Klc-Pw-u1s" firstAttribute="leading" secondItem="F9N-p2-J7G" secondAttribute="leading" constant="30" id="adw-9r-Z18"/> |
| | | <constraint firstItem="YIA-v8-8qM" firstAttribute="leading" secondItem="F9N-p2-J7G" secondAttribute="leading" id="ckH-D3-wyO"/> |
| | | <constraint firstItem="Klc-Pw-u1s" firstAttribute="top" secondItem="F9N-p2-J7G" secondAttribute="top" id="ktE-dc-z1W"/> |
| | | <constraint firstItem="YIA-v8-8qM" firstAttribute="top" secondItem="Klc-Pw-u1s" secondAttribute="bottom" constant="19" id="nwb-ty-VmJ"/> |
| | | <constraint firstAttribute="trailing" secondItem="YIA-v8-8qM" secondAttribute="trailing" id="xoN-jV-WLt"/> |
| | | </constraints> |
| | | </view> |
| | | <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="feS-ul-9mi"> |
| | | <rect key="frame" x="0.0" y="550.66666666666663" width="393" height="324.66666666666663"/> |
| | | <subviews> |
| | | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="线上商城" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I9I-ZH-d0l"> |
| | | <rect key="frame" x="29.999999999999996" y="0.0" width="63.666666666666657" height="22"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="22" id="n1p-Xk-zUA"/> |
| | | </constraints> |
| | | <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> |
| | | <nil key="textColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pZP-oL-WAW"> |
| | | <rect key="frame" x="0.0" y="41" width="393" height="283"/> |
| | | <constraints> |
| | | <constraint firstAttribute="width" secondItem="pZP-oL-WAW" secondAttribute="height" multiplier="1:0.72" id="eLx-Vf-w6o"/> |
| | | </constraints> |
| | | <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> |
| | | <connections> |
| | | <action selector="shoppingAction:" destination="-1" eventType="touchUpInside" id="8Tg-DL-7yJ"/> |
| | | </connections> |
| | | </button> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="I9I-ZH-d0l" firstAttribute="top" secondItem="feS-ul-9mi" secondAttribute="top" id="0Vc-27-Os9"/> |
| | | <constraint firstAttribute="width" secondItem="feS-ul-9mi" secondAttribute="height" multiplier="1:0.8256" id="77r-8M-Tb8"/> |
| | | <constraint firstItem="pZP-oL-WAW" firstAttribute="top" secondItem="I9I-ZH-d0l" secondAttribute="bottom" constant="19" id="BFf-IT-WIJ"/> |
| | | <constraint firstItem="pZP-oL-WAW" firstAttribute="leading" secondItem="feS-ul-9mi" secondAttribute="leading" id="Lyg-MM-Lz8"/> |
| | | <constraint firstAttribute="trailing" secondItem="pZP-oL-WAW" secondAttribute="trailing" id="OJk-Or-41n"/> |
| | | <constraint firstItem="I9I-ZH-d0l" firstAttribute="leading" secondItem="feS-ul-9mi" secondAttribute="leading" constant="30" id="kLA-0n-DdZ"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | | </stackView> |
| | | </subviews> |
| | | <color key="backgroundColor" systemColor="systemBackgroundColor"/> |
| | | <constraints> |
| | | <constraint firstItem="GVG-mQ-5A4" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" id="17N-sE-wz0"/> |
| | | <constraint firstItem="pyk-ne-JeM" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" id="7Xf-ZR-hQR"/> |
| | | <constraint firstAttribute="trailing" secondItem="GVG-mQ-5A4" secondAttribute="trailing" id="7x0-XI-UxS"/> |
| | | <constraint firstItem="W2A-PE-Zq8" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" constant="26" id="AtV-Kr-OEc"/> |
| | | <constraint firstItem="1Yu-z5-de2" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" id="JqE-HY-pRY"/> |
| | | <constraint firstAttribute="trailing" secondItem="rz1-cT-P3k" secondAttribute="trailing" id="CCN-MG-wau"/> |
| | | <constraint firstItem="rz1-cT-P3k" firstAttribute="top" secondItem="GVG-mQ-5A4" secondAttribute="bottom" constant="10" id="Go5-1b-7fi"/> |
| | | <constraint firstItem="1Yu-z5-de2" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" constant="20" id="JqE-HY-pRY"/> |
| | | <constraint firstAttribute="bottom" secondItem="W2A-PE-Zq8" secondAttribute="bottom" constant="55" id="K5D-B5-JBH"/> |
| | | <constraint firstItem="GVG-mQ-5A4" firstAttribute="top" secondItem="pyk-ne-JeM" secondAttribute="bottom" id="My8-KA-VdK"/> |
| | | <constraint firstAttribute="trailing" secondItem="GVG-mQ-5A4" secondAttribute="trailing" id="OvB-FO-WkW"/> |
| | | <constraint firstAttribute="trailing" secondItem="1Yu-z5-de2" secondAttribute="trailing" id="QDA-wd-kB5"/> |
| | | <constraint firstAttribute="trailing" secondItem="1Yu-z5-de2" secondAttribute="trailing" constant="20" id="QDA-wd-kB5"/> |
| | | <constraint firstItem="GVG-mQ-5A4" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" id="TwR-1K-Ho3"/> |
| | | <constraint firstItem="1Yu-z5-de2" firstAttribute="top" secondItem="w1y-Zq-96N" secondAttribute="top" id="Y1k-jv-2qV"/> |
| | | <constraint firstAttribute="trailing" secondItem="W2A-PE-Zq8" secondAttribute="trailing" constant="26" id="Yfu-Bf-75b"/> |
| | | <constraint firstItem="pyk-ne-JeM" firstAttribute="top" secondItem="1Yu-z5-de2" secondAttribute="bottom" id="YmX-dT-TjT"/> |
| | | <constraint firstItem="pyk-ne-JeM" firstAttribute="top" secondItem="1Yu-z5-de2" secondAttribute="bottom" constant="30" id="YmX-dT-TjT"/> |
| | | <constraint firstItem="rz1-cT-P3k" firstAttribute="leading" secondItem="w1y-Zq-96N" secondAttribute="leading" id="ZfQ-Op-BCb"/> |
| | | <constraint firstAttribute="trailing" secondItem="pyk-ne-JeM" secondAttribute="trailing" id="chk-q8-hgZ"/> |
| | | <constraint firstItem="W2A-PE-Zq8" firstAttribute="top" secondItem="GVG-mQ-5A4" secondAttribute="bottom" constant="38" id="l5Z-U6-M2g"/> |
| | | <constraint firstItem="W2A-PE-Zq8" firstAttribute="top" secondItem="rz1-cT-P3k" secondAttribute="bottom" constant="10" id="vIT-hT-usV"/> |
| | | </constraints> |
| | | </view> |
| | | </subviews> |
| | |
| | | <constraints> |
| | | <constraint firstAttribute="bottomMargin" secondItem="Jbe-CY-MmI" secondAttribute="bottom" id="Btj-dx-XBF"/> |
| | | <constraint firstItem="Jbe-CY-MmI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" id="Fcm-pV-uQH"/> |
| | | <constraint firstAttribute="trailing" secondItem="IhV-tR-DU2" secondAttribute="trailing" id="H9H-t3-QIO"/> |
| | | <constraint firstItem="IhV-tR-DU2" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="Jfa-lr-ZoN"/> |
| | | <constraint firstAttribute="trailing" secondItem="Jbe-CY-MmI" secondAttribute="trailing" id="OdW-Am-JXo"/> |
| | | <constraint firstItem="Jbe-CY-MmI" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="rgC-is-DeR"/> |
| | | <constraint firstItem="IhV-tR-DU2" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="xDA-aM-lnr"/> |
| | | </constraints> |
| | | <point key="canvasLocation" x="70.992366412213741" y="20.422535211267608"/> |
| | | </view> |
| | | </objects> |
| | | <resources> |
| | | <image name="btn_setting_find" width="37" height="37"/> |
| | | <image name="bg_home_3" width="390" height="206"/> |
| | | <image name="icon_aboutUs" width="48" height="36"/> |
| | | <image name="icon_coin_tiny" width="14" height="14"/> |
| | | <image name="icon_customer" width="45" height="38"/> |
| | | <image name="icon_score" width="16" height="16"/> |
| | | <image name="icon_vip_medal" width="16" height="16"/> |
| | | <namedColor name="F6F6F6"> |
| | | <color red="0.9649999737739563" green="0.9649999737739563" blue="0.9649999737739563" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <namedColor name="FE6E0D"> |
| | | <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | </namedColor> |
| | | <systemColor name="systemBackgroundColor"> |
| | | <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | |
| | | |
| | | func beginRefresh(){ |
| | | guard handle != nil else {return} |
| | | page = 1 |
| | | api()?.subscribe(onNext: { data in |
| | | if let datas = data.data{ |
| | | self.dataSource.accept(datas) |