无故事王国
2023-06-28 a56ff03fc62bb894160f9b71fc54f66e77e48712
"使用福利"大部分UI
6个文件已删除
12个文件已修改
35个文件已添加
2434 ■■■■■ 已修改文件
WanPai.xcodeproj/project.pbxproj 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/Contents.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/bg_welfare_coupon@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/bg_welfare_coupon@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/未标题-1@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/未标题-1@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_sup.imageset/bg_welfare_sup@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Bg/bg_welfare_sup.imageset/bg_welfare_sup@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/icon_coupon_due@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/icon_coupon_due@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_footer.imageset/Contents.json 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Combined Shape@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Combined Shape@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Contents.json 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/icon_coupon_header@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/icon_coupon_header@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/icon_coupon_used@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/icon_coupon_used@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/icon_trigon_down@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/icon_trigon_down@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/icon_trigon_up@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/icon_trigon_up@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Base/BaseNav.swift 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/CCell/CommonSingleImgCCell.swift 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Common/CCell/CommonSingleImgCCell.xib 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/TCell/StudentRemarkTCell.swift 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/TCell/StudentRemarkTCell.xib 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseInfoVC.swift 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseInfoVC.xib 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/StudentCourseDetailVC.swift 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/ProfileVC.swift 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/ProfileVC.xib 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/CCell/RechargeItemCCell.swift 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/CCell/RechargeItemCCell.xib 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/TCell/BillInfoTCell.swift 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/TCell/BillInfoTCell.xib 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/TCell/WelfareCouponsTCell.swift 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/TCell/WelfareCouponsTCell.xib 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/RechargeCenterVC.swift 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/RechargeCenterVC.xib 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/RechargeRecordVC.swift 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/RechargeRecordVC.xib 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareBillListVC.swift 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareCouponsListVC.swift 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareCouponsSubListVC.swift 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.xib 434 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareVC.swift 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareVC.xib 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai.xcodeproj/project.pbxproj
@@ -26,6 +26,15 @@
        132876692A49A4CB00FC9122 /* StudentReportVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 132876672A49A4CB00FC9122 /* StudentReportVC.xib */; };
        133435032A40407200F23951 /* CalendarItemCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133435012A40407200F23951 /* CalendarItemCCell.swift */; };
        133435042A40407200F23951 /* CalendarItemCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 133435022A40407200F23951 /* CalendarItemCCell.xib */; };
        13489E0A2A4C41A400155744 /* ProfileVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13489E082A4C41A400155744 /* ProfileVC.swift */; };
        13489E0B2A4C41A400155744 /* ProfileVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13489E092A4C41A400155744 /* ProfileVC.xib */; };
        1355ABFA2A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1355ABF92A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift */; };
        1355ABFD2A4C15C7002B25E4 /* RechargeRecordVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1355ABFB2A4C15C7002B25E4 /* RechargeRecordVC.swift */; };
        1355ABFE2A4C15C7002B25E4 /* RechargeRecordVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1355ABFC2A4C15C7002B25E4 /* RechargeRecordVC.xib */; };
        136FD9AD2A4C2F0500933B7C /* RechargeItemCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136FD9AB2A4C2F0500933B7C /* RechargeItemCCell.swift */; };
        136FD9AE2A4C2F0500933B7C /* RechargeItemCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 136FD9AC2A4C2F0500933B7C /* RechargeItemCCell.xib */; };
        136FD9B12A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136FD9AF2A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift */; };
        136FD9B22A4C354000933B7C /* WelfareRedeemGoodsDetailVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 136FD9B02A4C354000933B7C /* WelfareRedeemGoodsDetailVC.xib */; };
        1376A6952A4A765700D4C851 /* StudentInfo_3_TCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1376A6932A4A765700D4C851 /* StudentInfo_3_TCell.swift */; };
        1376A6962A4A765700D4C851 /* StudentInfo_3_TCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1376A6942A4A765700D4C851 /* StudentInfo_3_TCell.xib */; };
        1376A6992A4A7B7B00D4C851 /* StudentCourseDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1376A6972A4A7B7A00D4C851 /* StudentCourseDetailVC.swift */; };
@@ -88,6 +97,16 @@
        13D084552A40666A005B05D5 /* CalendarPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D084542A40666A005B05D5 /* CalendarPickerView.swift */; };
        13D084572A406672005B05D5 /* CalendarPickerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D084562A406672005B05D5 /* CalendarPickerView.xib */; };
        13D084592A4071F2005B05D5 /* YardBookingListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D084582A4071F2005B05D5 /* YardBookingListVC.swift */; };
        13D606B42A4C29C2004F2A7A /* RechargeCenterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D606B22A4C29C2004F2A7A /* RechargeCenterVC.swift */; };
        13D606B52A4C29C2004F2A7A /* RechargeCenterVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D606B32A4C29C2004F2A7A /* RechargeCenterVC.xib */; };
        13D7BA8F2A4BC3E90007E4B7 /* CommonSingleImgCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7BA8D2A4BC3E90007E4B7 /* CommonSingleImgCCell.swift */; };
        13D7BA902A4BC3E90007E4B7 /* CommonSingleImgCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D7BA8E2A4BC3E90007E4B7 /* CommonSingleImgCCell.xib */; };
        13D7BA922A4BCE480007E4B7 /* WelfareBillListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7BA912A4BCE480007E4B7 /* WelfareBillListVC.swift */; };
        13D7BA952A4BD4760007E4B7 /* BillInfoTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7BA932A4BD4760007E4B7 /* BillInfoTCell.swift */; };
        13D7BA962A4BD4760007E4B7 /* BillInfoTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D7BA942A4BD4760007E4B7 /* BillInfoTCell.xib */; };
        13D7BA982A4BD9040007E4B7 /* WelfareCouponsListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7BA972A4BD9040007E4B7 /* WelfareCouponsListVC.swift */; };
        13D7BA9B2A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7BA992A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift */; };
        13D7BA9C2A4BDF0A0007E4B7 /* WelfareCouponsTCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13D7BA9A2A4BDF0A0007E4B7 /* WelfareCouponsTCell.xib */; };
        13EC6DDC2A493D23009FC09A /* WelfareCoinCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EC6DDA2A493D23009FC09A /* WelfareCoinCCell.swift */; };
        13EC6DDD2A493D23009FC09A /* WelfareCoinCCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EC6DDB2A493D23009FC09A /* WelfareCoinCCell.xib */; };
        13FBD7812A4AD62100037156 /* StudentMentalListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13FBD7802A4AD62100037156 /* StudentMentalListVC.swift */; };
@@ -204,6 +223,15 @@
        132876672A49A4CB00FC9122 /* StudentReportVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentReportVC.xib; sourceTree = "<group>"; };
        133435012A40407200F23951 /* CalendarItemCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarItemCCell.swift; sourceTree = "<group>"; };
        133435022A40407200F23951 /* CalendarItemCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CalendarItemCCell.xib; sourceTree = "<group>"; };
        13489E082A4C41A400155744 /* ProfileVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileVC.swift; sourceTree = "<group>"; };
        13489E092A4C41A400155744 /* ProfileVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ProfileVC.xib; sourceTree = "<group>"; };
        1355ABF92A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareCouponsSubListVC.swift; sourceTree = "<group>"; };
        1355ABFB2A4C15C7002B25E4 /* RechargeRecordVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RechargeRecordVC.swift; sourceTree = "<group>"; };
        1355ABFC2A4C15C7002B25E4 /* RechargeRecordVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RechargeRecordVC.xib; sourceTree = "<group>"; };
        136FD9AB2A4C2F0500933B7C /* RechargeItemCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RechargeItemCCell.swift; sourceTree = "<group>"; };
        136FD9AC2A4C2F0500933B7C /* RechargeItemCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RechargeItemCCell.xib; sourceTree = "<group>"; };
        136FD9AF2A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareRedeemGoodsDetailVC.swift; sourceTree = "<group>"; };
        136FD9B02A4C354000933B7C /* WelfareRedeemGoodsDetailVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WelfareRedeemGoodsDetailVC.xib; sourceTree = "<group>"; };
        1376A6932A4A765700D4C851 /* StudentInfo_3_TCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentInfo_3_TCell.swift; sourceTree = "<group>"; };
        1376A6942A4A765700D4C851 /* StudentInfo_3_TCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StudentInfo_3_TCell.xib; sourceTree = "<group>"; };
        1376A6972A4A7B7A00D4C851 /* StudentCourseDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentCourseDetailVC.swift; sourceTree = "<group>"; };
@@ -266,6 +294,16 @@
        13D084542A40666A005B05D5 /* CalendarPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarPickerView.swift; sourceTree = "<group>"; };
        13D084562A406672005B05D5 /* CalendarPickerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CalendarPickerView.xib; sourceTree = "<group>"; };
        13D084582A4071F2005B05D5 /* YardBookingListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YardBookingListVC.swift; sourceTree = "<group>"; };
        13D606B22A4C29C2004F2A7A /* RechargeCenterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RechargeCenterVC.swift; sourceTree = "<group>"; };
        13D606B32A4C29C2004F2A7A /* RechargeCenterVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RechargeCenterVC.xib; sourceTree = "<group>"; };
        13D7BA8D2A4BC3E90007E4B7 /* CommonSingleImgCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonSingleImgCCell.swift; sourceTree = "<group>"; };
        13D7BA8E2A4BC3E90007E4B7 /* CommonSingleImgCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CommonSingleImgCCell.xib; sourceTree = "<group>"; };
        13D7BA912A4BCE480007E4B7 /* WelfareBillListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareBillListVC.swift; sourceTree = "<group>"; };
        13D7BA932A4BD4760007E4B7 /* BillInfoTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BillInfoTCell.swift; sourceTree = "<group>"; };
        13D7BA942A4BD4760007E4B7 /* BillInfoTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BillInfoTCell.xib; sourceTree = "<group>"; };
        13D7BA972A4BD9040007E4B7 /* WelfareCouponsListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareCouponsListVC.swift; sourceTree = "<group>"; };
        13D7BA992A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareCouponsTCell.swift; sourceTree = "<group>"; };
        13D7BA9A2A4BDF0A0007E4B7 /* WelfareCouponsTCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WelfareCouponsTCell.xib; sourceTree = "<group>"; };
        13EC6DDA2A493D23009FC09A /* WelfareCoinCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelfareCoinCCell.swift; sourceTree = "<group>"; };
        13EC6DDB2A493D23009FC09A /* WelfareCoinCCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WelfareCoinCCell.xib; sourceTree = "<group>"; };
        13FBD7802A4AD62100037156 /* StudentMentalListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentMentalListVC.swift; sourceTree = "<group>"; };
@@ -468,8 +506,21 @@
            children = (
                139A39F82A413C6500737AFB /* WelfareWeeklyTCell.swift */,
                139A39F92A413C6500737AFB /* WelfareWeeklyTCell.xib */,
                13D7BA932A4BD4760007E4B7 /* BillInfoTCell.swift */,
                13D7BA942A4BD4760007E4B7 /* BillInfoTCell.xib */,
                13D7BA992A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift */,
                13D7BA9A2A4BDF0A0007E4B7 /* WelfareCouponsTCell.xib */,
            );
            path = TCell;
            sourceTree = "<group>";
        };
        13D7BA8C2A4BC3D10007E4B7 /* CCell */ = {
            isa = PBXGroup;
            children = (
                13D7BA8D2A4BC3E90007E4B7 /* CommonSingleImgCCell.swift */,
                13D7BA8E2A4BC3E90007E4B7 /* CommonSingleImgCCell.xib */,
            );
            path = CCell;
            sourceTree = "<group>";
        };
        13EC6DD92A493D11009FC09A /* CCell */ = {
@@ -477,6 +528,8 @@
            children = (
                13EC6DDA2A493D23009FC09A /* WelfareCoinCCell.swift */,
                13EC6DDB2A493D23009FC09A /* WelfareCoinCCell.xib */,
                136FD9AB2A4C2F0500933B7C /* RechargeItemCCell.swift */,
                136FD9AC2A4C2F0500933B7C /* RechargeItemCCell.xib */,
            );
            path = CCell;
            sourceTree = "<group>";
@@ -650,6 +703,8 @@
            children = (
                8D8DEDEB2A31D82100F2C7FA /* PaymentResultVC.swift */,
                8D8DEDEC2A31D82100F2C7FA /* PaymentResultVC.xib */,
                13489E082A4C41A400155744 /* ProfileVC.swift */,
                13489E092A4C41A400155744 /* ProfileVC.xib */,
            );
            path = VC;
            sourceTree = "<group>";
@@ -705,6 +760,7 @@
        8DAEB5532A30629500814766 /* Common */ = {
            isa = PBXGroup;
            children = (
                13D7BA8C2A4BC3D10007E4B7 /* CCell */,
                8D5C15102A31886D00A8BCC9 /* Layout */,
                8D5C15072A31885B00A8BCC9 /* View */,
            );
@@ -867,6 +923,15 @@
                139A39FC2A413C7900737AFB /* WelfareWeeklySubListVC.swift */,
                138667F32A428E4000484FEA /* WelfareWeeklyDetailVC.swift */,
                138667F42A428E4000484FEA /* WelfareWeeklyDetailVC.xib */,
                13D7BA912A4BCE480007E4B7 /* WelfareBillListVC.swift */,
                13D7BA972A4BD9040007E4B7 /* WelfareCouponsListVC.swift */,
                1355ABF92A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift */,
                1355ABFB2A4C15C7002B25E4 /* RechargeRecordVC.swift */,
                1355ABFC2A4C15C7002B25E4 /* RechargeRecordVC.xib */,
                13D606B22A4C29C2004F2A7A /* RechargeCenterVC.swift */,
                13D606B32A4C29C2004F2A7A /* RechargeCenterVC.xib */,
                136FD9AF2A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift */,
                136FD9B02A4C354000933B7C /* WelfareRedeemGoodsDetailVC.xib */,
            );
            path = VC;
            sourceTree = "<group>";
@@ -950,7 +1015,9 @@
            files = (
                1376A69D2A4A7C6000D4C851 /* Impact.ttf in Resources */,
                1378018F2A3B0BC500414959 /* CourseOnlineHeadView.xib in Resources */,
                13D7BA9C2A4BDF0A0007E4B7 /* WelfareCouponsTCell.xib in Resources */,
                8DFA9B8C2A317DAA00E99281 /* CourseVC.xib in Resources */,
                13489E0B2A4C41A400155744 /* ProfileVC.xib in Resources */,
                8DD239AF2A32FC5100700DEB /* CourseTCell.xib in Resources */,
                8D8400DE2A2F1432003AF6A2 /* LaunchScreen.storyboard in Resources */,
                133435042A40407200F23951 /* CalendarItemCCell.xib in Resources */,
@@ -963,7 +1030,9 @@
                8D79A5902A3957420029874B /* StudentInfo_2_TCell.xib in Resources */,
                131732BB2A405EF800F722AF /* CalendarDateTimeTCell.xib in Resources */,
                8D5732BE2A3724A900B2F8E3 /* AddStudentVC.xib in Resources */,
                136FD9B22A4C354000933B7C /* WelfareRedeemGoodsDetailVC.xib in Resources */,
                13272DCD2A40076900AC6481 /* YardBookingTimeView.xib in Resources */,
                136FD9AE2A4C2F0500933B7C /* RechargeItemCCell.xib in Resources */,
                8D2BCD3F2A3847F600A360C6 /* ActivityDetailApplyVC.xib in Resources */,
                8D79A59B2A3967A90029874B /* StudentUpdateInfoView.xib in Resources */,
                1387B6722A4AC9C000BF2F2E /* CourseBookingTCell.xib in Resources */,
@@ -995,6 +1064,7 @@
                8D4905AE2A31AE7100E38513 /* JoinMemberIntroduceVC.xib in Resources */,
                13EC6DDD2A493D23009FC09A /* WelfareCoinCCell.xib in Resources */,
                8DF184452A332CCD0095687B /* StudentInfoTCell.xib in Resources */,
                13D7BA962A4BD4760007E4B7 /* BillInfoTCell.xib in Resources */,
                132876632A49A18700FC9122 /* StudentExchangeVC.xib in Resources */,
                132876692A49A4CB00FC9122 /* StudentReportVC.xib in Resources */,
                138D4D002A47EF4C005233E7 /* CourseDatetimeCCell.xib in Resources */,
@@ -1008,7 +1078,9 @@
                8D5B80B72A31C4C700B86520 /* PaymentView.xib in Resources */,
                139A39F42A41388200737AFB /* WelfareFreeVC.xib in Resources */,
                8D8400EA2A2F14A3003AF6A2 /* LoginVC.xib in Resources */,
                1355ABFE2A4C15C7002B25E4 /* RechargeRecordVC.xib in Resources */,
                8D7D87182A380970003209D6 /* ActivityInfoTCell.xib in Resources */,
                13D7BA902A4BC3E90007E4B7 /* CommonSingleImgCCell.xib in Resources */,
                130CE4582A4925AB00394384 /* StudentVideoCCell.xib in Resources */,
                8D6E54D22A381CB000D750CE /* ActivityDetailVC.xib in Resources */,
                13272DD12A4034A300AC6481 /* YardDetailVC.xib in Resources */,
@@ -1021,6 +1093,7 @@
                8D4905AA2A31A6EC00E38513 /* HomeCCell.xib in Resources */,
                8D8400D92A2F1430003AF6A2 /* Main.storyboard in Resources */,
                1387B66E2A4AC62500BF2F2E /* CourseBookingFuncView.xib in Resources */,
                13D606B52A4C29C2004F2A7A /* RechargeCenterVC.xib in Resources */,
                8D44E4F82A331DF800E7010E /* CourseDetailApplyVC.xib in Resources */,
                8D79A5942A395BF40029874B /* ActivityStudentListVC.xib in Resources */,
                137801942A3B0D3C00414959 /* CourseOnlineCCell.xib in Resources */,
@@ -1077,9 +1150,11 @@
            buildActionMask = 2147483647;
            files = (
                13AFABC42A4AE492001FEA16 /* StudentRemarkTCell.swift in Sources */,
                13D7BA9B2A4BDF0A0007E4B7 /* WelfareCouponsTCell.swift in Sources */,
                8D4905AD2A31AE7100E38513 /* JoinMemberIntroduceVC.swift in Sources */,
                8DC3BE112A3803B500C91B7F /* ActivityListVC.swift in Sources */,
                1378018A2A3B08A600414959 /* CourseOnlineListVC.swift in Sources */,
                13D7BA8F2A4BC3E90007E4B7 /* CommonSingleImgCCell.swift in Sources */,
                131732B72A405DED00F722AF /* YardDetailDateTimeVC.swift in Sources */,
                13D084552A40666A005B05D5 /* CalendarPickerView.swift in Sources */,
                8DF184442A332CCD0095687B /* StudentInfoTCell.swift in Sources */,
@@ -1090,6 +1165,7 @@
                137801962A3B188900414959 /* CourseOnlineSearchView.swift in Sources */,
                13272DCB2A40076300AC6481 /* YardBookingTimeView.swift in Sources */,
                1376A6952A4A765700D4C851 /* StudentInfo_3_TCell.swift in Sources */,
                1355ABFA2A4BE9FF002B25E4 /* WelfareCouponsSubListVC.swift in Sources */,
                8DFA9B762A316E9A00E99281 /* LoginRegOrForgotVC.swift in Sources */,
                132876622A49A18700FC9122 /* StudentExchangeVC.swift in Sources */,
                8D6810EA2A3710CE004486DE /* StudentChooseView.swift in Sources */,
@@ -1121,16 +1197,20 @@
                1387B66C2A4AC61F00BF2F2E /* CourseBookingFuncView.swift in Sources */,
                8D8400D22A2F1430003AF6A2 /* AppDelegate.swift in Sources */,
                8D8DEDF22A31DDC500F2C7FA /* CouponCCell.swift in Sources */,
                13489E0A2A4C41A400155744 /* ProfileVC.swift in Sources */,
                8D7D87172A380970003209D6 /* ActivityInfoTCell.swift in Sources */,
                8D5C150E2A31885B00A8BCC9 /* CommonAlertView.swift in Sources */,
                139A39F62A4139E000737AFB /* WelfareWeeklyListVC.swift in Sources */,
                133435032A40407200F23951 /* CalendarItemCCell.swift in Sources */,
                8D7017892A3308DC00473C40 /* Common_1_TCell.swift in Sources */,
                13D7BA922A4BCE480007E4B7 /* WelfareBillListVC.swift in Sources */,
                1376A6A12A4A7E1E00D4C851 /* CourseChargeTCell.swift in Sources */,
                13AFABC12A4AE3DC001FEA16 /* StudentRemarkListVC.swift in Sources */,
                8D6D58D12A39906F0003CFE6 /* ActivitySignupListSubVC.swift in Sources */,
                8D70178D2A330E5700473C40 /* CourseDetailVC.swift in Sources */,
                1355ABFD2A4C15C7002B25E4 /* RechargeRecordVC.swift in Sources */,
                139A39F02A41374100737AFB /* YardBookingSubListVC.swift in Sources */,
                136FD9B12A4C354000933B7C /* WelfareRedeemGoodsDetailVC.swift in Sources */,
                8D5732BD2A3724A900B2F8E3 /* AddStudentVC.swift in Sources */,
                8D5C150F2A31885B00A8BCC9 /* AgreentView.swift in Sources */,
                1387B6692A4AC0B300BF2F2E /* CourseBookingSubListVC.swift in Sources */,
@@ -1147,10 +1227,12 @@
                8DCF25BA2A38136D00DC6899 /* CityChooseSubTypeView.swift in Sources */,
                8D2BCD3E2A3847F600A360C6 /* ActivityDetailApplyVC.swift in Sources */,
                8DFA9B852A3172BE00E99281 /* HomeVC.swift in Sources */,
                13D7BA982A4BD9040007E4B7 /* WelfareCouponsListVC.swift in Sources */,
                138667F52A428E4000484FEA /* WelfareWeeklyDetailVC.swift in Sources */,
                8DFA9B912A317DE900E99281 /* WelfareVC.swift in Sources */,
                8D6D58D32A39970C0003CFE6 /* StoresInfoView.swift in Sources */,
                139A39FD2A413C7900737AFB /* WelfareWeeklySubListVC.swift in Sources */,
                13D7BA952A4BD4760007E4B7 /* BillInfoTCell.swift in Sources */,
                130CE4532A4823AC00394384 /* StudentMedalCCell.swift in Sources */,
                1378018D2A3B0BBD00414959 /* CourseOnlineHeadView.swift in Sources */,
                1393B3922A4ACDB200B73072 /* CourseExerciseSubListVC.swift in Sources */,
@@ -1158,12 +1240,14 @@
                131732BA2A405EF800F722AF /* CalendarDateTimeTCell.swift in Sources */,
                8D6C50232A372B21007EC2D9 /* IDCardView.swift in Sources */,
                137801932A3B0D3C00414959 /* CourseOnlineCCell.swift in Sources */,
                136FD9AD2A4C2F0500933B7C /* RechargeItemCCell.swift in Sources */,
                8D630BFB2A3180B000F0B7A8 /* BaseTabBarVC.swift in Sources */,
                137801862A3B01FA00414959 /* ActivitySignupDetailVC.swift in Sources */,
                137801A32A3C644200414959 /* CourseVideoDetailVC.swift in Sources */,
                13EC6DDC2A493D23009FC09A /* WelfareCoinCCell.swift in Sources */,
                138D8B932A4000D2009DCA9E /* YardTCell.swift in Sources */,
                1378019B2A3BF5C000414959 /* CourseOnlineSubListVC.swift in Sources */,
                13D606B42A4C29C2004F2A7A /* RechargeCenterVC.swift in Sources */,
                8DAEB5502A305AEF00814766 /* Def.swift in Sources */,
                8D8400D42A2F1430003AF6A2 /* SceneDelegate.swift in Sources */,
                138D4CFF2A47EF4C005233E7 /* CourseDatetimeCCell.swift in Sources */,
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/Contents.json
@@ -5,12 +5,12 @@
      "scale" : "1x"
    },
    {
      "filename" : "bg_welfare_coupon@2x.png",
      "filename" : "未标题-1@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "bg_welfare_coupon@3x.png",
      "filename" : "未标题-1@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/bg_welfare_coupon@2x.png
Binary files differ
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/bg_welfare_coupon@3x.png
Binary files differ
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/未标题-1@2x.png
WanPai/Assets.xcassets/Bg/bg_welfare_coupon.imageset/未标题-1@3x.png
WanPai/Assets.xcassets/Bg/bg_welfare_sup.imageset/bg_welfare_sup@2x.png
Binary files differ
WanPai/Assets.xcassets/Bg/bg_welfare_sup.imageset/bg_welfare_sup@3x.png
Binary files differ
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_coupon_due@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_coupon_due@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/icon_coupon_due@2x.png
WanPai/Assets.xcassets/Icons/icon_coupon_due.imageset/icon_coupon_due@3x.png
WanPai/Assets.xcassets/Icons/icon_coupon_footer.imageset/Contents.json
@@ -7,11 +7,39 @@
    {
      "filename" : "icon_coupon_footer@2x.png",
      "idiom" : "universal",
      "resizing" : {
        "cap-insets" : {
          "bottom" : 48,
          "left" : 20,
          "right" : 18,
          "top" : 37
        },
        "center" : {
          "height" : 1,
          "mode" : "tile",
          "width" : 1
        },
        "mode" : "9-part"
      },
      "scale" : "2x"
    },
    {
      "filename" : "icon_coupon_footer@3x.png",
      "idiom" : "universal",
      "resizing" : {
        "cap-insets" : {
          "bottom" : 79,
          "left" : 30,
          "right" : 27,
          "top" : 60
        },
        "center" : {
          "height" : 1,
          "mode" : "tile",
          "width" : 1
        },
        "mode" : "9-part"
      },
      "scale" : "3x"
    }
  ],
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Combined Shape@2x.png
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Combined Shape@3x.png
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/Contents.json
@@ -5,13 +5,41 @@
      "scale" : "1x"
    },
    {
      "filename" : "icon_coupon_header@2x.png",
      "filename" : "Combined Shape@2x.png",
      "idiom" : "universal",
      "resizing" : {
        "cap-insets" : {
          "bottom" : 40,
          "left" : 20,
          "right" : 20,
          "top" : 35
        },
        "center" : {
          "height" : 1,
          "mode" : "tile",
          "width" : 1
        },
        "mode" : "9-part"
      },
      "scale" : "2x"
    },
    {
      "filename" : "icon_coupon_header@3x.png",
      "filename" : "Combined Shape@3x.png",
      "idiom" : "universal",
      "resizing" : {
        "cap-insets" : {
          "bottom" : 61,
          "left" : 30,
          "right" : 30,
          "top" : 54
        },
        "center" : {
          "height" : 1,
          "mode" : "tile",
          "width" : 1
        },
        "mode" : "9-part"
      },
      "scale" : "3x"
    }
  ],
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/icon_coupon_header@2x.png
Binary files differ
WanPai/Assets.xcassets/Icons/icon_coupon_header.imageset/icon_coupon_header@3x.png
Binary files differ
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_coupon_used@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_coupon_used@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/icon_coupon_used@2x.png
WanPai/Assets.xcassets/Icons/icon_coupon_used.imageset/icon_coupon_used@3x.png
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_trigon_down@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_trigon_down@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/icon_trigon_down@2x.png
WanPai/Assets.xcassets/Icons/icon_trigon_down.imageset/icon_trigon_down@3x.png
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_trigon_up@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_trigon_up@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/icon_trigon_up@2x.png
WanPai/Assets.xcassets/Icons/icon_trigon_up.imageset/icon_trigon_up@3x.png
WanPai/Base/BaseNav.swift
@@ -11,6 +11,10 @@
class BaseNav: UINavigationController,UINavigationControllerDelegate {
    
