younger_times
2023-06-13 47bc190ccc89050b2a15cc1a8fc4818ba440844d
完成部分
8个文件已修改
17个文件已添加
1509 ■■■■■ 已修改文件
WanPai.xcodeproj/project.pbxproj 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai.xcodeproj/xcuserdata/yangkai.xcuserdatad/xcschemes/xcschememanagement.plist 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/View/IDCardView.swift 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Activity/VC/ActivityListVC.swift 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Activity/VC/ActivityListVC.xib 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.swift 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.xib 407 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseDetailApplyVC.swift 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseDetailApplyVC.xib 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/HomeVC.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/TCell/CouponTCell.swift 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/TCell/CouponTCell.xib 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/TCell/StudentInfoTCell.xib 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/PaymentResultVC.swift 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/CouponChooseView.swift 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/CouponChooseView.xib 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/StudentChooseView.swift 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/View/StudentChooseView.xib 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai.xcodeproj/project.pbxproj
@@ -14,6 +14,8 @@
        8D4905AA2A31A6EC00E38513 /* HomeCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D4905A82A31A6EC00E38513 /* HomeCCell.xib */; };
        8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D4905AB2A31AE7100E38513 /* JoinMemberIntroduceVC.swift */; };
        8D4905AE2A31AE7100E38513 /* JoinMemberIntroduceVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D4905AC2A31AE7100E38513 /* JoinMemberIntroduceVC.xib */; };
        8D5732BD2A3724A900B2F8E3 /* AddStudentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */; };
        8D5732BE2A3724A900B2F8E3 /* AddStudentVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */; };
        8D5B80B72A31C4C700B86520 /* PaymentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B80B62A31C4C700B86520 /* PaymentView.xib */; };
        8D5C15062A31861D00A8BCC9 /* TapBtn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D5C15052A31861C00A8BCC9 /* TapBtn.swift */; };
        8D5C150C2A31885B00A8BCC9 /* CommonAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D5C15082A31885B00A8BCC9 /* CommonAlertView.xib */; };
@@ -24,6 +26,11 @@
        8D630BF92A31801300F0B7A8 /* SearchVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D630BF72A31801300F0B7A8 /* SearchVC.xib */; };
        8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D630BFA2A3180B000F0B7A8 /* BaseTabBarVC.swift */; };
        8D667BF42A31C419005B02FB /* PaymentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D667BF32A31C419005B02FB /* PaymentView.swift */; };
        8D6810E72A370EFB004486DE /* CouponTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6810E52A370EFB004486DE /* CouponTCell.swift */; };
        8D6810E82A370EFB004486DE /* CouponTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6810E62A370EFB004486DE /* CouponTCell.xib */; };
        8D6810EA2A3710CE004486DE /* StudentChooseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6810E92A3710CE004486DE /* StudentChooseView.swift */; };
        8D6810EC2A3710D8004486DE /* StudentChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6810EB2A3710D8004486DE /* StudentChooseView.xib */; };
        8D6C50232A372B21007EC2D9 /* IDCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6C50222A372B20007EC2D9 /* IDCardView.swift */; };
        8D6D6AF22A32D6F800DCA2C6 /* CourseListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D6D6AF02A32D6F800DCA2C6 /* CourseListVC.swift */; };
        8D6D6AF32A32D6F800DCA2C6 /* CourseListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D6D6AF12A32D6F800DCA2C6 /* CourseListVC.xib */; };
        8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D7017872A3308DC00473C40 /* Common_1_TCell.swift */; };
@@ -52,6 +59,10 @@
        8DAEB54E2A305A0100814766 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB54D2A305A0100814766 /* Colors.swift */; };
        8DAEB5502A305AEF00814766 /* Def.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB54F2A305AEF00814766 /* Def.swift */; };
        8DAEB5522A305B2D00814766 /* Fronts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DAEB5512A305B2D00814766 /* Fronts.swift */; };
        8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */; };
        8DC3BE122A3803B500C91B7F /* ActivityListVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */; };
        8DC99C882A3701CE00D0F04E /* CouponChooseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */; };
        8DC99C8A2A3701D800D0F04E /* CouponChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DC99C892A3701D800D0F04E /* CouponChooseView.xib */; };
        8DD239AE2A32FC5100700DEB /* CourseTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD239AC2A32FC5100700DEB /* CourseTCell.swift */; };
        8DD239AF2A32FC5100700DEB /* CourseTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8DD239AD2A32FC5100700DEB /* CourseTCell.xib */; };
        8DF184402A3327EE0095687B /* Common_1_CCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1843E2A3327EE0095687B /* Common_1_CCell.swift */; };
@@ -77,6 +88,8 @@
        8D4905A82A31A6EC00E38513 /* HomeCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeCCell.xib; sourceTree = "<group>"; };
        8D4905AB2A31AE7100E38513 /* JoinMemberIntroduceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinMemberIntroduceVC.swift; sourceTree = "<group>"; };
        8D4905AC2A31AE7100E38513 /* JoinMemberIntroduceVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = JoinMemberIntroduceVC.xib; sourceTree = "<group>"; };
        8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddStudentVC.swift; sourceTree = "<group>"; };
        8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AddStudentVC.xib; sourceTree = "<group>"; };
        8D5B80B62A31C4C700B86520 /* PaymentView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PaymentView.xib; sourceTree = "<group>"; };
        8D5C15052A31861C00A8BCC9 /* TapBtn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapBtn.swift; sourceTree = "<group>"; };
        8D5C15082A31885B00A8BCC9 /* CommonAlertView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CommonAlertView.xib; sourceTree = "<group>"; };
@@ -87,6 +100,11 @@
        8D630BF72A31801300F0B7A8 /* SearchVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SearchVC.xib; sourceTree = "<group>"; };
        8D630BFA2A3180B000F0B7A8 /* BaseTabBarVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTabBarVC.swift; sourceTree = "<group>"; };
        8D667BF32A31C419005B02FB /* PaymentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentView.swift; sourceTree = "<group>"; };
        8D6810E52A370EFB004486DE /* CouponTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponTCell.swift; sourceTree = "<group>"; };
        8D6810E62A370EFB004486DE /* CouponTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CouponTCell.xib; sourceTree = "<group>"; };
        8D6810E92A3710CE004486DE /* StudentChooseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentChooseView.swift; sourceTree = "<group>"; };
        8D6810EB2A3710D8004486DE /* StudentChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentChooseView.xib; sourceTree = "<group>"; };
        8D6C50222A372B20007EC2D9 /* IDCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IDCardView.swift; sourceTree = "<group>"; };
        8D6D6AF02A32D6F800DCA2C6 /* CourseListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseListVC.swift; sourceTree = "<group>"; };
        8D6D6AF12A32D6F800DCA2C6 /* CourseListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseListVC.xib; sourceTree = "<group>"; };
        8D7017872A3308DC00473C40 /* Common_1_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common_1_TCell.swift; sourceTree = "<group>"; };
@@ -117,6 +135,10 @@
        8DAEB54D2A305A0100814766 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
        8DAEB54F2A305AEF00814766 /* Def.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Def.swift; sourceTree = "<group>"; };
        8DAEB5512A305B2D00814766 /* Fronts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fronts.swift; sourceTree = "<group>"; };
        8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityListVC.swift; sourceTree = "<group>"; };
        8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ActivityListVC.xib; sourceTree = "<group>"; };
        8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponChooseView.swift; sourceTree = "<group>"; };
        8DC99C892A3701D800D0F04E /* CouponChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CouponChooseView.xib; sourceTree = "<group>"; };
        8DD239AC2A32FC5100700DEB /* CourseTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseTCell.swift; sourceTree = "<group>"; };
        8DD239AD2A32FC5100700DEB /* CourseTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CourseTCell.xib; sourceTree = "<group>"; };
        8DF1843E2A3327EE0095687B /* Common_1_CCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common_1_CCell.swift; sourceTree = "<group>"; };
@@ -181,6 +203,7 @@
                8D5C150B2A31885B00A8BCC9 /* AgreentView.swift */,
                8D667BF32A31C419005B02FB /* PaymentView.swift */,
                8D5B80B62A31C4C700B86520 /* PaymentView.xib */,
                8D6C50222A372B20007EC2D9 /* IDCardView.swift */,
            );
            path = View;
            sourceTree = "<group>";
@@ -200,6 +223,8 @@
                8D7017882A3308DC00473C40 /* Common_1_TCell.xib */,
                8DF184422A332CCD0095687B /* StudentInfoTCell.swift */,
                8DF184432A332CCD0095687B /* StudentInfoTCell.xib */,
                8D6810E52A370EFB004486DE /* CouponTCell.swift */,
                8D6810E62A370EFB004486DE /* CouponTCell.xib */,
            );
            path = TCell;
            sourceTree = "<group>";
@@ -303,6 +328,10 @@
            children = (
                8DA51DF92A32C6C10085F4BA /* StoresChooseView.swift */,
                8DA51DFB2A32C6D00085F4BA /* StoresChooseView.xib */,
                8DC99C872A3701CE00D0F04E /* CouponChooseView.swift */,
                8DC99C892A3701D800D0F04E /* CouponChooseView.xib */,
                8D6810E92A3710CE004486DE /* StudentChooseView.swift */,
                8D6810EB2A3710D8004486DE /* StudentChooseView.xib */,
            );
            path = View;
            sourceTree = "<group>";
