无故事王国
2024-07-19 9e7a1d7afb9bde58bc4aee7b381d24c3f7c763cf
fix bug
41个文件已修改
23个文件已删除
4个文件已添加
593 ■■■■ 已修改文件
DolphinEnglishLearnStudent.xcodeproj/project.pbxproj 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_abc.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_card.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_login.imageset/bg_login.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_login.imageset/bg_login@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_culture.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_listen.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/Contents.json 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_camera.imageset/Contents.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_camera.imageset/icon_camera@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/Contents.json 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_fail.imageset/Contents.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/Contents.json 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_code.imageset/Contents.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_code.imageset/icon_input_code@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_phone.imageset/Contents.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_phone.imageset/icon_input_phone@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/Contents.json 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/icon_logoff.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/icon_logoff@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more.imageset/Contents.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more.imageset/icon_more@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more_gray.imageset/Contents.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more_gray.imageset/icon_more_gray@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/Contents.json 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_search.imageset/Contents.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_search.imageset/icon_search@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/Contents.json 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_vip.imageset/Contents.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_vip.imageset/icon_vip@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Models/CommonModel.swift 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/CCell/ListenFight_Game_CCell.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/CCell/ListenFight_Game_CCell.xib 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenMenuVC.swift 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.swift 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/MeVC.swift 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/MeVC.xib 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/TCell/Home_1_TCell.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/VC/UserLoginOffVC.swift 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/VC/VIPCenterVC.swift 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/VC/VIPCenterVC.xib 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/View/ShareView.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Me/View/ShareView.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/SceneDelegate.swift 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Services/Services.swift 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent.xcodeproj/project.pbxproj
@@ -52,8 +52,8 @@
        1302789A2BFD9FBF00DDCE81 /* AddressManageTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278942BFD9FBF00DDCE81 /* AddressManageTCell.swift */; };
        1302789B2BFD9FBF00DDCE81 /* GoodsItemTCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130278952BFD9FBF00DDCE81 /* GoodsItemTCell.swift */; };
        130A2C812C07075B008463B2 /* ListenFight_Game_Pocket_CCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130A2C7F2C07075B008463B2 /* ListenFight_Game_Pocket_CCell.swift */; };
        130E97772C329E2700205207 /* VIPCenterVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 130E97762C329E2700205207 /* VIPCenterVC.xib */; };
        130E97782C329E2700205207 /* VIPCenterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130E97752C329E2700205207 /* VIPCenterVC.swift */; };
        131148792C4A135B001E0325 /* UserLoginOffVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131148782C4A135B001E0325 /* UserLoginOffVC.swift */; };
        1316A22E2C05CE5900BE6CAA /* GameBeginTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1316A22D2C05CE5900BE6CAA /* GameBeginTipView.swift */; };
        1316A2302C05CE6100BE6CAA /* GameBeginTipView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1316A22F2C05CE6100BE6CAA /* GameBeginTipView.xib */; };
        1319B0272C0818460052F889 /* HomeListenStory_1_VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1319B0262C0818460052F889 /* HomeListenStory_1_VC.swift */; };
@@ -172,7 +172,7 @@
        130278952BFD9FBF00DDCE81 /* GoodsItemTCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GoodsItemTCell.swift; sourceTree = "<group>"; };
        130A2C7F2C07075B008463B2 /* ListenFight_Game_Pocket_CCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListenFight_Game_Pocket_CCell.swift; sourceTree = "<group>"; };
        130E97752C329E2700205207 /* VIPCenterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VIPCenterVC.swift; sourceTree = "<group>"; };
        130E97762C329E2700205207 /* VIPCenterVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VIPCenterVC.xib; sourceTree = "<group>"; };
        131148782C4A135B001E0325 /* UserLoginOffVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserLoginOffVC.swift; sourceTree = "<group>"; };
        1316A22D2C05CE5900BE6CAA /* GameBeginTipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameBeginTipView.swift; sourceTree = "<group>"; };
        1316A22F2C05CE6100BE6CAA /* GameBeginTipView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GameBeginTipView.xib; sourceTree = "<group>"; };
        1319B0262C0818460052F889 /* HomeListenStory_1_VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeListenStory_1_VC.swift; sourceTree = "<group>"; };
@@ -439,9 +439,9 @@
                130278852BFD9F2A00DDCE81 /* AddressManageHandleVC.xib */,
                130278862BFD9F2A00DDCE81 /* AddressManageVC.swift */,
                130E97752C329E2700205207 /* VIPCenterVC.swift */,
                130E97762C329E2700205207 /* VIPCenterVC.xib */,
                134C54AF2C3785910009D09C /* ParentVerifiyView.swift */,
                134C54B12C37859D0009D09C /* ParentVerifiyView.xib */,
                131148782C4A135B001E0325 /* UserLoginOffVC.swift */,
            );
            path = VC;
            sourceTree = "<group>";
@@ -699,7 +699,6 @@
                13EEB8A52BFF353C002996FC /* HomeListen_process_TCell.xib in Resources */,
                13A830FA2C043A0600BB2F23 /* Lesson_3_AnswerView.xib in Resources */,
                1302785D2BFD985E00DDCE81 /* CommonInputView.xib in Resources */,
                130E97772C329E2700205207 /* VIPCenterVC.xib in Resources */,
                1302787A2BFD9ED600DDCE81 /* ExchangeResultVC.xib in Resources */,
                130278362BFD957300DDCE81 /* Base in Resources */,
                134C54B22C37859D0009D09C /* ParentVerifiyView.xib in Resources */,
@@ -806,6 +805,7 @@
                130E97782C329E2700205207 /* VIPCenterVC.swift in Sources */,
                13397D962C05EA9D003440F9 /* ListenFight_Game_CCell.swift in Sources */,
                13EEB8A42BFF353C002996FC /* HomeListen_process_TCell.swift in Sources */,
                131148792C4A135B001E0325 /* UserLoginOffVC.swift in Sources */,
                130278782BFD9ED600DDCE81 /* MarketVC.swift in Sources */,
                1302785E2BFD985E00DDCE81 /* CommonWebVC.swift in Sources */,
                13EEB8AB2BFF36E0002996FC /* HomeListenSubVC.swift in Sources */,
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_abc.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "bg_abc.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "bg_abc@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_card.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "bg_card.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "bg_card@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_login.imageset/bg_login.png