    private var popDelegate: UIGestureRecognizerDelegate?
        /// 需要透明Nav的VC
    private var lucencyVCs = [RechargeRecordVC.self,RechargeCenterVC.self]
    
    private let img = UIImage.jq_gradient([UIColor(hexStr: "#FD8C02"),UIColor(hexStr: "#FD7202")], size: CGSize(width: JQ_ScreenW, height: JQ_NavBarHeight), radius: 0, locations: [0,1], direction: .vertical)
    
@@ -54,7 +58,10 @@
    }
    
    open func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
        if navigationController.viewControllers.count == 1{
        let status = lucencyVCs.contains(where: {$0 == viewController.classForCoder})
        if navigationController.viewControllers.count == 1 || status{
            navigationBar.standardAppearance.backgroundImage = nil
            navigationBar.scrollEdgeAppearance?.backgroundImage = nil
        }else{
WanPai/Common/CCell/CommonSingleImgCCell.swift
New file
@@ -0,0 +1,18 @@
//
//  CommonSingleImgCCell.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
class CommonSingleImgCCell: UICollectionViewCell {
    @IBOutlet weak var img: UIImageView!
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}
WanPai/Common/CCell/CommonSingleImgCCell.xib
New file
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="CommonSingleImgCCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="320" height="150"/>
            <autoresizingMask key="autoresizingMask"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="320" height="150"/>
                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                <subviews>
                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="gCZ-Wl-L6T">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="150"/>
                    </imageView>
                </subviews>
            </view>
            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
            <constraints>
                <constraint firstItem="gCZ-Wl-L6T" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="BMG-Ya-wwe"/>
                <constraint firstAttribute="bottom" secondItem="gCZ-Wl-L6T" secondAttribute="bottom" id="Nxa-Ww-7gb"/>
                <constraint firstItem="gCZ-Wl-L6T" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="ctb-wC-mDo"/>
                <constraint firstAttribute="trailing" secondItem="gCZ-Wl-L6T" secondAttribute="trailing" id="uzA-10-Q2K"/>
            </constraints>
            <size key="customSize" width="320" height="150"/>
            <connections>
                <outlet property="img" destination="gCZ-Wl-L6T" id="5v9-KQ-Yit"/>
            </connections>
            <point key="canvasLocation" x="268.70229007633588" y="55.633802816901408"/>
        </collectionViewCell>
    </objects>
</document>
WanPai/Root/Course/TCell/StudentRemarkTCell.swift
@@ -6,11 +6,52 @@
//
import UIKit
import JQTools
class StudentRemarkTCell: UITableViewCell {
    private let cellW:Double = (JQ_ScreenW - 48.0) / 3.0
    @IBOutlet weak var collectionView: UICollectionView!
    @IBOutlet weak var cons_imgHei: NSLayoutConstraint!
    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = .none
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.isScrollEnabled = false
        collectionView.register(UINib(nibName: "CommonSingleImgCCell", bundle: nil), forCellWithReuseIdentifier: "_CommonSingleImgCCell")
        cons_imgHei.constant = ceil(9 / 3) * cellW + floor(9 / 3) * 9
    }
}
extension StudentRemarkTCell:UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_CommonSingleImgCCell", for: indexPath) as! CommonSingleImgCCell
        cell.img.backgroundColor = .gray.withAlphaComponent(0.1)
        return cell
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 9
    }
}
extension StudentRemarkTCell:UICollectionViewDelegate{
}
extension StudentRemarkTCell:UICollectionViewDelegateFlowLayout{
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: cellW, height: cellW)
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 9
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 9
    }
}
WanPai/Root/Course/TCell/StudentRemarkTCell.xib
@@ -48,13 +48,13 @@
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O3C-wY-L24">
                        <rect key="frame" x="14" y="88" width="519" height="89.333333333333314"/>
                        <rect key="frame" x="14" y="88" width="519" height="99.333333333333314"/>
                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
                        <nil key="textColor"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="FUt-hS-RCI">
                        <rect key="frame" x="14" y="186.33333333333334" width="519" height="110.00000000000003"/>
                        <rect key="frame" x="14" y="196.33333333333334" width="519" height="110.00000000000003"/>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="110" id="srQ-wE-MVo"/>
@@ -83,7 +83,7 @@
                    <constraint firstAttribute="trailing" secondItem="FUt-hS-RCI" secondAttribute="trailing" constant="14" id="VwO-8t-bCd"/>
                    <constraint firstItem="kdZ-BD-JCJ" firstAttribute="top" secondItem="tlQ-xi-7GI" secondAttribute="top" constant="7" id="XUD-Y3-2Ip"/>
                    <constraint firstAttribute="trailing" secondItem="3lz-fy-AFT" secondAttribute="trailing" constant="14" id="YDD-0W-Mjx"/>
                    <constraint firstItem="3lz-fy-AFT" firstAttribute="top" secondItem="FUt-hS-RCI" secondAttribute="bottom" constant="17" id="bU5-rC-0dc"/>
                    <constraint firstItem="3lz-fy-AFT" firstAttribute="top" secondItem="FUt-hS-RCI" secondAttribute="bottom" constant="7" id="bU5-rC-0dc"/>
                    <constraint firstItem="tlQ-xi-7GI" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="fVa-VF-cFk"/>
                    <constraint firstItem="kdZ-BD-JCJ" firstAttribute="leading" secondItem="tlQ-xi-7GI" secondAttribute="trailing" constant="10" id="g1R-b3-h48"/>
                    <constraint firstAttribute="trailing" secondItem="O3C-wY-L24" secondAttribute="trailing" constant="14" id="kCD-tp-cY7"/>
@@ -94,6 +94,10 @@
                </constraints>
            </tableViewCellContentView>
            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
            <connections>
                <outlet property="collectionView" destination="FUt-hS-RCI" id="WNg-rS-H71"/>
                <outlet property="cons_imgHei" destination="srQ-wE-MVo" id="s4Q-TL-9og"/>
            </connections>
            <point key="canvasLocation" x="235.87786259541983" y="115.49295774647888"/>
        </tableViewCell>
    </objects>
WanPai/Root/Course/VC/CourseInfoVC.swift
@@ -128,6 +128,7 @@
        mentalCollectionView.dataSource = self
        mentalCollectionView.contentInset = UIEdgeInsets(top: 0, left: 58, bottom: 0, right: 58)
        mentalCollectionView.tag = 1000
        mentalCollectionView.isScrollEnabled = false
        mentalCollectionView.register(UINib(nibName: "StudentMedalCCell", bundle: nil), forCellWithReuseIdentifier: "_StudentMedalCCell")
        exerciseCollectionView.delegate = self