@@ -338,6 +367,23 @@
            path = Common;
            sourceTree = "<group>";
        };
        8DC3BE0D2A38038F00C91B7F /* Activity */ = {
            isa = PBXGroup;
            children = (
                8DC3BE0E2A38039700C91B7F /* VC */,
            );
            path = Activity;
            sourceTree = "<group>";
        };
        8DC3BE0E2A38039700C91B7F /* VC */ = {
            isa = PBXGroup;
            children = (
                8DC3BE0F2A3803B500C91B7F /* ActivityListVC.swift */,
                8DC3BE102A3803B500C91B7F /* ActivityListVC.xib */,
            );
            path = VC;
            sourceTree = "<group>";
        };
        8DD239AB2A32FC2B00700DEB /* TCell */ = {
            isa = PBXGroup;
            children = (
@@ -350,6 +396,7 @@
        8DFA9B782A31722300E99281 /* Root */ = {
            isa = PBXGroup;
            children = (
                8DC3BE0D2A38038F00C91B7F /* Activity */,
                8D8DEDE92A31D7F400F2C7FA /* Other */,
                8DFA9B932A317E1E00E99281 /* Search */,
                8DFA9B8D2A317DBB00E99281 /* Welfare */,
@@ -401,6 +448,8 @@
                8D70178C2A330E5700473C40 /* CourseDetailVC.xib */,
                8D44E4F52A331DF800E7010E /* CourseDetailApplyVC.swift */,
                8D44E4F62A331DF800E7010E /* CourseDetailApplyVC.xib */,
                8D5732BB2A3724A900B2F8E3 /* AddStudentVC.swift */,
                8D5732BC2A3724A900B2F8E3 /* AddStudentVC.xib */,
            );
            path = VC;
            sourceTree = "<group>";
@@ -504,7 +553,11 @@
                8D8400DE2A2F1432003AF6A2 /* LaunchScreen.storyboard in Resources */,
                8DFA9B772A316E9A00E99281 /* LoginRegOrForgotVC.xib in Resources */,
                8DA51DFC2A32C6D00085F4BA /* StoresChooseView.xib in Resources */,
                8D6810EC2A3710D8004486DE /* StudentChooseView.xib in Resources */,
                8D5732BE2A3724A900B2F8E3 /* AddStudentVC.xib in Resources */,
                8DC99C8A2A3701D800D0F04E /* CouponChooseView.xib in Resources */,
                8D70178A2A3308DC00473C40 /* Common_1_TCell.xib in Resources */,
                8DC3BE122A3803B500C91B7F /* ActivityListVC.xib in Resources */,
                8D70178E2A330E5700473C40 /* CourseDetailVC.xib in Resources */,
                8D8DEDEE2A31D82100F2C7FA /* PaymentResultVC.xib in Resources */,
                8D86DE872A3307B700A754EF /* CourseSubTypeView.xib in Resources */,
@@ -520,6 +573,7 @@
                8D8400EA2A2F14A3003AF6A2 /* LoginVC.xib in Resources */,
                8D5C150D2A31885B00A8BCC9 /* AgreentView.xib in Resources */,
                8D630BF92A31801300F0B7A8 /* SearchVC.xib in Resources */,
                8D6810E82A370EFB004486DE /* CouponTCell.xib in Resources */,
                8D6D6AF32A32D6F800DCA2C6 /* CourseListVC.xib in Resources */,
                8D4905AA2A31A6EC00E38513 /* HomeCCell.xib in Resources */,
                8D8400D92A2F1430003AF6A2 /* Main.storyboard in Resources */,
@@ -577,14 +631,17 @@
            buildActionMask = 2147483647;
            files = (
                8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */,
                8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */,
                8DF184442A332CCD0095687B /* StudentInfoTCell.swift in Sources */,
                8DD239AE2A32FC5100700DEB /* CourseTCell.swift in Sources */,
                8D667BF42A31C419005B02FB /* PaymentView.swift in Sources */,
                8DFA9B762A316E9A00E99281 /* LoginRegOrForgotVC.swift in Sources */,
                8D6810EA2A3710CE004486DE /* StudentChooseView.swift in Sources */,
                8DFA9B8B2A317DAA00E99281 /* CourseVC.swift in Sources */,
                8DAEB54B2A30593C00814766 /* BaseVC.swift in Sources */,
                8DAEB54E2A305A0100814766 /* Colors.swift in Sources */,
                8D630BF82A31801300F0B7A8 /* SearchVC.swift in Sources */,
                8DC99C882A3701CE00D0F04E /* CouponChooseView.swift in Sources */,
                8D44E4F72A331DF800E7010E /* CourseDetailApplyVC.swift in Sources */,
                8D6D6AF22A32D6F800DCA2C6 /* CourseListVC.swift in Sources */,
                8DF184402A3327EE0095687B /* Common_1_CCell.swift in Sources */,
@@ -593,16 +650,19 @@
                8DA51DFA2A32C6C10085F4BA /* StoresChooseView.swift in Sources */,
                8DAEB5522A305B2D00814766 /* Fronts.swift in Sources */,
                8D8DEDED2A31D82100F2C7FA /* PaymentResultVC.swift in Sources */,
                8D6810E72A370EFB004486DE /* CouponTCell.swift in Sources */,
                8D8400D22A2F1430003AF6A2 /* AppDelegate.swift in Sources */,
                8D8DEDF22A31DDC500F2C7FA /* CouponCCell.swift in Sources */,
                8D5C150E2A31885B00A8BCC9 /* CommonAlertView.swift in Sources */,
                8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */,
                8D70178D2A330E5700473C40 /* CourseDetailVC.swift in Sources */,
                8D5732BD2A3724A900B2F8E3 /* AddStudentVC.swift in Sources */,
                8D5C150F2A31885B00A8BCC9 /* AgreentView.swift in Sources */,
                8D8400E92A2F14A3003AF6A2 /* LoginVC.swift in Sources */,
                8D4905A92A31A6EC00E38513 /* HomeCCell.swift in Sources */,
                8DFA9B852A3172BE00E99281 /* HomeVC.swift in Sources */,
                8DFA9B912A317DE900E99281 /* WelfareVC.swift in Sources */,
                8D6C50232A372B21007EC2D9 /* IDCardView.swift in Sources */,
                8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */,
                8DAEB5502A305AEF00814766 /* Def.swift in Sources */,
                8D8400D42A2F1430003AF6A2 /* SceneDelegate.swift in Sources */,
WanPai.xcodeproj/xcuserdata/yangkai.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,7 +7,7 @@
        <key>WanPai.xcscheme_^#shared#^_</key>
        <dict>
            <key>orderHint</key>
            <integer>0</integer>
            <integer>25</integer>
        </dict>
    </dict>
</dict>
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "btn_choose_1@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "btn_choose_1@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@2x.png
WanPai/Assets.xcassets/Btns/btn_choose_1.imageset/btn_choose_1@3x.png
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_item_p@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_item_p@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@2x.png
WanPai/Assets.xcassets/Icons/icon_item_p.imageset/icon_item_p@3x.png
WanPai/Common/View/IDCardView.swift
New file
@@ -0,0 +1,129 @@
//
//  IDCardView.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/12.
//
import UIKit
class IDCardView: UIView {
    var box:Box<String>!
    private let VIEW_HEIGHT:Double = 200
    private let SafeInserts =  UIApplication.shared.delegate?.window?!.screen.focusedView?.safeAreaInsets ?? .zero
    private var screenW = UIScreen.main.bounds.size.width
    private var avgCellW:Double!
    private var avgCellH:Double!
    private var cellItems = ["1","2","3","4","5","6","7","8","9","X","0","Del"]
    private var content:String = ""
    private var btn_X:UIButton!
    private var btn_Del:UIButton!
    override init(frame: CGRect) {
        super.init(frame: frame)
        setUI()
        box = Box()
    }
    private func setUI(){
        avgCellW = screenW / 3.0
        avgCellH = VIEW_HEIGHT / 4.0
        frame = CGRect(origin: .zero, size: CGSize(width: screenW, height: VIEW_HEIGHT + SafeInserts.bottom))
        backgroundColor = .white
        for (index,item) in cellItems.enumerated() {
            let i = Double(index).truncatingRemainder(dividingBy: 3.0)
            let j = floor(Double(index) / 3.0)
            let btn = createButton(text: item, indexTag: index)
            btn.frame = CGRect(x: i * avgCellW, y: j * avgCellH, width: avgCellW, height: avgCellH)
            btn.layer.borderColor = UIColor.gray.withAlphaComponent(0.2).cgColor
            btn.layer.borderWidth = 0.5
            btn.setTitleColor(.gray.withAlphaComponent(0.2), for: .disabled)
            addSubview(btn)
        }
    }
    private func createButton(text:String,indexTag:Int)->UIButton{
        let btn = UIButton(type: .roundedRect)
        if text == "Del"{
            if #available(iOS 13.0, *) {
                btn.setImage(UIImage(systemName: "delete.left")?.withTintColor(.black), for: .normal)
            } else {
                btn.setTitle("Del", for: .normal)
            }
        }else{
            btn.setTitle(text, for: .normal)
        }
        btn.tag = 10 + indexTag
        btn.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .medium)
        btn.setTitleColor(.black, for: .normal)
        btn.addTarget(self, action: #selector(tapAction(_:)), for: .touchUpInside)
        btn.setTitleColor(.gray, for: .highlighted)
        if  text == "X"{
            btn_X = btn;btn_X.isEnabled = false
        }
        if text == "Del"{
            btn_Del = btn
            let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longGesture))
            btn_Del.addGestureRecognizer(longGesture)
        }
        return btn
    }
    @objc private  func tapAction(_ btn:UIButton){
        guard let text = btn.titleLabel?.text else {
            if !content.isEmpty{content.removeLast()}
            box.value = content
            btn_X.isEnabled = content.count == 17
            return
        }
        if content.count <= 17{
            content.append(text)
        }
        btn_X.isEnabled = content.count == 17
        box.value = content
    }
    @objc private func longGesture(_ gesture:UILongPressGestureRecognizer){
        if content.count > 0{
            content.removeLast()
            box.value = content
        }
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
final class Box<T> {
        // 声明一个别名
    typealias Listener = (T) -> Void
    var listener: Listener?
    var value: T? {
        didSet {
            guard let v = value else { return }
            listener?(v)
        }
    }
    init(_ value: T? = nil){
        self.value = value
    }
    func bind(listener: Listener?) {
        self.listener = listener
        guard let v = value else { return }
        listener?(v)
    }
}
WanPai/Root/Activity/VC/ActivityListVC.swift
New file
@@ -0,0 +1,16 @@
//
//  ActivityListVC.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/13.
//
import UIKit
class ActivityListVC: BaseVC {
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "赛事活动列表"
    }
}
WanPai/Root/Activity/VC/ActivityListVC.xib
New file
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
        <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" customClass="ActivityListVC" customModuleProvider="target">
            <connections>
                <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="375" height="667"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
        </view>
    </objects>
</document>
WanPai/Root/Course/VC/AddStudentVC.swift
New file
@@ -0,0 +1,26 @@
//
//  AddStudentVC.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/12.
//
import UIKit
class AddStudentVC: BaseVC {
    @IBOutlet weak var tf_idCard: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "添加学员"
        let idCardView = IDCardView()
        idCardView.box.bind { text in
            self.tf_idCard.text = text
        }
        tf_idCard.inputView = idCardView
    }
}
WanPai/Root/Course/VC/AddStudentVC.xib
New file
@@ -0,0 +1,407 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/>
        <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="AddStudentVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="tf_idCard" destination="LD0-ej-DmH" id="cwL-wm-Ryg"/>
                <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>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="5oh-CW-AiU">
                    <rect key="frame" x="145.66666666666666" y="84" width="102" height="102"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="102" id="Pfw-bl-ayh"/>
                        <constraint firstAttribute="height" constant="102" id="Udg-me-xe5"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="51"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </imageView>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="d3m-we-29R">
                    <rect key="frame" x="0.0" y="210.00000000000003" width="393" height="352.66666666666674"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sgk-Rq-GPl">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="50.333333333333336"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="3Gg-cy-Mrj">
                                    <rect key="frame" x="15" y="19.333333333333343" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c4u-do-3kU">
                                    <rect key="frame" x="14" y="50" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.83137254901960778" green="0.83137254901960778" blue="0.83137254901960778" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.40000000000000002" id="Dih-NZ-D9t"/>
                                    </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="Hd9-3e-EE2">
                                    <rect key="frame" x="30" y="16.666666666666657" width="28.666666666666671" 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="C9O-Cu-rp7">
                                    <rect key="frame" x="120" y="0.0" width="263" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits"/>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="c4u-do-3kU" firstAttribute="top" secondItem="C9O-Cu-rp7" secondAttribute="bottom" id="2FF-W0-ea4"/>
                                <constraint firstItem="C9O-Cu-rp7" firstAttribute="top" secondItem="sgk-Rq-GPl" secondAttribute="top" id="7V0-Vg-iyf"/>
                                <constraint firstAttribute="trailing" secondItem="c4u-do-3kU" secondAttribute="trailing" constant="14" id="88a-R9-GKh"/>
                                <constraint firstItem="Hd9-3e-EE2" firstAttribute="centerY" secondItem="3Gg-cy-Mrj" secondAttribute="centerY" id="8MP-Cl-e7e"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="CwJ-if-dUJ"/>
                                <constraint firstItem="3Gg-cy-Mrj" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="15" id="Rsv-ys-ul7"/>
                                <constraint firstItem="c4u-do-3kU" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="14" id="c6L-Gc-0MA"/>
                                <constraint firstAttribute="trailing" secondItem="C9O-Cu-rp7" secondAttribute="trailing" constant="10" id="dx6-qf-3AW"/>
                                <constraint firstItem="C9O-Cu-rp7" firstAttribute="leading" secondItem="sgk-Rq-GPl" secondAttribute="leading" constant="120" id="eO9-3N-nR9"/>
                                <constraint firstItem="Hd9-3e-EE2" firstAttribute="leading" secondItem="3Gg-cy-Mrj" secondAttribute="trailing" constant="3" id="gdz-0C-HOl"/>
                                <constraint firstAttribute="bottom" secondItem="c4u-do-3kU" secondAttribute="bottom" id="hYA-0p-jnz"/>
                                <constraint firstItem="3Gg-cy-Mrj" firstAttribute="centerY" secondItem="sgk-Rq-GPl" secondAttribute="centerY" id="y8Z-PU-Hbw"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PXO-vA-az9">
                            <rect key="frame" x="0.0" y="50.333333333333314" width="393" height="50.333333333333343"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="waQ-bZ-tyt">
                                    <rect key="frame" x="15" y="19.333333333333371" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c21-81-tiw">
                                    <rect key="frame" x="14" y="50" 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="yBJ-iI-HbF"/>
                                    </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="Fjk-Kb-cDF">
                                    <rect key="frame" x="30" y="16.666666666666686" width="28.666666666666671" 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="Gwh-N7-mRQ">
                                    <rect key="frame" x="120" y="0.0" width="263" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits"/>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="Fjk-Kb-cDF" firstAttribute="centerY" secondItem="waQ-bZ-tyt" secondAttribute="centerY" id="2mW-wd-fB9"/>
                                <constraint firstAttribute="trailing" secondItem="c21-81-tiw" secondAttribute="trailing" constant="14" id="FOF-Wc-qtH"/>
                                <constraint firstItem="waQ-bZ-tyt" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="15" id="Hk9-W5-bIW"/>
                                <constraint firstItem="Gwh-N7-mRQ" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="120" id="JeT-c0-HwR"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="MEQ-hH-rG7"/>
                                <constraint firstItem="waQ-bZ-tyt" firstAttribute="centerY" secondItem="PXO-vA-az9" secondAttribute="centerY" id="O6K-3i-Egv"/>
                                <constraint firstAttribute="bottom" secondItem="c21-81-tiw" secondAttribute="bottom" id="UXu-Ei-eiU"/>
                                <constraint firstItem="Fjk-Kb-cDF" firstAttribute="leading" secondItem="waQ-bZ-tyt" secondAttribute="trailing" constant="3" id="h2e-8E-Cmx"/>
                                <constraint firstItem="c21-81-tiw" firstAttribute="leading" secondItem="PXO-vA-az9" secondAttribute="leading" constant="14" id="hAG-m6-5j3"/>
                                <constraint firstAttribute="trailing" secondItem="Gwh-N7-mRQ" secondAttribute="trailing" constant="10" id="lOe-FC-hor"/>
                                <constraint firstItem="Gwh-N7-mRQ" firstAttribute="top" secondItem="PXO-vA-az9" secondAttribute="top" id="m5l-s5-s0l"/>
                                <constraint firstItem="c21-81-tiw" firstAttribute="top" secondItem="Gwh-N7-mRQ" secondAttribute="bottom" id="zeS-3H-qpX"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fst-1Q-XPB">
                            <rect key="frame" x="0.0" y="100.66666666666669" width="393" height="50.666666666666657"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="Gbp-P5-iwf">
                                    <rect key="frame" x="15" y="19.333333333333314" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YO8-is-7dG">
                                    <rect key="frame" x="14" y="50" width="365" height="0.6666666666666643"/>
                                    <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="Kkp-JD-DCr"/>
                                    </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="bPG-2j-6aP">
                                    <rect key="frame" x="30" y="17" width="28.666666666666671" 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" text="男" placeholder="请选择" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="5l9-vJ-vil">
                                    <rect key="frame" x="120" y="0.0" width="233" height="50"/>
                                    <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="E8L-i6-F22">
                                    <rect key="frame" x="359" y="18.333333333333314" width="20" height="14"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="bottom" secondItem="YO8-is-7dG" secondAttribute="bottom" id="4MS-Iq-gmJ"/>
                                <constraint firstAttribute="trailing" secondItem="YO8-is-7dG" secondAttribute="trailing" constant="14" id="65F-eD-ReH"/>
                                <constraint firstAttribute="trailing" secondItem="5l9-vJ-vil" secondAttribute="trailing" constant="40" id="6vA-eX-sZX"/>
                                <constraint firstItem="Gbp-P5-iwf" firstAttribute="centerY" secondItem="Fst-1Q-XPB" secondAttribute="centerY" id="9RS-cy-xis"/>
                                <constraint firstAttribute="trailing" secondItem="E8L-i6-F22" secondAttribute="trailing" constant="14" id="DQL-9t-SOD"/>
                                <constraint firstItem="5l9-vJ-vil" firstAttribute="top" secondItem="Fst-1Q-XPB" secondAttribute="top" id="HRc-7L-kYl"/>
                                <constraint firstItem="E8L-i6-F22" firstAttribute="centerY" secondItem="Fst-1Q-XPB" secondAttribute="centerY" id="Log-fZ-GHL"/>
                                <constraint firstItem="5l9-vJ-vil" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="120" id="OwA-sz-k0D"/>
                                <constraint firstItem="YO8-is-7dG" firstAttribute="top" secondItem="5l9-vJ-vil" secondAttribute="bottom" id="a9E-8d-YV5"/>
                                <constraint firstItem="bPG-2j-6aP" firstAttribute="centerY" secondItem="Gbp-P5-iwf" secondAttribute="centerY" id="bWY-A2-1Sr"/>
                                <constraint firstItem="bPG-2j-6aP" firstAttribute="leading" secondItem="Gbp-P5-iwf" secondAttribute="trailing" constant="3" id="fLM-OZ-0Cv"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="lej-8g-JiS"/>
                                <constraint firstItem="Gbp-P5-iwf" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="15" id="w3N-6X-E43"/>
                                <constraint firstItem="YO8-is-7dG" firstAttribute="leading" secondItem="Fst-1Q-XPB" secondAttribute="leading" constant="14" id="yZF-NA-ZVR"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="R0d-XL-DhI">
                            <rect key="frame" x="0.0" y="151.33333333333331" width="393" height="50.333333333333343"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="3dp-Mn-mBX">
                                    <rect key="frame" x="15" y="19" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iGJ-Lp-h7F">
                                    <rect key="frame" x="14" y="50" 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="r3C-n0-1ch"/>
                                    </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="ADA-uT-2gD">
                                    <rect key="frame" x="30" y="16.666666666666686" width="28.666666666666671" 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="Oj3-XX-8wG" customClass="QMUITextField">
                                    <rect key="frame" x="120" y="0.0" width="233" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="3"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="cm" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QN7-D8-hdg">
                                    <rect key="frame" x="358.66666666666669" y="16.666666666666686" width="20.333333333333314" 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.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="QN7-D8-hdg" secondAttribute="trailing" constant="14" id="8Oy-hz-CQ1"/>
                                <constraint firstItem="iGJ-Lp-h7F" firstAttribute="top" secondItem="Oj3-XX-8wG" secondAttribute="bottom" id="8rc-JY-LDW"/>
                                <constraint firstItem="Oj3-XX-8wG" firstAttribute="top" secondItem="R0d-XL-DhI" secondAttribute="top" id="ACt-yf-IcW"/>
                                <constraint firstItem="ADA-uT-2gD" firstAttribute="centerY" secondItem="3dp-Mn-mBX" secondAttribute="centerY" id="CTg-xQ-DKd"/>
                                <constraint firstAttribute="trailing" secondItem="Oj3-XX-8wG" secondAttribute="trailing" constant="40" id="GFg-dI-pEM"/>
                                <constraint firstItem="3dp-Mn-mBX" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="15" id="LNP-3f-Qsj"/>
                                <constraint firstAttribute="bottom" secondItem="iGJ-Lp-h7F" secondAttribute="bottom" id="Zsj-HO-3T1"/>
                                <constraint firstItem="Oj3-XX-8wG" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="120" id="cKW-FS-At0"/>
                                <constraint firstItem="3dp-Mn-mBX" firstAttribute="centerY" secondItem="R0d-XL-DhI" secondAttribute="centerY" id="gNV-67-8Bu"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="mrE-mE-ylE"/>
                                <constraint firstItem="QN7-D8-hdg" firstAttribute="centerY" secondItem="3dp-Mn-mBX" secondAttribute="centerY" id="shY-Hs-NTu"/>
                                <constraint firstItem="ADA-uT-2gD" firstAttribute="leading" secondItem="3dp-Mn-mBX" secondAttribute="trailing" constant="3" id="svG-KD-r17"/>
                                <constraint firstAttribute="trailing" secondItem="iGJ-Lp-h7F" secondAttribute="trailing" constant="14" id="zh0-U8-JRH"/>
                                <constraint firstItem="iGJ-Lp-h7F" firstAttribute="leading" secondItem="R0d-XL-DhI" secondAttribute="leading" constant="14" id="zo3-cy-ABI"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iPl-pJ-Ftu">
                            <rect key="frame" x="0.0" y="201.66666666666669" width="393" height="50.333333333333343"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="tDX-uz-7Lt">
                                    <rect key="frame" x="15" y="19" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qfz-6T-07R">
                                    <rect key="frame" x="14" y="50" 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="QTF-VW-2cq"/>
                                    </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="GPK-rF-DJy">
                                    <rect key="frame" x="30" y="16.666666666666629" width="28.666666666666671" 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="XDz-T3-HBc" customClass="QMUITextField">
                                    <rect key="frame" x="120" y="0.0" width="233" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="3"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="kg" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EoT-if-iYA">
                                    <rect key="frame" x="363" y="16.666666666666629" width="16" 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.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="GPK-rF-DJy" firstAttribute="centerY" secondItem="tDX-uz-7Lt" secondAttribute="centerY" id="3au-AZ-mvb"/>
                                <constraint firstAttribute="trailing" secondItem="EoT-if-iYA" secondAttribute="trailing" constant="14" id="Bre-lf-vlI"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="DF1-mV-OHz"/>
                                <constraint firstItem="XDz-T3-HBc" firstAttribute="top" secondItem="iPl-pJ-Ftu" secondAttribute="top" id="O2y-Wk-xsx"/>
                                <constraint firstItem="Qfz-6T-07R" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="14" id="Pef-kp-a3d"/>
                                <constraint firstAttribute="trailing" secondItem="XDz-T3-HBc" secondAttribute="trailing" constant="40" id="R51-96-FIj"/>
                                <constraint firstItem="GPK-rF-DJy" firstAttribute="leading" secondItem="tDX-uz-7Lt" secondAttribute="trailing" constant="3" id="aeW-Si-00A"/>
                                <constraint firstItem="Qfz-6T-07R" firstAttribute="top" secondItem="XDz-T3-HBc" secondAttribute="bottom" id="bLD-xj-gTk"/>
                                <constraint firstItem="tDX-uz-7Lt" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="15" id="k8W-lE-4iO"/>
                                <constraint firstAttribute="trailing" secondItem="Qfz-6T-07R" secondAttribute="trailing" constant="14" id="kVt-WU-1WT"/>
                                <constraint firstItem="EoT-if-iYA" firstAttribute="centerY" secondItem="tDX-uz-7Lt" secondAttribute="centerY" id="mF5-fM-VMF"/>
                                <constraint firstItem="tDX-uz-7Lt" firstAttribute="centerY" secondItem="iPl-pJ-Ftu" secondAttribute="centerY" id="nvJ-pW-GYc"/>
                                <constraint firstItem="XDz-T3-HBc" firstAttribute="leading" secondItem="iPl-pJ-Ftu" secondAttribute="leading" constant="120" id="oNY-6u-4To"/>
                                <constraint firstAttribute="bottom" secondItem="Qfz-6T-07R" secondAttribute="bottom" id="yLW-4W-fDF"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2nU-pk-phu">
                            <rect key="frame" x="0.0" y="252.00000000000003" width="393" height="50.333333333333343"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="heO-1g-jYH">
                                    <rect key="frame" x="15" y="19.333333333333314" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="c6a-Ai-3Np">
                                    <rect key="frame" x="14" y="50" 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="2yI-f5-96H"/>
                                    </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="DPg-zi-req">
                                    <rect key="frame" x="30.000000000000004" y="16.666666666666686" width="57.333333333333343" 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="eT7-mO-3I8" customClass="QMUITextField">
                                    <rect key="frame" x="120" y="0.0" width="233" height="50"/>
                                    <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>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="eT7-mO-3I8" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="120" id="5rc-Vo-lne"/>
                                <constraint firstItem="heO-1g-jYH" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="15" id="Aah-sL-gPy"/>
                                <constraint firstAttribute="trailing" secondItem="eT7-mO-3I8" secondAttribute="trailing" constant="40" id="Amx-f1-Qi4"/>
                                <constraint firstItem="c6a-Ai-3Np" firstAttribute="top" secondItem="eT7-mO-3I8" secondAttribute="bottom" id="GCe-gk-F1O"/>
                                <constraint firstItem="eT7-mO-3I8" firstAttribute="top" secondItem="2nU-pk-phu" secondAttribute="top" id="GhU-m9-uTp"/>
                                <constraint firstAttribute="trailing" secondItem="c6a-Ai-3Np" secondAttribute="trailing" constant="14" id="Jew-PT-4Tk"/>
                                <constraint firstAttribute="bottom" secondItem="c6a-Ai-3Np" secondAttribute="bottom" id="btp-Pj-qXe"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="dxG-vK-Tf9"/>
                                <constraint firstItem="DPg-zi-req" firstAttribute="centerY" secondItem="heO-1g-jYH" secondAttribute="centerY" id="e3M-oc-rh7"/>
                                <constraint firstItem="DPg-zi-req" firstAttribute="leading" secondItem="heO-1g-jYH" secondAttribute="trailing" constant="3" id="fhE-9U-Wi3"/>
                                <constraint firstItem="c6a-Ai-3Np" firstAttribute="leading" secondItem="2nU-pk-phu" secondAttribute="leading" constant="14" id="j7Q-C8-u2p"/>
                                <constraint firstItem="heO-1g-jYH" firstAttribute="centerY" secondItem="2nU-pk-phu" secondAttribute="centerY" id="yww-Ea-bDM"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eXg-lM-iFa">
                            <rect key="frame" x="0.0" y="302.33333333333337" width="393" height="50.333333333333314"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_item_p" translatesAutoresizingMaskIntoConstraints="NO" id="4SZ-GR-0yH">
                                    <rect key="frame" x="15" y="19.333333333333258" width="12" height="12"/>
                                </imageView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NlW-dD-gIp">
                                    <rect key="frame" x="14" y="50" 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="i2J-rI-rHl"/>
                                    </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="JjF-jS-GPH">
                                    <rect key="frame" x="30.000000000000004" y="16.666666666666629" width="57.333333333333343" 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="LD0-ej-DmH">
                                    <rect key="frame" x="120" y="0.0" width="233" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="LD0-ej-DmH" secondAttribute="trailing" constant="40" id="0gt-Pw-IV7"/>
                                <constraint firstItem="LD0-ej-DmH" firstAttribute="top" secondItem="eXg-lM-iFa" secondAttribute="top" id="2K7-zV-OyA"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="centerY" secondItem="4SZ-GR-0yH" secondAttribute="centerY" id="4Wi-qJ-HQu"/>
                                <constraint firstAttribute="bottom" secondItem="NlW-dD-gIp" secondAttribute="bottom" id="9Mu-Gg-yex"/>
                                <constraint firstItem="LD0-ej-DmH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="120" id="9U6-rD-Jfd"/>
                                <constraint firstItem="4SZ-GR-0yH" firstAttribute="centerY" secondItem="eXg-lM-iFa" secondAttribute="centerY" id="OKc-zz-Xbr"/>
                                <constraint firstItem="NlW-dD-gIp" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="14" id="Qir-9y-1mQ"/>
                                <constraint firstItem="4SZ-GR-0yH" firstAttribute="leading" secondItem="eXg-lM-iFa" secondAttribute="leading" constant="15" id="XwP-ey-1bY"/>
                                <constraint firstAttribute="trailing" secondItem="NlW-dD-gIp" secondAttribute="trailing" constant="14" id="jSc-75-egP"/>
                                <constraint firstItem="NlW-dD-gIp" firstAttribute="top" secondItem="LD0-ej-DmH" secondAttribute="bottom" id="mxF-BK-Axi"/>
                                <constraint firstAttribute="height" constant="50.399999999999999" id="ngz-MT-wKh"/>
                                <constraint firstItem="JjF-jS-GPH" firstAttribute="leading" secondItem="4SZ-GR-0yH" secondAttribute="trailing" constant="3" id="qld-zr-Coe"/>
                            </constraints>
                        </view>
                    </subviews>
                </stackView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KyK-7A-Oi3">
                    <rect key="frame" x="100" y="601.66666666666663" width="193" height="40"/>
                    <color key="backgroundColor" name="FE6E0D"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="ftL-wZ-RWw"/>
                    </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="确认"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="20"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="d3m-we-29R" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="1ds-BA-yQx"/>
                <constraint firstItem="KyK-7A-Oi3" firstAttribute="top" secondItem="d3m-we-29R" secondAttribute="bottom" constant="39" id="8HH-th-KGV"/>
                <constraint firstItem="KyK-7A-Oi3" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="100" id="GQG-YU-FM0"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="d3m-we-29R" secondAttribute="trailing" id="GUV-89-fyH"/>
                <constraint firstItem="5oh-CW-AiU" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="25" id="QvX-15-W0k"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="KyK-7A-Oi3" secondAttribute="trailing" constant="100" id="gh3-61-wYy"/>
                <constraint firstItem="5oh-CW-AiU" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="nOm-Zk-VjG"/>
                <constraint firstItem="d3m-we-29R" firstAttribute="top" secondItem="5oh-CW-AiU" secondAttribute="bottom" constant="24" id="qXQ-dq-ECr"/>
            </constraints>
            <point key="canvasLocation" x="40" y="21"/>
        </view>
    </objects>
    <resources>
        <image name="icon_down_arrow" width="20" height="14"/>
        <image name="icon_item_p" width="12" height="12"/>
        <namedColor name="FE6E0D">
            <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Course/VC/CourseDetailApplyVC.swift
@@ -16,6 +16,7 @@
    @IBOutlet weak var btn_addStudent: QMUIButton!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
    @IBOutlet weak var btn_coupon: TapBtn!
    
    @IBOutlet weak var studentTableView: UITableView!
    var CellW:Double!
@@ -43,6 +44,29 @@
        btn_addStudent.imagePosition = .right
        btn_addStudent.spacingBetweenImageAndTitle = 3
    }
    @IBAction func couponAction(_ sender: TapBtn) {
        CouponChooseView.show()
    }
    @IBAction func studentAction(_ sender: QMUIButton) {
        StudentChooseView.show {
        } needAddClouse: { [weak self] () in
            let vc = AddStudentVC()
            self?.push(vc: vc)
        }
    }
    @IBAction func paymentAction(_ sender: UIButton) {
        PaymentView.show { status in
            let paymentState:PaymentResultVC.PaymentResult = status ? .success:.fail
            let vc = PaymentResultVC(result: paymentState, objType: .apply)
            vc.modalPresentationStyle = .fullScreen
            self.present(vc, animated: true)
        }
    }
}
extension CourseDetailApplyVC:UICollectionViewDelegate{
WanPai/Root/Course/VC/CourseDetailApplyVC.xib
@@ -13,6 +13,7 @@
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CourseDetailApplyVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_addStudent" destination="kv0-E8-XGD" id="H56-eE-BCc"/>
                <outlet property="btn_coupon" destination="XNI-Vj-heV" id="es4-Cw-MCW"/>
                <outlet property="collectionView" destination="ZtR-nH-Ly1" id="Snf-0R-x4b"/>
                <outlet property="cons_collectHei" destination="wOm-8j-9fG" id="ycB-BH-9OQ"/>
                <outlet property="cons_tableHei" destination="YrT-fE-DXP" id="wAi-wu-Afa"/>
@@ -289,6 +290,9 @@
                                            <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="studentAction:" destination="-1" eventType="touchUpInside" id="3FG-WZ-i0P"/>
                                            </connections>
                                        </button>
                                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="CMD-gX-7vo">
                                            <rect key="frame" x="14" y="46" width="365" height="76"/>
@@ -313,7 +317,7 @@
                                        <constraint firstItem="kv0-E8-XGD" firstAttribute="centerY" secondItem="ahH-c9-ZOs" secondAttribute="centerY" id="xn2-9h-Vom"/>
                                    </constraints>
                                </view>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNI-Vj-heV">
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XNI-Vj-heV" customClass="TapBtn" customModule="WanPai" customModuleProvider="target">
                                    <rect key="frame" x="0.0" y="705.66666666666663" width="393" height="49"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1GA-NZ-pkR">
@@ -332,7 +336,7 @@
                                            <nil key="textColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uvW-sZ-v3z">
                                        <button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uvW-sZ-v3z">
                                            <rect key="frame" x="336" y="10" width="43" 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"/>
@@ -352,6 +356,9 @@
                                        <constraint firstAttribute="bottom" secondItem="1GA-NZ-pkR" secondAttribute="bottom" id="wR5-QT-Zl7"/>
                                        <constraint firstItem="1GA-NZ-pkR" firstAttribute="leading" secondItem="XNI-Vj-heV" secondAttribute="leading" constant="13" id="z6y-gl-PVC"/>
                                    </constraints>
                                    <connections>
                                        <action selector="couponAction:" destination="-1" eventType="touchUpInside" id="NPB-pC-9Eu"/>
                                    </connections>
                                </view>
                            </subviews>
                        </stackView>
@@ -405,6 +412,9 @@
                                    <real key="value" value="20"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                            <connections>
                                <action selector="paymentAction:" destination="-1" eventType="touchUpInside" id="nX5-iV-ABY"/>
                            </connections>
                        </button>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Nt-Eo-1K1">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="0.66666666666666663"/>
WanPai/Root/Home/VC/HomeVC.swift
@@ -60,6 +60,11 @@
            let vc = CourseListVC()
            push(vc: vc)
        }
        if indexPath.row == 1{
            let vc = ActivityListVC()
            push(vc: vc)
        }
    }
    
}
WanPai/Root/Home/VC/JoinMemberIntroduceVC.swift
@@ -26,7 +26,7 @@
    @IBAction func joinAction(_ sender: QMUIButton) {
        PaymentView.show { status in
            let paymentState:PaymentResultVC.PaymentResult = status ? .success:.fail
            let vc = PaymentResultVC(result: paymentState)
            let vc = PaymentResultVC(result: paymentState, objType: .member)
            vc.modalPresentationStyle = .fullScreen
            self.present(vc, animated: true)
            
WanPai/Root/Other/TCell/CouponTCell.swift
New file
@@ -0,0 +1,16 @@
//
//  CouponTCell.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/12.
//
import UIKit
class CouponTCell: UITableViewCell {
    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = .none
    }
}
WanPai/Root/Other/TCell/CouponTCell.xib
New file
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/>
        <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"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_CouponTCell" rowHeight="142" id="KGk-i7-Jjw" customClass="CouponTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="459" height="142"/>
            <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="459" height="142"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tgl-HJ-o47">
                        <rect key="frame" x="14" y="10" width="431" height="122"/>
                        <subviews>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="icon_coupon_header" translatesAutoresizingMaskIntoConstraints="NO" id="zmS-eg-Mj0">
                                <rect key="frame" x="0.0" y="0.0" width="100" height="122"/>
                            </imageView>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_footer" translatesAutoresizingMaskIntoConstraints="NO" id="gIO-rm-Idg">
                                <rect key="frame" x="100" y="0.0" width="331" height="122"/>
                            </imageView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0元" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3QE-LO-GFM">
                                <rect key="frame" x="5" y="5" width="90" height="112"/>
                                <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"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pqd-2P-O0e">
                                <rect key="frame" x="115" y="18" width="16.333333333333343" height="25"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="25" id="feh-7y-gmP"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="R6d-L2-gef">
                                <rect key="frame" x="115.00000000000001" y="46" width="60.666666666666671" height="37"/>
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="满--元可用" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QGi-7X-2rC">
                                        <rect key="frame" x="0.0" y="0.0" width="60.666666666666664" height="17"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="17" id="agE-nr-M3c"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                        <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="7mn-yy-wtX">
                                        <rect key="frame" x="0.0" y="20" width="60.666666666666664" height="17"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="17" id="FUm-Cr-mcZ"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                </subviews>
                            </stackView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uap-oQ-COV">
                                <rect key="frame" x="361" y="49.666666666666664" width="61" height="22.999999999999993"/>
                                <constraints>
                                    <constraint firstAttribute="width" constant="61" id="E0U-vG-ym7"/>
                                    <constraint firstAttribute="height" constant="23" id="swg-VA-9gM"/>
                                </constraints>
                                <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="查看详情">
                                    <color key="titleColor" red="0.99215686270000003" green="0.52941176469999995" blue="0.0078431372550000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </state>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                    <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                        <real key="value" value="1"/>
                                    </userDefinedRuntimeAttribute>
                                    <userDefinedRuntimeAttribute type="number" keyPath="jq_xibCornerRadius">
                                        <real key="value" value="2"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </button>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_choose_1" translatesAutoresizingMaskIntoConstraints="NO" id="MyU-nB-kSQ">
                                <rect key="frame" x="398" y="10" width="24" height="24"/>
                            </imageView>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="uap-oQ-COV" firstAttribute="centerY" secondItem="3QE-LO-GFM" secondAttribute="centerY" id="05f-hO-2Wj"/>
                            <constraint firstAttribute="bottom" secondItem="zmS-eg-Mj0" secondAttribute="bottom" id="13N-ha-xzV"/>
                            <constraint firstAttribute="bottom" secondItem="gIO-rm-Idg" secondAttribute="bottom" id="2BD-WG-af7"/>
                            <constraint firstItem="R6d-L2-gef" firstAttribute="leading" secondItem="pqd-2P-O0e" secondAttribute="leading" id="3eE-Ot-ysn"/>
                            <constraint firstItem="R6d-L2-gef" firstAttribute="top" secondItem="pqd-2P-O0e" secondAttribute="bottom" constant="3" id="84e-0U-1mW"/>
                            <constraint firstItem="zmS-eg-Mj0" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" id="8xT-0h-Jbv"/>
                            <constraint firstItem="pqd-2P-O0e" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="trailing" constant="15" id="CJ1-E7-C7u"/>
                            <constraint firstAttribute="trailing" secondItem="gIO-rm-Idg" secondAttribute="trailing" id="FhT-YH-yQT"/>
                            <constraint firstItem="pqd-2P-O0e" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" constant="18" id="Isz-wP-dtw"/>
                            <constraint firstItem="3QE-LO-GFM" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="leading" constant="5" id="Loo-FY-e8F"/>
                            <constraint firstAttribute="trailing" secondItem="MyU-nB-kSQ" secondAttribute="trailing" constant="9" id="N01-Zz-QQ8"/>
                            <constraint firstItem="3QE-LO-GFM" firstAttribute="top" secondItem="zmS-eg-Mj0" secondAttribute="top" constant="5" id="OjG-1N-cu5"/>
                            <constraint firstItem="zmS-eg-Mj0" firstAttribute="leading" secondItem="tgl-HJ-o47" secondAttribute="leading" id="VMU-zz-c7r"/>
                            <constraint firstItem="gIO-rm-Idg" firstAttribute="leading" secondItem="zmS-eg-Mj0" secondAttribute="trailing" id="ZtA-Ey-S24"/>
                            <constraint firstItem="3QE-LO-GFM" firstAttribute="trailing" secondItem="zmS-eg-Mj0" secondAttribute="trailing" constant="-5" id="atx-5F-itp"/>
                            <constraint firstItem="3QE-LO-GFM" firstAttribute="bottom" secondItem="zmS-eg-Mj0" secondAttribute="bottom" constant="-5" id="fGv-Vw-NDO"/>
                            <constraint firstItem="MyU-nB-kSQ" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" constant="10" id="iZs-AQ-jV4"/>
                            <constraint firstAttribute="trailing" secondItem="uap-oQ-COV" secondAttribute="trailing" constant="9" id="kSA-Sl-Zoy"/>
                            <constraint firstItem="gIO-rm-Idg" firstAttribute="top" secondItem="tgl-HJ-o47" secondAttribute="top" id="piA-CQ-Dn6"/>
                        </constraints>
                    </view>
                </subviews>
                <constraints>
                    <constraint firstItem="tgl-HJ-o47" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="10" id="IAF-yN-tsN"/>
                    <constraint firstAttribute="bottom" secondItem="tgl-HJ-o47" secondAttribute="bottom" constant="10" id="IHo-qw-9LQ"/>
                    <constraint firstItem="tgl-HJ-o47" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="elG-km-OZX"/>
                    <constraint firstAttribute="trailing" secondItem="tgl-HJ-o47" secondAttribute="trailing" constant="14" id="vx5-fe-yx7"/>
                </constraints>
            </tableViewCellContentView>
            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
            <point key="canvasLocation" x="96.946564885496173" y="54.929577464788736"/>
        </tableViewCell>
    </objects>
    <resources>
        <image name="btn_choose_1" width="24" height="24"/>
        <image name="icon_coupon_footer" width="262" height="100"/>
        <image name="icon_coupon_header" width="100" height="100"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Other/TCell/StudentInfoTCell.xib
@@ -9,95 +9,107 @@
    <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="89" id="KGk-i7-Jjw" customClass="StudentInfoTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="321" height="89"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="119" id="KGk-i7-Jjw" customClass="StudentInfoTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="366" height="119"/>
            <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="321" height="89"/>
                <rect key="frame" x="0.0" y="0.0" width="366" height="119"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JeQ-E8-nRz">
                        <rect key="frame" x="10" y="13" width="43" height="20"/>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wux-IQ-y3O">
                        <rect key="frame" x="14" y="7" width="338" 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="JeQ-E8-nRz">
                                <rect key="frame" x="10" y="13" width="43" height="20"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="20" id="awc-A9-uu9"/>
                                </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="0TW-3R-Kd5">
                                <rect key="frame" x="53" y="14.666666666666668" width="13.333333333333329" 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="Kyb-yz-a5P">
                                <rect key="frame" x="114" y="13" width="71.666666666666686" height="20"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="20" id="T0x-iq-e0Y"/>
                                </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="A9b-WE-sPt">
                                <rect key="frame" x="185.66666666666666" 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="LKW-Uz-UH1">
                                <rect key="frame" x="10" y="44" width="43" height="20"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="20" id="koj-3m-yDM"/>
                                </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="o0m-fp-glP">
                                <rect key="frame" x="53" y="45.666666666666664" width="13.333333333333329" 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="UXK-s8-fn9">
                                <rect key="frame" x="314" y="12" width="16" height="22"/>
                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                <state key="normal" image="btn_delete"/>
                            </button>
                        </subviews>
                        <color key="backgroundColor" red="1" green="0.90588235294117647" blue="0.80000000000000004" alpha="0.080000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="20" id="awc-A9-uu9"/>
                            <constraint firstItem="Kyb-yz-a5P" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="0Ga-Jy-5aE"/>
                            <constraint firstItem="A9b-WE-sPt" firstAttribute="leading" secondItem="Kyb-yz-a5P" secondAttribute="trailing" id="1bw-Go-MnF"/>
                            <constraint firstItem="A9b-WE-sPt" firstAttribute="centerY" secondItem="Kyb-yz-a5P" secondAttribute="centerY" id="487-3c-aRH"/>
                            <constraint firstAttribute="trailing" secondItem="UXK-s8-fn9" secondAttribute="trailing" constant="8" id="6wi-7D-KrW"/>
                            <constraint firstItem="Kyb-yz-a5P" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="114" id="7sx-2w-lHq"/>
                            <constraint firstItem="o0m-fp-glP" firstAttribute="leading" secondItem="LKW-Uz-UH1" secondAttribute="trailing" id="GyS-v7-FSb"/>
                            <constraint firstItem="0TW-3R-Kd5" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="Hhw-Qg-p9Q"/>
                            <constraint firstItem="LKW-Uz-UH1" firstAttribute="top" secondItem="JeQ-E8-nRz" secondAttribute="bottom" constant="11" id="RmL-Be-C5k"/>
                            <constraint firstItem="o0m-fp-glP" firstAttribute="centerY" secondItem="LKW-Uz-UH1" secondAttribute="centerY" id="ZWC-Ao-iLI"/>
                            <constraint firstAttribute="height" constant="76" id="e7G-ot-jXA"/>
                            <constraint firstItem="LKW-Uz-UH1" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="10" id="i0L-uL-iCS"/>
                            <constraint firstItem="UXK-s8-fn9" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="qNj-oj-K5k"/>
                            <constraint firstItem="0TW-3R-Kd5" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="trailing" id="r44-XI-Jnx"/>
                            <constraint firstItem="JeQ-E8-nRz" firstAttribute="top" secondItem="wux-IQ-y3O" secondAttribute="top" constant="13" id="sNU-f8-gxg"/>
                            <constraint firstItem="JeQ-E8-nRz" firstAttribute="leading" secondItem="wux-IQ-y3O" secondAttribute="leading" constant="10" id="vQp-Ry-AUK"/>
                        </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="0TW-3R-Kd5">
                        <rect key="frame" x="53" y="14.666666666666664" width="13.333333333333329" 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="LKW-Uz-UH1">
                        <rect key="frame" x="10" y="44" width="43" height="20"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="20" id="koj-3m-yDM"/>
                        </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="o0m-fp-glP">
                        <rect key="frame" x="53" y="45.666666666666664" width="13.333333333333329" 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="Kyb-yz-a5P">
                        <rect key="frame" x="114" y="13" width="71.666666666666686" height="20"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="20" id="T0x-iq-e0Y"/>
                        </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="A9b-WE-sPt">
                        <rect key="frame" x="185.66666666666666" y="14.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="UXK-s8-fn9">
                        <rect key="frame" x="300" y="12" width="16" height="22"/>
                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                        <state key="normal" image="btn_delete"/>
                    </button>
                        <userDefinedRuntimeAttributes>
                            <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                                <color key="value" red="0.99215686274509807" green="0.47450980392156861" blue="0.0078431372549019607" 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>
                <color key="backgroundColor" red="1" green="0.90588235294117647" blue="0.80000000000000004" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/>
                <constraints>
                    <constraint firstAttribute="trailing" secondItem="UXK-s8-fn9" secondAttribute="trailing" constant="5" id="1vt-Wd-VJi"/>
                    <constraint firstItem="o0m-fp-glP" firstAttribute="centerY" secondItem="LKW-Uz-UH1" secondAttribute="centerY" id="2L7-GK-MFV"/>
                    <constraint firstItem="A9b-WE-sPt" firstAttribute="centerY" secondItem="Kyb-yz-a5P" secondAttribute="centerY" id="6vb-Te-TbP"/>
                    <constraint firstItem="0TW-3R-Kd5" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="7LY-4a-gJB"/>
                    <constraint firstItem="LKW-Uz-UH1" firstAttribute="top" secondItem="JeQ-E8-nRz" secondAttribute="bottom" constant="11" id="9n4-DF-JeD"/>
                    <constraint firstItem="o0m-fp-glP" firstAttribute="leading" secondItem="LKW-Uz-UH1" secondAttribute="trailing" id="AWA-5B-kih"/>
                    <constraint firstItem="JeQ-E8-nRz" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="10" id="CXh-T0-3g4"/>
                    <constraint firstItem="A9b-WE-sPt" firstAttribute="leading" secondItem="Kyb-yz-a5P" secondAttribute="trailing" id="DdS-4r-IuU"/>
                    <constraint firstItem="JeQ-E8-nRz" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="13" id="IIg-Xu-Ryy"/>
                    <constraint firstItem="LKW-Uz-UH1" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="leading" id="PJX-Eq-8yk"/>
                    <constraint firstItem="UXK-s8-fn9" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="ftj-PL-Dsx"/>
                    <constraint firstItem="Kyb-yz-a5P" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="114" id="ijt-fh-jGr"/>
                    <constraint firstAttribute="bottom" secondItem="LKW-Uz-UH1" secondAttribute="bottom" constant="12" id="jUu-Jp-Ldv"/>
                    <constraint firstItem="Kyb-yz-a5P" firstAttribute="centerY" secondItem="JeQ-E8-nRz" secondAttribute="centerY" id="qpV-JN-yqD"/>
                    <constraint firstItem="0TW-3R-Kd5" firstAttribute="leading" secondItem="JeQ-E8-nRz" secondAttribute="trailing" id="rQb-lc-x8f"/>
                    <constraint firstItem="wux-IQ-y3O" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="1H8-Rr-3vH"/>
                    <constraint firstAttribute="bottom" secondItem="wux-IQ-y3O" secondAttribute="bottom" constant="7" id="F5V-jX-QYV"/>
                    <constraint firstAttribute="trailing" secondItem="wux-IQ-y3O" secondAttribute="trailing" constant="14" id="LxN-CC-xda"/>
                    <constraint firstItem="wux-IQ-y3O" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7" id="d2J-Ta-zpG"/>
                </constraints>
                <userDefinedRuntimeAttributes>
                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                        <real key="value" value="4"/>
                    </userDefinedRuntimeAttribute>
                    <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
                        <real key="value" value="1"/>
                    </userDefinedRuntimeAttribute>
                    <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                        <color key="value" red="0.99215686274509807" green="0.47450980392156861" blue="0.0078431372549019607" alpha="0.28000000000000003" colorSpace="custom" customColorSpace="sRGB"/>
                    </userDefinedRuntimeAttribute>
                </userDefinedRuntimeAttributes>
            </tableViewCellContentView>
            <point key="canvasLocation" x="40.458015267175568" y="35.563380281690144"/>
            <point key="canvasLocation" x="74.809160305343511" y="45.422535211267608"/>
        </tableViewCell>
    </objects>
    <resources>
WanPai/Root/Other/VC/PaymentResultVC.swift
@@ -11,6 +11,10 @@
class PaymentResultVC: BaseVC {
    
    enum PaymentResult{case success,fail}
    enum PaymentObjType{
        case member //会员
        case apply //报名
    }
    
    
    @IBOutlet weak var img_paymentState: UIImageView!
@@ -21,10 +25,12 @@
    @IBOutlet weak var btn_back: UIButton!
    
    private var result:PaymentResult!
    private var objType:PaymentObjType!
    
    required init(result:PaymentResult) {
    required init(result:PaymentResult,objType:PaymentObjType) {
        super.init(nibName: nil, bundle: nil)
        self.result = result
        self.objType = objType
    }
    
    required init?(coder: NSCoder) {
@@ -34,22 +40,43 @@
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "成为会员"
        
        btn_again.isHidden = result == .success
        btn_back.isHidden = result == .success
        btn_backHome.isHidden = result == .fail
        collectionView.isHidden =  result == .fail
        switch result {
        case .fail:
            img_paymentState.image = UIImage(named: "icon_fail")
            label_content.text = "支付失败,这是失败原因!"
        case .success:
            img_paymentState.image = UIImage(named: "icon_success")
            label_content.text = "支付成功,恭喜您成为玩湃会员!并获得优惠券!"
        switch objType{
        case .member:
            btn_again.isHidden = result == .success
            btn_back.isHidden = result == .success
            btn_backHome.isHidden = result == .fail
            collectionView.isHidden =  result == .fail
            switch result {
            case .fail:
                img_paymentState.image = UIImage(named: "icon_fail")
                label_content.text = "支付失败,这是失败原因!"
            case .success:
                img_paymentState.image = UIImage(named: "icon_success")
                label_content.text = "支付成功,恭喜您成为玩湃会员!并获得优惠券!"
            case .none:break
            }
        case .apply:
            btn_backHome.isHidden = true
            collectionView.isHidden =  true
            switch result {
            case .fail:
                btn_again.setTitle("再次支付", for: .normal)
                btn_back.setTitle("返回", for: .normal)
                img_paymentState.image = UIImage(named: "icon_fail")
                label_content.text = "报名失败,这是失败原因!"
            case .success:
                btn_again.setTitle("立即预约", for: .normal)
                btn_back.setTitle("返回首页", for: .normal)
                img_paymentState.image = UIImage(named: "icon_success")
                label_content.text = "报名成功,请及时预约课程上课!"
            case .none:break
            }
        case .none:break
        }
        
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.contentInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
WanPai/Root/Other/View/CouponChooseView.swift
New file
@@ -0,0 +1,78 @@
//
//  CouponChooseView.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/12.
//
import UIKit
import JQTools
class CouponChooseView: UIView,JQNibView{
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var cons_bottom: NSLayoutConstraint!
    @IBOutlet weak var tableView: UITableView!
    override func awakeFromNib() {
        super.awakeFromNib()
        cons_bottom.constant = -(JQ_ScreenW * 1.1)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "CouponTCell", bundle: nil), forCellReuseIdentifier: "_CouponTCell")
        alpha = 0
        layoutIfNeeded()
    }
    static func show(){
        let couponView = CouponChooseView.jq_loadNibView()
        couponView.frame = screnDelegate?.window?.frame ?? .zero
        screnDelegate?.window?.addSubview(couponView)
        couponView.cons_bottom.constant = 0
        UIView.animate(withDuration: 0.4) {
            couponView.alpha = 1
            couponView.layoutIfNeeded()
        }
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20)
    }
    @IBAction func cancelAction(_ sender: UIButton) {
        self.cons_bottom.constant = -(JQ_ScreenW * 1.1)
        UIView.animate(withDuration: 0.4) {
            self.alpha = 0
        } completion: { _ in
            self.removeFromSuperview()
        }
    }
    @IBAction func completeAction(_ sender: UIButton) {
        self.cons_bottom.constant = -(JQ_ScreenW * 1.1)
        UIView.animate(withDuration: 0.4) {
            self.alpha = 0
        } completion: { _ in
            self.removeFromSuperview()
        }
    }
}
extension CouponChooseView:UITableViewDelegate{
}
extension CouponChooseView:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_CouponTCell") as! CouponTCell
        return cell
    }
}
WanPai/Root/Other/View/CouponChooseView.xib
New file
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/>
        <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="CouponChooseView" 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="aWM-tn-Qlc">
                    <rect key="frame" x="0.0" y="419.66666666666674" width="393" height="432.33333333333326"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="I8J-QH-Okd">
                            <rect key="frame" x="49" y="333.33333333333331" width="141.66666666666666" height="40"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="07s-jz-xur"/>
                            </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" name="FE6E0D"/>
                            </state>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="20"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="color" keyPath="jq_xibBorderColor">
                                    <color key="value" name="FE6E0D"/>
                                </userDefinedRuntimeAttribute>
                                <userDefinedRuntimeAttribute type="number" keyPath="jq_xibBorderWidth">
                                    <real key="value" value="1"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                            <connections>
                                <action selector="cancelAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="PrI-yH-6PL"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="26u-Yz-eXD">
                            <rect key="frame" x="210.66666666666663" y="333.33333333333331" width="141.33333333333337" height="40"/>
                            <color key="backgroundColor" name="FE6E0D"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="4Wt-yI-2u2"/>
                            </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="Yis-UJ-0Ro"/>
                            </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="Ksj-7h-JHG">
                            <rect key="frame" x="0.0" y="8" width="393" height="317.33333333333331"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        </tableView>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstAttribute="width" secondItem="aWM-tn-Qlc" secondAttribute="height" multiplier="1:1.1" id="8qc-Ct-ajD"/>
                        <constraint firstItem="26u-Yz-eXD" firstAttribute="top" secondItem="I8J-QH-Okd" secondAttribute="top" id="AUh-CI-UOg"/>
                        <constraint firstAttribute="bottomMargin" secondItem="I8J-QH-Okd" secondAttribute="bottom" constant="17" id="GAb-Wt-HWD"/>
                        <constraint firstItem="Ksj-7h-JHG" firstAttribute="leading" secondItem="aWM-tn-Qlc" secondAttribute="leading" id="HeA-hB-0Rs"/>
                        <constraint firstItem="26u-Yz-eXD" firstAttribute="width" secondItem="I8J-QH-Okd" secondAttribute="width" id="I3e-WB-QZd"/>
                        <constraint firstItem="I8J-QH-Okd" firstAttribute="top" secondItem="Ksj-7h-JHG" secondAttribute="bottom" constant="8" id="QCd-ch-Eva"/>
                        <constraint firstItem="I8J-QH-Okd" firstAttribute="leading" secondItem="aWM-tn-Qlc" secondAttribute="leadingMargin" constant="41" id="ani-ly-wgW"/>
                        <constraint firstItem="26u-Yz-eXD" firstAttribute="leading" secondItem="I8J-QH-Okd" secondAttribute="trailing" constant="20" id="fpo-wH-NAU"/>
                        <constraint firstAttribute="trailing" secondItem="26u-Yz-eXD" secondAttribute="trailing" constant="41" id="iOF-p8-w9w"/>
                        <constraint firstAttribute="trailing" secondItem="Ksj-7h-JHG" secondAttribute="trailing" id="jD8-tp-9BG"/>
                        <constraint firstItem="Ksj-7h-JHG" firstAttribute="top" secondItem="aWM-tn-Qlc" secondAttribute="top" constant="8" id="qUr-w6-up5"/>
                    </constraints>
                </view>
            </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="aWM-tn-Qlc" secondAttribute="trailing" id="Aog-ls-NWS"/>
                <constraint firstAttribute="bottom" secondItem="aWM-tn-Qlc" secondAttribute="bottom" id="wu0-fc-WSc"/>
                <constraint firstItem="aWM-tn-Qlc" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="z6M-8v-Tq6"/>
            </constraints>
            <connections>
                <outlet property="cons_bottom" destination="wu0-fc-WSc" id="P08-d4-gJ4"/>
                <outlet property="tableView" destination="Ksj-7h-JHG" id="zhI-wR-m61"/>
                <outlet property="view_container" destination="aWM-tn-Qlc" id="elG-G8-Rtf"/>
            </connections>
            <point key="canvasLocation" x="40" y="21"/>
        </view>
    </objects>
    <resources>
        <namedColor name="FE6E0D">
            <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Other/View/StudentChooseView.swift