DolphinEnglishLearnStudent/Assets.xcassets/Bg/bg_login.imageset/bg_login@2x.png

DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "home_arrow_up.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "home_arrow_up@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_culture.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "home_culture.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "home_culture@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_listen.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "home_listen.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "home_listen@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/Contents.json
@@ -1,21 +1,6 @@
{
  "images" : [
    {
      "filename" : "dingweiweizhi.png",
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "filename" : "dingweiweizhi@2x.png",
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "filename" : "dingweiweizhi@3x.png",
      "idiom" : "iphone",
      "scale" : "3x"
    },
    {
      "filename" : "dingweiweizhi 1.png",
      "idiom" : "ipad",
      "scale" : "1x"
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_address.imageset/dingweiweizhi@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_camera.imageset/Contents.json
@@ -2,18 +2,13 @@
  "images" : [
    {
      "filename" : "xiangji1fill.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_camera@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "filename" : "icon_camera@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_camera.imageset/icon_camera@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/Contents.json
@@ -1,21 +1,6 @@
{
  "images" : [
    {
      "filename" : "record_one.png",
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "filename" : "record_one@2x.png",
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "filename" : "record_one@3x.png",
      "idiom" : "iphone",
      "scale" : "3x"
    },
    {
      "filename" : "icon_coin.png",
      "idiom" : "ipad",
      "scale" : "1x"
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_coin.imageset/record_one@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_fail.imageset/Contents.json
@@ -2,17 +2,13 @@
  "images" : [
    {
      "filename" : "icon_fail.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_fail@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/Contents.json
@@ -1,21 +1,6 @@
{
  "images" : [
    {
      "filename" : "modify_order.png",
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "filename" : "modify_order@2x.png",
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "filename" : "modify_order@3x.png",
      "idiom" : "iphone",
      "scale" : "3x"
    },
    {
      "filename" : "icon_feedback.png",
      "idiom" : "ipad",
      "scale" : "1x"
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_feedback.imageset/modify_order@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_code.imageset/Contents.json
@@ -2,18 +2,13 @@
  "images" : [
    {
      "filename" : "icon_input_code.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_input_code@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "filename" : "icon_input_code@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_code.imageset/icon_input_code@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_phone.imageset/Contents.json
@@ -2,18 +2,13 @@
  "images" : [
    {
      "filename" : "icon_input_phone.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_input_phone@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "filename" : "icon_input_phone@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_input_phone.imageset/icon_input_phone@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/Contents.json
New file
@@ -0,0 +1,18 @@
{
  "images" : [
    {
      "filename" : "icon_logoff.png",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_logoff@2x.png",
      "idiom" : "ipad",
      "scale" : "2x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/icon_logoff.png
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_logoff.imageset/icon_logoff@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more.imageset/Contents.json
@@ -2,18 +2,13 @@
  "images" : [
    {
      "filename" : "icon_more.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_more@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "filename" : "icon_more@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more.imageset/icon_more@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more_gray.imageset/Contents.json
@@ -2,18 +2,13 @@
  "images" : [
    {
      "filename" : "icon_more_gray.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "icon_more_gray@2x.png",
      "idiom" : "universal",
      "idiom" : "ipad",
      "scale" : "2x"
    },
    {
      "filename" : "icon_more_gray@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_more_gray.imageset/icon_more_gray@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/Contents.json
@@ -1,21 +1,6 @@
{
  "images" : [
    {
      "filename" : "shangchuanziliao.png",
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "filename" : "shangchuanziliao@2x.png",
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "filename" : "shangchuanziliao@3x.png",
      "idiom" : "iphone",
      "scale" : "3x"
    },
    {
      "filename" : "icon_record.png",
      "idiom" : "ipad",
      "scale" : "1x"
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_record.imageset/shangchuanziliao@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_search.imageset/Contents.json
@@ -11,7 +11,6 @@
      "scale" : "2x"
    },
    {
      "filename" : "icon_search@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_search.imageset/icon_search@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/Contents.json
@@ -1,21 +1,6 @@
{
  "images" : [
    {
      "filename" : "share.png",
      "idiom" : "iphone",
      "scale" : "1x"
    },
    {
      "filename" : "share@2x.png",
      "idiom" : "iphone",
      "scale" : "2x"
    },
    {
      "filename" : "share@3x.png",
      "idiom" : "iphone",
      "scale" : "3x"
    },
    {
      "filename" : "icon_share.png",
      "idiom" : "ipad",
      "scale" : "1x"
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_share.imageset/share@3x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_vip.imageset/Contents.json
@@ -11,7 +11,6 @@
      "scale" : "2x"
    },
    {
      "filename" : "icon_vip@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
DolphinEnglishLearnStudent/Assets.xcassets/Icon/icon_vip.imageset/icon_vip@3x.png
Binary files differ
DolphinEnglishLearnStudent/Models/CommonModel.swift
@@ -91,7 +91,7 @@
                var inventory: Int = 0
                var isDelete: Int = 0
                var name: String = ""
                var price: Int = 0
                var price: Double = 0
                var surplus: Int?
                var total: Int = 0
                var type: Int = 0
@@ -198,14 +198,15 @@
struct StudyGamesRecordModel:HandyJSON{
                var accuracy: Int = 0
                var createBy: String = ""
                var createTime: String = ""
                var time = ""
//                var createTime: String = ""
                var disabled: Bool = false
                var gameDifficulty: Int = 0
                var gameId: Int = 0
                var gameName: String = ""
                var id: Int = 0
                var updateBy: String = ""
                var updateTime: String = ""
//                var updateTime: String = ""
                var userId: Int = 0
                var useTime: Int = 0
}
DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib
@@ -26,19 +26,19 @@
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="logo" translatesAutoresizingMaskIntoConstraints="NO" id="3du-Pw-IgI">
                            <rect key="frame" x="70.5" y="40" width="144" height="136"/>
                        </imageView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="欢迎使用哆能智学!" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nUx-UB-L4X">
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="欢迎使用哆能智学!" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nUx-UB-L4X">
                            <rect key="frame" x="18" y="193" width="249" height="33.5"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="28"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oad-Jg-rwh">
                            <rect key="frame" x="18" y="238.5" width="189" height="47"/>
                            <rect key="frame" x="18" y="238.5" width="192.5" height="50.5"/>
                            <attributedString key="attributedText">
                                <fragment content="孩子自己就能学好的">
                                    <attributes>
                                        <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                        <font key="NSFont" size="21" name=".PingFangSC-Regular"/>
                                        <font key="NSFont" metaFont="system" size="21"/>
                                        <font key="NSOriginalFont" metaFont="system" size="21"/>
                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
                                    </attributes>
@@ -56,7 +56,7 @@
                                <fragment content="英语课程体系">
                                    <attributes>
                                        <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                        <font key="NSFont" size="21" name=".PingFangSC-Regular"/>
                                        <font key="NSFont" metaFont="system" size="21"/>
                                        <font key="NSOriginalFont" metaFont="system" size="21"/>
                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/>
                                    </attributes>
DolphinEnglishLearnStudent/Moudle/Home/Listen/CCell/ListenFight_Game_CCell.swift
@@ -14,6 +14,8 @@
                @IBOutlet weak var view_top: UIView!
                @IBOutlet weak var img_state: UIImageView!
                @IBOutlet weak var img_cover: UIImageView!
                @IBOutlet weak var view_grayHeiCons: NSLayoutConstraint!
                @IBOutlet weak var img_statusWeight: NSLayoutConstraint!
                
                override func awakeFromNib() {
        super.awakeFromNib()
@@ -93,5 +95,7 @@
                                super.layoutSubviews()
                                view_top.jq_addCorners(corner: [.topLeft,.topRight], radius: 8)
                                jq_cornerRadius = 8
                                view_grayHeiCons.constant = (self.width - 10) * 0.1667
                                img_statusWeight.constant = self.width * 0.2333
                }
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/CCell/ListenFight_Game_CCell.xib
@@ -3,7 +3,7 @@
    <device id="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
@@ -11,27 +11,27 @@
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="_ListenFight_Game_CCell" id="gTV-IL-0wX" customClass="ListenFight_Game_CCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="165" height="210"/>
            <rect key="frame" x="0.0" y="0.0" width="188" height="210"/>
            <autoresizingMask key="autoresizingMask"/>
            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                <rect key="frame" x="0.0" y="0.0" width="165" height="210"/>
                <rect key="frame" x="0.0" y="0.0" width="188" height="210"/>
                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YTs-C9-W1k">
                        <rect key="frame" x="5" y="5" width="155" height="200"/>
                        <rect key="frame" x="5" y="5" width="178" height="200"/>
                        <subviews>
                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mmn-Bf-5Vy">
                                <rect key="frame" x="0.0" y="0.0" width="155" height="40"/>
                                <rect key="frame" x="0.0" y="0.0" width="178" height="40"/>
                                <color key="backgroundColor" red="0.83137254901960778" green="0.82352941176470584" blue="0.80392156862745101" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="40" id="E9b-fE-KSJ"/>
                                </constraints>
                            </view>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qVZ-4r-nXX">
                                <rect key="frame" x="0.0" y="40" width="155" height="160"/>
                                <rect key="frame" x="0.0" y="40" width="178" height="160"/>
                            </imageView>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NUh-6J-pQi">
                                <rect key="frame" x="121" y="166" width="34" height="34"/>
                                <rect key="frame" x="144" y="166" width="34" height="34"/>
                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                <state key="normal" image="icon_fullScreen"/>
                                <connections>
@@ -39,9 +39,9 @@
                                </connections>
                            </button>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_success" translatesAutoresizingMaskIntoConstraints="NO" id="dMD-2P-QwE">
                                <rect key="frame" x="49.5" y="92" width="56" height="56"/>
                                <rect key="frame" x="61" y="72" width="56" height="56"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="56" id="StM-MP-u9g"/>
                                    <constraint firstAttribute="width" secondItem="dMD-2P-QwE" secondAttribute="height" multiplier="1:1" id="2wm-9Z-Pya"/>
                                    <constraint firstAttribute="width" constant="56" id="Y6Z-pZ-azs"/>
                                </constraints>
                            </imageView>
@@ -51,10 +51,8 @@
                            <constraint firstItem="Mmn-Bf-5Vy" firstAttribute="top" secondItem="YTs-C9-W1k" secondAttribute="top" id="1Sn-gn-FxE"/>
                            <constraint firstItem="dMD-2P-QwE" firstAttribute="centerX" secondItem="qVZ-4r-nXX" secondAttribute="centerX" id="4uB-mE-grS"/>
                            <constraint firstAttribute="trailing" secondItem="Mmn-Bf-5Vy" secondAttribute="trailing" id="5Nt-bJ-JBK"/>
                            <constraint firstItem="dMD-2P-QwE" firstAttribute="centerY" secondItem="qVZ-4r-nXX" secondAttribute="centerY" id="Ker-Ja-SCC"/>
                            <constraint firstAttribute="trailing" secondItem="NUh-6J-pQi" secondAttribute="trailing" id="LIg-1l-i3u"/>
                            <constraint firstAttribute="trailing" secondItem="qVZ-4r-nXX" secondAttribute="trailing" id="PZ7-rB-ouR"/>
                            <constraint firstItem="dMD-2P-QwE" firstAttribute="centerX" secondItem="qVZ-4r-nXX" secondAttribute="centerX" id="Pzl-qF-UtV"/>
                            <constraint firstItem="Mmn-Bf-5Vy" firstAttribute="leading" secondItem="YTs-C9-W1k" secondAttribute="leading" id="bJw-qs-aXN"/>
                            <constraint firstItem="qVZ-4r-nXX" firstAttribute="top" secondItem="Mmn-Bf-5Vy" secondAttribute="bottom" id="grT-zb-2jJ"/>
                            <constraint firstItem="qVZ-4r-nXX" firstAttribute="leading" secondItem="YTs-C9-W1k" secondAttribute="leading" id="sxq-IC-gv7"/>
@@ -68,17 +66,21 @@
            <constraints>
                <constraint firstItem="YTs-C9-W1k" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="7F2-TZ-ITp"/>
                <constraint firstAttribute="bottom" secondItem="YTs-C9-W1k" secondAttribute="bottom" constant="5" id="NS4-Iw-Buc"/>
                <constraint firstItem="dMD-2P-QwE" firstAttribute="centerY" secondItem="gTV-IL-0wX" secondAttribute="centerY" id="Qkf-97-Log"/>
                <constraint firstItem="YTs-C9-W1k" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="bKs-J5-I38"/>
                <constraint firstAttribute="trailing" secondItem="YTs-C9-W1k" secondAttribute="trailing" constant="5" id="bdG-vi-hhI"/>
                <constraint firstItem="dMD-2P-QwE" firstAttribute="centerX" secondItem="gTV-IL-0wX" secondAttribute="centerX" id="bix-z7-Q2c"/>
            </constraints>
            <size key="customSize" width="165" height="210"/>
            <size key="customSize" width="188" height="210"/>
            <connections>
                <outlet property="img_cover" destination="qVZ-4r-nXX" id="fI2-K0-BPL"/>
                <outlet property="img_state" destination="dMD-2P-QwE" id="asa-h2-2Ut"/>
                <outlet property="img_statusWeight" destination="Y6Z-pZ-azs" id="YwM-tq-IrW"/>
                <outlet property="view_container" destination="YTs-C9-W1k" id="SRu-Wj-Ued"/>
                <outlet property="view_grayHeiCons" destination="E9b-fE-KSJ" id="Q7d-qO-DRu"/>
                <outlet property="view_top" destination="Mmn-Bf-5Vy" id="Pdc-oD-g5f"/>
            </connections>
            <point key="canvasLocation" x="101.34146341463415" y="60.50847457627119"/>
            <point key="canvasLocation" x="109.7560975609756" y="60.50847457627119"/>
        </collectionViewCell>
    </objects>
    <resources>
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift
@@ -220,48 +220,48 @@
                                if let teamSchedule = teamScheduleModel{
                                                                viewModel.correctNum = viewModel.correctNum + teamSchedule.correctNumber
                                                                viewModel.errorNum = teamSchedule.answerNumber - teamSchedule.correctNumber
                                                viewModel.correctNum = viewModel.correctNum + teamSchedule.correctNumber
                                                viewModel.errorNum = teamSchedule.answerNumber - teamSchedule.correctNumber
                                                maxPage    = teamSchedule.schedule
                                                                let ids = (data as! ListenNewModel).data!.id.components(separatedBy: ",")
                                                                switch viewModel.listenType.value {
                                                                                case .lesson1:
                                                                                                let nextPage = floor(Double(maxPage) / 5.0)
                                                                                                pageVC.scroll(toPage: Int(nextPage), animation: false)
                                                                                                viewModel.answerCount.accept(maxPage)
                                                let ids = (data as! ListenNewModel).data!.id.components(separatedBy: ",")
                                                switch viewModel.listenType.value {
                                                                case .lesson1:
                                                                                let nextPage = floor(Double(maxPage) / 5.0)
                                                                                pageVC.scroll(toPage: Int(nextPage), animation: false)
                                                                                viewModel.answerCount.accept(maxPage)
                                                                                setPages()
                                                                case .lesson2:
                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                let page = min((maxPage - 1),maxCount)
                                                                                if pageVC.currentPage != page{
                                                                                                viewModel.currentPage.accept(page)
                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                setPages()
                                                                                }
                                                                                case .lesson2:
                                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                                                let page = min((maxPage - 1),maxCount)
                                                                                                if pageVC.currentPage != page{
                                                                                                                viewModel.currentPage.accept(page)
                                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                                setPages()
                                                                                                }
                                                                                case .lesson4:
                                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                                let page = min((maxPage - 1),maxCount)
                                                                                                if pageVC.currentPage != page{
                                                                                                                viewModel.currentPage.accept(page)
                                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                                setPages()
                                                                                                }
                                                                case .lesson4:
                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                let page = min((maxPage - 1),maxCount)
                                                                                if pageVC.currentPage != page{
                                                                                                viewModel.currentPage.accept(page)
                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                setPages()
                                                                                }
                                                                                case .lesson3,.lesson5:
                                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                                let page = min((maxPage - 1),maxCount)
                                                                                                if pageVC.currentPage != page{
                                                                                                                viewModel.currentPage.accept(page)
                                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                                setPages()
                                                                                                }
                                                                case .lesson3,.lesson5:
                                                                                let maxCount = (data as! ListenNewModel).subjectList.count
                                                                                let page = min((maxPage - 1),maxCount)
                                                                                if pageVC.currentPage != page{
                                                                                                viewModel.currentPage.accept(page)
                                                                                                pageVC.scroll(toPage: page, animation: false)
                                                                                                setPages()
                                                                                }
                                                                                default:break
                                                                }
                                                                default:break
                                                }
                                }
                }
@@ -397,18 +397,21 @@
                                switch viewModel.listenType.value{
                                                case .lesson1:
                                                                label_pageNum.text = "已完成:\(viewModel.answerCount.value)/\((data as! ListenNewModel).subjectList.flatMap({$0}).count)"
                                                                maxPage = max(viewModel.answerCount.value,maxPage)
//                                                                maxPage = max(viewModel.answerCount.value,maxPage)
                                                                maxPage = viewModel.answerCount.value
                                                                btn_forward.isHidden = viewModel.answerCount.value == 1
                                                case .lesson2,.lesson3,.lesson5:
                                                                label_pageNum.text = "已完成:\(viewModel.currentPage.value + 1)/\((data as! ListenNewModel).subjectList.count)"
                                                                btn_forward.isHidden = viewModel.currentPage.value == 0
                                                                let page = viewModel.currentPage.value + 1
                                                                maxPage = max(page,maxPage)
//                                                                maxPage = max(page,maxPage)
                                                                maxPage = page
                                                case .lesson4:
                                                                //两题为一组:需要/2
                                                                label_pageNum.text = "已完成:\(viewModel.currentPage.value + 1)/\((data as! ListenNewModel).subjectList.count)"
                                                                let page = viewModel.currentPage.value + 1
                                                                maxPage = max(page,maxPage)
//                                                                maxPage = max(page,maxPage)
                                                                maxPage = page
                                                case .game1,.game2:
                                                                btn_forward.isHidden = true
                                                                label_pageNum.isHidden = true
@@ -564,12 +567,12 @@
                                                                switch weakSelf.viewModel.listenType.value{
                                                                                case .lesson1,.lesson2,.lesson3,.lesson4,.lesson5:
                                                                                                                let totalNum = weakSelf.viewModel.correctNum + weakSelf.viewModel.errorNum
                                                                                                                Services.exitLearning(type:weakSelf.viewModel.listenType.value.rawValue,quarter: weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!, day: weakSelf.viewModel.day.value!, teamIds: temIds, topicIds: topicIds,answerNumber: totalNum,correctNumber:weakSelf.viewModel.correctNum,studyTime:weakSelf.viewModel.times,schedule: weakSelf.maxPage).subscribe(onNext: { data in
                                                                                                let totalNum = weakSelf.viewModel.correctNum + weakSelf.viewModel.errorNum
                                                                                                Services.exitLearning(type:weakSelf.viewModel.listenType.value.rawValue,quarter: weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!, day: weakSelf.viewModel.day.value!, teamIds: temIds, topicIds: topicIds,answerNumber: totalNum,correctNumber:weakSelf.viewModel.correctNum,studyTime:weakSelf.viewModel.times,schedule: weakSelf.maxPage).subscribe(onNext: { data in
                                                                                                                                NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil)
                                                                                                                NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil)
                                                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                                case .game1,.game2,.story1,.story2:
                                                                                                Services.exitGameOrStory(studyTime: weakSelf.viewModel.times).subscribe(onNext: { _ in
@@ -642,9 +645,9 @@
                                if viewModel.listenType.value == .lesson1{
                                                let currentVC = pageVC.currentController as! HomeListenFight_lesson_1_VC
//                                                if (viewModel.answerCount.value - 1 ) % 4 != 0 || viewModel.answerCount.value <= 4{
                                                                currentVC.tobefore();return
//                                                }
                                                //                                                if (viewModel.answerCount.value - 1 ) % 4 != 0 || viewModel.answerCount.value <= 4{
                                                currentVC.tobefore();return
                                                //                                                }
                                }
                                if viewModel.listenType.value == .lesson3{
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
@@ -299,6 +299,7 @@
                                                                }
                                                case .fail:
                                                                self.view.isUserInteractionEnabled = false
                                                                UIView.animate(withDuration: 0.4) {
                                                                                tempSubV?.img_state.alpha = 1
                                                                }completion: { _ in
@@ -309,6 +310,7 @@
                                                                                DispatchQueue.main.asyncAfter(deadline: .now()+3.2) {
                                                                                                self.setAnswerStackView()
                                                                                                self.view.isUserInteractionEnabled = true
                                                                                }
                                                                }
                                                case .none:
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenMenuVC.swift
@@ -56,11 +56,22 @@
extension HomeListenMenuVC:UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
                func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
                                var ind:Bool?
                                if selectIndexPath.row != 0{
                                                ind = dataItems[selectIndexPath.row - 1].filter({$0.canStudy == 0}).count > 0
                                }
                                if ind == true{
                                                CommonAlertView.show(isSinple: true, content: "请先完成上一季度学习后再试")
                                                return
                                }
                                let model = dataItems[selectIndexPath.row][indexPath.row]
                                // 暂时关闭,上线时开启
                                guard model.canStudy == 1 else {
                                                CommonAlertView.show(isSinple: true, content: "请先完成上一周练习")
                                                CommonAlertView.show(isSinple: true, content: "请先完成上一周目学习后再试")
                                                return
                                }
@@ -71,7 +82,6 @@
                                                                studyScheduleModel = m
                                                }
                                                let quarter = weakSelf.selectIndexPath.row + 1 //季度
                                                let week = studyScheduleModel.week //周
                                                let vc = HomeListenVC(quarter: quarter, week: model.week,studyScheduleModel: studyScheduleModel)
                                                weakSelf.push(vc: vc)
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift
@@ -52,9 +52,17 @@
                override func viewDidLoad() {
                                super.viewDidLoad()
                                refreshDay()
                                Services.onlineDuration().subscribe(onNext: { data in
                                                if let time = data.data{
                                                                sceneDelegate?.globalTimeval = time
                                                }
                                }).disposed(by: disposeBag)
                }
                private func refreshDay(){
                                self.limitDay = studyScheduleModel.day
                                let total = studyScheduleModel.pair + studyScheduleModel.induction + studyScheduleModel.listen + studyScheduleModel.look + studyScheduleModel.answer
@@ -62,23 +70,24 @@
                                                self.limitDay = Int.max
                                }
                                #if DEBUG
                                                self.limitDay = Int.max
                                #endif
                                //                                #if DEBUG
                                //                                                self.limitDay = Int.max
                                //                                #endif
                                for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
                                                if let btn = titleL as?  UIButton{
                                                                btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                                                                self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                                                                if index == 6{ //听故事,单独使用
                                                                                btn.setTitleColor(.black, for: .normal)
                                                                                self.menu.setEnabled(true, forItemAt: UInt(index))
                                                                }else{
                                                                                btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                                                                                self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                                                                }
                                                }
                                }
                                self.pageVC.reloadData()
                                Services.onlineDuration().subscribe(onNext: { data in
                                                if let time = data.data{
                                                                sceneDelegate?.globalTimeval = time
                                                }
                                }).disposed(by: disposeBag)
                                self.pageVC.scroll(toPage: self.limitDay - 1, animation: true)
                }
                override func setUI() {
@@ -146,6 +155,10 @@
                                                                                subVC.studyScheduleModel = weakSelf.studyScheduleModel
                                                                                subVC.tableView.reloadData()
                                                                }
                                                                weakSelf.refreshDay()
                                                }).disposed(by: weakSelf.disposeBag)
                                }).disposed(by: disposeBag)
                }
DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift
@@ -182,10 +182,6 @@
                private func backAction(){
                                for vc in navigationController?.viewControllers ?? []{
                                                if vc.isKind(of: HomeListenMenuVC.self){
                                                                navigationController?.popToViewController(vc, animated: true);break
                                                }
                                                if vc.isKind(of: HomeListenVC.self){
                                                                navigationController?.popToViewController(vc, animated: true);break
                                                }
DolphinEnglishLearnStudent/Moudle/Market/CCell/MarketCCell.swift
@@ -30,7 +30,7 @@
                                                                label_originPrice.isHidden = m.price <= 0
                                                                if !label_originPrice.isHidden{
                                                                                label_originPrice.attributedText = AttributedStringbuilder.build().add(string: "¥\(m.price)", withFont: UIFont.init(name: "Impact", size: 14) ?? .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexString: "#9A9A9A")!).delLine(color: UIColor(hexString: "#9A9A9A")!).mutableAttributedString
                                                                                label_originPrice.attributedText = AttributedStringbuilder.build().add(string: "¥\(m.price.jq_formatFloat)", withFont: UIFont.init(name: "Impact", size: 14) ?? .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexString: "#9A9A9A")!).delLine(color: UIColor(hexString: "#9A9A9A")!).mutableAttributedString
                                                                }
                                                }
                                }
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketContentVC.swift
@@ -86,7 +86,7 @@
                                                                self?.label_originPrice.isHidden = m.good!.price <= 0
                                                                if !(self?.label_originPrice.isHidden ?? false){
                                                                                self?.label_originPrice.attributedText = AttributedStringbuilder.build().add(string: "¥\(m.good!.price)", withFont: UIFont.init(name: "Impact", size: 14) ?? .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexString: "#9A9A9A")!).delLine(color: UIColor(hexString: "#9A9A9A")!).mutableAttributedString
                                                                                self?.label_originPrice.attributedText = AttributedStringbuilder.build().add(string: "¥\(m.good!.price.jq_formatFloat)", withFont: UIFont.init(name: "Impact", size: 14) ?? .systemFont(ofSize: 14, weight: .medium), withColor: UIColor(hexString: "#9A9A9A")!).delLine(color: UIColor(hexString: "#9A9A9A")!).mutableAttributedString
                                                                }
                                                }
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.swift
@@ -46,14 +46,6 @@
                                label_orderNum.text =  viewModel.detailModel.value?.orderNumber ?? ""
//                                Services.redeemNow(goodId: viewModel.detailModel.value!.good!.id).subscribe(onNext: {result in
//                                                result.data?.orderNumber ?? ""
//                                                self.viewModel.detailModel.accept(result.data)
//                                }) { error in
//                                                self.btn_exchange.backgroundColor = .gray.withAlphaComponent(0.5)
//                                                self.btn_exchange.isEnabled = false
//                                }.disposed(by: disposeBag)
                                Services.addressList().subscribe(onNext: {[weak self]result in
                                                self?.viewModel.address.accept(result.data ?? [])
DolphinEnglishLearnStudent/Moudle/Me/MeVC.swift
@@ -16,6 +16,7 @@
                @IBOutlet weak var btn_exchangeRecord: QMUIButton!
                @IBOutlet weak var btn_share: QMUIButton!
                @IBOutlet weak var btn_etudyRecord: QMUIButton!
                @IBOutlet weak var btn_loginoff: QMUIButton!
                @IBOutlet weak var imge_cover: UIImageView!
                @IBOutlet weak var label_name: UILabel!
                @IBOutlet weak var label_info: UILabel!
@@ -33,12 +34,14 @@
                                btn_exchangeRecord.spacingBetweenImageAndTitle = 11
                                btn_share.spacingBetweenImageAndTitle = 11
                                btn_etudyRecord.spacingBetweenImageAndTitle = 11
                                btn_loginoff.spacingBetweenImageAndTitle = 11
                                btn_address.imagePosition = .top
                                btn_coinRecord.imagePosition = .top
                                btn_exchangeRecord.imagePosition = .top
                                btn_share.imagePosition = .top
                                btn_etudyRecord.imagePosition = .top
                                btn_loginoff.imagePosition = .top
                }
@@ -116,6 +119,13 @@
                                }
                }
                @IBAction func loginoffAction(_ sender: UIButton) {
                                let vc = UserLoginOffVC()
                                vc.title = "注销账号"
                                push(vc: vc)
                }
                @IBAction func becomeVIPAction(_ sender: Any) {
                                let vc = VIPCenterVC()
                                vc.title = "会员中心"
DolphinEnglishLearnStudent/Moudle/Me/MeVC.xib
@@ -3,7 +3,7 @@
    <device id="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
        <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"/>
@@ -15,6 +15,7 @@
                <outlet property="btn_coinRecord" destination="mty-Gt-zOb" id="oj9-Zv-p4Z"/>
                <outlet property="btn_etudyRecord" destination="0pk-gO-3Qh" id="SeS-bo-pn4"/>
                <outlet property="btn_exchangeRecord" destination="uH5-eT-V9Z" id="8gd-zT-JND"/>
                <outlet property="btn_loginoff" destination="w9Z-R2-U3h" id="P7o-KM-Vnz"/>
                <outlet property="btn_share" destination="gtG-mF-MKi" id="ejw-y9-ugq"/>
                <outlet property="imge_cover" destination="qXF-FL-HEr" id="fG7-3a-cHy"/>
                <outlet property="label_info" destination="LJb-Ki-p3S" id="88F-Ay-1nv"/>
@@ -99,7 +100,7 @@
                                    <rect key="frame" x="0.0" y="0.0" width="868" height="158"/>
                                    <subviews>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gcd-Sg-l2C" customClass="QMUIButton">
                                            <rect key="frame" x="0.0" y="0.0" width="173.5" height="158"/>
                                            <rect key="frame" x="0.0" y="0.0" width="144.5" height="158"/>
                                            <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="地址管理" image="icon_address">
@@ -110,7 +111,7 @@
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mty-Gt-zOb" customClass="QMUIButton">
                                            <rect key="frame" x="173.5" y="0.0" width="173.5" height="158"/>
                                            <rect key="frame" x="144.5" y="0.0" width="145" height="158"/>
                                            <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="积分明细" image="icon_coin">
@@ -121,7 +122,7 @@
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uH5-eT-V9Z" customClass="QMUIButton">
                                            <rect key="frame" x="347" y="0.0" width="174" height="158"/>
                                            <rect key="frame" x="289.5" y="0.0" width="144.5" height="158"/>
                                            <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="兑换记录" image="icon_record">
@@ -132,7 +133,7 @@
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0pk-gO-3Qh" customClass="QMUIButton">
                                            <rect key="frame" x="521" y="0.0" width="173.5" height="158"/>
                                            <rect key="frame" x="434" y="0.0" width="144.5" height="158"/>
                                            <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="学习记录" image="icon_feedback">
@@ -143,7 +144,7 @@
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gtG-mF-MKi" customClass="QMUIButton">
                                            <rect key="frame" x="694.5" y="0.0" width="173.5" height="158"/>
                                            <rect key="frame" x="578.5" y="0.0" width="145" height="158"/>
                                            <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="分享好友" image="icon_share">
@@ -151,6 +152,17 @@
                                            </state>
                                            <connections>
                                                <action selector="shareAction:" destination="-1" eventType="touchUpInside" id="mmm-mt-qBh"/>
                                            </connections>
                                        </button>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="w9Z-R2-U3h" customClass="QMUIButton">
                                            <rect key="frame" x="723.5" y="0.0" width="144.5" height="158"/>
                                            <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="注销账号" image="icon_logoff">
                                                <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.75" colorSpace="custom" customColorSpace="sRGB"/>
                                            </state>
                                            <connections>
                                                <action selector="loginoffAction:" destination="-1" eventType="touchUpInside" id="OTO-aO-oAB"/>
                                            </connections>
                                        </button>
                                    </subviews>
@@ -214,6 +226,7 @@
        <image name="icon_address" width="39" height="36"/>
        <image name="icon_coin" width="36" height="39"/>
        <image name="icon_feedback" width="34" height="39"/>
        <image name="icon_logoff" width="39" height="34"/>
        <image name="icon_record" width="34" height="35"/>
        <image name="icon_share" width="30" height="39"/>
        <systemColor name="systemBackgroundColor">
DolphinEnglishLearnStudent/Moudle/Me/TCell/Home_1_TCell.swift
@@ -26,7 +26,7 @@
                var studyGamesRecordModel:StudyGamesRecordModel!{
                                didSet{
                                                label_1.text = studyGamesRecordModel.createTime
                                                label_1.text = studyGamesRecordModel.time
                                                label_2.text = studyGamesRecordModel.gameName
                                                let date = Date.JQ_secondToDate(interval: studyGamesRecordModel.useTime)
                                                var emuple = [String]()
DolphinEnglishLearnStudent/Moudle/Me/VC/UserLoginOffVC.swift
New file
@@ -0,0 +1,104 @@
//
//  UserLoginOffVC.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/7/19.
//
import UIKit
import WebKit
class UserLoginOffVC: BaseVC {
                private var btn_loginOff:UIButton!
                private var webView:WKWebView!
                private var timer:Timer?
                private var times = 10
                override func viewDidLoad() {
                                super.viewDidLoad()
                                yy_popBlock = {[weak self] () in
                                                guard let weakSelf = self else { return }
                                                var toVC:UIViewController?
                                                for subVC in weakSelf.navigationController?.viewControllers ?? []{
                                                                if subVC.isKind(of: HomeListenVC.self){
                                                                                toVC = subVC;break
                                                                }
                                                }
                                                if toVC != nil{
                                                                weakSelf.navigationController?.popToViewController(toVC!, animated: true)
                                                }else{
                                                                weakSelf.navigationController?.popViewController(animated: true)
                                                }
                                }
                                Services.getAgreement(type: .logout).subscribe(onNext: {data in
                                                if let stringHTML = data.data{
                                                                self.webView.loadHTMLString(stringHTML.jq_wrapHtml(edge: UIEdgeInsets(top: 0, left: 10, bottom: 3, right: 0)), baseURL: nil)
                                                }
                                }).disposed(by: disposeBag)
                                timer =    Timer(timeInterval: 1, repeats: true) {[weak self] timer in
                                                guard let weakSelf = self else { return }
                                                weakSelf.times -= 1
                                                weakSelf.btn_loginOff.setTitle("注销账号(\(weakSelf.times)s)", for: .normal)
                                                if weakSelf.times <= 0{
                                                                print("----进入")
                                                                weakSelf.btn_loginOff.isEnabled = true
                                                                weakSelf.btn_loginOff.setTitle("注销账号", for: .normal)
                                                                weakSelf.btn_loginOff.backgroundColor = UIColor(hexStr: "#41A2EB")
                                                                weakSelf.timer?.invalidate()
                                                }
                                }
                                timer?.fire()
                                RunLoop.current.add(timer!, forMode: .common)
                }
                override func viewDidDisappear(_ animated: Bool) {
                                super.viewDidDisappear(animated)
                                self.timer?.invalidate()
                                self.timer = nil
                }
                override func setUI() {
                                view.backgroundColor = .white
                                webView = WKWebView(frame: .zero)
                                view.addSubview(webView)
                                webView.snp.makeConstraints { make in
                                                make.left.right.top.equalToSuperview()
                                                make.bottom.equalToSuperview().offset(-150)
                                }
                                btn_loginOff = UIButton(type: .custom)
                                btn_loginOff.setTitle("注销账号", for: .normal)
                                btn_loginOff.setTitleColor(.white, for: .normal)
                                btn_loginOff.isEnabled = false
                                btn_loginOff.backgroundColor = UIColor(hexStr: "#41A2EB")
                                btn_loginOff.titleLabel?.font = .systemFont(ofSize: 16, weight: .medium)
                                btn_loginOff.addTarget(self, action: #selector(loginOffAction), for: .touchUpInside)
                                btn_loginOff.jq_cornerRadius = 8
                                view.addSubview(btn_loginOff)
                                btn_loginOff.snp.makeConstraints { make in
                                                make.width.equalTo(316)
                                                make.height.equalTo(49)
                                                make.bottom.equalTo(-91)
                                                make.centerX.equalToSuperview()
                                }
                }
                @objc func loginOffAction(){
                                CommonAlertView.show(content: "确认注销当前登录账户吗?", completeTitle: "确认") {[weak self] () in
                                                guard let weakSelf = self else { return }
                                                Services.loginOff().subscribe(onNext: {data in
                                                                sceneDelegate?.needLogin()
                                                }).disposed(by: weakSelf.disposeBag)
                                } cancelClouse: {
                                }
                }
}
DolphinEnglishLearnStudent/Moudle/Me/VC/VIPCenterVC.swift
@@ -41,11 +41,12 @@
                override func setUI() {
                                view.backgroundColor = .white
                                webView = WKWebView(frame: .zero)
                                webView.scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 120, right: 0)
                                view.addSubview(webView)
                                webView.snp.makeConstraints { make in
                                                make.edges.equalToSuperview()
                                                make.left.right.top.equalToSuperview()
                                                make.bottom.equalToSuperview().offset(-150)
                                }
DolphinEnglishLearnStudent/Moudle/Me/VC/VIPCenterVC.xib
File was deleted
DolphinEnglishLearnStudent/Moudle/Me/View/ShareView.swift
@@ -77,7 +77,7 @@
                                                                                guard error == nil else {alert(msg: "图片获取失败");return}
                                                                                if scene == WXSceneSession{
                                                                                                WeChatTools.shareUrl("https://dollearn.com/", title:"海豚智能教育平台" , desc: m.title, thumb: iamge!, scene: scene)
                                                                                                WeChatTools.shareUrl("https://dollearn.com/", title:"哆能智学教育平台" , desc: m.title, thumb: iamge!, scene: scene)
                                                                                }else{
                                                                                                WeChatTools.shareUrl("https://dollearn.com/", title:m.title, desc: "", thumb: iamge!, scene: scene)
                                                                                }
DolphinEnglishLearnStudent/Moudle/Me/View/ShareView.xib
@@ -3,7 +3,7 @@
    <device id="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
        <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"/>
@@ -85,7 +85,7 @@
                                <constraint firstAttribute="width" constant="156" id="4R7-c1-eC7"/>
                            </constraints>
                        </imageView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="海豚智能教育平台" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hww-QI-7F9">
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="哆能智学教育平台" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hww-QI-7F9">
                            <rect key="frame" x="195" y="39" width="147" height="21.5"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="calibratedRGB"/>
@@ -146,7 +146,7 @@
        </view>
    </objects>
    <resources>
        <image name="bg_login" width="296" height="129"/>
        <image name="bg_login" width="296" height="119.5"/>
        <image name="btn_close_circle" width="26" height="26"/>
        <image name="share_wx" width="50" height="50"/>
        <image name="share_wxFri" width="51" height="51"/>
DolphinEnglishLearnStudent/SceneDelegate.swift
@@ -114,6 +114,7 @@
                }
                func startTimer(){
                                print("答题:开始计时-开始")
                                guard let timeval = globalTimeval  else {return}
                                timer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) {[weak self] timer in
@@ -121,11 +122,13 @@
                                                if let v = UserDefaults.standard.object(forKey: "scheduledTimer") as? TimeInterval{
                                                                if Date().timeIntervalSince1970 - v > Double(timeval) * 60.0{
                                                                                Services.giveIntegral().subscribe(onNext: { _ in
                                                                                                print("答题:开始计时-调用")
                                                                                                UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: "scheduledTimer")
                                                                                                UserDefaults.standard.synchronize()
                                                                                }).disposed(by: weakSelf.disposeBag)
                                                                }
                                                }else{
                                                                print("答题:开始计时-调用(计时)")
                                                                UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: "scheduledTimer")
                                                                UserDefaults.standard.synchronize()
                                                }
@@ -135,6 +138,7 @@
                }
                func suspendTimer(){
                                print("答题:开始计时-调用(停止)")
                                timer?.fireDate = .distantFuture
                                timer = nil
                                UserDefaults.standard.set(nil, forKey: "scheduledTimer")
DolphinEnglishLearnStudent/Services/Services.swift
@@ -396,6 +396,12 @@
                                params.interface(url: "/study/base/user/vipInfoStudy")
                                return NetworkRequest.request(params: params, method: .post, progress: false)
                }
                class func loginOff()->Observable<BaseResponse<SimpleModel>>{
                                let params = ParamsAppender.build(url: All_Url)
                                params.interface(url: "/study/base/user/deleteUserStudy")
                                return NetworkRequest.request(params: params, method: .post, progress: true)
                }
}
extension Services{