@@ -143,7 +144,7 @@
        mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_5"), t1: "EVENTS", t2: "月度冠军"))
        mentals.append(MentalInfo(img: UIImage(named: "icon_coupon_6"), t1: "MORE", t2: "更多"))
        cons_mentalViewHei.constant = ceil(Double(mentals.count) / 2) * 91
        cons_mentalViewHei.constant = ceil(Double(mentals.count) / 3) * 91 + floor(Double(mentals.count) / 3) * 30
        navigationItem.leftBarButtonItem = UIBarButtonItem(customView: leftBtn)
WanPai/Root/Course/VC/CourseInfoVC.xib
@@ -49,7 +49,7 @@
                    </constraints>
                </view>
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fJF-28-SsM" customClass="CourseInfoScrollView" customModule="WanPai" customModuleProvider="target">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
                    <rect key="frame" x="0.0" y="0.0" width="393" height="818"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="placeholder_1" translatesAutoresizingMaskIntoConstraints="NO" id="r6S-MR-7fc">
                            <rect key="frame" x="145.66666666666666" y="-51" width="102" height="102"/>
@@ -77,7 +77,7 @@
                            </userDefinedRuntimeAttributes>
                        </imageView>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dM8-7c-aXP">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1161.3333333333333"/>
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1141.3333333333333"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学员名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="egC-eg-thJ">
                                    <rect key="frame" x="27" y="37" width="64.333333333333329" height="29"/>
@@ -441,7 +441,7 @@
                                    </collectionViewFlowLayout>
                                </collectionView>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Okg-Yc-buM">
                                    <rect key="frame" x="100" y="819.33333333333337" width="193" height="40"/>
                                    <rect key="frame" x="100" y="799.33333333333337" width="193" height="40"/>
                                    <color key="backgroundColor" name="FE6E0D"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="40" id="rQm-Bd-Kpj"/>
@@ -523,14 +523,14 @@
                                    </userDefinedRuntimeAttributes>
                                </tableView>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tc8-tf-Jm4">
                                    <rect key="frame" x="19" y="896.33333333333337" width="355" height="1"/>
                                    <rect key="frame" x="19" y="876.33333333333337" width="355" height="1"/>
                                    <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.25" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="1" id="zCQ-gS-bAL"/>
                                    </constraints>
                                </view>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="wNl-09-jiS">
                                    <rect key="frame" x="22" y="897.33333333333348" width="349" height="264"/>
                                    <rect key="frame" x="22" y="877.33333333333337" width="349" height="264.00000000000011"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KR4-hI-8vp">
                                            <rect key="frame" x="0.0" y="0.0" width="349" height="53"/>
@@ -649,7 +649,7 @@
                                <constraint firstItem="Ojc-7l-9aZ" firstAttribute="leading" secondItem="dM8-7c-aXP" secondAttribute="leading" constant="19" id="iwm-mn-Q3j"/>
                                <constraint firstItem="clG-di-bFf" firstAttribute="leading" secondItem="s1y-gM-ejj" secondAttribute="trailing" constant="8" id="jD4-u8-AbG"/>
                                <constraint firstAttribute="trailing" secondItem="b9G-TL-PI1" secondAttribute="trailing" id="kUc-2f-uS8"/>
                                <constraint firstItem="Okg-Yc-buM" firstAttribute="top" secondItem="b9G-TL-PI1" secondAttribute="bottom" constant="37" id="lV4-8e-Z9f"/>
                                <constraint firstItem="Okg-Yc-buM" firstAttribute="top" secondItem="b9G-TL-PI1" secondAttribute="bottom" constant="17" id="lV4-8e-Z9f"/>
                                <constraint firstAttribute="bottom" secondItem="wNl-09-jiS" secondAttribute="bottom" id="ld4-jQ-Q11"/>
                                <constraint firstItem="2CP-x2-Qn7" firstAttribute="centerY" secondItem="s1y-gM-ejj" secondAttribute="centerY" id="mwb-cW-nv3"/>
                                <constraint firstItem="N78-t5-4OO" firstAttribute="centerX" secondItem="dM8-7c-aXP" secondAttribute="centerX" id="psh-NY-wpI"/>
@@ -686,7 +686,7 @@
            <constraints>
                <constraint firstItem="k4g-ye-Foy" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="8Hh-uE-kE0"/>
                <constraint firstAttribute="trailing" secondItem="k4g-ye-Foy" secondAttribute="trailing" id="FT3-Sh-CcL"/>
                <constraint firstAttribute="bottom" secondItem="fJF-28-SsM" secondAttribute="bottom" id="G7z-kv-QFI"/>
                <constraint firstAttribute="bottomMargin" secondItem="fJF-28-SsM" secondAttribute="bottom" id="Le4-vl-STS"/>
                <constraint firstItem="fJF-28-SsM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="MXo-KH-2q0"/>
                <constraint firstItem="k4g-ye-Foy" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fEO-CF-1my"/>
                <constraint firstAttribute="trailing" secondItem="fJF-28-SsM" secondAttribute="trailing" id="kTB-hp-bZH"/>
WanPai/Root/Course/VC/StudentCourseDetailVC.swift
@@ -105,13 +105,8 @@
        backgroundColor = .white
        addSubview(btn_datetime)
        btn_datetime.snp.makeConstraints { make in
            make.left.equalTo(14)
            make.height.equalTo(22)
            make.bottom.equalTo(-16)
        }
        addSubview(btn_filter)
        btn_filter.snp.makeConstraints { make in
            make.right.equalTo(-14)
            make.height.equalTo(38)
@@ -119,6 +114,12 @@
            make.bottom.equalTo(-16)
        }
        btn_datetime.snp.makeConstraints { make in
            make.left.equalTo(14)
            make.height.equalTo(22)
            make.centerY.equalTo(btn_filter)
        }
        btn_filter.addTarget(self, action: #selector(fliterAction), for: .touchUpInside)
        btn_datetime.addTarget(self, action: #selector(datetimePickerAction), for: .touchUpInside)
    }
WanPai/Root/Other/VC/ProfileVC.swift
New file
@@ -0,0 +1,18 @@
//
//  ProfileVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
class ProfileVC: BaseVC {
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "个人信息"
    }
}
WanPai/Root/Other/VC/ProfileVC.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="ProfileVC" 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/Welfare/CCell/RechargeItemCCell.swift
New file
@@ -0,0 +1,40 @@
//
//  RechargeItemCCell.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import JQTools
class RechargeItemCCell: UICollectionViewCell {
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var label_coin: UILabel!
    @IBOutlet weak var label_moeny: UILabel!
    override func awakeFromNib() {
        super.awakeFromNib()
        view_container.jq_borderWidth = 1
        view_container.jq_cornerRadius = 4
    }
    override var isSelected: Bool{
        didSet{
            if isSelected{
                view_container.backgroundColor = Def_ThemeColor.withAlphaComponent(0.12)
                view_container.jq_borderColor = Def_ThemeColor
                label_coin.textColor = Def_ThemeColor
                label_moeny.textColor = Def_ThemeColor
            }else{
                view_container.backgroundColor = UIColor(hexStr: "#A6A6A6").withAlphaComponent(0.12)
                view_container.jq_borderColor = UIColor(hexStr: "#7B7B7B")
                label_coin.textColor = UIColor(hexStr: "#7B7B7B")
                label_moeny.textColor = UIColor(hexStr: "#7B7B7B")
            }
        }
    }
}
WanPai/Root/Welfare/CCell/RechargeItemCCell.xib
New file
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="gTV-IL-0wX" customClass="RechargeItemCCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="129" height="82"/>
            <autoresizingMask key="autoresizingMask"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="129" height="82"/>
                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yU4-S2-ZAV">
                        <rect key="frame" x="0.0" y="0.0" width="129" height="82"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nxm-Kt-pDI">
                                <rect key="frame" x="51.333333333333336" y="5" width="26.666666666666664" height="22"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="22" id="Wzm-XT-O1C"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="711-k3-ZXI">
                                <rect key="frame" x="56.666666666666664" y="30" width="15.666666666666664" height="17"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="17" id="WAA-Q5-C7M"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="Nxm-Kt-pDI" firstAttribute="centerX" secondItem="yU4-S2-ZAV" secondAttribute="centerX" id="2xo-Wt-NIa"/>
                            <constraint firstItem="711-k3-ZXI" firstAttribute="centerX" secondItem="Nxm-Kt-pDI" secondAttribute="centerX" id="Tq5-KJ-H4V"/>
                            <constraint firstItem="711-k3-ZXI" firstAttribute="top" secondItem="Nxm-Kt-pDI" secondAttribute="bottom" constant="3" id="WDB-sM-r0d"/>
                            <constraint firstItem="Nxm-Kt-pDI" firstAttribute="top" secondItem="yU4-S2-ZAV" secondAttribute="top" constant="5" id="myr-tk-rEZ"/>
                        </constraints>
                    </view>
                </subviews>
            </view>
            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
            <constraints>
                <constraint firstItem="yU4-S2-ZAV" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="A08-nR-8Ky"/>
                <constraint firstAttribute="trailing" secondItem="yU4-S2-ZAV" secondAttribute="trailing" id="F5P-Do-4B3"/>
                <constraint firstAttribute="bottom" secondItem="yU4-S2-ZAV" secondAttribute="bottom" id="cEi-EQ-HzQ"/>
                <constraint firstItem="yU4-S2-ZAV" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="gSk-6j-36i"/>
            </constraints>
            <size key="customSize" width="129" height="82"/>
            <connections>
                <outlet property="label_coin" destination="Nxm-Kt-pDI" id="tgc-0S-ecz"/>
                <outlet property="label_moeny" destination="711-k3-ZXI" id="r16-W2-ftX"/>
                <outlet property="view_container" destination="yU4-S2-ZAV" id="Vwb-pR-6oz"/>
            </connections>
            <point key="canvasLocation" x="122.90076335877862" y="31.690140845070424"/>
        </collectionViewCell>
    </objects>
    <resources>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Welfare/TCell/BillInfoTCell.swift
New file
@@ -0,0 +1,16 @@
//
//  BillInfoTCell.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
class BillInfoTCell: UITableViewCell {
    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = .none
    }
}
WanPai/Root/Welfare/TCell/BillInfoTCell.xib
New file
@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_BillInfoTCell" rowHeight="79" id="KGk-i7-Jjw" customClass="BillInfoTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="427" height="79"/>
            <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="427" height="79"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zkg-Wm-X00">
                        <rect key="frame" x="14" y="13" width="32.333333333333336" height="17"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="17" id="rfJ-uE-jBi"/>
                        </constraints>
                        <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
                        <nil key="textColor"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00-00 00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E35-Uh-3aK">
                        <rect key="frame" x="14" y="36" width="73.333333333333329" height="27.666666666666671"/>
                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wNn-VN-t4h">
                        <rect key="frame" x="404" y="31" width="8" height="17"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="17" id="KVU-Xe-eio"/>
                        </constraints>
                        <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
                        <color key="textColor" red="0.16470588235294117" green="0.65098039215686276" blue="0.043137254901960784" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <nil key="highlightedColor"/>
                    </label>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ia0-q3-9HR">
                        <rect key="frame" x="14" y="78.666666666666671" width="399" height="0.3333333333333286"/>
                        <color key="backgroundColor" red="0.85882352941176465" green="0.85882352941176465" blue="0.90588235294117647" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstAttribute="height" constant="0.5" id="urQ-KK-8fz"/>
                        </constraints>
                    </view>
                </subviews>
                <constraints>
                    <constraint firstItem="wNn-VN-t4h" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Buo-ZI-JLL"/>
                    <constraint firstItem="ia0-q3-9HR" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="DB1-Dt-uHq"/>
                    <constraint firstItem="E35-Uh-3aK" firstAttribute="top" secondItem="Zkg-Wm-X00" secondAttribute="bottom" constant="6" id="N8d-af-xbK"/>
                    <constraint firstAttribute="bottom" secondItem="ia0-q3-9HR" secondAttribute="bottom" id="b7D-IT-ywM"/>
                    <constraint firstItem="ia0-q3-9HR" firstAttribute="top" secondItem="E35-Uh-3aK" secondAttribute="bottom" constant="15" id="fhb-3m-205"/>
                    <constraint firstItem="E35-Uh-3aK" firstAttribute="leading" secondItem="Zkg-Wm-X00" secondAttribute="leading" id="hJK-8k-MvJ"/>
                    <constraint firstItem="Zkg-Wm-X00" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="13" id="lwi-3W-AMs"/>
                    <constraint firstAttribute="trailing" secondItem="ia0-q3-9HR" secondAttribute="trailing" constant="14" id="mt8-9d-Br5"/>
                    <constraint firstAttribute="trailing" secondItem="wNn-VN-t4h" secondAttribute="trailing" constant="15" id="orU-hy-1Qi"/>
                    <constraint firstItem="Zkg-Wm-X00" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="wZb-vH-CO6"/>
                </constraints>
            </tableViewCellContentView>
            <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
            <point key="canvasLocation" x="144.27480916030532" y="32.74647887323944"/>
        </tableViewCell>
    </objects>