New file
@@ -0,0 +1,90 @@
//
//  StudentChooseView.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/12.
//
import UIKit
import JQTools
import QMUIKit
class StudentChooseView: UIView,JQNibView{
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var cons_bottom: NSLayoutConstraint!
    @IBOutlet weak var btn_add: QMUIButton!
    private var clickClouse:(()->Void)!
    private var needAddClouse:(()->Void)!
    override func awakeFromNib() {
        super.awakeFromNib()
        btn_add.imagePosition = .right
        btn_add.spacingBetweenImageAndTitle = 5
        cons_bottom.constant = -(JQ_ScreenW * 1.1)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "StudentInfoTCell", bundle: nil), forCellReuseIdentifier: "_StudentInfoTCell")
        alpha = 0
        layoutIfNeeded()
    }
    static func show(clickClouse:@escaping ()->Void,needAddClouse:@escaping ()->Void){
        let studentChooseView = StudentChooseView.jq_loadNibView()
        studentChooseView.frame = screnDelegate?.window?.frame ?? .zero
        studentChooseView.clickClouse = clickClouse
        studentChooseView.needAddClouse = needAddClouse
        screnDelegate?.window?.addSubview(studentChooseView)
        studentChooseView.cons_bottom.constant = 0
        UIView.animate(withDuration: 0.4) {
            studentChooseView.alpha = 1
            studentChooseView.layoutIfNeeded()
        }
    }
    @IBAction func addNewStudentAction(_ sender: QMUIButton) {
        needAddClouse()
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        DispatchQueue.main.asyncAfter(wallDeadline: .now()+0.1) {
            self.view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20)
        }
    }
    @IBAction func completeAction(_ sender: UIButton) {
        self.cons_bottom.constant = -(JQ_ScreenW * 1.1)
        UIView.animate(withDuration: 0.4) {
            self.alpha = 0
        } completion: { _ in
            self.removeFromSuperview()
            self.clickClouse()
        }
    }
}
extension StudentChooseView:UITableViewDelegate{
}
extension StudentChooseView:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfoTCell") as! StudentInfoTCell
        return cell
    }
}
WanPai/Root/Other/View/StudentChooseView.xib
New file
@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" 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="21505"/>
        <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" insetsLayoutMarginsFromSafeArea="NO" id="iN0-l3-epB" customClass="StudentChooseView" 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="7ap-MY-Ney">
                    <rect key="frame" x="0.0" y="509" width="393" height="343"/>
                    <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="qk4-DP-KiI">
                            <rect key="frame" x="0.0" y="61" width="393" height="166"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="166" id="fgN-xg-prK"/>
                            </constraints>
                        </tableView>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yxv-pI-vBX" customClass="QMUIButton">
                            <rect key="frame" x="304" y="23" width="74" height="20"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="20" id="gav-fT-6pI"/>
                            </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="addNewStudentAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="7UN-hM-Hgh"/>
                            </connections>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="q3h-WJ-5Om">
                            <rect key="frame" x="100" y="243" width="193" height="40"/>
                            <color key="backgroundColor" name="FE6E0D"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="FW2-jP-0C2"/>
                            </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="1Oz-Tq-eFD"/>
                            </connections>
                        </button>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstAttribute="trailing" secondItem="yxv-pI-vBX" secondAttribute="trailing" constant="15" id="5X5-zz-lAO"/>
                        <constraint firstItem="qk4-DP-KiI" firstAttribute="leading" secondItem="7ap-MY-Ney" secondAttribute="leading" id="71u-e0-gHp"/>
                        <constraint firstItem="qk4-DP-KiI" firstAttribute="top" secondItem="yxv-pI-vBX" secondAttribute="bottom" constant="18" id="FvY-dc-tsl"/>
                        <constraint firstItem="q3h-WJ-5Om" firstAttribute="top" secondItem="qk4-DP-KiI" secondAttribute="bottom" constant="16" id="Mpj-WY-AmV"/>
                        <constraint firstAttribute="trailing" secondItem="q3h-WJ-5Om" secondAttribute="trailing" constant="100" id="Rkh-aY-Xql"/>
                        <constraint firstItem="q3h-WJ-5Om" firstAttribute="leading" secondItem="7ap-MY-Ney" secondAttribute="leading" constant="100" id="jx8-cU-9C3"/>
                        <constraint firstAttribute="bottomMargin" secondItem="q3h-WJ-5Om" secondAttribute="bottom" constant="18" id="lPQ-9s-M93"/>
                        <constraint firstAttribute="trailing" secondItem="qk4-DP-KiI" secondAttribute="trailing" id="txc-2I-Rlo"/>
                        <constraint firstItem="yxv-pI-vBX" firstAttribute="top" secondItem="7ap-MY-Ney" secondAttribute="top" constant="23" id="vTH-12-aze"/>
                    </constraints>
                </view>
            </subviews>
            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
            <constraints>
                <constraint firstItem="7ap-MY-Ney" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="9DX-KP-mJX"/>
                <constraint firstAttribute="trailing" secondItem="7ap-MY-Ney" secondAttribute="trailing" id="Srr-Wv-dah"/>
                <constraint firstAttribute="bottom" secondItem="7ap-MY-Ney" secondAttribute="bottom" id="kSV-Gg-P7I"/>
            </constraints>
            <connections>
                <outlet property="btn_add" destination="yxv-pI-vBX" id="5Sm-2V-OfF"/>
                <outlet property="cons_bottom" destination="kSV-Gg-P7I" id="IdC-Sg-7gc"/>
                <outlet property="tableView" destination="qk4-DP-KiI" id="YQX-20-evD"/>
                <outlet property="view_container" destination="7ap-MY-Ney" id="CmC-MB-qxC"/>
            </connections>
            <point key="canvasLocation" x="38.931297709923662" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="btn_add_1" width="16" height="16"/>
        <namedColor name="FE6E0D">
            <color red="0.99599999189376831" green="0.4309999942779541" blue="0.050999999046325684" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>