</document>
WanPai/Root/Welfare/TCell/WelfareCouponsTCell.swift
New file
@@ -0,0 +1,44 @@
//
//  WelfareCouponsTCell.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import QMUIKit
import JQTools
class WelfareCouponsTCell: UITableViewCell {
    @IBOutlet weak var btn_info: QMUIButton!
    @IBOutlet weak var view_line: UIView!
    @IBOutlet weak var label_info: UILabel!
    @IBOutlet weak var cons_labelHei: NSLayoutConstraint!
    var indexPath:IndexPath!
    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = .none
        btn_info.imagePosition = .right
        btn_info.spacingBetweenImageAndTitle = 3
        view_line.isHidden = true
        label_info.isHidden = true
    }
    @IBAction func infoTapAction(_ sender: QMUIButton) {
        sender.isSelected = !sender.isSelected
        view_line.isHidden = !sender.isSelected
        label_info.isHidden = !sender.isSelected
        if !sender.isSelected{
            cons_labelHei.constant = String.jq_getHeight(text: label_info.text!, width: JQ_ScreenW - 153, font: 12)
        }else{
            cons_labelHei.constant = 17
        }
        NotificationCenter.default.post(name: WelfareCoupons_Noti, object: indexPath.row as Int)
    }
    @IBAction func showDetailAction(_ sender: UIButton) {
        AgreentView.show(type: .privacy)
    }
}
WanPai/Root/Welfare/TCell/WelfareCouponsTCell.xib
New file
@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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="_WelfareCouponsTCell" rowHeight="212" id="KGk-i7-Jjw" customClass="WelfareCouponsTCell" customModule="WanPai" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="409" height="212"/>
            <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="409" height="212"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleAspectFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZhQ-JM-XIl">
                        <rect key="frame" x="14" y="7.6666666666666714" width="100" height="135.66666666666663"/>
                        <subviews>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_header" translatesAutoresizingMaskIntoConstraints="NO" id="wLK-TU-eK6">
                                <rect key="frame" x="0.0" y="0.0" width="100" height="135.66666666666666"/>
                            </imageView>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="m8J-DK-my1">
                                <rect key="frame" x="5" y="37.333333333333343" width="90" height="61"/>
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="¥ 0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="efu-ap-jzG">
                                        <rect key="frame" x="0.0" y="0.0" width="90" height="28"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="28" id="V4k-aB-f7A"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="system" weight="semibold" 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="满0可用" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Swu-3s-t08">
                                        <rect key="frame" x="0.0" y="43.999999999999993" width="90" height="17"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="17" id="bJ6-wC-a6S"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                </subviews>
                            </stackView>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="m8J-DK-my1" firstAttribute="leading" secondItem="ZhQ-JM-XIl" secondAttribute="leading" constant="5" id="AZR-EN-EtN"/>
                            <constraint firstItem="m8J-DK-my1" firstAttribute="centerY" secondItem="wLK-TU-eK6" secondAttribute="centerY" id="JKh-d8-br0"/>
                            <constraint firstItem="m8J-DK-my1" firstAttribute="centerX" secondItem="wLK-TU-eK6" secondAttribute="centerX" id="M3w-wV-qzs"/>
                            <constraint firstItem="wLK-TU-eK6" firstAttribute="leading" secondItem="ZhQ-JM-XIl" secondAttribute="leading" id="SGF-Ei-e33"/>
                            <constraint firstAttribute="trailing" secondItem="m8J-DK-my1" secondAttribute="trailing" constant="5" id="bic-HE-13P"/>
                            <constraint firstAttribute="width" constant="100" id="h2z-hz-to7"/>
                            <constraint firstAttribute="bottom" secondItem="wLK-TU-eK6" secondAttribute="bottom" id="o3o-Sv-mbT"/>
                            <constraint firstItem="wLK-TU-eK6" firstAttribute="top" secondItem="ZhQ-JM-XIl" secondAttribute="top" id="wii-pz-Jme"/>
                            <constraint firstAttribute="trailing" secondItem="wLK-TU-eK6" secondAttribute="trailing" id="zI9-80-5hd"/>
                        </constraints>
                    </view>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="htP-hm-rxQ">
                        <rect key="frame" x="114" y="7.6666666666666714" width="281" height="135.33333333333331"/>
                        <subviews>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_footer" translatesAutoresizingMaskIntoConstraints="NO" id="fT4-6g-L0m">
                                <rect key="frame" x="0.0" y="0.0" width="281" height="135.33333333333334"/>
                            </imageView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G7I-Sh-sFL">
                                <rect key="frame" x="15" y="8" width="195" height="25"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="25" id="YCd-Do-fVS"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                <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="5BW-jy-SC9">
                                <rect key="frame" x="15" y="36" width="64" height="17"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="17" id="SG0-sw-1at"/>
                                </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="9T6-ag-k9m">
                                <rect key="frame" x="14.999999999999996" y="56" width="60.666666666666657" height="17"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="17" id="mwk-uL-whZ"/>
                                </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>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Aod-kc-Nc3">
                                <rect key="frame" x="79.666666666666657" y="51" width="50" height="27"/>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                <state key="normal" title="查看详情">
                                    <color key="titleColor" red="0.0" green="0.28235294117647058" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </state>
                                <connections>
                                    <action selector="showDetailAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="BIF-uo-WNl"/>
                                </connections>
                            </button>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_used" translatesAutoresizingMaskIntoConstraints="NO" id="bwC-Qg-DNl">
                                <rect key="frame" x="220" y="13" width="56" height="43"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="43" id="2Jg-Wg-2Jr"/>
                                    <constraint firstAttribute="width" constant="56" id="5bg-qG-f6G"/>
                                </constraints>
                            </imageView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Osp-YM-6Uw" customClass="QMUIButton">
                                <rect key="frame" x="15" y="76" width="70" height="17"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="17" id="Pja-xg-qDo"/>
                                </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="优惠券说明" image="icon_trigon_down">
                                    <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                </state>
                                <state key="selected" image="icon_trigon_up"/>
                                <connections>
                                    <action selector="infoTapAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="IJg-7t-ZCS"/>
                                </connections>
                            </button>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="9" translatesAutoresizingMaskIntoConstraints="NO" id="fpg-MK-829">
                                <rect key="frame" x="15" y="104" width="256" height="24.333333333333343"/>
                                <subviews>
                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Idc-Qp-xg4">
                                        <rect key="frame" x="0.0" y="0.0" width="256" height="1"/>
                                        <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.16" colorSpace="custom" customColorSpace="sRGB"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="1" id="gIf-Fm-Av1"/>
                                        </constraints>
                                    </view>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="otH-gu-7hx">
                                        <rect key="frame" x="0.0" y="10" width="256" height="14.333333333333336"/>
                                        <constraints>
                                            <constraint firstAttribute="height" constant="17" id="Bhz-uE-F2F"/>
                                        </constraints>
                                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                        <color key="textColor" red="0.23137254901960785" green="0.23137254901960785" blue="0.23137254901960785" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                </subviews>
                            </stackView>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="9T6-ag-k9m" firstAttribute="top" secondItem="5BW-jy-SC9" secondAttribute="bottom" constant="3" id="0D8-rg-2t4"/>
                            <constraint firstAttribute="trailing" secondItem="fT4-6g-L0m" secondAttribute="trailing" id="1rt-21-G77"/>
                            <constraint firstItem="fT4-6g-L0m" firstAttribute="leading" secondItem="htP-hm-rxQ" secondAttribute="leading" id="2Dm-sq-3No"/>
                            <constraint firstItem="5BW-jy-SC9" firstAttribute="top" secondItem="G7I-Sh-sFL" secondAttribute="bottom" constant="3" id="2uK-cx-azl"/>
                            <constraint firstItem="bwC-Qg-DNl" firstAttribute="top" secondItem="htP-hm-rxQ" secondAttribute="top" constant="13" id="BbP-1j-qbj"/>
                            <constraint firstAttribute="trailing" secondItem="bwC-Qg-DNl" secondAttribute="trailing" constant="5" id="C2A-lN-hOf"/>
                            <constraint firstAttribute="trailing" secondItem="fpg-MK-829" secondAttribute="trailing" constant="10" id="CWH-E3-nn9"/>
                            <constraint firstItem="Osp-YM-6Uw" firstAttribute="leading" secondItem="G7I-Sh-sFL" secondAttribute="leading" id="Hd2-In-Wmh"/>
                            <constraint firstItem="fpg-MK-829" firstAttribute="leading" secondItem="G7I-Sh-sFL" secondAttribute="leading" id="I6Y-fk-qsO"/>
                            <constraint firstAttribute="bottom" secondItem="fT4-6g-L0m" secondAttribute="bottom" id="Izc-PX-GFJ"/>
                            <constraint firstItem="5BW-jy-SC9" firstAttribute="leading" secondItem="G7I-Sh-sFL" secondAttribute="leading" id="LMw-VW-ZH0"/>
                            <constraint firstItem="fT4-6g-L0m" firstAttribute="top" secondItem="htP-hm-rxQ" secondAttribute="top" id="S8h-Ep-AtT"/>
                            <constraint firstItem="G7I-Sh-sFL" firstAttribute="leading" secondItem="htP-hm-rxQ" secondAttribute="leading" constant="15" id="SiL-Cg-tTN"/>
                            <constraint firstItem="G7I-Sh-sFL" firstAttribute="top" secondItem="htP-hm-rxQ" secondAttribute="top" constant="8" id="ZPO-eZ-lUg"/>
                            <constraint firstItem="Aod-kc-Nc3" firstAttribute="centerY" secondItem="9T6-ag-k9m" secondAttribute="centerY" id="Zzy-qH-Uh1"/>
                            <constraint firstItem="Aod-kc-Nc3" firstAttribute="leading" secondItem="9T6-ag-k9m" secondAttribute="trailing" constant="4" id="cUQ-rZ-40D"/>
                            <constraint firstAttribute="bottom" secondItem="fpg-MK-829" secondAttribute="bottom" constant="7" id="eik-OT-R5a"/>
                            <constraint firstItem="Osp-YM-6Uw" firstAttribute="top" secondItem="9T6-ag-k9m" secondAttribute="bottom" constant="3" id="emP-CA-SjG"/>
                            <constraint firstItem="bwC-Qg-DNl" firstAttribute="leading" secondItem="G7I-Sh-sFL" secondAttribute="trailing" constant="10" id="f0U-Fv-9C9"/>
                            <constraint firstItem="fpg-MK-829" firstAttribute="top" secondItem="Osp-YM-6Uw" secondAttribute="bottom" constant="11" id="oKS-Hz-BTy"/>
                            <constraint firstItem="9T6-ag-k9m" firstAttribute="leading" secondItem="G7I-Sh-sFL" secondAttribute="leading" id="uDC-BI-Rjr"/>
                        </constraints>
                    </view>
                </subviews>
                <constraints>
                    <constraint firstItem="htP-hm-rxQ" firstAttribute="leading" secondItem="ZhQ-JM-XIl" secondAttribute="trailing" id="ADp-0m-bua"/>
                    <constraint firstItem="ZhQ-JM-XIl" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="14" id="MhN-Oc-jtX"/>
                    <constraint firstAttribute="bottom" secondItem="htP-hm-rxQ" secondAttribute="bottom" constant="7.5" id="Mhu-NB-9R8"/>
                    <constraint firstItem="htP-hm-rxQ" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7.5" id="NC4-Rd-Itq"/>
                    <constraint firstItem="ZhQ-JM-XIl" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="7.5" id="VDR-7Y-59i"/>
                    <constraint firstAttribute="bottom" secondItem="ZhQ-JM-XIl" secondAttribute="bottom" constant="7" id="kEg-xo-eAe"/>
                    <constraint firstAttribute="trailing" secondItem="htP-hm-rxQ" secondAttribute="trailing" constant="14" id="s9x-jX-KOO"/>
                </constraints>
            </tableViewCellContentView>
            <connections>
                <outlet property="btn_info" destination="Osp-YM-6Uw" id="KTk-At-Veb"/>
                <outlet property="cons_labelHei" destination="Bhz-uE-F2F" id="YnU-Cl-Hi0"/>
                <outlet property="label_info" destination="otH-gu-7hx" id="JSu-Vb-xXL"/>
                <outlet property="view_line" destination="Idc-Qp-xg4" id="qgz-C4-7oJ"/>
            </connections>
            <point key="canvasLocation" x="104.58015267175573" y="55.633802816901408"/>
        </tableViewCell>
    </objects>
    <resources>
        <image name="icon_coupon_footer" width="19.333333969116211" height="46.666667938232422"/>
        <image name="icon_coupon_header" width="20.333333969116211" height="38.666667938232422"/>
        <image name="icon_coupon_used" width="56" height="43"/>
        <image name="icon_trigon_down" width="8" height="5"/>
        <image name="icon_trigon_up" width="8" height="5"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Welfare/VC/RechargeCenterVC.swift
New file
@@ -0,0 +1,102 @@
//
//  RechargeCenterVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import JQTools
import QMUIKit
class RechargeCenterVC: BaseVC {
    struct RechargeItem {
        var coin = 0
        var money = 0
    }
    @IBOutlet weak var view_topBg: UIView!
    @IBOutlet weak var view_cion: JQ_RollNumberLabel!
    @IBOutlet weak var btn_rechange: UIButton!
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var btn_rechargeInfo: UIButton!
    @IBOutlet weak var collectionView: UICollectionView!
    private var items = [RechargeItem]()
    private let cellW = (JQ_ScreenW - 90) / 3.0
    private let cellH = ((JQ_ScreenW - 90) / 3.0) * 0.5148
    private var selectIndex = 0
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "充值中心"
        view_cion.font = UIFont.init(name: "Impact", size: 36)!
        view_cion.textColor = .white
        view_cion.valueNumber = NSNumber(value: 22199)
        items.append(RechargeItem(coin: 100, money: 90))
        items.append(RechargeItem(coin: 150, money: 100))
        items.append(RechargeItem(coin: 200, money: 150))
        items.append(RechargeItem(coin: 500, money: 350))
        items.append(RechargeItem(coin: 1000, money: 500))
    }
    override func setUI() {
        let colors = [UIColor(hexStr: "#FD8C02").cgColor,
                      UIColor(hexStr: "#FD7202").cgColor,]
        view_topBg.jq_gradientColor(colorArr: colors)
        btn_rechange.jq_gradientNibColor(colorArr: colors, cornerRadius: 20)
        let attribute = AttributedStringbuilder()
        attribute.add(string: "储值说明?", withFont: UIFont.systemFont(ofSize: 14), withColor: Def_ThemeColor)
        attribute.underLine(color: Def_ThemeColor)
        btn_rechargeInfo.titleLabel?.attributedText = attribute.mutableAttributedString
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.isScrollEnabled = false
        collectionView.contentInset = UIEdgeInsets(top: 0, left: 12, bottom: 0, right: 12)
        collectionView.register(UINib(nibName: "RechargeItemCCell", bundle: nil), forCellWithReuseIdentifier: "_RechargeItemCCell")
    }
    @IBAction func rechargeAction(_ sender: UIButton) {
        PaymentView.show { status in
            let result:PaymentResultVC.PaymentResult = status ? .success:.fail
            let vc = PaymentResultVC(result: result, objType: .activityApply)
            vc.modalPresentationStyle = .fullScreen
            self.present(vc, animated: true)
        }
    }
}
extension RechargeCenterVC:UICollectionViewDelegate{
}
extension RechargeCenterVC:UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_RechargeItemCCell", for:indexPath) as! RechargeItemCCell
        cell.isSelected = indexPath.row == selectIndex
        return cell
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return items.count
    }
}
extension RechargeCenterVC:UICollectionViewDelegateFlowLayout{
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 18
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 18
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: cellW, height: cellH)
    }
}
WanPai/Root/Welfare/VC/RechargeCenterVC.xib
New file
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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="RechargeCenterVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_rechange" destination="UvJ-Vs-VJ9" id="KZa-eC-NHS"/>
                <outlet property="btn_rechargeInfo" destination="lGL-wI-nEC" id="1bW-rJ-JPo"/>
                <outlet property="collectionView" destination="B8L-Mr-AHI" id="VuO-aq-Ixi"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_cion" destination="NK8-Du-e9T" id="RVF-n0-B5U"/>
                <outlet property="view_container" destination="NJG-QQ-aLa" id="ihi-ky-fH3"/>
                <outlet property="view_topBg" destination="9NF-Ki-9em" id="Yfa-FR-sdy"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9NF-Ki-9em">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="232.66666666666666"/>
                    <subviews>
                        <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NK8-Du-e9T" customClass="JQ_RollNumberLabel" customModule="JQTools">
                            <rect key="frame" x="181.66666666666666" y="91" width="10" height="44"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="44" id="oj8-B1-WIc"/>
                            </constraints>
                        </view>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="URX-Wq-XaR">
                            <rect key="frame" x="191.66666666666663" y="109.66666666666667" width="14.333333333333343" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <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="3BA-Ds-DAO">
                            <rect key="frame" x="172" y="144" width="49.333333333333343" height="14.333333333333343"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                    </subviews>
                    <color key="backgroundColor" systemColor="tertiarySystemGroupedBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="3BA-Ds-DAO" firstAttribute="centerX" secondItem="9NF-Ki-9em" secondAttribute="centerX" id="7Sy-px-uRl"/>
                        <constraint firstItem="NK8-Du-e9T" firstAttribute="centerX" secondItem="9NF-Ki-9em" secondAttribute="centerX" constant="-10" id="IuN-wE-nTj"/>
                        <constraint firstItem="NK8-Du-e9T" firstAttribute="top" secondItem="9NF-Ki-9em" secondAttribute="topMargin" constant="24" id="Kcp-eQ-GCs"/>
                        <constraint firstItem="URX-Wq-XaR" firstAttribute="centerY" secondItem="NK8-Du-e9T" secondAttribute="centerY" constant="5" id="VUE-jJ-Itf"/>
                        <constraint firstItem="3BA-Ds-DAO" firstAttribute="top" secondItem="NK8-Du-e9T" secondAttribute="bottom" constant="9" id="j4d-D1-9LP"/>
                        <constraint firstItem="URX-Wq-XaR" firstAttribute="leading" secondItem="NK8-Du-e9T" secondAttribute="trailing" id="jtb-24-NIg"/>
                    </constraints>
                </view>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NJG-QQ-aLa">
                    <rect key="frame" x="14" y="208.66666666666663" width="365" height="264"/>
                    <subviews>
                        <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="B8L-Mr-AHI">
                            <rect key="frame" x="0.0" y="18" width="365" height="120"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="120" id="wmy-oP-k65"/>
                            </constraints>
                            <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="8kV-wB-1G8">
                                <size key="itemSize" width="128" height="128"/>
                                <size key="headerReferenceSize" width="0.0" height="0.0"/>
                                <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                            </collectionViewFlowLayout>
                        </collectionView>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lGL-wI-nEC">
                            <rect key="frame" x="289" y="155.00000000000003" width="72" height="29"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                            <state key="normal" title="储值说明?">
                                <color key="titleColor" name="FE6E0D"/>
                            </state>
                        </button>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UvJ-Vs-VJ9">
                            <rect key="frame" x="86" y="214.00000000000003" width="193" height="40"/>
                            <color key="backgroundColor" name="FE6E0D"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="JLC-JS-byh"/>
                            </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" red="1" green="1" blue="1" 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="20"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                            <connections>
                                <action selector="rechargeAction:" destination="-1" eventType="touchUpInside" id="9Sk-vy-4io"/>
                            </connections>
                        </button>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="UvJ-Vs-VJ9" firstAttribute="top" secondItem="lGL-wI-nEC" secondAttribute="bottom" constant="30" id="2Fc-Es-Tbg"/>
                        <constraint firstItem="lGL-wI-nEC" firstAttribute="top" secondItem="B8L-Mr-AHI" secondAttribute="bottom" constant="17" id="Hlp-vf-fHk"/>
                        <constraint firstAttribute="trailing" secondItem="lGL-wI-nEC" secondAttribute="trailing" constant="4" id="Uts-tE-dGf"/>
                        <constraint firstAttribute="bottom" secondItem="UvJ-Vs-VJ9" secondAttribute="bottom" constant="10" id="bWl-Eo-bYB"/>
                        <constraint firstItem="UvJ-Vs-VJ9" firstAttribute="leading" secondItem="NJG-QQ-aLa" secondAttribute="leading" constant="86" id="rgN-yU-AbO"/>
                        <constraint firstAttribute="trailing" secondItem="B8L-Mr-AHI" secondAttribute="trailing" id="tW8-9k-Bqu"/>
                        <constraint firstItem="B8L-Mr-AHI" firstAttribute="top" secondItem="NJG-QQ-aLa" secondAttribute="top" constant="18" id="xch-Du-kmY"/>
                        <constraint firstAttribute="trailing" secondItem="UvJ-Vs-VJ9" secondAttribute="trailing" constant="86" id="y0c-LJ-wPl"/>
                        <constraint firstItem="B8L-Mr-AHI" firstAttribute="leading" secondItem="NJG-QQ-aLa" secondAttribute="leading" id="y7J-73-ODk"/>
                    </constraints>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="10"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                </view>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="NJG-QQ-aLa" firstAttribute="top" secondItem="9NF-Ki-9em" secondAttribute="bottom" constant="-24" id="EBJ-uD-bG4"/>
                <constraint firstItem="9NF-Ki-9em" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="K5G-Yj-wBt"/>
                <constraint firstItem="NJG-QQ-aLa" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="Rtp-yd-5ao"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="NJG-QQ-aLa" secondAttribute="trailing" constant="14" id="pDO-tW-rIA"/>
                <constraint firstItem="9NF-Ki-9em" firstAttribute="width" secondItem="9NF-Ki-9em" secondAttribute="height" multiplier="1:0.5923" id="rDM-7Q-bqx"/>
                <constraint firstAttribute="trailing" secondItem="9NF-Ki-9em" secondAttribute="trailing" id="v5f-as-G0G"/>
                <constraint firstItem="9NF-Ki-9em" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="ydy-8M-se7"/>
            </constraints>
            <point key="canvasLocation" x="61.832061068702288" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
        <systemColor name="tertiarySystemGroupedBackgroundColor">
            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Welfare/VC/RechargeRecordVC.swift
New file
@@ -0,0 +1,77 @@
//
//  RechargeRecordVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import JQTools
import QMUIKit
class RechargeRecordVC: BaseVC {
    @IBOutlet weak var view_topBg: UIView!
    @IBOutlet weak var view_cion: JQ_RollNumberLabel!
    @IBOutlet weak var btn_rechange: UIButton!
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var btn_filter: QMUIButton!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "充值明细"
        view_cion.font = UIFont.init(name: "Impact", size: 36)!
        view_cion.textColor = .white
        DispatchQueue.main.asyncAfter(deadline: .now()+2) {
            self.view_cion.valueNumber = NSNumber(value: 22199)
        }
    }
    override func setUI() {
        btn_filter.imagePosition = .right
        btn_filter.spacingBetweenImageAndTitle = 3
        let colors = [UIColor(hexStr: "#FD8C02").cgColor,
                      UIColor(hexStr: "#FD7202").cgColor,]
        view_topBg.jq_gradientColor(colorArr: colors)
        btn_rechange.jq_gradientNibColor(colorArr: colors, cornerRadius: 20)
        view_container.jq_addShadows(shadowColor: UIColor(hexStr: "#D5D5D5").withAlphaComponent(0.5), corner: 10, radius: 4, offset: CGSize(width: 0, height: 2), opacity: 1)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "BillInfoTCell", bundle: nil), forCellReuseIdentifier:"_BillInfoTCell")
    }
    @IBAction func datetimeAction(_ sender: UIButton) {
        CommonDatePickerView.show()
    }
    @IBAction func filterAction(_ sender: QMUIButton) {
        JQ_MenuView().show(self, tapView: sender, items: ["充值","扣除"], tableHei: 150) { index, str in
        }
    }
    @IBAction func rechargeAction(_ sender: UIButton) {
        let vc = RechargeCenterVC()
        push(vc: vc)
    }
}
extension RechargeRecordVC:UITableViewDelegate{
}
extension RechargeRecordVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_BillInfoTCell") as! BillInfoTCell
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 50
    }
}
WanPai/Root/Welfare/VC/RechargeRecordVC.xib
New file
@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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="RechargeRecordVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_filter" destination="Nmp-c4-n6U" id="SK0-iY-Xer"/>
                <outlet property="btn_rechange" destination="NHb-nm-Mzb" id="7ts-Tk-cQF"/>
                <outlet property="tableView" destination="wHv-iO-wHf" id="vtl-Us-h3D"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_cion" destination="I00-yk-Mqf" id="G78-m4-vwh"/>
                <outlet property="view_container" destination="mSn-kI-M6j" id="rPi-dz-fR3"/>
                <outlet property="view_topBg" destination="5dX-dJ-RVA" id="tHO-NT-acv"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5dX-dJ-RVA">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="232.66666666666666"/>
                    <subviews>
                        <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="I00-yk-Mqf" customClass="JQ_RollNumberLabel" customModule="JQTools">
                            <rect key="frame" x="181.66666666666666" y="91" width="10" height="44"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="44" id="fvn-El-HaN"/>
                            </constraints>
                        </view>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i2m-xo-Gl8">
                            <rect key="frame" x="191.66666666666663" y="109.66666666666667" width="14.333333333333343" height="17"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                            <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="MNG-iP-MVp">
                            <rect key="frame" x="172" y="144" width="49.333333333333343" height="14.333333333333343"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
                        </label>
                    </subviews>
                    <color key="backgroundColor" systemColor="tertiarySystemGroupedBackgroundColor"/>
                    <constraints>
                        <constraint firstAttribute="width" secondItem="5dX-dJ-RVA" secondAttribute="height" multiplier="1:0.5923" id="2IZ-yE-1XM"/>
                        <constraint firstItem="I00-yk-Mqf" firstAttribute="top" secondItem="5dX-dJ-RVA" secondAttribute="topMargin" constant="24" id="VKw-3d-dkh"/>
                        <constraint firstItem="I00-yk-Mqf" firstAttribute="centerX" secondItem="5dX-dJ-RVA" secondAttribute="centerX" constant="-10" id="WR2-bL-CAj"/>
                        <constraint firstItem="i2m-xo-Gl8" firstAttribute="leading" secondItem="I00-yk-Mqf" secondAttribute="trailing" id="jYa-cO-3eP"/>
                        <constraint firstItem="MNG-iP-MVp" firstAttribute="centerX" secondItem="5dX-dJ-RVA" secondAttribute="centerX" id="lPB-R7-50C"/>
                        <constraint firstItem="MNG-iP-MVp" firstAttribute="top" secondItem="I00-yk-Mqf" secondAttribute="bottom" constant="9" id="pDW-LO-GdN"/>
                        <constraint firstItem="i2m-xo-Gl8" firstAttribute="centerY" secondItem="I00-yk-Mqf" secondAttribute="centerY" constant="5" id="pje-2O-ZwU"/>
                    </constraints>
                </view>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mSn-kI-M6j">
                    <rect key="frame" x="14" y="181.66666666666669" width="365" height="576.33333333333326"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4js-r9-uNN">
                            <rect key="frame" x="0.0" y="0.0" width="365" height="50"/>
                            <subviews>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zd3-h8-Y0d">
                                    <rect key="frame" x="14" y="9" width="96" height="32"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="2023年3月 &gt;">
                                        <color key="titleColor" red="0.23137254900000001" green="0.23137254900000001" blue="0.23137254900000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    </state>
                                    <connections>
                                        <action selector="datetimeAction:" destination="-1" eventType="touchUpInside" id="Vuk-IL-wir"/>
                                    </connections>
                                </button>
                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Nmp-c4-n6U" customClass="QMUIButton">
                                    <rect key="frame" x="254" y="6" width="100" height="38"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="38" id="JLA-aj-rnn"/>
                                        <constraint firstAttribute="width" constant="100" id="Vxg-LL-ygq"/>
                                    </constraints>
                                    <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" title="全部记录" image="icon_down_arrow">
                                        <color key="titleColor" red="0.25490196078431371" green="0.25490196078431371" blue="0.25490196078431371" 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="4"/>
                                        </userDefinedRuntimeAttribute>
                                        <userDefinedRuntimeAttribute type="color" keyPath="jq_xibBorderColor">
                                            <color key="value" red="0.83529411764705885" green="0.81960784313725488" blue="0.81960784313725488" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        </userDefinedRuntimeAttribute>
                                        <userDefinedRuntimeAttribute type="number" keyPath="jq_xibBorderWidth">
                                            <real key="value" value="1"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                    <connections>
                                        <action selector="filterAction:" destination="-1" eventType="touchUpInside" id="sZ7-NK-ZA7"/>
                                    </connections>
                                </button>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jwg-aY-gOG">
                                    <rect key="frame" x="0.0" y="49.666666666666686" width="365" height="0.3333333333333357"/>
                                    <color key="backgroundColor" red="0.87058823529411766" green="0.87058823529411766" blue="0.87058823529411766" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="0.40000000000000002" id="6z1-kT-wdb"/>
                                    </constraints>
                                </view>
                            </subviews>
                            <constraints>
                                <constraint firstAttribute="bottom" secondItem="Jwg-aY-gOG" secondAttribute="bottom" id="4jV-6u-FhZ"/>
                                <constraint firstItem="Jwg-aY-gOG" firstAttribute="leading" secondItem="4js-r9-uNN" secondAttribute="leading" id="8B4-1T-avk"/>
                                <constraint firstAttribute="trailing" secondItem="Jwg-aY-gOG" secondAttribute="trailing" id="8jd-3e-i2W"/>
                                <constraint firstAttribute="trailing" secondItem="Nmp-c4-n6U" secondAttribute="trailing" constant="11" id="FhA-hy-Iyt"/>
                                <constraint firstItem="Zd3-h8-Y0d" firstAttribute="leading" secondItem="4js-r9-uNN" secondAttribute="leading" constant="14" id="MBg-Rt-CwB"/>
                                <constraint firstItem="Nmp-c4-n6U" firstAttribute="centerY" secondItem="Zd3-h8-Y0d" secondAttribute="centerY" id="O1u-qT-vdr"/>
                                <constraint firstAttribute="height" constant="50" id="ejx-9I-O5d"/>
                                <constraint firstItem="Zd3-h8-Y0d" firstAttribute="centerY" secondItem="4js-r9-uNN" secondAttribute="centerY" id="fl8-Yy-gsh"/>
                            </constraints>
                        </view>
                        <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="wHv-iO-wHf">
                            <rect key="frame" x="0.0" y="50" width="365" height="526.33333333333337"/>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        </tableView>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="4js-r9-uNN" firstAttribute="top" secondItem="mSn-kI-M6j" secondAttribute="top" id="2Zx-dq-tAW"/>
                        <constraint firstItem="wHv-iO-wHf" firstAttribute="top" secondItem="4js-r9-uNN" secondAttribute="bottom" id="GWZ-dP-5Fj"/>
                        <constraint firstAttribute="bottom" secondItem="wHv-iO-wHf" secondAttribute="bottom" id="TBg-Zf-kIl"/>
                        <constraint firstItem="wHv-iO-wHf" firstAttribute="leading" secondItem="mSn-kI-M6j" secondAttribute="leading" id="Z5V-6E-c9o"/>
                        <constraint firstAttribute="trailing" secondItem="wHv-iO-wHf" secondAttribute="trailing" id="aDd-p0-bFT"/>
                        <constraint firstItem="4js-r9-uNN" firstAttribute="leading" secondItem="mSn-kI-M6j" secondAttribute="leading" id="daz-de-dmu"/>
                        <constraint firstAttribute="trailing" secondItem="4js-r9-uNN" secondAttribute="trailing" id="wbm-mq-6JU"/>
                    </constraints>
                </view>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AhJ-db-tUO">
                    <rect key="frame" x="0.0" y="748" width="393" height="70"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NHb-nm-Mzb">
                            <rect key="frame" x="100" y="15" width="193" height="40"/>
                            <color key="backgroundColor" name="FE6E0D"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="40" id="BWq-Lo-vnX"/>
                            </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>
                            <connections>
                                <action selector="rechargeAction:" destination="-1" eventType="touchUpInside" id="MdH-Yo-Vgs"/>
                            </connections>
                        </button>
                    </subviews>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <constraints>
                        <constraint firstItem="NHb-nm-Mzb" firstAttribute="top" secondItem="AhJ-db-tUO" secondAttribute="top" constant="15" id="7rR-Q4-t94"/>
                        <constraint firstAttribute="trailing" secondItem="NHb-nm-Mzb" secondAttribute="trailing" constant="100" id="D5W-aF-HII"/>
                        <constraint firstItem="NHb-nm-Mzb" firstAttribute="leading" secondItem="AhJ-db-tUO" secondAttribute="leading" constant="100" id="jN9-VW-uxA"/>
                        <constraint firstAttribute="height" constant="70" id="ukH-ok-5WL"/>
                    </constraints>
                </view>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="5dX-dJ-RVA" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="4hn-24-pHb"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="5dX-dJ-RVA" secondAttribute="trailing" id="ADE-eJ-7tA"/>
                <constraint firstItem="AhJ-db-tUO" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="KFc-Zh-weu"/>
                <constraint firstItem="AhJ-db-tUO" firstAttribute="top" secondItem="mSn-kI-M6j" secondAttribute="bottom" constant="-10" id="Oa8-yS-w1Z"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="AhJ-db-tUO" secondAttribute="trailing" id="Q3j-45-cm0"/>
                <constraint firstItem="5dX-dJ-RVA" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="UWD-lV-y4M"/>
                <constraint firstAttribute="bottomMargin" secondItem="AhJ-db-tUO" secondAttribute="bottom" id="Yjr-7r-exC"/>
                <constraint firstItem="mSn-kI-M6j" firstAttribute="top" secondItem="5dX-dJ-RVA" secondAttribute="bottom" constant="-51" id="bJY-PC-HMk"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="mSn-kI-M6j" secondAttribute="trailing" constant="14" id="dTw-dw-lMJ"/>
                <constraint firstItem="mSn-kI-M6j" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="14" id="tBU-FH-c6x"/>
            </constraints>
            <point key="canvasLocation" x="-2.2900763358778624" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="icon_down_arrow" width="20" height="14"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
        <systemColor name="tertiarySystemGroupedBackgroundColor">
            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Welfare/VC/WelfareBillListVC.swift
New file
@@ -0,0 +1,138 @@
//
//  WelfareBillListVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import JQTools
import QMUIKit
class WelfareBillListVC: BaseVC {
    lazy private var tableView:UITableView = {
        let table = UITableView(frame: .zero, style: .plain)
        table.separatorStyle = .none
        table.delegate = self
        table.dataSource = self
        if #available(iOS 15.0, *) {
            table.sectionHeaderTopPadding = 0
        }
        table.register(UINib(nibName: "BillInfoTCell", bundle: nil), forCellReuseIdentifier: "_BillInfoTCell")
        return table
    }()
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "我的账单"
        view.addSubview(tableView)
        tableView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }
}
extension WelfareBillListVC:UITableViewDelegate{
}
extension WelfareBillListVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_BillInfoTCell") as! BillInfoTCell
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 50
    }
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 67
    }
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let v = HeaderInSectionView()
        return v
    }
}
private class HeaderInSectionView:UIView{
    private lazy var btn_datetime:QMUIButton = {
        let btn = QMUIButton(type: .custom)
        btn.setTitle(Date().jq_format("yyyy年M月>"), for: .normal)
        btn.setTitleColor(UIColor(hexStr: "#0048FF"), for: .normal)
        btn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
        return btn
    }()
    private lazy var btn_filter:QMUIButton = {
        let btn = QMUIButton(type: .custom)
        btn.setTitleColor(UIColor(hexStr: "#414141"), for: .normal)
        btn.titleLabel?.font = UIFont.systemFont(ofSize: 16)
        btn.jq_borderWidth = 1
        btn.jq_borderColor = UIColor(hexStr: "#D5D1D1")
        btn.cornerRadius = 4
        btn.setTitle("全部记录", for: .normal)
        btn.setImage(UIImage(named: "icon_down_arrow"), for: .normal)
        btn.imagePosition = .right
        btn.spacingBetweenImageAndTitle = 5
        return btn
    }()
    private lazy var view_line:UIView = {
        let lineView = UIView()
        lineView.backgroundColor = UIColor(hexStr: "#DEDEDE")
        return lineView
    }()
    override init(frame: CGRect) {
        super.init(frame: frame)
        backgroundColor = .white
        addSubview(btn_datetime)
        addSubview(btn_filter)
        addSubview(view_line)
        btn_filter.snp.makeConstraints { make in
            make.right.equalTo(-14)
            make.height.equalTo(38)
            make.width.equalTo(100)
            make.bottom.equalTo(-16)
        }
        btn_datetime.snp.makeConstraints { make in
            make.left.equalTo(14)
            make.height.equalTo(22)
            make.centerY.equalTo(btn_filter)
        }
        view_line.snp.makeConstraints { make in
            make.left.equalTo(14)
            make.right.equalTo(14)
            make.height.equalTo(0.4)
            make.bottom.equalToSuperview()
        }
        btn_filter.addTarget(self, action: #selector(fliterAction), for: .touchUpInside)
        btn_datetime.addTarget(self, action: #selector(datetimePickerAction), for: .touchUpInside)
    }
    @objc func fliterAction(){
        JQ_MenuView().show(self, tapView: btn_filter, items: ["1","2"],tableHei: 140) { index, str in
        }
    }
    @objc func datetimePickerAction(){
        CommonDatePickerView.show()
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
WanPai/Root/Welfare/VC/WelfareCouponsListVC.swift
New file
@@ -0,0 +1,138 @@
//
//  WelfareCouponsListVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import JQTools
import QMUIKit
import SPPageMenu
import FFPage
class WelfareCouponsListVC: BaseVC {
    private var pageMenu:SPPageMenu = {
        let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
        // 追踪线
        pageMenu.trackerWidth = 56
        pageMenu.setTrackerHeight(3, cornerRadius: 1.5)
        pageMenu.tracker.backgroundColor = UIColor(hexStr: "#FF9D2E")
        pageMenu.trackerFollowingMode = .always
        pageMenu.contentInset = UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
        // 分割线
        pageMenu.dividingLine.backgroundColor = .clear
        pageMenu.dividingLineHeight = 1
        // item
        pageMenu.spacing = 20.0
        pageMenu.permutationWay = .notScrollEqualWidths
        pageMenu.setItems(["全部","满减券","代金券","体验券"], selectedItemIndex: 0)
        // 字体
        pageMenu.selectedItemTitleFont = UIFont.systemFont(ofSize: 14, weight: .semibold)
        pageMenu.unSelectedItemTitleFont = UIFont.systemFont(ofSize: 14,weight: .medium)
        // 颜色
        pageMenu.selectedItemTitleColor = .black.withAlphaComponent(0.8)
        pageMenu.unSelectedItemTitleColor = .black.withAlphaComponent(0.6)
        return pageMenu
    }()
    private lazy var pageViewController:FFPageViewController = {
        let pageVC = FFPageViewController()
        pageVC.view.backgroundColor = .clear
        pageVC.scrollview.backgroundColor = .clear
        pageVC.scrollview.bounces = false
        return pageVC
    }()
    private lazy var btn_filter:QMUIButton = {
        let btn = QMUIButton(type: .custom)
        btn.setTitle("全部", for: .normal)
        btn.titleLabel?.font = UIFont.systemFont(ofSize: 16)
        btn.setImage(UIImage(named: "icon_down_arrow"), for: .normal)
        btn.setTitleColor(UIColor(hexStr: "#414141"), for: .normal)
        btn.imagePosition = .right
        btn.spacingBetweenImageAndTitle = 37
        btn.jq_borderColor = UIColor(hexStr: "#D5D1D1")
        btn.jq_borderWidth = 1
        btn.cornerRadius = 4
        btn.backgroundColor = .white
        return btn
    }()
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "我的券包"
        pageMenu.delegate = self
        pageViewController.delegate = self
        btn_filter.addTarget(self, action: #selector(fliterAction), for: .touchUpInside)
    }
    override func setUI() {
        view.backgroundColor = .white
        pageMenu.layer.shadowColor = UIColor(hexStr: "#EFEEEE").withAlphaComponent(0.5).cgColor
        pageMenu.layer.shadowOffset = CGSize(width: 0, height: 2)
        pageMenu.layer.shadowOpacity = 1
        view.addSubview(pageMenu)
        pageMenu.snp.makeConstraints { make in
            make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top)
            make.left.right.equalToSuperview()
            make.height.equalTo(45)
        }
        view.addSubview(btn_filter)
        btn_filter.snp.makeConstraints { make in
            make.top.equalTo(pageMenu.snp.bottom).offset(15)
            make.right.equalTo(-14)
            make.height.equalTo(38)
            make.width.equalTo(100)
        }
        addChild(pageViewController)
        view.insertSubview(pageViewController.view, at: 0)
        pageViewController.didMove(toParent: self)
        pageViewController.view.snp.makeConstraints { make in
            make.top.equalTo(btn_filter.snp.bottom)
            make.left.right.bottom.equalToSuperview()
        }
    }
    @objc func fliterAction(){
        JQ_MenuView().show(self, tapView: btn_filter, items: ["1","2"], tableHei: 150) { index, str in
        }
    }
}
extension WelfareCouponsListVC:SPPageMenuDelegate{
    func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
        pageViewController.scroll(toPage: index, animation: true)
    }
}
extension WelfareCouponsListVC:FFPageViewControllerDelegate{
    func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
        pageMenu.selectedItemIndex = currentPage
    }
    func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
        return 4
    }
    func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
        return WelfareCouponsSubListVC()
    }
}
WanPai/Root/Welfare/VC/WelfareCouponsSubListVC.swift
New file
@@ -0,0 +1,70 @@
//
//  WelfareCouponsSubListVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
let WelfareCoupons_Noti = NSNotification.Name("WelfareCoupons_Noti")
class WelfareCouponsSubListVC: BaseVC {
    lazy private var tableView:UITableView = {
        let table = UITableView(frame: .zero, style: .plain)
        table.separatorStyle = .none
        table.delegate = self
        table.dataSource = self
        table.register(UINib(nibName: "WelfareCouponsTCell", bundle: nil), forCellReuseIdentifier: "_WelfareCouponsTCell")
        return table
    }()
    private var rows = Set<Int>()
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func setUI() {
        view.addSubview(tableView)
        tableView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }
    override func setRx() {
        NotificationCenter.default.rx.notification(WelfareCoupons_Noti).take(until: self.rx.deallocated).subscribe(onNext: {noti in
            if let row = noti.object as? Int{
                if self.rows.contains(row){
                    self.rows.remove(row)
                }else{
                    self.rows.insert(row)
                }
                self.tableView.beginUpdates()
                self.tableView.reloadRows(at: [IndexPath(row: row, section: 0)], with: .fade)
                self.tableView.endUpdates()
            }
        }).disposed(by: disposeBag)
    }
}
extension WelfareCouponsSubListVC:UITableViewDelegate{}
extension WelfareCouponsSubListVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         return 15
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "_WelfareCouponsTCell") as! WelfareCouponsTCell
        cell.indexPath = indexPath
        cell.label_info.text = "这里是优惠券使用说明…"
        cell.btn_info.isSelected = rows.contains(indexPath.row)
        cell.label_info.isHidden = !rows.contains(indexPath.row)
        cell.view_line.isHidden = !rows.contains(indexPath.row)
        return cell
    }
}
WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.swift
New file
@@ -0,0 +1,63 @@
//
//  WelfareRedeemGoodsDetailVC.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/6/28.
//
import UIKit
import QMUIKit
class WelfareRedeemGoodsDetailVC: BaseVC {
    @IBOutlet weak var btn_student: QMUIButton!
    @IBOutlet weak var btn_store: QMUIButton!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "商品详情"
    }
    override func setUI() {
        btn_student.imagePosition = .right
        btn_store.imagePosition = .right
        btn_student.spacingBetweenImageAndTitle = 3
        btn_store.spacingBetweenImageAndTitle = 3
        tableView.delegate = self
        tableView.dataSource = self
        tableView.isScrollEnabled = false
        tableView.separatorStyle = .none
        tableView.register(UINib(nibName: "StudentInfoTCell", bundle: nil), forCellReuseIdentifier: "_StudentInfoTCell")
    }
    @IBAction func chooseAction(_ sender: QMUIButton) {
        StudentChooseView.show(itemType: .course) {
        } needAddClouse: {
        }
    }
    @IBAction func chooseStoreAction(_ sender: QMUIButton) {
    }
}
extension WelfareRedeemGoodsDetailVC:UITableViewDelegate{
}
extension WelfareRedeemGoodsDetailVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfoTCell") as! StudentInfoTCell
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
}
WanPai/Root/Welfare/VC/WelfareRedeemGoodsDetailVC.xib
New file
@@ -0,0 +1,434 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <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="WelfareRedeemGoodsDetailVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_store" destination="DK1-7I-Zgs" id="P4s-8p-Srp"/>
                <outlet property="btn_student" destination="NfN-7G-XM4" id="Heh-WX-eDd"/>
                <outlet property="cons_tableHei" destination="2Vo-tY-Rnk" id="1xt-su-irf"/>
                <outlet property="tableView" destination="Iqj-NB-Sdv" id="whY-na-FVo"/>
                <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>
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L61-7B-reh">
                    <rect key="frame" x="0.0" y="59" width="393" height="759"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gbh-Le-CoL">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="872"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qqf-lq-tQb">
                                    <rect key="frame" x="0.0" y="0.0" width="393" height="221.66666666666666"/>
                                    <color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="Qqf-lq-tQb" secondAttribute="height" multiplier="1:0.5641" id="MqH-9b-gxy"/>
                                    </constraints>
                                </view>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="37m-yk-F6F">
                                    <rect key="frame" x="0.0" y="221.66666666666669" width="393" height="453.00000000000006"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A4l-Np-cwV">
                                            <rect key="frame" x="0.0" y="0.0" width="393" height="74"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xbv-xb-Opx">
                                                    <rect key="frame" x="13.999999999999998" y="14.000000000000002" width="16.333333333333329" height="26.666666666666671"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="25" id="T7E-w7-pbv"/>
                                                    </constraints>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
                                                    <nil key="textColor"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="0积分" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wai-5S-si5">
                                                    <rect key="frame" x="40.333333333333343" y="19" width="338.66666666666663" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                                    <color key="textColor" red="0.93333333333333335" green="0.043137254901960784" blue="0.043137254901960784" 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="Lm4-og-vup">
                                                    <rect key="frame" x="14" y="44.666666666666629" width="11.333333333333336" height="14.333333333333336"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                                    <color key="textColor" name="FE6E0D"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CYg-xX-AY5">
                                                    <rect key="frame" x="13" y="73" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686274509804" green="0.59215686274509804" blue="0.59215686274509804" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="Cig-fk-PE9"/>
                                                    </constraints>
                                                </view>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="价值:¥0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Oz-EC-ypg">
                                                    <rect key="frame" x="326" y="44.666666666666629" width="52" height="14.333333333333336"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="CYg-xX-AY5" firstAttribute="top" secondItem="Lm4-og-vup" secondAttribute="bottom" constant="14" id="0A7-VF-Uhg"/>
                                                <constraint firstItem="Xbv-xb-Opx" firstAttribute="leading" secondItem="A4l-Np-cwV" secondAttribute="leading" constant="14" id="1M9-uF-683"/>
                                                <constraint firstAttribute="trailing" secondItem="CYg-xX-AY5" secondAttribute="trailing" id="1hn-Gi-DkD"/>
                                                <constraint firstAttribute="trailing" secondItem="7Oz-EC-ypg" secondAttribute="trailing" constant="15" id="213-eO-d54"/>
                                                <constraint firstItem="Lm4-og-vup" firstAttribute="top" secondItem="Xbv-xb-Opx" secondAttribute="bottom" constant="4" id="3xk-fd-dNI"/>
                                                <constraint firstItem="7Oz-EC-ypg" firstAttribute="centerY" secondItem="Lm4-og-vup" secondAttribute="centerY" id="B4h-NQ-ST7"/>
                                                <constraint firstItem="Lm4-og-vup" firstAttribute="leading" secondItem="Xbv-xb-Opx" secondAttribute="leading" id="Ghq-m1-Vzl"/>
                                                <constraint firstItem="Xbv-xb-Opx" firstAttribute="top" secondItem="A4l-Np-cwV" secondAttribute="top" constant="14" id="MsH-eY-qmN"/>
                                                <constraint firstItem="wai-5S-si5" firstAttribute="centerY" secondItem="Xbv-xb-Opx" secondAttribute="centerY" id="aqL-A0-TyP"/>
                                                <constraint firstAttribute="bottom" secondItem="CYg-xX-AY5" secondAttribute="bottom" id="aus-QR-LhS"/>
                                                <constraint firstItem="wai-5S-si5" firstAttribute="leading" secondItem="Xbv-xb-Opx" secondAttribute="trailing" constant="10" id="qYL-hh-6Fq"/>
                                                <constraint firstItem="CYg-xX-AY5" firstAttribute="leading" secondItem="A4l-Np-cwV" secondAttribute="leading" constant="13" id="qd9-Wo-Zgm"/>
                                                <constraint firstAttribute="trailing" secondItem="wai-5S-si5" secondAttribute="trailing" constant="14" id="wTe-RH-Z80"/>
                                            </constraints>
                                        </view>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dvn-BE-q0C">
                                            <rect key="frame" x="0.0" y="74" width="393" height="48"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hWG-V5-5vv">
                                                    <rect key="frame" x="13" y="47" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="YoT-Ky-Fai"/>
                                                    </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="aeY-Is-jy1">
                                                    <rect key="frame" x="14" y="15.666666666666629" width="43" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nun-Hi-Ba8">
                                                    <rect key="frame" x="57" y="15.666666666666629" width="9" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <color key="textColor" name="FE6E0D"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="剩余:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" showsExpansionTextWhenTruncated="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ckw-eW-ViG">
                                                    <rect key="frame" x="143" y="15.666666666666629" width="43" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" showsExpansionTextWhenTruncated="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DpQ-7A-Y6o">
                                                    <rect key="frame" x="186" y="15.666666666666629" width="9" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <color key="textColor" name="FE6E0D"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="每人限领:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" showsExpansionTextWhenTruncated="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JSz-u2-EIQ">
                                                    <rect key="frame" x="275.33333333333331" y="15.666666666666629" width="71.666666666666686" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" showsExpansionTextWhenTruncated="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HyU-Ki-Lwv">
                                                    <rect key="frame" x="347" y="15.666666666666629" width="9" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <color key="textColor" name="FE6E0D"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="JSz-u2-EIQ" firstAttribute="centerY" secondItem="aeY-Is-jy1" secondAttribute="centerY" id="3Kk-RR-4DO"/>
                                                <constraint firstAttribute="trailing" secondItem="hWG-V5-5vv" secondAttribute="trailing" id="4ur-7v-AMr"/>
                                                <constraint firstItem="HyU-Ki-Lwv" firstAttribute="centerY" secondItem="JSz-u2-EIQ" secondAttribute="centerY" id="9qM-Hf-ckh"/>
                                                <constraint firstItem="Ckw-eW-ViG" firstAttribute="leading" secondItem="dvn-BE-q0C" secondAttribute="leading" constant="143" id="Ap5-zI-H7Y"/>
                                                <constraint firstItem="aeY-Is-jy1" firstAttribute="centerY" secondItem="dvn-BE-q0C" secondAttribute="centerY" id="Buf-gO-K1B"/>
                                                <constraint firstItem="HyU-Ki-Lwv" firstAttribute="leading" secondItem="JSz-u2-EIQ" secondAttribute="trailing" id="Dax-gX-QKh"/>
                                                <constraint firstAttribute="bottom" secondItem="hWG-V5-5vv" secondAttribute="bottom" id="G2P-Kb-URU"/>
                                                <constraint firstItem="Nun-Hi-Ba8" firstAttribute="centerY" secondItem="aeY-Is-jy1" secondAttribute="centerY" id="GkX-8G-2hp"/>
                                                <constraint firstItem="Ckw-eW-ViG" firstAttribute="centerY" secondItem="dvn-BE-q0C" secondAttribute="centerY" id="IcD-3H-etN"/>
                                                <constraint firstItem="aeY-Is-jy1" firstAttribute="leading" secondItem="dvn-BE-q0C" secondAttribute="leading" constant="14" id="NDF-x8-UxN"/>
                                                <constraint firstAttribute="height" constant="48" id="TOk-Wj-0VK"/>
                                                <constraint firstItem="Nun-Hi-Ba8" firstAttribute="leading" secondItem="aeY-Is-jy1" secondAttribute="trailing" id="VL7-Ec-ee7"/>
                                                <constraint firstAttribute="trailing" secondItem="JSz-u2-EIQ" secondAttribute="trailing" constant="46" id="cgv-fq-dgY"/>
                                                <constraint firstItem="DpQ-7A-Y6o" firstAttribute="centerY" secondItem="Ckw-eW-ViG" secondAttribute="centerY" id="rhQ-zN-S8e"/>
                                                <constraint firstItem="DpQ-7A-Y6o" firstAttribute="leading" secondItem="Ckw-eW-ViG" secondAttribute="trailing" id="tSo-fE-VAS"/>
                                                <constraint firstItem="hWG-V5-5vv" firstAttribute="leading" secondItem="dvn-BE-q0C" secondAttribute="leading" constant="13" id="yvx-RP-5ge"/>
                                            </constraints>
                                        </view>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eTp-S5-gYB">
                                            <rect key="frame" x="0.0" y="122" width="393" height="48"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aUi-as-wpQ">
                                                    <rect key="frame" x="13" y="47" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="HVu-Qx-NQw"/>
                                                    </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="Qle-bh-V41">
                                                    <rect key="frame" x="14.000000000000004" y="15.666666666666629" width="57.333333333333343" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RwQ-MS-2sL">
                                                    <rect key="frame" x="71.333333333333329" y="15.666666666666629" width="13" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                            <constraints>
                                                <constraint firstAttribute="trailing" secondItem="aUi-as-wpQ" secondAttribute="trailing" id="06G-lp-InX"/>
                                                <constraint firstItem="RwQ-MS-2sL" firstAttribute="leading" secondItem="Qle-bh-V41" secondAttribute="trailing" id="1Cc-9L-qih"/>
                                                <constraint firstItem="Qle-bh-V41" firstAttribute="centerY" secondItem="eTp-S5-gYB" secondAttribute="centerY" id="2v5-5m-FCZ"/>
                                                <constraint firstAttribute="bottom" secondItem="aUi-as-wpQ" secondAttribute="bottom" id="7k2-zI-V9p"/>
                                                <constraint firstItem="aUi-as-wpQ" firstAttribute="leading" secondItem="eTp-S5-gYB" secondAttribute="leading" constant="13" id="VRr-47-maG"/>
                                                <constraint firstItem="RwQ-MS-2sL" firstAttribute="centerY" secondItem="Qle-bh-V41" secondAttribute="centerY" id="gTH-kp-BpD"/>
                                                <constraint firstAttribute="height" constant="48" id="lvy-Nr-Zfo"/>
                                                <constraint firstItem="Qle-bh-V41" firstAttribute="leading" secondItem="eTp-S5-gYB" secondAttribute="leading" constant="14" id="wkS-fY-YvL"/>
                                            </constraints>
                                        </view>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLV-Kf-Avt">
                                            <rect key="frame" x="0.0" y="170" width="393" height="48"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="apv-jB-mxv">
                                                    <rect key="frame" x="13" y="47" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="Nbd-eU-Smf"/>
                                                    </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="OX0-N2-SYi">
                                                    <rect key="frame" x="14" y="15.666666666666629" width="43" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FgM-YE-waa">
                                                    <rect key="frame" x="57" y="15.666666666666629" width="37.333333333333343" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                            </subviews>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="48" id="4bD-TX-Bmb"/>
                                                <constraint firstItem="FgM-YE-waa" firstAttribute="leading" secondItem="OX0-N2-SYi" secondAttribute="trailing" id="B9t-mi-Ucb"/>
                                                <constraint firstItem="OX0-N2-SYi" firstAttribute="centerY" secondItem="FLV-Kf-Avt" secondAttribute="centerY" id="FxJ-oG-yTV"/>
                                                <constraint firstAttribute="bottom" secondItem="apv-jB-mxv" secondAttribute="bottom" id="MHq-Aw-Myr"/>
                                                <constraint firstItem="FgM-YE-waa" firstAttribute="centerY" secondItem="OX0-N2-SYi" secondAttribute="centerY" id="oUq-EL-e9R"/>
                                                <constraint firstItem="apv-jB-mxv" firstAttribute="leading" secondItem="FLV-Kf-Avt" secondAttribute="leading" constant="13" id="ogh-fB-azO"/>
                                                <constraint firstItem="OX0-N2-SYi" firstAttribute="leading" secondItem="FLV-Kf-Avt" secondAttribute="leading" constant="14" id="ssD-IC-nBu"/>
                                                <constraint firstAttribute="trailing" secondItem="apv-jB-mxv" secondAttribute="trailing" id="x5P-2s-lCe"/>
                                            </constraints>
                                        </view>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0QQ-kQ-0an">
                                            <rect key="frame" x="0.0" y="218" width="393" height="132"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ycL-lZ-eJB">
                                                    <rect key="frame" x="13" y="130.99999999999994" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="8NT-ZN-2kD"/>
                                                    </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="a3z-iB-tVP">
                                                    <rect key="frame" x="14.000000000000002" y="13.999999999999943" width="28.666666666666671" height="17"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NfN-7G-XM4" customClass="QMUIButton">
                                                    <rect key="frame" x="304" y="13.999999999999943" width="74" height="20"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="20" id="67f-ry-4bf"/>
                                                    </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="chooseAction:" destination="-1" eventType="touchUpInside" id="cqc-5R-hsx"/>
                                                    </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="Iqj-NB-Sdv">
                                                    <rect key="frame" x="0.0" y="36.999999999999943" width="393" height="88"/>
                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="88" id="2Vo-tY-Rnk"/>
                                                    </constraints>
                                                </tableView>
                                            </subviews>
                                            <constraints>
                                                <constraint firstAttribute="bottom" secondItem="ycL-lZ-eJB" secondAttribute="bottom" id="BdX-CK-kGt"/>
                                                <constraint firstItem="NfN-7G-XM4" firstAttribute="top" secondItem="0QQ-kQ-0an" secondAttribute="top" constant="14" id="CZO-jv-iBN"/>
                                                <constraint firstItem="Iqj-NB-Sdv" firstAttribute="top" secondItem="a3z-iB-tVP" secondAttribute="bottom" constant="6" id="Ia3-ng-56n"/>
                                                <constraint firstAttribute="trailing" secondItem="Iqj-NB-Sdv" secondAttribute="trailing" id="NuZ-Eq-uzZ"/>
                                                <constraint firstItem="ycL-lZ-eJB" firstAttribute="leading" secondItem="0QQ-kQ-0an" secondAttribute="leading" constant="13" id="RAl-rO-XR9"/>
                                                <constraint firstAttribute="trailing" secondItem="ycL-lZ-eJB" secondAttribute="trailing" id="SdG-oD-PfH"/>
                                                <constraint firstItem="Iqj-NB-Sdv" firstAttribute="leading" secondItem="0QQ-kQ-0an" secondAttribute="leading" id="Vm4-8Y-Y5q"/>
                                                <constraint firstItem="a3z-iB-tVP" firstAttribute="top" secondItem="0QQ-kQ-0an" secondAttribute="top" constant="14" id="bdS-hh-WWJ"/>
                                                <constraint firstItem="a3z-iB-tVP" firstAttribute="leading" secondItem="0QQ-kQ-0an" secondAttribute="leading" constant="14" id="jF8-qy-aeW"/>
                                                <constraint firstAttribute="trailing" secondItem="NfN-7G-XM4" secondAttribute="trailing" constant="15" id="tiY-fa-ufu"/>
                                                <constraint firstItem="ycL-lZ-eJB" firstAttribute="top" secondItem="Iqj-NB-Sdv" secondAttribute="bottom" constant="6" id="wof-Dn-hid"/>
                                            </constraints>
                                        </view>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PF8-aV-ew9">
                                            <rect key="frame" x="0.0" y="349.99999999999994" width="393" height="103"/>
                                            <subviews>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="I5w-xz-XZ8">
                                                    <rect key="frame" x="13" y="102" width="380" height="1"/>
                                                    <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="1" id="oTS-IB-gzU"/>
                                                    </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="N9r-SP-XMO">
                                                    <rect key="frame" x="14.000000000000004" y="14" width="57.333333333333343" height="19"/>
                                                    <fontDescription key="fontDescription" type="system" weight="semibold" 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>
                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DK1-7I-Zgs" customClass="QMUIButton">
                                                    <rect key="frame" x="304" y="14" width="74" height="20"/>
                                                    <constraints>
                                                        <constraint firstAttribute="height" constant="20" id="CbV-hS-1G4"/>
                                                    </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="chooseStoreAction:" destination="-1" eventType="touchUpInside" id="UOM-bW-07M"/>
                                                    </connections>
                                                </button>
                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="82O-lS-xHR">
                                                    <rect key="frame" x="14.000000000000004" y="47" width="57.333333333333343" height="42"/>
                                                    <subviews>
                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4dK-Zl-Jdj">
                                                            <rect key="frame" x="22" y="11" width="13.333333333333336" height="20"/>
                                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                                            <color key="textColor" name="FE6E0D"/>
                                                            <nil key="highlightedColor"/>
                                                        </label>
                                                    </subviews>
                                                    <color key="backgroundColor" red="0.99215686270000003" green="0.45882352939999999" blue="0.0078431372550000003" alpha="0.12" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstItem="4dK-Zl-Jdj" firstAttribute="leading" secondItem="82O-lS-xHR" secondAttribute="leading" constant="22" id="EiG-Ze-iyt"/>
                                                        <constraint firstAttribute="trailing" secondItem="4dK-Zl-Jdj" secondAttribute="trailing" constant="22" id="Z3K-Pm-S9O"/>
                                                        <constraint firstItem="4dK-Zl-Jdj" firstAttribute="top" secondItem="82O-lS-xHR" secondAttribute="top" constant="11" id="cez-8Z-WO8"/>
                                                        <constraint firstAttribute="height" constant="42" id="k25-Gd-ndU"/>
                                                        <constraint firstAttribute="bottom" secondItem="4dK-Zl-Jdj" secondAttribute="bottom" constant="11" id="qPd-Cg-TNH"/>
                                                    </constraints>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
                                                            <color key="value" name="FE6E0D"/>
                                                        </userDefinedRuntimeAttribute>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
                                                            <real key="value" value="1"/>
                                                        </userDefinedRuntimeAttribute>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                                            <real key="value" value="4"/>
                                                        </userDefinedRuntimeAttribute>
                                                    </userDefinedRuntimeAttributes>
                                                </view>
                                            </subviews>
                                            <constraints>
                                                <constraint firstItem="82O-lS-xHR" firstAttribute="leading" secondItem="PF8-aV-ew9" secondAttribute="leading" constant="14" id="4Ku-ic-eRN"/>
                                                <constraint firstItem="82O-lS-xHR" firstAttribute="top" secondItem="N9r-SP-XMO" secondAttribute="bottom" constant="14" id="4mq-tS-W73"/>
                                                <constraint firstAttribute="trailing" secondItem="DK1-7I-Zgs" secondAttribute="trailing" constant="15" id="5m8-m1-oLz"/>
                                                <constraint firstItem="I5w-xz-XZ8" firstAttribute="leading" secondItem="PF8-aV-ew9" secondAttribute="leading" constant="13" id="CqH-US-2fe"/>
                                                <constraint firstAttribute="trailing" secondItem="I5w-xz-XZ8" secondAttribute="trailing" id="E2G-zK-Ad4"/>
                                                <constraint firstItem="DK1-7I-Zgs" firstAttribute="top" secondItem="PF8-aV-ew9" secondAttribute="top" constant="14" id="N5D-I0-yyy"/>
                                                <constraint firstAttribute="bottom" secondItem="I5w-xz-XZ8" secondAttribute="bottom" id="ZOx-G7-9qC"/>
                                                <constraint firstItem="N9r-SP-XMO" firstAttribute="leading" secondItem="PF8-aV-ew9" secondAttribute="leading" constant="14" id="jWa-0t-3gh"/>
                                                <constraint firstItem="I5w-xz-XZ8" firstAttribute="top" secondItem="82O-lS-xHR" secondAttribute="bottom" constant="13" id="rM3-yW-rLl"/>
                                                <constraint firstItem="N9r-SP-XMO" firstAttribute="top" secondItem="PF8-aV-ew9" secondAttribute="top" constant="14" id="tf2-rA-mHj"/>
                                            </constraints>
                                        </view>
                                    </subviews>
                                </stackView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="兑换说明" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eGT-qY-7F5">
                                    <rect key="frame" x="15" y="689.66666666666663" width="65.333333333333329" height="19.333333333333371"/>
                                    <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
                                    <nil key="textColor"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Zp9-nM-vpb">
                                    <rect key="frame" x="0.0" y="724" width="393" height="100"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="100" id="XNx-ob-i8c"/>
                                    </constraints>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="37m-yk-F6F" firstAttribute="top" secondItem="Qqf-lq-tQb" secondAttribute="bottom" id="7XC-I0-EDS"/>
                                <constraint firstItem="Qqf-lq-tQb" firstAttribute="leading" secondItem="gbh-Le-CoL" secondAttribute="leading" id="88i-86-LCE"/>
                                <constraint firstItem="Zp9-nM-vpb" firstAttribute="top" secondItem="eGT-qY-7F5" secondAttribute="bottom" constant="15" id="8Jo-IW-w6Q"/>
                                <constraint firstItem="eGT-qY-7F5" firstAttribute="top" secondItem="37m-yk-F6F" secondAttribute="bottom" constant="15" id="8g1-AM-BJ7"/>
                                <constraint firstItem="37m-yk-F6F" firstAttribute="leading" secondItem="gbh-Le-CoL" secondAttribute="leading" id="Kai-3Z-AgF"/>
                                <constraint firstItem="Zp9-nM-vpb" firstAttribute="leading" secondItem="gbh-Le-CoL" secondAttribute="leading" id="Ual-bZ-2mE"/>
                                <constraint firstItem="Qqf-lq-tQb" firstAttribute="top" secondItem="gbh-Le-CoL" secondAttribute="top" id="VuQ-fm-LhH"/>
                                <constraint firstAttribute="bottom" secondItem="Zp9-nM-vpb" secondAttribute="bottom" constant="48" id="jId-7F-KSB"/>
                                <constraint firstAttribute="trailing" secondItem="37m-yk-F6F" secondAttribute="trailing" id="mq2-n6-vUt"/>
                                <constraint firstItem="eGT-qY-7F5" firstAttribute="leading" secondItem="gbh-Le-CoL" secondAttribute="leading" constant="15" id="qc4-es-fxP"/>
                                <constraint firstAttribute="trailing" secondItem="Zp9-nM-vpb" secondAttribute="trailing" id="ueX-OG-jV3"/>
                                <constraint firstAttribute="trailing" secondItem="Qqf-lq-tQb" secondAttribute="trailing" id="yKT-7i-2oY"/>
                            </constraints>
                        </view>
                    </subviews>
                    <constraints>
                        <constraint firstAttribute="bottom" secondItem="gbh-Le-CoL" secondAttribute="bottom" id="7mD-8m-YNg"/>
                        <constraint firstItem="gbh-Le-CoL" firstAttribute="top" secondItem="L61-7B-reh" secondAttribute="top" id="Hbt-HI-amD"/>
                        <constraint firstItem="gbh-Le-CoL" firstAttribute="centerX" secondItem="L61-7B-reh" secondAttribute="centerX" id="WY4-gX-J3L"/>
                        <constraint firstItem="gbh-Le-CoL" firstAttribute="leading" secondItem="L61-7B-reh" secondAttribute="leading" id="fHg-ux-ys3"/>
                        <constraint firstAttribute="trailing" secondItem="gbh-Le-CoL" secondAttribute="trailing" id="m4d-PS-M4I"/>
                    </constraints>
                </scrollView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R3A-cj-kzU">
                    <rect key="frame" x="0.0" y="770" width="393" height="48"/>
                    <color key="backgroundColor" name="FE6E0D"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="48" id="bSI-1u-taE"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                    <state key="normal" title="立即兑换"/>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="L61-7B-reh" secondAttribute="trailing" id="NCa-KY-ZtU"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="R3A-cj-kzU" secondAttribute="trailing" id="bv0-9J-Ggi"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="R3A-cj-kzU" secondAttribute="bottom" id="gf4-mg-AOH"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="L61-7B-reh" secondAttribute="bottom" id="iyb-hB-0p6"/>
                <constraint firstItem="L61-7B-reh" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="nwi-Ue-UD8"/>
                <constraint firstItem="R3A-cj-kzU" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="p40-L8-Qdh"/>
                <constraint firstItem="L61-7B-reh" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="peu-JR-Hp4"/>
            </constraints>
            <point key="canvasLocation" x="136.64122137404578" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="btn_add_1" width="16" height="16"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
        <systemColor name="systemGroupedBackgroundColor">
            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </systemColor>
    </resources>
</document>
WanPai/Root/Welfare/VC/WelfareVC.swift
@@ -26,6 +26,16 @@
        timer?.invalidate()
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        navigationController?.isNavigationBarHidden = false
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.isNavigationBarHidden = true
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if timer != nil{
@@ -40,6 +50,26 @@
        coinCollectionView.delegate  = self
        coinCollectionView.dataSource = self
        coinCollectionView.register(UINib(nibName: "WelfareCoinCCell", bundle: nil), forCellWithReuseIdentifier: "_WelfareCoinCCell")
    }
    @IBAction func userProfileAction(_ sender: UIButton) {
        let vc = ProfileVC()
        push(vc: vc)
    }
    @IBAction func billAction(_ sender: UIButton) {
        let vc = WelfareBillListVC()
        push(vc: vc)
    }
    @IBAction func couponsAction(_ sender: UIButton) {
        let vc = WelfareCouponsListVC()
        push(vc: vc)
    }
    @IBAction func rechargeAction(_ sender: UIButton) {
        let vc = RechargeRecordVC()
        push(vc: vc)
    }
    private func autoScroll(){
@@ -83,7 +113,10 @@
}
extension WelfareVC:UICollectionViewDelegate{
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let vc = WelfareRedeemGoodsDetailVC()
        push(vc: vc)
    }
}
extension WelfareVC:UICollectionViewDataSource{
WanPai/Root/Welfare/VC/WelfareVC.xib
@@ -22,16 +22,16 @@
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cgs-lB-S86">
                    <rect key="frame" x="0.0" y="0.0" width="393" height="818"/>
                    <rect key="frame" x="0.0" y="59" width="393" height="759"/>
                    <subviews>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1kO-ug-2Gd">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1917.3333333333333"/>
                            <rect key="frame" x="0.0" y="0.0" width="393" height="1694"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qtJ-Db-Js8">
                                    <rect key="frame" x="0.0" y="0.0" width="393" height="198"/>
                                    <rect key="frame" x="0.0" y="0.0" width="393" height="152"/>
                                    <subviews>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="7GZ-X8-dwC">
                                            <rect key="frame" x="31" y="62" width="62" height="62"/>
                                            <rect key="frame" x="31" y="23" width="62" height="62"/>
                                            <color key="backgroundColor" systemColor="tertiarySystemGroupedBackgroundColor"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="62" id="0GQ-rr-6zD"/>
@@ -45,7 +45,7 @@
                                            </userDefinedRuntimeAttributes>
                                        </imageView>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="未命名会员" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yxM-ot-SxY">
                                            <rect key="frame" x="113" y="69" width="92" height="25"/>
                                            <rect key="frame" x="113" y="30" width="92" height="25"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="25" id="5xP-w8-kpr"/>
                                            </constraints>
@@ -54,7 +54,7 @@
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3uF-Kg-Gaz">
                                            <rect key="frame" x="307" y="63" width="72" height="24"/>
                                            <rect key="frame" x="307" y="24" width="72" height="24"/>
                                            <constraints>
                                                <constraint firstAttribute="width" constant="72" id="5s8-sc-OTS"/>
                                                <constraint firstAttribute="height" constant="24" id="mPT-8u-Drm"/>
@@ -76,9 +76,12 @@
                                                    <real key="value" value="12"/>
                                                </userDefinedRuntimeAttribute>
                                            </userDefinedRuntimeAttributes>
                                            <connections>
                                                <action selector="billAction:" destination="-1" eventType="touchUpInside" id="iYR-5u-KqS"/>
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0Qr-IS-5hv">
                                            <rect key="frame" x="307" y="96" width="72" height="24"/>
                                            <rect key="frame" x="307" y="57" width="72" height="24"/>
                                            <color key="backgroundColor" name="FE6E0D"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="24" id="ZKO-Cf-O2U"/>
@@ -95,9 +98,12 @@
                                                    <real key="value" value="12"/>
                                                </userDefinedRuntimeAttribute>
                                            </userDefinedRuntimeAttributes>
                                            <connections>
                                                <action selector="couponsAction:" destination="-1" eventType="touchUpInside" id="w3j-bS-3wu"/>
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6lk-Nd-Tug" customClass="QMUIButton">
                                            <rect key="frame" x="113" y="100" width="66" height="16"/>
                                            <rect key="frame" x="113" y="61" width="66" height="16"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" title="年度会员" image="icon_vip_medal">
@@ -105,53 +111,119 @@
                                            </state>
                                        </button>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coin_tiny" translatesAutoresizingMaskIntoConstraints="NO" id="joc-Xf-ULn">
                                            <rect key="frame" x="31" y="159" width="14" height="14"/>
                                            <rect key="frame" x="9" y="120" width="14" height="14"/>
                                        </imageView>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="玩湃币" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WDa-Xj-jXp">
                                            <rect key="frame" x="51" y="158.33333333333334" width="40" height="15.666666666666657"/>
                                            <rect key="frame" x="29" y="119.33333333333334" width="40" height="15.666666666666657"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                            <color key="textColor" red="0.18823529410000001" green="0.3294117647" blue="0.38823529410000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5GZ-Mz-c7r">
                                            <rect key="frame" x="96" y="158.33333333333334" width="8.3333333333333286" height="15.666666666666657"/>
                                            <rect key="frame" x="74" y="119.33333333333334" width="8.3333333333333286" height="15.666666666666657"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                            <color key="textColor" red="0.18823529410000001" green="0.3294117647" blue="0.38823529410000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coin_tiny" translatesAutoresizingMaskIntoConstraints="NO" id="fYH-IU-RDd">
                                            <rect key="frame" x="210" y="159" width="14" height="14"/>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_score" translatesAutoresizingMaskIntoConstraints="NO" id="fYH-IU-RDd">
                                            <rect key="frame" x="197" y="119" width="16" height="16"/>
                                        </imageView>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="会员积分" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ft0-mn-MrN">
                                            <rect key="frame" x="230.00000000000003" y="158.33333333333334" width="53.333333333333343" height="15.666666666666657"/>
                                            <rect key="frame" x="219" y="119.33333333333334" width="53.333333333333314" height="15.666666666666657"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                            <color key="textColor" red="0.18823529410000001" green="0.3294117647" blue="0.38823529410000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FKV-jp-n9Z">
                                            <rect key="frame" x="288.33333333333331" y="158.33333333333334" width="8.3333333333333144" height="15.666666666666657"/>
                                            <rect key="frame" x="277.33333333333331" y="119.33333333333334" width="8.3333333333333144" height="15.666666666666657"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                            <color key="textColor" red="0.18823529410000001" green="0.3294117647" blue="0.38823529410000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bgn-Mv-nv3">
                                            <rect key="frame" x="90.333333333333329" y="116" width="51.999999999999986" height="22"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="22" id="nYC-Nx-coY"/>
                                                <constraint firstAttribute="width" constant="52" id="pAF-8d-kMI"/>
                                            </constraints>
                                            <fontDescription key="fontDescription" type="system" pointSize="10"/>
                                            <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.18823529411764706" green="0.32941176470588235" blue="0.38823529411764707" 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="11"/>
                                                </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="rechargeAction:" destination="-1" eventType="touchUpInside" id="Vwg-Z8-yj2"/>
                                            </connections>
                                        </button>
                                        <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cWO-5E-szA">
                                            <rect key="frame" x="290.66666666666669" y="116" width="52" height="22"/>
                                            <constraints>
                                                <constraint firstAttribute="width" constant="52" id="Tto-xt-EoC"/>
                                                <constraint firstAttribute="height" constant="22" id="gzD-OM-r2g"/>
                                            </constraints>
                                            <fontDescription key="fontDescription" type="system" pointSize="10"/>
                                            <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.18823529410000001" green="0.3294117647" blue="0.38823529410000002" 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="11"/>
                                                </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>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KrQ-RG-f2e">
                                            <rect key="frame" x="31" y="23" width="174" height="62"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <connections>
                                                <action selector="userProfileAction:" destination="-1" eventType="touchUpInside" id="V5M-q6-DkH"/>
                                            </connections>
                                        </button>
                                    </subviews>
                                    <constraints>
                                        <constraint firstItem="cWO-5E-szA" firstAttribute="centerY" secondItem="fYH-IU-RDd" secondAttribute="centerY" id="0K4-94-Qu9"/>
                                        <constraint firstItem="cWO-5E-szA" firstAttribute="leading" secondItem="FKV-jp-n9Z" secondAttribute="trailing" constant="5" id="1ir-Ro-5p5"/>
                                        <constraint firstItem="fYH-IU-RDd" firstAttribute="centerY" secondItem="joc-Xf-ULn" secondAttribute="centerY" id="8es-JY-3wH"/>
                                        <constraint firstItem="FKV-jp-n9Z" firstAttribute="leading" secondItem="ft0-mn-MrN" secondAttribute="trailing" constant="5" id="Bje-9P-TL6"/>
                                        <constraint firstAttribute="height" constant="198" id="DLs-yR-39v"/>
                                        <constraint firstAttribute="height" constant="152" id="DLs-yR-39v"/>
                                        <constraint firstItem="bgn-Mv-nv3" firstAttribute="leading" secondItem="5GZ-Mz-c7r" secondAttribute="trailing" constant="8" id="DpF-1c-uPn"/>
                                        <constraint firstItem="FKV-jp-n9Z" firstAttribute="centerY" secondItem="fYH-IU-RDd" secondAttribute="centerY" id="EC9-yz-B0l"/>
                                        <constraint firstItem="3uF-Kg-Gaz" firstAttribute="top" secondItem="7GZ-X8-dwC" secondAttribute="top" constant="1" id="FH5-nz-jhD"/>
                                        <constraint firstAttribute="trailing" secondItem="3uF-Kg-Gaz" secondAttribute="trailing" constant="14" id="JeX-JH-xyP"/>
                                        <constraint firstItem="joc-Xf-ULn" firstAttribute="leading" secondItem="qtJ-Db-Js8" secondAttribute="leading" constant="31" id="P1h-6D-VD6"/>
                                        <constraint firstItem="fYH-IU-RDd" firstAttribute="leading" secondItem="qtJ-Db-Js8" secondAttribute="leading" constant="210" id="Pnz-Bg-I7i"/>
                                        <constraint firstItem="joc-Xf-ULn" firstAttribute="leading" secondItem="qtJ-Db-Js8" secondAttribute="leading" constant="9" id="P1h-6D-VD6"/>
                                        <constraint firstItem="fYH-IU-RDd" firstAttribute="leading" secondItem="qtJ-Db-Js8" secondAttribute="leading" constant="197" id="Pnz-Bg-I7i"/>
                                        <constraint firstItem="5GZ-Mz-c7r" firstAttribute="centerY" secondItem="joc-Xf-ULn" secondAttribute="centerY" id="Qon-HQ-zKH"/>
                                        <constraint firstItem="joc-Xf-ULn" firstAttribute="top" secondItem="7GZ-X8-dwC" secondAttribute="bottom" constant="35" id="Rmv-lE-vuc"/>
                                        <constraint firstItem="KrQ-RG-f2e" firstAttribute="leading" secondItem="7GZ-X8-dwC" secondAttribute="leading" id="SNL-FM-adG"/>
                                        <constraint firstItem="0Qr-IS-5hv" firstAttribute="top" secondItem="3uF-Kg-Gaz" secondAttribute="bottom" constant="9" id="SxL-wg-2sS"/>
                                        <constraint firstItem="7GZ-X8-dwC" firstAttribute="leading" secondItem="qtJ-Db-Js8" secondAttribute="leading" constant="31" id="Xel-7y-pIY"/>
                                        <constraint firstItem="KrQ-RG-f2e" firstAttribute="bottom" secondItem="7GZ-X8-dwC" secondAttribute="bottom" id="Yu6-Bd-L3M"/>
                                        <constraint firstItem="5GZ-Mz-c7r" firstAttribute="leading" secondItem="WDa-Xj-jXp" secondAttribute="trailing" constant="5" id="a0v-oX-qug"/>
                                        <constraint firstItem="0Qr-IS-5hv" firstAttribute="trailing" secondItem="3uF-Kg-Gaz" secondAttribute="trailing" id="atA-xy-vdE"/>
                                        <constraint firstItem="KrQ-RG-f2e" firstAttribute="top" secondItem="7GZ-X8-dwC" secondAttribute="top" id="bUp-kX-KGi"/>
                                        <constraint firstItem="bgn-Mv-nv3" firstAttribute="centerY" secondItem="joc-Xf-ULn" secondAttribute="centerY" id="bvu-dp-8Cm"/>
                                        <constraint firstItem="yxM-ot-SxY" firstAttribute="trailing" secondItem="KrQ-RG-f2e" secondAttribute="trailing" id="lt3-Vf-EZe"/>
                                        <constraint firstItem="WDa-Xj-jXp" firstAttribute="leading" secondItem="joc-Xf-ULn" secondAttribute="trailing" constant="6" id="oAI-dZ-Riw"/>
                                        <constraint firstItem="7GZ-X8-dwC" firstAttribute="top" secondItem="qtJ-Db-Js8" secondAttribute="top" constant="62" id="oqf-Lg-A7y"/>
                                        <constraint firstItem="7GZ-X8-dwC" firstAttribute="top" secondItem="qtJ-Db-Js8" secondAttribute="top" constant="23" id="oqf-Lg-A7y"/>
                                        <constraint firstItem="yxM-ot-SxY" firstAttribute="leading" secondItem="7GZ-X8-dwC" secondAttribute="trailing" constant="20" id="pBF-MQ-B7c"/>
                                        <constraint firstItem="6lk-Nd-Tug" firstAttribute="top" secondItem="yxM-ot-SxY" secondAttribute="bottom" constant="6" id="pLj-ZU-af6"/>
                                        <constraint firstItem="6lk-Nd-Tug" firstAttribute="leading" secondItem="yxM-ot-SxY" secondAttribute="leading" id="quA-yY-YdL"/>
@@ -162,7 +234,7 @@
                                    </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="15P-Xn-N3C">
                                    <rect key="frame" x="30" y="219" width="65.333333333333329" height="22"/>
                                    <rect key="frame" x="30" y="173" width="65.333333333333329" height="22"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="22" id="kXr-dR-Nau"/>
                                    </constraints>
@@ -171,7 +243,7 @@
                                    <nil key="highlightedColor"/>
                                </label>
                                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="yBw-of-rdU">
                                    <rect key="frame" x="0.0" y="250" width="393" height="149"/>
                                    <rect key="frame" x="0.0" y="204" width="393" height="149"/>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="yBw-of-rdU" secondAttribute="height" multiplier="1:0.3794" id="hDC-rS-NDq"/>
@@ -184,7 +256,7 @@
                                    </collectionViewFlowLayout>
                                </collectionView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的券包" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GiC-Xf-dhQ">
                                    <rect key="frame" x="30" y="446" width="65.333333333333329" height="22"/>
                                    <rect key="frame" x="30" y="400" width="65.333333333333329" height="22"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="22" id="egh-AJ-1Zh"/>
                                    </constraints>
@@ -193,28 +265,23 @@
                                    <nil key="highlightedColor"/>
                                </label>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="-55" translatesAutoresizingMaskIntoConstraints="NO" id="3kA-cL-Ed9">
                                    <rect key="frame" x="0.0" y="479" width="393" height="460.33333333333326"/>
                                    <rect key="frame" x="0.0" y="433" width="393" height="283"/>
                                    <subviews>
                                        <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kte-Xd-tVd">
                                            <rect key="frame" x="0.0" y="0.0" width="393" height="257.66666666666669"/>
                                            <rect key="frame" x="0.0" y="0.0" width="393" height="283"/>
                                            <constraints>
                                                <constraint firstAttribute="width" secondItem="Kte-Xd-tVd" secondAttribute="height" multiplier="1:0.6554" id="9pS-AQ-07b"/>
                                                <constraint firstAttribute="width" secondItem="Kte-Xd-tVd" secondAttribute="height" multiplier="1:0.72" id="9pS-AQ-07b"/>
                                            </constraints>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" backgroundImage="bg_welfare_coupon"/>
                                        </button>
                                        <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qXG-5F-AcE">
                                            <rect key="frame" x="0.0" y="202.66666666666666" width="393" height="257.66666666666674"/>
                                            <constraints>
                                                <constraint firstAttribute="width" secondItem="qXG-5F-AcE" secondAttribute="height" multiplier="1:0.6554" id="ulO-xs-8Eb"/>
                                            </constraints>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" backgroundImage="bg_welfare_sup"/>
                                            <connections>
                                                <action selector="couponsAction:" destination="-1" eventType="touchUpInside" id="DXv-od-Hy1"/>
                                            </connections>
                                        </button>
                                    </subviews>
                                </stackView>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="线上商城" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z6m-j5-DLh">
                                    <rect key="frame" x="30" y="986.33333333333337" width="65.333333333333329" height="22"/>
                                    <rect key="frame" x="30" y="763" width="65.333333333333329" height="22"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="22" id="Rfd-bP-qtd"/>
                                    </constraints>
@@ -223,7 +290,7 @@
                                    <nil key="highlightedColor"/>
                                </label>
                                <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QmB-HQ-3Lg">
                                    <rect key="frame" x="0.0" y="1027.3333333333333" width="393" height="282"/>
                                    <rect key="frame" x="0.0" y="804" width="393" height="282.33333333333326"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="QmB-HQ-3Lg" secondAttribute="height" multiplier="1:0.7179" id="5Sz-EM-r1Q"/>
                                    </constraints>
@@ -231,7 +298,7 @@
                                    <state key="normal" backgroundImage="bg_welfare_shop"/>
                                </button>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="线上商城" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="01D-ex-NB6">
                                    <rect key="frame" x="40.999999999999993" y="1384.3333333333333" width="65.333333333333314" height="22"/>
                                    <rect key="frame" x="40.999999999999993" y="1161.3333333333333" width="65.333333333333314" height="22"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="22" id="cZB-Sn-Vhw"/>
                                    </constraints>
@@ -240,7 +307,7 @@
                                    <nil key="highlightedColor"/>
                                </label>
                                <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hBk-90-GU4">
                                    <rect key="frame" x="41" y="1425.3333333333333" width="311" height="203"/>
                                    <rect key="frame" x="41" y="1202.3333333333333" width="311" height="202.66666666666674"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="hBk-90-GU4" secondAttribute="height" multiplier="1:0.6525" id="iMt-GH-OCP"/>
                                    </constraints>
@@ -248,7 +315,7 @@
                                    <state key="normal" backgroundImage="bg_welfare"/>
                                </button>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="今日免费" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8KD-JW-do0">
                                    <rect key="frame" x="40.999999999999993" y="1663.3333333333333" width="65.333333333333314" height="22"/>
                                    <rect key="frame" x="40.999999999999993" y="1440" width="65.333333333333314" height="22"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="22" id="pc0-0u-NIz"/>
                                    </constraints>
@@ -257,7 +324,7 @@
                                    <nil key="highlightedColor"/>
                                </label>
                                <button opaque="NO" contentMode="scaleAspectFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="r4f-Ay-EGJ">
                                    <rect key="frame" x="41" y="1704.3333333333333" width="311" height="203"/>
                                    <rect key="frame" x="41" y="1481" width="311" height="203"/>
                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                    <state key="normal" backgroundImage="bg_welfare_today"/>
                                </button>
@@ -308,8 +375,8 @@
            </subviews>
            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
            <constraints>
                <constraint firstItem="Cgs-lB-S86" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="BAX-dN-dqT"/>
                <constraint firstItem="Cgs-lB-S86" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Gh1-ol-uEO"/>
                <constraint firstItem="Cgs-lB-S86" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" id="X63-OU-qKL"/>
                <constraint firstAttribute="bottomMargin" secondItem="Cgs-lB-S86" secondAttribute="bottom" id="Xbf-Ow-2d2"/>
                <constraint firstAttribute="trailing" secondItem="Cgs-lB-S86" secondAttribute="trailing" id="a9m-9W-Tsw"/>
            </constraints>
@@ -318,11 +385,11 @@
    </objects>
    <resources>
        <image name="bg_welfare" width="308" height="201"/>
        <image name="bg_welfare_coupon" width="390" height="256"/>
        <image name="bg_welfare_coupon" width="390" height="281"/>
        <image name="bg_welfare_shop" width="390" height="280"/>
        <image name="bg_welfare_sup" width="390" height="207"/>
        <image name="bg_welfare_today" width="308" height="201"/>
        <image name="icon_coin_tiny" width="14" height="14"/>
        <image name="icon_score" width="16" height="16"/>
        <image name="icon_vip_medal" width="16" height="16"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>