UI界面开发
authorliangzhenying <867174124@qq.com>
Sat, 16 Aug 2025 02:32:29 +0000 (10:32 +0800)
committerliangzhenying <867174124@qq.com>
Sat, 16 Aug 2025 02:32:29 +0000 (10:32 +0800)
410 files changed:
ShenYin/Podfile.lock
ShenYin/ShenYin/Api/HttpClient.swift
ShenYin/ShenYin/AppDelegate.swift
ShenYin/ShenYin/Assets.xcassets/New Folder/Contents.json [moved from ShenYin/ShenYin/Assets.xcassets/an/Contents.json with 100% similarity]
ShenYin/ShenYin/Assets.xcassets/an/bg_base.imageset/bg_base.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/bg_login.imageset/bg_login.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order.imageset/bg_mine_order.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order2.imageset/bg_mine_order2.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/bg_splash.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/dialog_bg.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/dialog_bg_2.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/ic_ai_config.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/ic_break.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/ic_check.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/ic_connect_link.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/ic_connect_log.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/ic_connect_log1.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/ic_connect_product.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/ic_connect_product1.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/ic_device_set.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/ic_dui.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/ic_edit.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/ic_false.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/ic_finger.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/ic_home_add.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/ic_home_home.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/ic_home_home_sel.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/ic_home_mine.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/ic_home_mine_sel.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/ic_home_nodevice.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/ic_home_scan.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/ic_home_tv.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/ic_link.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/ic_linked.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/ic_logo.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/ic_mac.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/ic_man.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/ic_mine_1.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/ic_mine_2.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/ic_mine_3.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/ic_more.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/ic_more2.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/ic_msg_recoder.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/ic_nopub.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/ic_power.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/ic_product.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/ic_remainber.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/ic_role.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/ic_scam.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/ic_seach.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/ic_speak.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/ic_speek.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/ic_sure.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/ic_tip.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/ic_unlink.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/ic_user.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/ic_vip_year.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/ic_voice.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/ic_voice_jia.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/ic_voice_jian.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/ic_wifi1.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/ic_wifi2.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/ic_wifi3.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/ic_wifi4.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/ic_woman.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/ic_yinse.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/loading.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/splash_tv.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/customer/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (3).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (4).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2400.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2401.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2255.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2256.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 2.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Contents.json [moved from ShenYin/ShenYin/Assets.xcassets/an/bg_base.imageset/Contents.json with 79% similarity]
ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame(1).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@2x(1).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@3x(1).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame(2).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@2x(2).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@3x(2).png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Contents.json
ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985 (1).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/ic_back.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Contents.json
ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024 (1).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Contents.json [moved from ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order.imageset/Contents.json with 79% similarity]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Contents.json
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Contents.json [moved from ShenYin/ShenYin/Assets.xcassets/an/bg_login.imageset/Contents.json with 79% similarity]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Contents.json [moved from ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order2.imageset/Contents.json with 80% similarity]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/ic_msg.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Contents.json [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@2x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@3x.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Contents.json
ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (1).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (2).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/ic_set.png [deleted file]
ShenYin/ShenYin/Assets.xcassets/mode/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254 (1).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2249-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2250.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2251.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2249.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2250.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2251.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2252.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1 1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2252.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2253.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253 (1).png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Contents.json [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2253.png [new file with mode: 0644]
ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2254.png [new file with mode: 0644]
ShenYin/ShenYin/Ble/BlueToothViewModel.swift
ShenYin/ShenYin/Resource/colors/Colors+YL.swift
ShenYin/ShenYin/Resource/colors/Colors.swift
ShenYin/ShenYin/SceneDelegate.swift
ShenYin/ShenYin/Tools/BaseSizeMacro.swift
ShenYin/ShenYin/Tools/Date.swift [new file with mode: 0644]
ShenYin/ShenYin/Tools/LogManager.swift
ShenYin/ShenYin/Tools/Logs.swift [deleted file]
ShenYin/ShenYin/UI/Base/AppManager.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Base/BaseNavigation.swift
ShenYin/ShenYin/UI/Base/BasePresentView.swift
ShenYin/ShenYin/UI/Base/BaseTC.swift
ShenYin/ShenYin/UI/Base/BaseVC.swift
ShenYin/ShenYin/UI/Base/LogVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Customer/CustomerVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/CallingRecordVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/ChatVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Chinese2EnglishVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/DialogTranlateVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/FieldRecordingVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryBottonView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryFontVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordCell.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordShareVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HistoryRecord/SelecteCell.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/HomeVC.swift [deleted file]
ShenYin/ShenYin/UI/Home/RecordTranslateVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/RoleListVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Root/CurrentDeviceView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Root/HomeBottomView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Root/HomeFunctionView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Root/HomeHeadView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/Root/HomeVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Home/TextTranslateVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/AboutVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/DeviceInfoVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/FeekbackVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/LanguageVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/Login/AgreeView.swift
ShenYin/ShenYin/UI/Mine/Login/CodeView.swift
ShenYin/ShenYin/UI/Mine/Login/ForgetVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/Login/LoginVC.swift
ShenYin/ShenYin/UI/Mine/Login/PhoneView.swift
ShenYin/ShenYin/UI/Mine/Login/RegisterVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/Root/MineCell.swift
ShenYin/ShenYin/UI/Mine/Root/MineHeaderView.swift
ShenYin/ShenYin/UI/Mine/Root/MineNavBar.swift
ShenYin/ShenYin/UI/Mine/Root/MineOrderView.swift
ShenYin/ShenYin/UI/Mine/Root/MineUserInfoView.swift
ShenYin/ShenYin/UI/Mine/Root/MineVC.swift
ShenYin/ShenYin/UI/Mine/UpdateVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mine/UserInfo/UserInfoCell.swift
ShenYin/ShenYin/UI/Mine/UserInfo/UserInfoSectionHeader.swift
ShenYin/ShenYin/UI/Mine/UserInfo/UserInfoVC.swift
ShenYin/ShenYin/UI/Mine/UserManagerVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mode/ModeControView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mode/ModeEffectsView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mode/ModeFindView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mode/ModeListView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Mode/ModeVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Scan/AddDeviceVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Scan/BleScanVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Sleep/MessageListView.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Sleep/SleepPageVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/Sleep/SleepVC.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/common/CustomButton.swift
ShenYin/ShenYin/UI/common/CustomPicker.swift [new file with mode: 0644]
ShenYin/ShenYin/UI/common/RecordTranslateTipsView.swift [new file with mode: 0644]
ShenYin/podfile

index 85d0898..d8d9fd7 100644 (file)
@@ -1,6 +1,7 @@
 PODS:
   - Alamofire (5.10.2)
   - FDFullscreenPopGesture (1.1)
+  - FSPagerView (0.8.3)
   - HandyJSON (5.0.2)
   - IQKeyboardCore (1.0.5)
   - IQKeyboardManagerSwift (8.0.1):
@@ -42,6 +43,8 @@ PODS:
     - IQKeyboardCore
   - IQTextView (1.0.5):
     - IQKeyboardToolbar/Placeholderable
+  - JXPagingView/Paging (2.1.3)
+  - JXSegmentedView (1.4.1)
   - Kingfisher (6.3.1)
   - MJRefresh (3.7.9)
   - Moya (15.0.0):
@@ -60,6 +63,7 @@ PODS:
   - SVProgressHUD/Core (2.3.1)
   - SwiftDate (7.0.0)
   - swiftScan (1.2.1)
+  - TabPageViewController (0.2.8)
   - TZImagePickerController (3.8.9):
     - TZImagePickerController/Basic (= 3.8.9)
     - TZImagePickerController/Location (= 3.8.9)
@@ -71,8 +75,11 @@ PODS:
 
 DEPENDENCIES:
   - FDFullscreenPopGesture
+  - FSPagerView
   - HandyJSON
   - IQKeyboardManagerSwift
+  - JXPagingView/Paging
+  - JXSegmentedView
   - Kingfisher (~> 6.0)
   - MJRefresh
   - Moya
@@ -82,6 +89,7 @@ DEPENDENCIES:
   - SVProgressHUD
   - SwiftDate
   - swiftScan
+  - TabPageViewController
   - TZImagePickerController
   - TZScrollViewPopGesture
   - YYModel
@@ -91,6 +99,7 @@ SPEC REPOS:
   https://gitee.com/mirrors/CocoaPods-Specs.git:
     - Alamofire
     - FDFullscreenPopGesture
+    - FSPagerView
     - HandyJSON
     - IQKeyboardCore
     - IQKeyboardManagerSwift
@@ -100,6 +109,8 @@ SPEC REPOS:
     - IQKeyboardToolbarManager
     - IQTextInputViewNotification
     - IQTextView
+    - JXPagingView
+    - JXSegmentedView
     - Kingfisher
     - MJRefresh
     - Moya
@@ -110,6 +121,7 @@ SPEC REPOS:
     - SVProgressHUD
     - SwiftDate
     - swiftScan
+    - TabPageViewController
     - TZImagePickerController
     - TZScrollViewPopGesture
     - YYModel
@@ -118,6 +130,7 @@ SPEC REPOS:
 SPEC CHECKSUMS:
   Alamofire: 7193b3b92c74a07f85569e1a6c4f4237291e7496
   FDFullscreenPopGesture: a8a620179e3d9c40e8e00256dcee1c1a27c6d0f0
+  FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
   HandyJSON: 9e4e236f5d2dbefad5155a77417bbea438201c03
   IQKeyboardCore: 28c8bf3bcd8ba5aa1570b318cbc4da94b861711e
   IQKeyboardManagerSwift: 835fc9c6e4732398113406d84900ad2e8f141218
@@ -127,6 +140,8 @@ SPEC CHECKSUMS:
   IQKeyboardToolbarManager: 6c693c8478d6327a7ef2107528d29698b3514dbb
   IQTextInputViewNotification: f5e954d8881fd9808b744e49e024cc0d4bcfe572
   IQTextView: ae13b4922f22e6f027f62c557d9f4f236b19d5c7
+  JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e
+  JXSegmentedView: cd73555ce2134d1656db2cb383ba9c2f36fb5078
   Kingfisher: 016c8b653a35add51dd34a3aba36b580041acc74
   MJRefresh: ff9e531227924c84ce459338414550a05d2aea78
   Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee
@@ -137,11 +152,12 @@ SPEC CHECKSUMS:
   SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22
   SwiftDate: bbc26e26fc8c0c33fbee8c140c5e8a68293a148a
   swiftScan: 0849e7d7c1c641384767a573ee8cb90b88d1ddd9
+  TabPageViewController: 8bd4104909754416b35a98f3b72a5b674ab20dd5
   TZImagePickerController: 456f470b5dea97b37226ec7a694994a8663340b2
   TZScrollViewPopGesture: d36355038259e89372a1f4a2db7e9ca675de2278
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
   YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
 
-PODFILE CHECKSUM: 19acd02c42e46af89301b38f52a902320319418e
+PODFILE CHECKSUM: 1a65ab16135db79404233b4f7274d8bc175702fd
 
 COCOAPODS: 1.16.2
index a42e302..41cef86 100644 (file)
@@ -89,7 +89,12 @@ class HttpClient{
     let provider = MoyaProvider<CommomApi>()
     func request<T: HandyJSON>(_ target: CommomApi,completionHandler:@escaping ((T, String) -> Void)){
         
+
         provider.request(target){ (response) in
+            Logger.debug("url = \(target.baseURL.absoluteString + target.path)")
+            Logger.debug("param = \(response)")
+            
+            
             switch response {
             case .success(let value):
                 let data = value.data
@@ -98,7 +103,7 @@ class HttpClient{
                 if let str = String(data: data, encoding: .utf8) {
                     responseStr = str
                 }
-                print("reponse text=>",responseStr)
+                Logger.debug("reponse text=>",responseStr)
                 if let res = T.deserialize(from: responseStr){
                     completionHandler(res,responseStr)
                     return
@@ -107,7 +112,7 @@ class HttpClient{
                 break
             case .failure(let error):
                 completionHandler(ResponseBaseModel() as! T,"请求失败")
-                print("***************\n网络连接失败!\n\(error)\n********************")
+                Logger.debug("***************\n网络连接失败!\n\(error)\n********************")
             }
         }
     }
index 36f7cb6..5bbf6f4 100644 (file)
@@ -4,7 +4,7 @@
 //
 //  Created by liangshi on 2025/7/29.
 //
-
+//git push --set-upstream origin dev
 import UIKit
 @main
 class AppDelegate: UIResponder, UIApplicationDelegate {
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_base.imageset/bg_base.png b/ShenYin/ShenYin/Assets.xcassets/an/bg_base.imageset/bg_base.png
deleted file mode 100644 (file)
index 4abebc3..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/bg_base.imageset/bg_base.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_login.imageset/bg_login.png b/ShenYin/ShenYin/Assets.xcassets/an/bg_login.imageset/bg_login.png
deleted file mode 100644 (file)
index 4abebc3..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/bg_login.imageset/bg_login.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order.imageset/bg_mine_order.png b/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order.imageset/bg_mine_order.png
deleted file mode 100644 (file)
index 6c31d88..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order.imageset/bg_mine_order.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order2.imageset/bg_mine_order2.png b/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order2.imageset/bg_mine_order2.png
deleted file mode 100644 (file)
index 821c18e..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/bg_mine_order2.imageset/bg_mine_order2.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/Contents.json
deleted file mode 100644 (file)
index 65cc863..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "bg_splash.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/bg_splash.png b/ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/bg_splash.png
deleted file mode 100644 (file)
index 7bce36c..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/bg_splash.imageset/bg_splash.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/Contents.json
deleted file mode 100644 (file)
index e865ee3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "dialog_bg.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/dialog_bg.png b/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/dialog_bg.png
deleted file mode 100644 (file)
index 3609e20..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg.imageset/dialog_bg.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/Contents.json
deleted file mode 100644 (file)
index eea521f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "dialog_bg_2.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/dialog_bg_2.png b/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/dialog_bg_2.png
deleted file mode 100644 (file)
index 33255ee..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/dialog_bg_2.imageset/dialog_bg_2.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/Contents.json
deleted file mode 100644 (file)
index d78f4b4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_ai_config.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/ic_ai_config.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/ic_ai_config.png
deleted file mode 100644 (file)
index 1f5f705..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_ai_config.imageset/ic_ai_config.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/Contents.json
deleted file mode 100644 (file)
index 61050d3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_break.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/ic_break.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/ic_break.png
deleted file mode 100644 (file)
index c2e5cde..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_break.imageset/ic_break.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/Contents.json
deleted file mode 100644 (file)
index 6b9f721..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_check.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/ic_check.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/ic_check.png
deleted file mode 100644 (file)
index 4dff75a..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_check.imageset/ic_check.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/Contents.json
deleted file mode 100644 (file)
index 46bab63..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_connect_link.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/ic_connect_link.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/ic_connect_link.png
deleted file mode 100644 (file)
index dbc4d0b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_link.imageset/ic_connect_link.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/Contents.json
deleted file mode 100644 (file)
index 12839ef..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_connect_log.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/ic_connect_log.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/ic_connect_log.png
deleted file mode 100644 (file)
index c397397..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log.imageset/ic_connect_log.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/Contents.json
deleted file mode 100644 (file)
index bd2fa29..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_connect_log1.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/ic_connect_log1.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/ic_connect_log1.png
deleted file mode 100644 (file)
index b7dbcb5..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_log1.imageset/ic_connect_log1.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/Contents.json
deleted file mode 100644 (file)
index 5fba3c0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_connect_product.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/ic_connect_product.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/ic_connect_product.png
deleted file mode 100644 (file)
index 7df4372..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product.imageset/ic_connect_product.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/Contents.json
deleted file mode 100644 (file)
index 74788c5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_connect_product1.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/ic_connect_product1.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/ic_connect_product1.png
deleted file mode 100644 (file)
index 5921750..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_connect_product1.imageset/ic_connect_product1.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/Contents.json
deleted file mode 100644 (file)
index 5fde870..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_device_set.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/ic_device_set.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/ic_device_set.png
deleted file mode 100644 (file)
index 7565be3..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_device_set.imageset/ic_device_set.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/Contents.json
deleted file mode 100644 (file)
index 50b6af5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_dui.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/ic_dui.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/ic_dui.png
deleted file mode 100644 (file)
index 24d645d..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_dui.imageset/ic_dui.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/Contents.json
deleted file mode 100644 (file)
index 123849f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_edit.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/ic_edit.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/ic_edit.png
deleted file mode 100644 (file)
index f669860..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_edit.imageset/ic_edit.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/Contents.json
deleted file mode 100644 (file)
index 1ca784a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_false.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/ic_false.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/ic_false.png
deleted file mode 100644 (file)
index 63cba3f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_false.imageset/ic_false.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/Contents.json
deleted file mode 100644 (file)
index 1d0e3ca..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_finger.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/ic_finger.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/ic_finger.png
deleted file mode 100644 (file)
index 564c53b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_finger.imageset/ic_finger.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/Contents.json
deleted file mode 100644 (file)
index 5012820..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_add.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/ic_home_add.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/ic_home_add.png
deleted file mode 100644 (file)
index 7f6f775..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_add.imageset/ic_home_add.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/Contents.json
deleted file mode 100644 (file)
index 9d77527..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_home.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/ic_home_home.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/ic_home_home.png
deleted file mode 100644 (file)
index 0d15721..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home.imageset/ic_home_home.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/Contents.json
deleted file mode 100644 (file)
index 7d91207..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_home_sel.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/ic_home_home_sel.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/ic_home_home_sel.png
deleted file mode 100644 (file)
index 5dafc99..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_home_sel.imageset/ic_home_home_sel.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/Contents.json
deleted file mode 100644 (file)
index 3a5c62c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_mine.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/ic_home_mine.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/ic_home_mine.png
deleted file mode 100644 (file)
index 550b4f9..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine.imageset/ic_home_mine.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/Contents.json
deleted file mode 100644 (file)
index 63783aa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_mine_sel.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/ic_home_mine_sel.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/ic_home_mine_sel.png
deleted file mode 100644 (file)
index a3134c4..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_mine_sel.imageset/ic_home_mine_sel.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/Contents.json
deleted file mode 100644 (file)
index 6efbd6a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_nodevice.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/ic_home_nodevice.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/ic_home_nodevice.png
deleted file mode 100644 (file)
index 183e629..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_nodevice.imageset/ic_home_nodevice.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/Contents.json
deleted file mode 100644 (file)
index 7077852..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_scan.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/ic_home_scan.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/ic_home_scan.png
deleted file mode 100644 (file)
index 99047ce..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_scan.imageset/ic_home_scan.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/Contents.json
deleted file mode 100644 (file)
index d025cde..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_home_tv.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/ic_home_tv.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/ic_home_tv.png
deleted file mode 100644 (file)
index 270f341..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_home_tv.imageset/ic_home_tv.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/Contents.json
deleted file mode 100644 (file)
index 350aa96..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_link.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/ic_link.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/ic_link.png
deleted file mode 100644 (file)
index c70fbdb..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_link.imageset/ic_link.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/Contents.json
deleted file mode 100644 (file)
index ce89a45..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_linked.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/ic_linked.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/ic_linked.png
deleted file mode 100644 (file)
index db4ee36..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_linked.imageset/ic_linked.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/Contents.json
deleted file mode 100644 (file)
index 301eaaa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_logo.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/ic_logo.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/ic_logo.png
deleted file mode 100644 (file)
index d9c726b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_logo.imageset/ic_logo.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/Contents.json
deleted file mode 100644 (file)
index 6454deb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_mac.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/ic_mac.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/ic_mac.png
deleted file mode 100644 (file)
index 3df7fe5..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_mac.imageset/ic_mac.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/Contents.json
deleted file mode 100644 (file)
index 9ca6fff..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_man.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/ic_man.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/ic_man.png
deleted file mode 100644 (file)
index 83f643c..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_man.imageset/ic_man.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/Contents.json
deleted file mode 100644 (file)
index ea401dc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_mine_1.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/ic_mine_1.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/ic_mine_1.png
deleted file mode 100644 (file)
index 543b9f4..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_1.imageset/ic_mine_1.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/Contents.json
deleted file mode 100644 (file)
index ca9a119..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_mine_2.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/ic_mine_2.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/ic_mine_2.png
deleted file mode 100644 (file)
index df0606e..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_2.imageset/ic_mine_2.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/Contents.json
deleted file mode 100644 (file)
index 2b04ada..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_mine_3.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/ic_mine_3.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/ic_mine_3.png
deleted file mode 100644 (file)
index ad39548..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_mine_3.imageset/ic_mine_3.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/Contents.json
deleted file mode 100644 (file)
index 9012365..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_more.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/ic_more.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/ic_more.png
deleted file mode 100644 (file)
index 7c3f28a..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_more.imageset/ic_more.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/Contents.json
deleted file mode 100644 (file)
index 5b7ebe8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_more2.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/ic_more2.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/ic_more2.png
deleted file mode 100644 (file)
index 327b014..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_more2.imageset/ic_more2.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/Contents.json
deleted file mode 100644 (file)
index 3711e46..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_msg_recoder.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/ic_msg_recoder.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/ic_msg_recoder.png
deleted file mode 100644 (file)
index fd1393f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_msg_recoder.imageset/ic_msg_recoder.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/Contents.json
deleted file mode 100644 (file)
index d174291..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_nopub.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/ic_nopub.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/ic_nopub.png
deleted file mode 100644 (file)
index 179920f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_nopub.imageset/ic_nopub.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/Contents.json
deleted file mode 100644 (file)
index 880a0b0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_power.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/ic_power.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/ic_power.png
deleted file mode 100644 (file)
index 25ec4ca..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_power.imageset/ic_power.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/Contents.json
deleted file mode 100644 (file)
index 46e23a3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_product.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/ic_product.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/ic_product.png
deleted file mode 100644 (file)
index 47ca72e..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_product.imageset/ic_product.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/Contents.json
deleted file mode 100644 (file)
index 302190f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_remainber.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/ic_remainber.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/ic_remainber.png
deleted file mode 100644 (file)
index c63c630..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_remainber.imageset/ic_remainber.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/Contents.json
deleted file mode 100644 (file)
index 5137c7e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_role.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/ic_role.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/ic_role.png
deleted file mode 100644 (file)
index d6e6ba3..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_role.imageset/ic_role.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/Contents.json
deleted file mode 100644 (file)
index 63367d1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_scam.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/ic_scam.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/ic_scam.png
deleted file mode 100644 (file)
index 99047ce..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_scam.imageset/ic_scam.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/Contents.json
deleted file mode 100644 (file)
index 0af1df6..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_seach.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/ic_seach.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/ic_seach.png
deleted file mode 100644 (file)
index 7db0a19..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_seach.imageset/ic_seach.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/Contents.json
deleted file mode 100644 (file)
index 7b79d42..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_speak.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/ic_speak.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/ic_speak.png
deleted file mode 100644 (file)
index 1cbb8a0..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_speak.imageset/ic_speak.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/Contents.json
deleted file mode 100644 (file)
index d28a1f9..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_speek.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/ic_speek.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/ic_speek.png
deleted file mode 100644 (file)
index 766941f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_speek.imageset/ic_speek.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/Contents.json
deleted file mode 100644 (file)
index 1c551a2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_sure.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/ic_sure.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/ic_sure.png
deleted file mode 100644 (file)
index 930d62d..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_sure.imageset/ic_sure.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/Contents.json
deleted file mode 100644 (file)
index 8111a5b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_tip.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/ic_tip.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/ic_tip.png
deleted file mode 100644 (file)
index f60df48..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_tip.imageset/ic_tip.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/Contents.json
deleted file mode 100644 (file)
index 9f5415f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_unlink.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/ic_unlink.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/ic_unlink.png
deleted file mode 100644 (file)
index 7ac0399..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_unlink.imageset/ic_unlink.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/Contents.json
deleted file mode 100644 (file)
index b93e673..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_user.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/ic_user.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/ic_user.png
deleted file mode 100644 (file)
index 6df0916..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_user.imageset/ic_user.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/Contents.json
deleted file mode 100644 (file)
index 8534088..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_vip_year.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/ic_vip_year.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/ic_vip_year.png
deleted file mode 100644 (file)
index 32219f8..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_vip_year.imageset/ic_vip_year.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/Contents.json
deleted file mode 100644 (file)
index b0cde55..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_voice.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/ic_voice.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/ic_voice.png
deleted file mode 100644 (file)
index 5373980..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice.imageset/ic_voice.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/Contents.json
deleted file mode 100644 (file)
index 3b01221..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_voice_jia.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/ic_voice_jia.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/ic_voice_jia.png
deleted file mode 100644 (file)
index bec62a4..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jia.imageset/ic_voice_jia.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/Contents.json
deleted file mode 100644 (file)
index 0713580..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_voice_jian.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/ic_voice_jian.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/ic_voice_jian.png
deleted file mode 100644 (file)
index d97369a..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_voice_jian.imageset/ic_voice_jian.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/Contents.json
deleted file mode 100644 (file)
index 91c5dfc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_wifi1.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/ic_wifi1.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/ic_wifi1.png
deleted file mode 100644 (file)
index 6558488..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi1.imageset/ic_wifi1.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/Contents.json
deleted file mode 100644 (file)
index eaa7d20..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_wifi2.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/ic_wifi2.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/ic_wifi2.png
deleted file mode 100644 (file)
index 5244b23..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi2.imageset/ic_wifi2.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/Contents.json
deleted file mode 100644 (file)
index 00a14bd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_wifi3.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/ic_wifi3.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/ic_wifi3.png
deleted file mode 100644 (file)
index 5244b23..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi3.imageset/ic_wifi3.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/Contents.json
deleted file mode 100644 (file)
index ef6b388..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_wifi4.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/ic_wifi4.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/ic_wifi4.png
deleted file mode 100644 (file)
index fdc21db..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_wifi4.imageset/ic_wifi4.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/Contents.json
deleted file mode 100644 (file)
index 555340d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_woman.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/ic_woman.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/ic_woman.png
deleted file mode 100644 (file)
index ee388cf..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_woman.imageset/ic_woman.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/Contents.json
deleted file mode 100644 (file)
index 7f86ecc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_yinse.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/ic_yinse.png b/ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/ic_yinse.png
deleted file mode 100644 (file)
index fd36fa1..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/ic_yinse.imageset/ic_yinse.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/Contents.json
deleted file mode 100644 (file)
index 10a4d43..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "loading.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/loading.png b/ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/loading.png
deleted file mode 100644 (file)
index ad89ca1..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/loading.imageset/loading.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/Contents.json
deleted file mode 100644 (file)
index 525073d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "splash_tv.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/splash_tv.png b/ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/splash_tv.png
deleted file mode 100644 (file)
index 5e82271..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/an/splash_tv.imageset/splash_tv.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/customer/Contents.json b/ShenYin/ShenYin/Assets.xcassets/customer/Contents.json
new file mode 100644 (file)
index 0000000..73c0059
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Contents.json
new file mode 100644 (file)
index 0000000..d7bbe0b
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame (3).png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame (4).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (3).png b/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (3).png
new file mode 100644 (file)
index 0000000..c334c39
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (3).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (4).png b/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (4).png
new file mode 100644 (file)
index 0000000..5695e2b
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/customer/help_icon.imageset/Frame (4).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现.png b/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现.png
deleted file mode 100644 (file)
index c40687b..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/081_\345\217\221\347\216\260.imageset/081_\345\217\221\347\216\260.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@2x.png
deleted file mode 100644 (file)
index 7a797e4..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/081_\345\217\221\347\216\260.imageset/081_\345\217\221\347\216\260@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/081_发现@3x.png
deleted file mode 100644 (file)
index 5b331d3..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/081_\345\217\221\347\216\260.imageset/081_\345\217\221\347\216\260@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/081_发现.imageset/Contents.json
deleted file mode 100644 (file)
index 15635ff..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "081_发现.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "081_发现@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "081_发现@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Contents.json
deleted file mode 100644 (file)
index 944c2cb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame 134.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame 134@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame 134@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134.png
deleted file mode 100644 (file)
index e02bb67..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@2x.png
deleted file mode 100644 (file)
index 9f4e42b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@3x.png
deleted file mode 100644 (file)
index 25c03b1..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 134.imageset/Frame 134@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Contents.json
deleted file mode 100644 (file)
index 3ed7a02..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame 220.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame 220@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame 220@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220.png
deleted file mode 100644 (file)
index 3f62fcd..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@2x.png
deleted file mode 100644 (file)
index 8d54b72..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@3x.png
deleted file mode 100644 (file)
index 51c3c3a..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Frame 220.imageset/Frame 220@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Contents.json
deleted file mode 100644 (file)
index ecfabe9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Group 347.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Group 347@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Group 347@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347.png
deleted file mode 100644 (file)
index 1b9025d..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@2x.png
deleted file mode 100644 (file)
index b36e6d5..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@3x.png
deleted file mode 100644 (file)
index 2538ebc..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 347.imageset/Group 347@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Contents.json
deleted file mode 100644 (file)
index 3c2949a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Group 352.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Group 352@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Group 352@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352.png
deleted file mode 100644 (file)
index 92b6c57..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@2x.png
deleted file mode 100644 (file)
index 118c0d7..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@3x.png
deleted file mode 100644 (file)
index 47561b6..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/home/Group 352.imageset/Group 352@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..dd7cc00
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2191@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2191@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@2x.png
new file mode 100644 (file)
index 0000000..3ef3bcf
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@3x.png
new file mode 100644 (file)
index 0000000..94cf67d
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/cell_selected.imageset/Frame 2191@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Contents.json
new file mode 100644 (file)
index 0000000..6a4d508
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Vector@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Vector@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@2x.png
new file mode 100644 (file)
index 0000000..bc7a506
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@3x.png
new file mode 100644 (file)
index 0000000..32a9a9d
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/close_icon.imageset/Vector@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..06e6940
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame_2216@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame_2216@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@2x.png
new file mode 100644 (file)
index 0000000..030ed6e
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@3x.png
new file mode 100644 (file)
index 0000000..cc17d36
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/collection_normal.imageset/Frame_2216@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..06e6940
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame_2216@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame_2216@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@2x.png
new file mode 100644 (file)
index 0000000..b947bdb
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@3x.png
new file mode 100644 (file)
index 0000000..1aede79
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/collection_selected.imageset/Frame_2216@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Contents.json
new file mode 100644 (file)
index 0000000..1f6ca67
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame_2244@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame_2244@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@2x.png
new file mode 100644 (file)
index 0000000..22e38d6
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@3x.png
new file mode 100644 (file)
index 0000000..d332471
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/filter.imageset/Frame_2244@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Contents.json
new file mode 100644 (file)
index 0000000..12d064a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2255-5 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255-5.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5 1.png
new file mode 100644 (file)
index 0000000..810d154
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5.png b/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5.png
new file mode 100644 (file)
index 0000000..db4131a
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_callRecord.imageset/Frame 2255-5.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Contents.json
new file mode 100644 (file)
index 0000000..87408f5
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Group 2401.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Group 2400.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2400.png b/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2400.png
new file mode 100644 (file)
index 0000000..407a752
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2400.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2401.png b/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2401.png
new file mode 100644 (file)
index 0000000..a303e99
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_chat.imageset/Group 2401.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Contents.json
new file mode 100644 (file)
index 0000000..faccd17
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2255-1 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255-1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1 1.png
new file mode 100644 (file)
index 0000000..ef717a2
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1.png
new file mode 100644 (file)
index 0000000..1b78a63
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_chinese2English.imageset/Frame 2255-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Contents.json
new file mode 100644 (file)
index 0000000..3cd4574
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2255-2 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2 1.png
new file mode 100644 (file)
index 0000000..d16c6b6
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2.png b/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2.png
new file mode 100644 (file)
index 0000000..fba1eec
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_dialogTranslate.imageset/Frame 2255-2.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Contents.json
new file mode 100644 (file)
index 0000000..12b1907
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2256.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2255.png b/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2255.png
new file mode 100644 (file)
index 0000000..2eacb70
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2255.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2256.png b/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2256.png
new file mode 100644 (file)
index 0000000..708df37
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_fileRecord.imageset/Frame 2256.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Contents.json
new file mode 100644 (file)
index 0000000..0d5692b
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Rectangle 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Rectangle.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle 1.png
new file mode 100644 (file)
index 0000000..5a59929
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle.png b/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle.png
new file mode 100644 (file)
index 0000000..fa23e2f
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_header.imageset/Rectangle.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/Contents.json
new file mode 100644 (file)
index 0000000..65c1f79
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icon_录音历史 2.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icon_录音历史 1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 1.png
new file mode 100644 (file)
index 0000000..15793d4
Binary files /dev/null and "b/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_\345\275\225\351\237\263\345\216\206\345\217\262 1.png" differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 2.png b/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_录音历史 2.png
new file mode 100644 (file)
index 0000000..18abbd3
Binary files /dev/null and "b/ShenYin/ShenYin/Assets.xcassets/home/home_recordHistory.imageset/icon_\345\275\225\351\237\263\345\216\206\345\217\262 2.png" differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Contents.json
new file mode 100644 (file)
index 0000000..31a4f66
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2255-3 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255-3.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3 1.png
new file mode 100644 (file)
index 0000000..663451c
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3.png b/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3.png
new file mode 100644 (file)
index 0000000..7c8d93c
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_recordTranslate.imageset/Frame 2255-3.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Contents.json
new file mode 100644 (file)
index 0000000..3b267a7
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2255-4 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2255-4.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4 1.png b/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4 1.png
new file mode 100644 (file)
index 0000000..402036a
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4.png b/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4.png
new file mode 100644 (file)
index 0000000..8ba3bed
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/home_textTranslate.imageset/Frame 2255-4.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Contents.json
new file mode 100644 (file)
index 0000000..391af57
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Slice 7@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Slice 7@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@2x.png
new file mode 100644 (file)
index 0000000..9c8b926
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@3x.png
new file mode 100644 (file)
index 0000000..d5ecc95
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/scan_device.imageset/Slice 7@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Contents.json
new file mode 100644 (file)
index 0000000..3d07ef7
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame_2243@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame_2243@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@2x.png
new file mode 100644 (file)
index 0000000..ff2214e
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@3x.png
new file mode 100644 (file)
index 0000000..db2238c
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/search.imageset/Frame_2243@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页.png
deleted file mode 100644 (file)
index a92d424..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_\344\270\273\351\241\265.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@2x.png
deleted file mode 100644 (file)
index 4541a27..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_\344\270\273\351\241\265@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_主页@3x.png
deleted file mode 100644 (file)
index 5a29c1c..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/081_\344\270\273\351\241\265@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_normal.imageset/Contents.json
deleted file mode 100644 (file)
index c21be7b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "081_主页.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "081_主页@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "081_主页@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页.png
deleted file mode 100644 (file)
index f91691a..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_\344\270\273\351\241\265.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@2x.png
deleted file mode 100644 (file)
index db6a6ed..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_\344\270\273\351\241\265@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_主页@3x.png
deleted file mode 100644 (file)
index 1e18885..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/081_\344\270\273\351\241\265@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/tab_0_selected.imageset/Contents.json
deleted file mode 100644 (file)
index c21be7b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "081_主页.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "081_主页@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "081_主页@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的.png
deleted file mode 100644 (file)
index da8e9f3..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_\346\210\221\347\232\204.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@2x.png
deleted file mode 100644 (file)
index bac40a7..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_\346\210\221\347\232\204@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_我的@3x.png
deleted file mode 100644 (file)
index 50c504c..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/081_\346\210\221\347\232\204@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_normal.imageset/Contents.json
deleted file mode 100644 (file)
index 71388ea..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "081_我的.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "081_我的@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "081_我的@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的.png
deleted file mode 100644 (file)
index 1b99f19..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_\346\210\221\347\232\204.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@2x.png
deleted file mode 100644 (file)
index e0e1bf2..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_\346\210\221\347\232\204@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_我的@3x.png
deleted file mode 100644 (file)
index 85452de..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/081_\346\210\221\347\232\204@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/tab_1_selected.imageset/Contents.json
deleted file mode 100644 (file)
index 71388ea..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "081_我的.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "081_我的@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "081_我的@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "bg_base.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@2x.png
new file mode 100644 (file)
index 0000000..1317346
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@3x.png
new file mode 100644 (file)
index 0000000..4466b05
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/tips_cion.imageset/Frame@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Contents.json
new file mode 100644 (file)
index 0000000..6a4d508
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Vector@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Vector@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@2x.png
new file mode 100644 (file)
index 0000000..a88b829
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@2x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@3x.png
new file mode 100644 (file)
index 0000000..0ae46f1
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/home/tips_icon2.imageset/Vector@3x.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/Contents.json
deleted file mode 100644 (file)
index 493fb1a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "空内容.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "空内容@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "空内容@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容.png b/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容.png
deleted file mode 100644 (file)
index b13789a..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/\347\251\272\345\206\205\345\256\271.imageset/\347\251\272\345\206\205\345\256\271.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@2x.png b/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@2x.png
deleted file mode 100644 (file)
index 8f4f0f6..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/\347\251\272\345\206\205\345\256\271.imageset/\347\251\272\345\206\205\345\256\271@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@3x.png b/ShenYin/ShenYin/Assets.xcassets/home/空内容.imageset/空内容@3x.png
deleted file mode 100644 (file)
index cd8f7f2..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/home/\347\251\272\345\206\205\345\256\271.imageset/\347\251\272\345\206\205\345\256\271@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Contents.json
deleted file mode 100644 (file)
index 9af40ec..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame 1453.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame 1453@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame 1453@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453.png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453.png
deleted file mode 100644 (file)
index 54d0f5a..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@2x.png
deleted file mode 100644 (file)
index 04589db..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@3x.png
deleted file mode 100644 (file)
index 73e423e..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame 1453.imageset/Frame 1453@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Contents.json
deleted file mode 100644 (file)
index 8eaecc5..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame(1).png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame@2x(1).png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame@3x(1).png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame(1).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame(1).png
deleted file mode 100644 (file)
index 587dfb9..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame(1).png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@2x(1).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@2x(1).png
deleted file mode 100644 (file)
index a62288b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@2x(1).png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@3x(1).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@3x(1).png
deleted file mode 100644 (file)
index 7a8bb8e..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(1).imageset/Frame@3x(1).png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Contents.json
deleted file mode 100644 (file)
index 115ae44..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame(2).png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame@2x(2).png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame@3x(2).png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame(2).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame(2).png
deleted file mode 100644 (file)
index 14c8b3f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame(2).png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@2x(2).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@2x(2).png
deleted file mode 100644 (file)
index 150ba1b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@2x(2).png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@3x(2).png b/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@3x(2).png
deleted file mode 100644 (file)
index 951c1ef..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/Frame(2).imageset/Frame@3x(2).png and /dev/null differ
index a9337b9..eacccf4 100644 (file)
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "ic_back.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame 1985.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame 1985 (1).png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985 (1).png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985 (1).png
new file mode 100644 (file)
index 0000000..7ffac54
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985 (1).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985.png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985.png
new file mode 100644 (file)
index 0000000..e7eb989
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/Frame 1985.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/ic_back.png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/ic_back.png
deleted file mode 100644 (file)
index 0b3636f..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_back.imageset/ic_back.png and /dev/null differ
index 4886886..2590e27 100644 (file)
@@ -6,12 +6,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "个人中心-进入 1@2x.png",
+      "filename" : "Group 1024.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "个人中心-进入 1@3x.png",
+      "filename" : "Group 1024 (1).png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024 (1).png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024 (1).png
new file mode 100644 (file)
index 0000000..181585f
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024 (1).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024.png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024.png
new file mode 100644 (file)
index 0000000..67dd8e7
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/Group 1024.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@2x.png
deleted file mode 100644 (file)
index 5f350c5..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/\344\270\252\344\272\272\344\270\255\345\277\203-\350\277\233\345\205\245 1@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/个人中心-进入 1@3x.png
deleted file mode 100644 (file)
index f3b7a15..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/arrow_next.imageset/\344\270\252\344\272\272\344\270\255\345\277\203-\350\277\233\345\205\245 1@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Contents.json
deleted file mode 100644 (file)
index 944c2cb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Frame 134.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Frame 134@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Frame 134@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134.png
deleted file mode 100644 (file)
index 7dc5484..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@2x.png
deleted file mode 100644 (file)
index b81b861..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@3x.png
deleted file mode 100644 (file)
index 32e6c2d..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_cover.imageset/Frame 134@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Contents.json
deleted file mode 100644 (file)
index 4895580..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Group 281.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Group 281@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Group 281@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281.png
deleted file mode 100644 (file)
index ec96160..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@2x.png
deleted file mode 100644 (file)
index 3307d6d..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@3x.png
deleted file mode 100644 (file)
index 5802893..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/login_logo.imageset/Group 281@3x.png and /dev/null differ
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "bg_mine_order.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame-7 1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame-7.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7 1.png
new file mode 100644 (file)
index 0000000..e05971b
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7.png
new file mode 100644 (file)
index 0000000..50fac90
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_about.imageset/Frame-7.png differ
index 4b7bf60..f54556f 100644 (file)
@@ -1,17 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "Frame.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
-      "filename" : "Frame@2x.png",
+      "filename" : "Frame-1 1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "Frame@3x.png",
+      "filename" : "Frame-1.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1 1.png
new file mode 100644 (file)
index 0000000..6e5f371
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1.png
new file mode 100644 (file)
index 0000000..a837952
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame.png
deleted file mode 100644 (file)
index 1209ddb..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@2x.png
deleted file mode 100644 (file)
index 4ea8812..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@3x.png
deleted file mode 100644 (file)
index 4bb8033..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_device.imageset/Frame@3x.png and /dev/null differ
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "bg_login.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame-5 1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame-5.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5 1.png
new file mode 100644 (file)
index 0000000..9545fdc
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5.png
new file mode 100644 (file)
index 0000000..669e9cc
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_feedback.imageset/Frame-5.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Contents.json
new file mode 100644 (file)
index 0000000..5b82fed
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame-4 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame-4.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4 1.png
new file mode 100644 (file)
index 0000000..e4a7326
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4.png
new file mode 100644 (file)
index 0000000..357cc23
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_language.imageset/Frame-4.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Contents.json
new file mode 100644 (file)
index 0000000..b8a4b95
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame-3 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame-3.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3 1.png
new file mode 100644 (file)
index 0000000..111b122
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3.png
new file mode 100644 (file)
index 0000000..a1faecb
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_privacy.imageset/Frame-3.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/Contents.json
deleted file mode 100644 (file)
index 00090de..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "信息.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "信息@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "信息@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息.png
deleted file mode 100644 (file)
index 74a03e5..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/\344\277\241\346\201\257.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@2x.png
deleted file mode 100644 (file)
index 0a4a56b..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/\344\277\241\346\201\257@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/信息@3x.png
deleted file mode 100644 (file)
index 1d53b3f..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_product.imageset/\344\277\241\346\201\257@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/Contents.json
deleted file mode 100644 (file)
index 7f757d8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "转账.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "转账@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "转账@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账.png
deleted file mode 100644 (file)
index 17994e7..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/\350\275\254\350\264\246.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@2x.png
deleted file mode 100644 (file)
index 1648cc3..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/\350\275\254\350\264\246@2x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/转账@3x.png
deleted file mode 100644 (file)
index 33f3b2a..0000000
Binary files "a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_service.imageset/\350\275\254\350\264\246@3x.png" and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Contents.json
new file mode 100644 (file)
index 0000000..0b98d55
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame-6 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame-6.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6 1.png
new file mode 100644 (file)
index 0000000..d69e374
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6.png
new file mode 100644 (file)
index 0000000..dec7936
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_update.imageset/Frame-6.png differ
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "bg_mine_order2.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame 1.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame 1.png
new file mode 100644 (file)
index 0000000..d1b4769
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame.png
new file mode 100644 (file)
index 0000000..06234dc
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_user.imageset/Frame.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Contents.json
new file mode 100644 (file)
index 0000000..6ddd8c6
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame-2 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame-2.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2 1.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2 1.png
new file mode 100644 (file)
index 0000000..ac7c882
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2.png
new file mode 100644 (file)
index 0000000..14661fe
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_cell_userAgreement.imageset/Frame-2.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/Contents.json
deleted file mode 100644 (file)
index 6866d51..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "ic_msg.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/ic_msg.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/ic_msg.png
deleted file mode 100644 (file)
index 9e1680b..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_msg.imageset/ic_msg.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Contents.json
deleted file mode 100644 (file)
index 76beba5..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Rectangle 268.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Rectangle 268@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Rectangle 268@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268.png
deleted file mode 100644 (file)
index cbcd2bc..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@2x.png
deleted file mode 100644 (file)
index 0ce6ee7..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@3x.png
deleted file mode 100644 (file)
index cc6947c..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg1.imageset/Rectangle 268@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Contents.json
deleted file mode 100644 (file)
index 51c7c57..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "Rectangle 273.png",
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "filename" : "Rectangle 273@2x.png",
-      "idiom" : "universal",
-      "scale" : "2x"
-    },
-    {
-      "filename" : "Rectangle 273@3x.png",
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273.png
deleted file mode 100644 (file)
index a45dcda..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@2x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@2x.png
deleted file mode 100644 (file)
index 7725c61..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@3x.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@3x.png
deleted file mode 100644 (file)
index 7207a57..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_order_bg2.imageset/Rectangle 273@3x.png and /dev/null differ
index 35d6ec5..77260ee 100644 (file)
@@ -1,15 +1,16 @@
 {
   "images" : [
     {
-      "filename" : "ic_set.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
+      "filename" : "Frame (1).png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
+      "filename" : "Frame (2).png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (1).png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (1).png
new file mode 100644 (file)
index 0000000..e6ed262
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (1).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (2).png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (2).png
new file mode 100644 (file)
index 0000000..51b0fa4
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/Frame (2).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/ic_set.png b/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/ic_set.png
deleted file mode 100644 (file)
index 6e75d39..0000000
Binary files a/ShenYin/ShenYin/Assets.xcassets/mine/mine_set.imageset/ic_set.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mode/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mode/Contents.json
new file mode 100644 (file)
index 0000000..73c0059
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Contents.json
new file mode 100644 (file)
index 0000000..37f273d
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2254.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2254 (1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254 (1).png b/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254 (1).png
new file mode 100644 (file)
index 0000000..eba837d
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254 (1).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254.png b/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254.png
new file mode 100644 (file)
index 0000000..f087678
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/mode/add_icon.imageset/Frame 2254.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/Contents.json
new file mode 100644 (file)
index 0000000..73c0059
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..7a3ad69
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2250-1 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2250-1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1 1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1 1.png
new file mode 100644 (file)
index 0000000..5c3a3bb
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1.png
new file mode 100644 (file)
index 0000000..eb82ce3
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_normal.imageset/Frame 2250-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..9e0d40b
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "Frame 2249-1.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2251.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2250.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2249-1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2249-1.png
new file mode 100644 (file)
index 0000000..bac5ece
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2249-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2250.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2250.png
new file mode 100644 (file)
index 0000000..428a253
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2250.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2251.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2251.png
new file mode 100644 (file)
index 0000000..c2035a2
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_0_selected.imageset/Frame 2251.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..ddf6868
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2249-1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2249-1 1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1 1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1 1.png
new file mode 100644 (file)
index 0000000..ef00a94
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1.png
new file mode 100644 (file)
index 0000000..bac5ece
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_normal.imageset/Frame 2249-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..4244878
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2250.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2249.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2249.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2249.png
new file mode 100644 (file)
index 0000000..b2427a2
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2249.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2250.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2250.png
new file mode 100644 (file)
index 0000000..088f7e2
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_1_selected.imageset/Frame 2250.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..ba8c961
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2251-1 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2251-1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1 1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1 1.png
new file mode 100644 (file)
index 0000000..aae62f9
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1.png
new file mode 100644 (file)
index 0000000..e9fbeee
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_normal.imageset/Frame 2251-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..2bfc97d
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2251.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2252.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2251.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2251.png
new file mode 100644 (file)
index 0000000..352a2b9
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2251.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2252.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2252.png
new file mode 100644 (file)
index 0000000..7ed4d05
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_2_selected.imageset/Frame 2252.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..6465865
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2252-1 1.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2252-1.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1 1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1 1.png
new file mode 100644 (file)
index 0000000..70267ee
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1 1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1.png
new file mode 100644 (file)
index 0000000..bc75988
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_normal.imageset/Frame 2252-1.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..4567bba
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2253.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2252.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2252.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2252.png
new file mode 100644 (file)
index 0000000..6dbe1cd
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2252.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2253.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2253.png
new file mode 100644 (file)
index 0000000..25c87c2
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_3_selected.imageset/Frame 2253.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Contents.json
new file mode 100644 (file)
index 0000000..454222a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2253.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2253 (1).png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253 (1).png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253 (1).png
new file mode 100644 (file)
index 0000000..1746aa4
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253 (1).png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253.png
new file mode 100644 (file)
index 0000000..57e8310
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_normal.imageset/Frame 2253.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Contents.json
new file mode 100644 (file)
index 0000000..21c68b7
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "Frame 2254.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Frame 2253.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2253.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2253.png
new file mode 100644 (file)
index 0000000..55c20b3
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2253.png differ
diff --git a/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2254.png b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2254.png
new file mode 100644 (file)
index 0000000..f272461
Binary files /dev/null and b/ShenYin/ShenYin/Assets.xcassets/tabbar/tab_4_selected.imageset/Frame 2254.png differ
index 01eec82..082d0e6 100644 (file)
@@ -49,29 +49,29 @@ extension BlueToothViewModel{
         bluetooth.discoverDeviceBlock = discoverDevice(peripheral:data:rssi:)
         // 连接设备成功
         bluetooth.didConnectBlock = {[weak self] (device) in
-            LogManager.instance.add("已连接")
+            Logger.debug("已连接")
             self?.selectedPeripheral = device
 //            self?.didConnect?(device)
             
         }
         // 连接设备失败
         bluetooth.FailConnectBlock = { (device) in
-            LogManager.instance.add("连接失败")
+            Logger.debug("连接失败")
         }
         // 设备断开连接
         bluetooth.disConnectBlock = {[weak self](device) in
-            LogManager.instance.add("断开连接")
+            Logger.debug("断开连接")
 //            SVProgressHUD.showAutoHiden("disconnect")
 //            self?.retryConnect()
         }
         // 发现服务
         bluetooth.discoverServiceBlock = { (services) in
-            LogManager.instance.add("发现服务 \(services)")
+            Logger.debug("发现服务 \(services)")
         }
         // 发现特征
         bluetooth.discoverPeripheralBlock = {[weak self] (characteristics) in
             guard let self = self else {return}
-            LogManager.instance.add("发现特征 \(characteristics)")
+            Logger.debug("发现特征 \(characteristics)")
             for cha in characteristics{
                 if cha.uuid.uuidString == "FED7" {
                     self.writeCha = cha
@@ -93,7 +93,7 @@ extension BlueToothViewModel{
         }
         // 写入数据(发送指令)成功
         bluetooth.didWriteDataBlock = { (peripheral,characteristic,error) in
-            LogManager.instance.add("发送指令,错误 = \(error)");
+            Logger.debug("发送指令,错误 = \(error)");
         }
     }
     func discoverDevice(peripheral:CBPeripheral, data:[String : Any],rssi: NSNumber){
@@ -127,7 +127,7 @@ extension BlueToothViewModel{
     func didUpdateStats(_ states:CBManagerState){
         switch states{
             case .poweredOn:
-            LogManager.instance.add("poweredOn")
+            Logger.debug("poweredOn")
             @unknown default:
                 break
         }
@@ -145,9 +145,9 @@ extension BlueToothViewModel{
     }
     
     func sendToDevice(_ data:Data){
-        LogManager.instance.add("[send] = \(data.hexEncodedString())")
+        Logger.debug("[send] = \(data.hexEncodedString())")
         guard let p = selectedPeripheral,let c = writeCha else{
-            LogManager.instance.add("请先连接设备!!! ")
+            Logger.debug("请先连接设备!!! ")
             return
         }
         bluetooth.sendTo(peripheral:p , characteristic: c, data: data)
@@ -156,7 +156,7 @@ extension BlueToothViewModel{
 
 extension BlueToothViewModel{
     func receiveData(_ data:Data){
-        LogManager.instance.add("[recevice] = \(data.hexEncodedString())")
+        Logger.debug("[recevice] = \(data.hexEncodedString())")
 
     }
 
index 0c12722..332042d 100644 (file)
@@ -30,9 +30,9 @@ extension YLColor: ColorRGBProviderProtocol {
     public var rgbValue: Int {
         switch self {
         case .bgColor:
-            return 0x11131E
+            return 0xF7F7F7
         case .theme:
-            return 0x286DE8
+            return 0x0092E1
         case .subTheme:
             return 0xF4FAFF
         case .first:
index b5d5018..329b9bc 100644 (file)
@@ -39,5 +39,21 @@ public extension UIColor {
         getRed(&red, green: &green, blue: &blue, alpha: &alpha)
         return UIColor(red: red, green: green, blue: blue, alpha: alpha * 0.5)
     }
+    static func hexString(_ text: String)->UIColor {
+        var hex = text.trimmingCharacters(in:.whitespacesAndNewlines).uppercased()
+        
+        if hex.hasPrefix("#") {
+            hex.removeFirst()
+        }
+        
+        var rgbValue: UInt64 = 0
+        Scanner(string: hex).scanHexInt64(&rgbValue)
+        
+        let red = CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0
+        let green = CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0
+        let blue = CGFloat(rgbValue & 0x0000FF) / 255.0
+        
+        return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
+    }
 }
 
index 319e0e6..2f877c6 100644 (file)
@@ -21,9 +21,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
         App.shared.window = window
         setConfig()
 
-//        window?.rootViewController = LoginVC()
+//        window?.rootViewController = UINavigationController(rootViewController: HistoryRecordShareVC())
         window?.rootViewController = BaseTC()
-        
     }
 
     func sceneDidDisconnect(_ scene: UIScene) {
@@ -62,28 +61,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
         IQKeyboardManager.shared.isEnabled = true
         IQKeyboardManager.shared.resignOnTouchOutside = true
     }
-}
 
-class App{
-    static let shared = App()
-     var window:UIWindow?
-     func topVC()->UIViewController!{
-         guard let vc = window?.rootViewController else{
-             print("页面异常!!!")
-             return UIViewController()
-         }
-         return getTopViewController(from: vc)
-    }
-    
-    private func getTopViewController(from vc: UIViewController) -> UIViewController {
-        if let navVC = vc as? UINavigationController {
-            return getTopViewController(from: navVC.visibleViewController ?? navVC)
-        } else if let tabVC = vc as? UITabBarController {
-            return getTopViewController(from: tabVC.selectedViewController ?? tabVC)
-        } else if let presentedVC = vc.presentedViewController {
-            return getTopViewController(from: presentedVC)
-        } else {
-            return vc
-        }
-    }
 }
+
+
index f64dd2a..0e69c91 100644 (file)
@@ -70,14 +70,6 @@ fileprivate var currentTime: String {
     return String(timeStr.prefix(20))
 }
 
-public func k_logViewControllerDeinit(_ vc: UIViewController) {
-    #if DEBUG
-    guard let viewDesc = "\(vc.self)".split(separator: ".").last
-    else { return }
-    print("Deinit:  --->  ViewController:\t\(String(viewDesc))")
-    #endif
-}
-
 public func k_logViewDeinit(_ view: UIView) {
     #if DEBUG
     guard let desc = "\(view.self)".split(separator: ";").first,
diff --git a/ShenYin/ShenYin/Tools/Date.swift b/ShenYin/ShenYin/Tools/Date.swift
new file mode 100644 (file)
index 0000000..9fc933d
--- /dev/null
@@ -0,0 +1,145 @@
+//
+//  Date.swift
+//  MyBase
+//
+//  Created by Harvey on 2021/5/18.
+//
+
+import Foundation
+
+// MARK: - Extension Date
+extension Date {
+    
+    static let formatter = DateFormatter()
+    
+    struct Format {
+        
+        let rawValue: String
+        init(_ rawValue: String) {
+            self.rawValue = rawValue
+        }
+        
+        /// e.g. 01:01:01
+        static let time: Format = .init("HH:mm:ss")
+        
+        /// e.g. 01:01
+        static let shortTime: Format = .init("HH:mm")
+        
+        /// e.g. 01-01
+        static let date: Format = .init("MM-dd")
+        
+        /// e.g. 01月01日
+        static let date1: Format = .init("MM月dd日")
+        
+        /// e.g. 2020-01-01
+        static let short: Format = .init("yyyy-MM-dd")
+        
+        /// e.g. 2020年01月01日
+        static let short1: Format = .init("yyy年MM月dd日")
+        
+        /// e.g. 2020-01-01 01:01
+        static let middle: Format = .init("yyyy-MM-dd HH:mm")
+        
+        /// e.g. 2020年01月01日 01:01
+        static let middle1: Format = .init("yyy年MM月dd日 HH:mm")
+        
+        /// e.g. 2020-01-01 01:01:01
+        static let long: Format = .init("yyyy-MM-dd HH:mm:ss")
+        
+        /// e.g. 2020年01月01日 01:01:01
+        static let long1: Format = .init("yyyy年MM月dd日 HH:mm:ss")
+        
+        /// e.g. 2020-01-01 01:01:01.088
+        static let full: Format = .init("yyyy-MM-dd HH:mm:ss.SSS")
+        
+        /// e.g. 2020年01月01日 01:01:01.088
+        static let full1: Format = .init("yyyy年MM月dd日 HH:mm:ss.SSS")
+    }
+    
+    /// 格式化成本地时间
+    func format(_ format: Date.Format = .middle) -> String {
+        Self.formatter.dateFormat = format.rawValue
+        return Self.formatter.string(from: self)
+    }
+    
+    enum Unit {
+        case minute(Int)
+        case hour(Int)
+        case day(Int)
+        
+        /// 转换成秒
+        var second: TimeInterval {
+            switch self {
+            case .minute(let minute): return 60.0 * Double(minute)
+            case .hour(let hour): return 60.0 * 60.0 * Double(hour)
+            case .day(let day): return 60.0 * 60.0 * 24.0 * Double(day)
+            }
+        }
+    }
+}
+
+let today: Date = .init()
+
+/// 本地化
+extension Date {
+    /// 星期几
+    enum Week: Int {
+        /// 星期日
+        case sun = 1
+        /// 星期一
+        case mon
+        /// 星期二
+        case tue
+        /// 星期三
+        case wed
+        /// 星期四
+        case thur
+        /// 星期五
+        case fri
+        /// 星期六
+        case sat
+    }
+    
+//    /// 当天的第一秒
+//    var fromTimeInterval: TimeInterval {
+//        let today = format(.short)
+//        return today.timeIntervalSince1970(.short)
+//    }
+//    
+//    /// 当天最后一秒
+//    var toTimeInterval: TimeInterval { fromTimeInterval + Unit.day(1).second }
+    
+    /// 哪一年
+    var year: Int { component(.year) }
+    
+    /// 哪个月
+    var month: Int { component(.month) }
+    
+    /// 当月的第几天
+    var day: Int { component(.day) }
+    
+    /// 当月的第几天
+    var hour: Int { component(.hour)}
+    
+    /// 当月的第几天
+    var minute: Int { component(.minute)}
+    
+    /// 当月的第几天
+    var second: Int { component(.second)}
+    
+    /// 当月的第几周
+    var  weekOfMonth: Int { component(.weekOfMonth) }
+    
+    /// 今年的第几周
+    var  weekOfYear: Int { component(.weekOfYear) }
+    
+    /// 星期几
+    var weekDay: Week { Week(rawValue: component(.weekday))! }
+    
+    /// 假设当天是周五,表示本月的第几个周五
+    var weekdayOrdinal: Int { component(.weekdayOrdinal) }
+    
+    private func component(_ component: Calendar.Component) -> Int {
+        return Calendar.autoupdatingCurrent.component(component, from: self)
+    }
+}
index c03cc1b..073bd11 100644 (file)
@@ -1,59 +1,63 @@
 //
-//  LogManager.swift
-//  Magpie
+//  Logger.swift
 //
-//  Created by incar on 2024/1/3.
+//
+//  Created by Harvey on 2021/4/27.
 //
 
 import Foundation
-import UIKit
 
-class LogManager:NSObject{
+/// 日记管理
+class Logger {
+    static var isDebug: Bool = true
     
-    static let instance = LogManager()
+    fileprivate static let shared = Logger()
+    private var fileHandle:FileHandle?
+    private init() {
+        let path = getPath()
+        fileHandle = FileHandle(forWritingAtPath: path)!
+        //        fileHandle?.seekToEndOfFile()
+    }
     
-    var log = "start..."
+    fileprivate var dateString: String { Date().format(.full) }
     
+    static var logs: [String] = []
     
-    func add(_ text:String){
-        let conent = currentTime() + " ~ " + text
-        print(conent)
-        log += conent + "\n"
-    }
     
-    func saveToFile(){
-        let document = NSHomeDirectory() + "/Documents/"
-        let fileName = currentTime() + ".txt"
-        let path = document + fileName
-        let urlPath = URL(fileURLWithPath: path)
-        
-        do{
-            try log.write(to: urlPath, atomically: true, encoding: .utf8)
-            print("保存成功")
-            saveFile(filePath: path)
-        }catch{
-            print("保存失败!!!!!!!")
+    private func getPath()->String{
+        let foldPath = NSHomeDirectory() + "/Documents/MixSdk/"
+        let fileManager = FileManager.default
+        if !fileManager.fileExists(atPath: foldPath) {
+            do {
+                try FileManager.default.createDirectory(atPath: foldPath, withIntermediateDirectories: true, attributes: nil)
+            } catch {
+                return ""
+            }
         }
-    }
-    
-    func currentTime()->String{
-        let dateformatter = DateFormatter()
-        dateformatter.dateFormat = "YYYY-MM-dd HH:mm:ss S"// 自定义时间格式
-        let time = dateformatter.string(from: Date())
-        return time
+        let path = foldPath + "\(Date().format(.middle)).log"
+        if !FileManager.default.fileExists(atPath: path) {
+            FileManager.default.createFile(atPath: path, contents: nil, attributes: nil)
+        }
+        return path
     }
 }
 
-extension LogManager:UIDocumentPickerDelegate{
-    //保存文件到手机文件指定目录
-    func saveFile(filePath:String) {
-        let fUrl = NSURL(fileURLWithPath: filePath)
-        let vc = UIDocumentPickerViewController(url: fUrl as URL, in: .exportToService);
-        vc.delegate = self
-        vc.modalPresentationStyle = .overFullScreen
-        UIApplication.shared.keyWindow?.rootViewController?.present(vc, animated: true)
+extension Logger {
+    static func debug(_ logs: Any..., line: Int = #line, separator: String = " ", terminator: String = "\n") {
+        objc_sync_enter(Logger.shared)
+        if Logger.isDebug {
+            print(Logger.shared.dateString, terminator: " [MixSdk-\(String(format: "%03d", line))]: ")
+            print(logs, separator: separator, terminator: terminator)
+            let logString = Logger.shared.dateString + " [MixSdk-\(String(format: "%03d", line))]: " + logs.map({ "\($0)" }).joined(separator: separator) + terminator
+            Self.logs.append(logString)
+            Logger.shared.saveLog(log: logString)
+        }
+        objc_sync_exit(Logger.shared)
+        
+        
     }
-    public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
-        controller.dismiss(animated: true)
+    
+    private func saveLog(log:String){
+        fileHandle?.write(log.data(using: .utf8)!)
     }
 }
diff --git a/ShenYin/ShenYin/Tools/Logs.swift b/ShenYin/ShenYin/Tools/Logs.swift
deleted file mode 100644 (file)
index 6094025..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-//  Logs.swift
-//  Syntax-SNSwfitPackage
-//
-//  Created by zyt on 2018/12/20.
-//  Copyright © 2018 zsh. All rights reserved.
-//
-
-import Foundation
-
-
-public func SNLog<T>(_ message: T, file: String = #file, function: String = #function, line: Int = #line) {
-    #if DEBUG
-    var fileName = file as NSString
-    
-    fileName = fileName.lastPathComponent as NSString
-    print("[\(Date().timeIntervalSince1970) \(fileName)--\(function)--\(line) : \(message)]")
-    #endif
-}
diff --git a/ShenYin/ShenYin/UI/Base/AppManager.swift b/ShenYin/ShenYin/UI/Base/AppManager.swift
new file mode 100644 (file)
index 0000000..3dbc00f
--- /dev/null
@@ -0,0 +1,38 @@
+//
+//  AppManager.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+class App{
+    static let shared = App()
+    var window:UIWindow?
+    func topVC()->UIViewController!{
+        guard let vc = window?.rootViewController else{
+            print("页面异常!!!")
+            return UIViewController()
+        }
+        return getTopViewController(from: vc)
+    }
+    
+    func goToPage(_ viewController: UIViewController,animated:Bool = true){
+        viewController.hidesBottomBarWhenPushed = true
+        topVC().navigationController?.pushViewController(viewController, animated: animated)
+    }
+    
+    
+}
+extension App{
+    private func getTopViewController(from vc: UIViewController) -> UIViewController {
+        if let navVC = vc as? UINavigationController {
+            return getTopViewController(from: navVC.visibleViewController ?? navVC)
+        } else if let tabVC = vc as? UITabBarController {
+            return getTopViewController(from: tabVC.selectedViewController ?? tabVC)
+        } else if let presentedVC = vc.presentedViewController {
+            return getTopViewController(from: presentedVC)
+        } else {
+            return vc
+        }
+    }
+}
index dd16aa7..52f45b3 100644 (file)
@@ -14,12 +14,6 @@ public enum BaseNavigationLeftStyle {
     case image(UIImage?)
 }
 
-public enum BaseNavigationRightStyle {
-    case share
-    case title(String, norColor: UIColor, disColor: UIColor)
-    case image(UIImage?)
-}
-
 public enum BaseNavigationTitleStyle {
     case `default`
     case custom(titleColor: UIColor, bgColor: UIColor)
@@ -31,6 +25,23 @@ public protocol BaseNavigationBarDelegate: NSObjectProtocol {
     func navRightViewTapped()
 }
 
+class NavigationRightItem{
+    var title:String?
+    var image:UIImage?
+    var target:Any?
+    var action:Selector?
+    public init(title: String?, target:Any?,action: Selector) {
+        self.title = title
+        self.action = action
+        self.target = target
+    }
+    public init(image: UIImage?,target:Any?, action: Selector) {
+        self.image = image
+        self.action = action
+        self.target = target
+    }
+}
+
 public class BaseNavigationBar: UIView {
     
     public weak var delegate: BaseNavigationBarDelegate?
@@ -38,9 +49,7 @@ public class BaseNavigationBar: UIView {
     public let leftView = UIButton()
     public let titleLabel = UILabel()
     public let separatorLine = UIView()
-    public lazy var rightView:    UIButton = {
-        return setupRightView()
-    }()
+    public lazy var rightView = setupRightView()
     
     private var navTitle: String
     public init(title: String = "", delegate: BaseNavigationBarDelegate? = nil) {
@@ -74,26 +83,12 @@ public class BaseNavigationBar: UIView {
             leftView.setImage(image, for: .normal)
         }
     }
-    
-    func setRightStyle(_ style: BaseNavigationRightStyle) -> UIButton {
-        switch style {
-        case .share:
-            let img = UIImage.init(named: "card_detail_share_black")?.withRenderingMode(.alwaysOriginal)
-            rightView.setImage(img, for: .normal)
-        case .image(let image):
-            rightView.setImage(image, for: .normal)
-        case .title(let title, let norColor, let disColor):
-            rightView.setTitle(title, for: .normal)
-            rightView.setTitleColor(norColor, for: .normal)
-            rightView.setTitleColor(disColor, for: .disabled)
-        }
-        return rightView
-    }
+
     
     func setTitleStyle(_ style: BaseNavigationTitleStyle) {
         switch style {
         case .default:
-            titleLabel.textColor = .white
+            titleLabel.textColor = .rgb(0x232323)
             self.backgroundColor = .white
         case .custom(let titleColor,let bgColor):
             titleLabel.textColor = titleColor
@@ -133,15 +128,15 @@ public class BaseNavigationBar: UIView {
     }
     
     func setupStyle() {
-        backgroundColor = .rgb(0x11131E)
+        backgroundColor = .color(.bgColor)
         alphaBgView.backgroundColor = UIColor.white
         alphaBgView.alpha = 0
-        separatorLine.backgroundColor = .white.withAlphaComponent(0.1)
+        separatorLine.backgroundColor = .black.withAlphaComponent(0.1)
         separatorLine.isHidden = true
         
         titleLabel.do { (v) in
-            v.textColor = .white
-            v.font = .medium(16)
+            v.textColor = .rgb(0x121212)
+            v.font = .medium(20)
             v.textAlignment = .center
             v.lineBreakMode = .byTruncatingTail
             v.text = navTitle
@@ -170,4 +165,37 @@ public class BaseNavigationBar: UIView {
         }
         return rightBtn
     }
+
+    @discardableResult
+    func setupRightViews(_ list:[NavigationRightItem])->[UIButton]{
+        var views = [UIButton]()
+        var x = 0
+        let w = 40
+        for item in list {
+            let rightBtn = UIButton()
+//            rightBtn.backgroundColor = .red
+            addSubview(rightBtn)
+            rightBtn.snp.makeConstraints { (m) in
+                m.top.equalTo(kNavTop)
+                m.bottom.equalToSuperview()
+                m.width.greaterThanOrEqualTo(w)
+                m.right.equalToSuperview().inset(x)
+            }
+            rightBtn.do { (v) in
+                v.setTitleColor(.rgb(0x222222), for: .normal)
+                v.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10)
+                v.imageView?.contentMode = .right
+                if let img = item.image {
+                    v.setImage(img, for: .normal)
+                }
+                else{
+                    v.setTitle(item.title!, for: .normal)
+                }
+                v.addTarget(self, action: item.action!, for: .touchUpInside)
+            }
+            views.append(rightBtn)
+            x = x + w
+        }
+        return views
+    }
 }
index a0a2c0e..c78e780 100644 (file)
@@ -49,7 +49,7 @@ class BasePresentView: UIView {
         }
     }
     func show(animate:Bool = true) -> Void {
-//        app.window?.addSubview(self)
+        App.shared.window?.addSubview(self)
         
         if(animate){
             self.contentView.transform = CGAffineTransform.init(translationX: 0, y: self.contentH)
index 2fbc825..06eddf7 100644 (file)
@@ -9,34 +9,52 @@ import UIKit
 
 class BaseTC:UITabBarController{
     let homeVC = HomeVC()
-    let mine = MineVC()
+    let modeVC = ModeVC()
+    let sleepVC = SleepVC()
+    let customerVC = CustomerVC()
+    let mineVC = MineVC()
 
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
-        view.backgroundColor = .color(.bgColor)
         setupUI()
     }
     
 
     func setupUI(){
-        self.tabBar.backgroundColor = .rgb(0x212935)
-        let item0 = UITabBarItem(title: "home", image: UIImage(named: "tab_0_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_0_selected")?.withRenderingMode(.alwaysOriginal))
+       
+        let item0 = UITabBarItem(title: "AI智能", image: UIImage(named: "tab_0_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_0_selected")?.withRenderingMode(.alwaysOriginal))
         let nc0 = BaseNC(rootViewController: homeVC)
         nc0.tabBarItem = item0
         
-        let item1 = UITabBarItem(title: "set", image: UIImage(named: "tab_1_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_1_selected")?.withRenderingMode(.alwaysOriginal))
-        let nc1 = BaseNC(rootViewController: mine)
+        let item1 = UITabBarItem(title: "模式", image: UIImage(named: "tab_1_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_1_selected")?.withRenderingMode(.alwaysOriginal))
+        let nc1 = BaseNC(rootViewController: modeVC)
         nc1.tabBarItem = item1
-        self.viewControllers = [nc0,nc1]
+        
+        let item2 = UITabBarItem(title: "睡眠", image: UIImage(named: "tab_2_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_2_selected")?.withRenderingMode(.alwaysOriginal))
+        let nc2 = BaseNC(rootViewController: sleepVC)
+        nc2.tabBarItem = item2
+        
+        let item3 = UITabBarItem(title: "客服", image: UIImage(named: "tab_3_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_3_selected")?.withRenderingMode(.alwaysOriginal))
+        let nc3 = BaseNC(rootViewController: customerVC)
+        nc3.tabBarItem = item3
+        
+        let item4 = UITabBarItem(title: "我的", image: UIImage(named: "tab_4_normal")?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage(named: "tab_4_selected")?.withRenderingMode(.alwaysOriginal))
+        let nc4 = BaseNC(rootViewController: mineVC)
+        nc4.tabBarItem = item4
+        
+        self.viewControllers = [nc0,nc1,nc2,nc3,nc4]
+        
         
         let appearance = UITabBarAppearance()
         appearance.configureWithDefaultBackground()
-        appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white.withAlphaComponent(0.5)]
-        appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.color(.theme)]
+        appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.rgb(0x121212)]
+        appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.rgb(0x8D8D8D)]
         self.tabBar.standardAppearance = appearance
-        
-        self.selectedIndex = 1
+        self.tabBar.backgroundColor = .white
+        view.backgroundColor = .color(.bgColor)
+
+        self.selectedIndex = 0
     }
 }
index cae232c..4864f34 100644 (file)
@@ -10,7 +10,7 @@ import Kingfisher
 
 open class BaseVC:UIViewController, UIGestureRecognizerDelegate {
     
-    
+    let logBtn = UIButton(type: .custom)
     let navBar = BaseNavigationBar()
 
     public init() {
@@ -30,14 +30,25 @@ open class BaseVC:UIViewController, UIGestureRecognizerDelegate {
     override open func viewDidLoad() {
         super.viewDidLoad()
         navBar.delegate = self
-        view.backgroundColor = .rgb(0x11131E)
+        view.backgroundColor = .color(.bgColor)
         view.addSubview(navBar)
 //        self.automaticallyAdjustsScrollViewInsets = false
         navigationController?.navigationBar.isHidden = true
-        hidesBottomBarWhenPushed = true
-        
+        if self.isKind(of: HomeVC.self) ||
+            self.isKind(of: ModeVC.self) ||
+            self.isKind(of: SleepVC.self) ||
+            self.isKind(of: CustomerVC.self) ||
+            self.isKind(of: MineVC.self){
+//            hidesBottomBarWhenPushed = true
+            navBar.leftView.isHidden = true
+        }
         setupViews()
         setupLayout()
+        addLog()
+    }
+    open override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        self.view.bringSubviewToFront(logBtn)
     }
     open override func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
@@ -46,7 +57,7 @@ open class BaseVC:UIViewController, UIGestureRecognizerDelegate {
 
     
     deinit {
-        k_logViewControllerDeinit(self)
+        Logger.debug("deinit \(Self.self)")
     }
     
     override open func didReceiveMemoryWarning() {
@@ -68,6 +79,19 @@ open class BaseVC:UIViewController, UIGestureRecognizerDelegate {
     func setupLayout(){
         
     }
+    
+    func addLog(){
+        logBtn.frame = CGRect(x:  UIScreen.main.bounds.size.width - 80, y: 200, width:60, height: 60)
+        logBtn.backgroundColor = .blue
+        logBtn.layer.cornerRadius = 30
+        logBtn.layer.masksToBounds = true
+        logBtn.setTitle("log", for: .normal)
+        logBtn.addTarget(self, action: #selector(logAction), for: .touchUpInside)
+        view.addSubview(logBtn)
+    }
+    @objc func logAction(){
+        App.shared.goToPage(LogVC())
+    }
 }
 
 extension BaseVC: BaseNavigationBarDelegate {
@@ -99,22 +123,5 @@ extension BaseVC: BaseNavigationBarDelegate {
         navBar.leftView.setTitle(title, for: .normal)
         return navBar.leftView
     }
-    
-    @discardableResult
-    public func setNavRight(icon: UIImage?) -> UIButton {
-        navBar.rightView.setImage(icon, for: .normal)
-        return navBar.rightView
-    }
-    
-    @discardableResult
-    public func setNavRight(title: String,
-                          norColor: UIColor = .black,
-                          disColor: UIColor = .gray,
-                          titleFont: UIFont = .regular(14, isFit: false)) -> UIButton {
-        navBar.rightView.setTitleColor(norColor, for: .normal)
-        navBar.rightView.setTitleColor(disColor, for: .disabled)
-        navBar.rightView.titleLabel?.font = titleFont
-        navBar.rightView.setTitle(title, for: .normal)
-        return navBar.rightView
-    }
+
 }
diff --git a/ShenYin/ShenYin/UI/Base/LogVC.swift b/ShenYin/ShenYin/UI/Base/LogVC.swift
new file mode 100644 (file)
index 0000000..2a0ce84
--- /dev/null
@@ -0,0 +1,73 @@
+//
+//  LogVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+class LogVC: BaseVC {
+    
+    var textView =  UITextView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+    }
+    
+    override func setupViews() {
+        navBar.title = "log"
+        view.backgroundColor = .white
+        navBar.title = "log"
+        navBar.rightView.setTitle("保存", for: .normal)
+        
+        textView.isEditable = false
+        view.addSubview(textView)
+        textView.snp.makeConstraints { make in
+            make.top.equalTo(kNavBtm)
+            make.left.right.bottom.equalToSuperview()
+        }
+    }
+    
+    override func viewDidAppear(_ animated: Bool) {
+        super.viewDidAppear(animated)
+        
+        textView.text = Logger.logs.joined()
+        let range = NSMakeRange(textView.text.count - 1, 1)
+        textView.scrollRangeToVisible(range)
+    }
+    
+    override func navRightViewTapped() {
+        shareAction()
+    }
+    
+    @objc func shareAction() {
+        let formatter = DateFormatter()
+        formatter.dateFormat = "yyyyMMddHHmmss"
+        let name = formatter.string(from: Date())
+        
+        let filePath = "\(NSHomeDirectory())/Documents/ShenYin_\(name).txt"
+        let url = URL(fileURLWithPath: filePath)
+        let data = self.textView.text.data(using:.utf8)
+        do {
+            try data?.write(to: url, options:.atomic)
+            print(filePath)
+            self.saveFile(withFilePath: filePath)
+        } catch {
+            print(error)
+        }
+    }
+    
+    func saveFile(withFilePath filePath: String) {
+        let fUrl = URL(fileURLWithPath: filePath)
+        let vc = UIDocumentPickerViewController(url: fUrl, in:.exportToService)
+        vc.delegate = self
+        vc.modalPresentationStyle = .overFullScreen
+        self.present(vc, animated: true, completion: nil)
+    }
+}
+
+extension LogVC:UIDocumentPickerDelegate{
+    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
+        controller.dismiss(animated: true, completion: nil)
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Customer/CustomerVC.swift b/ShenYin/ShenYin/UI/Customer/CustomerVC.swift
new file mode 100644 (file)
index 0000000..fc8376d
--- /dev/null
@@ -0,0 +1,26 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/5.
+//
+
+import UIKit
+
+class CustomerVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.navBar.title = "客服"
+        
+    }
+    override func setupViews() {
+        navBar.rightView.setImage(UIImage(named: "help_icon"), for: .normal)
+    }
+    override func setupLayout() {
+        
+    }
+    override func navRightViewTapped() {
+        
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift b/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift
new file mode 100644 (file)
index 0000000..d9af3cb
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  CallingRecordVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class CallingRecordVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "通话录音"
+    }
+    override func setupLayout() {
+        
+    }
+
+}
diff --git a/ShenYin/ShenYin/UI/Home/ChatVC.swift b/ShenYin/ShenYin/UI/Home/ChatVC.swift
new file mode 100644 (file)
index 0000000..42186a4
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  ChatVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class ChatVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "对话"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Home/Chinese2EnglishVC.swift b/ShenYin/ShenYin/UI/Home/Chinese2EnglishVC.swift
new file mode 100644 (file)
index 0000000..e7db819
--- /dev/null
@@ -0,0 +1,25 @@
+//
+//  Chinese2EnglishVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+
+import UIKit
+
+class Chinese2EnglishVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "中英互译"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Home/DialogTranlateVC.swift b/ShenYin/ShenYin/UI/Home/DialogTranlateVC.swift
new file mode 100644 (file)
index 0000000..c7e4f60
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  DialogTranlateVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class DialogTranlateVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "对话翻译"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Home/FieldRecordingVC.swift b/ShenYin/ShenYin/UI/Home/FieldRecordingVC.swift
new file mode 100644 (file)
index 0000000..8637319
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  FieldRecordingVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class FieldRecordingVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "现场录音"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryBottonView.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryBottonView.swift
new file mode 100644 (file)
index 0000000..09023e1
--- /dev/null
@@ -0,0 +1,45 @@
+//
+//  HistoryBottonView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+class HistoryBottonView: BaseView {
+    let titleLabel = UILabel()
+    var type = ModeEffectsType.fashion{
+        didSet{
+            titleLabel.text = type.title
+        }
+    }
+    
+    override func setupViews() {
+        addSubviews([titleLabel])
+        titleLabel.do { (v) in
+            v.textColor = .hexString("#666666")
+            v.font = .regular(14)
+            v.numberOfLines = 0
+            
+            let attachment = NSTextAttachment()
+            attachment.image = UIImage(named: "tips_icon2")
+            attachment.bounds = CGRect(x: 0, y: 0, width: 12, height: 12)
+            let attachmentString = NSAttributedString(attachment: attachment)
+            
+            let text = " 由于录音文件存储在手机本地,因此软件卸载后,您的录音数据将全部丢失。耳机内置存储的录音文件可以通过APP下载到手机中,并支持备注和重命名等操作。"
+            let textString = NSAttributedString(string: text)
+            
+            let mutableAttributedString = NSMutableAttributedString()
+            mutableAttributedString.append(attachmentString)
+            mutableAttributedString.append(textString)
+            v.attributedText = mutableAttributedString
+        }
+    }
+    
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(18)
+            make.top.equalToSuperview().inset(20)
+            make.bottom.equalToSuperview().inset(33)
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryFontVC.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryFontVC.swift
new file mode 100644 (file)
index 0000000..f6d1223
--- /dev/null
@@ -0,0 +1,78 @@
+//
+//  HistoryFontVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/13.
+//
+
+import UIKit
+class HistoryFontVC: BaseVC{
+    let tableView = UITableView(frame: .zero, style: .plain)
+    var list:[FontType] = [.min,.stand,.big]
+    var currentType = FontType.stand
+    let btn = CustomButton()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+    }
+    override func setupViews() {
+        self.navBar.title = "调整字号"
+        tableView.do { v in
+            v.backgroundColor = .rgb(0xF7F7F7)
+            v.delegate = self
+            v.dataSource = self
+            v.rowHeight = 52
+            v.separatorStyle = .none
+            v.register(SelectCell.self, forCellReuseIdentifier: SelectCell.reuseID)
+        }
+        view.addSubviews([tableView,btn])
+        
+        btn.set(title: "设置", target: self, action: #selector(btnAction))
+    }
+    override func setupLayout() {
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+            make.top.equalTo(kNavBtm)
+        }
+        btn.snp.makeConstraints { make in
+            make.width.equalTo(272)
+            make.height.equalTo(46)
+            make.centerX.equalToSuperview()
+            make.bottom.equalToSuperview().inset(82)
+        }
+    }
+    @objc func btnAction(){
+        
+    }
+}
+
+extension HistoryFontVC:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = SelectCell.cell(withTableView: tableView, indexPath: indexPath)
+        cell.fontType = list[indexPath.row]
+        let rect = CGRect(x: 0, y: 0, width: kScreenWid - 36, height: 52)
+        if indexPath.row == 0 {
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else if indexPath.row == list.count - 1{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.bottomLeft,.bottomRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.allCorners], cornerRadii: CGSize(width: 0, height: 0))
+        }
+        cell.selectedIcon.isHidden = cell.fontType != currentType
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let data = list[indexPath.row]
+        currentType = data
+        tableView.reloadData()
+    }
+}
+
+
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordCell.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordCell.swift
new file mode 100644 (file)
index 0000000..6197192
--- /dev/null
@@ -0,0 +1,110 @@
+//
+//  HistoryRecordCell.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+
+class HistoryRecordCell: BaseTableViewCell {
+    let bgView = UIView()
+    let playIcon = UIImageView()
+    let titleLabel = UILabel()
+    let collectionIcon = UIImageView()
+    let durationLabel = UILabel()
+    let dateLabel = UILabel()
+    let typeLabel = UILabel()
+    
+    var type:MineCellType = .user{
+        didSet{
+            titleLabel.text = type.title
+        }
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    override func setupViews() {
+        contentView.addSubview(bgView)
+        bgView.addSubviews([playIcon,titleLabel,durationLabel,collectionIcon,typeLabel,dateLabel])
+        
+        backgroundColor = .rgb(0xF7F7F7)
+        contentView.backgroundColor = .clear
+        selectionStyle = .none
+        bgView.do { v in
+            v.backgroundColor = UIColor.white
+            v.layer.cornerRadius = 12
+            v.layer.masksToBounds = true
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(16)
+            v.textAlignment = .left
+            v.text = "周一会议总结"
+        }
+        durationLabel.do { (v) in
+            v.textColor = .rgb(0x666666)
+            v.font = .regular(12)
+            v.textAlignment = .left
+            v.text = "00:32:27"
+        }
+        typeLabel.do { (v) in
+            v.textColor = .rgb(0x666666)
+            v.font = .regular(12)
+            v.textAlignment = .left
+            v.text = "现场录音"
+        }
+        dateLabel.do { (v) in
+            v.textColor = .rgb(0x666666)
+            v.font = .regular(12)
+            v.textAlignment = .left
+            v.text = "2025-06-02 10:28"
+        }
+        collectionIcon.image = UIImage(named: "collection_selected")
+        playIcon.do { v in
+            v.backgroundColor = .lightGray
+        }
+    }
+    
+    override func setupLayout() {
+        bgView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview().inset(15)
+            m.top.equalToSuperview().inset(5)
+            m.bottom.equalToSuperview().inset(5)
+            m.height.equalTo(74)
+        }
+
+        playIcon.snp.makeConstraints { (m) in
+            m.width.equalTo(30)
+            m.height.equalTo(30)
+            m.left.equalToSuperview().inset(14)
+            m.centerY.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.top.equalTo(16)
+            m.left.equalToSuperview().offset(52)
+        }
+        collectionIcon.snp.makeConstraints { (m) in
+            m.size.equalTo(16)
+            m.left.equalTo(titleLabel.snp.right).offset(8)
+            m.centerY.equalTo(titleLabel)
+        }
+        
+        durationLabel.snp.makeConstraints { (m) in
+            m.bottom.equalToSuperview().inset(16)
+            m.left.equalTo(titleLabel)
+        }
+        typeLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview().inset(16)
+            m.right.equalToSuperview().inset(14)
+        }
+        dateLabel.snp.makeConstraints { (m) in
+            m.bottom.equalToSuperview().inset(16)
+            m.right.equalTo(typeLabel)
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordShareVC.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordShareVC.swift
new file mode 100644 (file)
index 0000000..9f6882d
--- /dev/null
@@ -0,0 +1,104 @@
+//
+//  HistoryRecordShareVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/13.
+//
+
+import UIKit
+class HistoryRecordShareVC: BaseVC{
+    let tableView = UITableView(frame: .zero, style: .plain)
+    var list:[ShareType] = [.audio_document,.audio,.document]
+    var currentType = ShareType.audio_document
+    let btn = CustomButton()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+    }
+    override func setupViews() {
+        self.navBar.title = "分享"
+        tableView.do { v in
+            v.backgroundColor = .rgb(0xF7F7F7)
+            v.delegate = self
+            v.dataSource = self
+            v.rowHeight = 52
+            v.separatorStyle = .none
+            v.register(SelectCell.self, forCellReuseIdentifier: SelectCell.reuseID)
+            v.tableHeaderView = ShareHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWid, height: 70))
+        }
+        view.addSubviews([tableView,btn])
+        
+        btn.set(title: "设置", target: self, action: #selector(btnAction))
+    }
+    override func setupLayout() {
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+            make.top.equalTo(kNavBtm)
+        }
+        btn.snp.makeConstraints { make in
+            make.width.equalTo(272)
+            make.height.equalTo(46)
+            make.centerX.equalToSuperview()
+            make.bottom.equalToSuperview().inset(82)
+        }
+    }
+    @objc func btnAction(){
+        
+    }
+}
+
+extension HistoryRecordShareVC:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = SelectCell.cell(withTableView: tableView, indexPath: indexPath)
+        cell.shareType = list[indexPath.row]
+        let rect = CGRect(x: 0, y: 0, width: kScreenWid - 36, height: 52)
+        if indexPath.row == 0 {
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else if indexPath.row == list.count - 1{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.bottomLeft,.bottomRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.allCorners], cornerRadii: CGSize(width: 0, height: 0))
+        }
+        cell.selectedIcon.isHidden = cell.shareType != currentType
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let data = list[indexPath.row]
+        currentType = data
+        tableView.reloadData()
+    }
+}
+
+class ShareHeaderView: BaseView {
+    let titleLabel = UILabel()
+
+    override func setupViews() {
+        addSubviews([titleLabel])
+        titleLabel.do { (v) in
+            v.textColor = .hexString("#666666")
+            v.font = .regular(14)
+            v.numberOfLines = 0
+
+            let text = "多个文件将压缩成一个.zip的文件以便于分享。请选择您需要导出的文件类型:"
+            let textString = NSAttributedString(string: text)
+            let mutableAttributedString = NSMutableAttributedString()
+            mutableAttributedString.append(textString)
+            v.attributedText = mutableAttributedString
+        }
+    }
+    
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(18)
+            make.top.equalToSuperview()
+            make.bottom.equalToSuperview()
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordVC.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/HistoryRecordVC.swift
new file mode 100644 (file)
index 0000000..f63ca00
--- /dev/null
@@ -0,0 +1,82 @@
+//
+//  HistoryRecordVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+
+import UIKit
+class HistoryRecordVC: BaseVC{
+    let tableView = UITableView(frame: .zero, style: .plain)
+    let bottomView = HistoryBottonView()
+    var list:[MineCellType] = [.user,.device,.userAgreement,.privacyPolicy,.language,.update,.feeback,.about]
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+    }
+    override func setupViews() {
+        navBar.do { v in
+            v.title = "历史录音"
+            let items = [NavigationRightItem(image: UIImage(named: "filter"),target: self, action: #selector(searchAction)),NavigationRightItem(image: UIImage(named: "search"), target: self,action: #selector(searchAction))]
+            v.setupRightViews(items)
+        }
+        
+        tableView.do { v in
+            v.backgroundColor = .rgb(0xF7F7F7)
+            v.delegate = self
+            v.dataSource = self
+            v.estimatedRowHeight = 84
+            v.separatorStyle = .none
+            v.register(HistoryRecordCell.self, forCellReuseIdentifier: HistoryRecordCell.reuseID)
+        }
+        view.addSubviews([tableView,bottomView])
+    }
+    override func setupLayout() {
+        bottomView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+        }
+        tableView.snp.makeConstraints { make in
+            make.left.right.equalToSuperview()
+            make.top.equalTo(kNavBtm)
+            make.bottom.equalTo(bottomView.snp.top)
+        }
+    }
+    @objc func searchAction(){
+        
+    }
+    @objc func filterAction(){
+        
+    }
+}
+
+extension HistoryRecordVC:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = HistoryRecordCell.cell(withTableView: tableView, indexPath: indexPath)
+        cell.type = list[indexPath.row]
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let data = list[indexPath.row]
+        
+    }
+    // 实现滑动删除功能
+    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
+        if editingStyle == .delete {
+            // 从数据源中移除对应数据
+            list.remove(at: indexPath.row)
+            // 从表格中删除对应行
+            tableView.deleteRows(at: [indexPath], with:.fade)
+        }
+    }
+    
+    // 允许编辑
+    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
+        return true
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/HistoryRecord/SelecteCell.swift b/ShenYin/ShenYin/UI/Home/HistoryRecord/SelecteCell.swift
new file mode 100644 (file)
index 0000000..97d14ab
--- /dev/null
@@ -0,0 +1,114 @@
+//
+//  SelecteCell.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/13.
+//
+
+
+enum FontType:Int{
+    case min
+    case stand
+    case big
+    var title:String{
+        switch self {
+        case .min:
+            return "小"
+        case .stand:
+            return "标准"
+        case .big:
+            return "大"
+        }
+    }
+}
+
+enum ShareType:Int{
+    case audio
+    case document
+    case audio_document
+    var title:String{
+        switch self {
+        case .audio:
+            return "仅音频文件"
+        case .document:
+            return "仅文档"
+        case .audio_document:
+            return "音频文件+文档"
+        }
+    }
+}
+
+
+
+class SelectCell: BaseTableViewCell {
+    let bgView = UIView()
+    let titleLabel = UILabel()
+    let selectedIcon = UIImageView()
+    let line = UIView()
+    
+    var fontType:FontType = .min{
+        didSet{
+            titleLabel.text = fontType.title
+        }
+    }
+    
+    var shareType:ShareType = .document{
+        didSet{
+            titleLabel.text = shareType.title
+        }
+    }
+    
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    override func setupViews() {
+        contentView.addSubview(bgView)
+        bgView.addSubviews([titleLabel,selectedIcon,line])
+        
+        backgroundColor = .rgb(0xF7F7F7)
+        contentView.backgroundColor = .clear
+        selectionStyle = .none
+        bgView.do { v in
+            v.backgroundColor = UIColor.white
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(14)
+            v.textAlignment = .left
+        }
+        
+        selectedIcon.image = UIImage(named: "cell_selected")
+        line.do { v in
+            v.backgroundColor = .hexString("#F2F2F2")
+        }
+    }
+    
+    override func setupLayout() {
+        bgView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview().inset(18)
+            m.top.equalToSuperview()
+            m.bottom.equalToSuperview()
+        }
+        selectedIcon.snp.makeConstraints { (m) in
+            m.width.equalTo(21)
+            m.height.equalTo(16)
+            m.right.equalToSuperview().inset(22)
+            m.centerY.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.centerY.equalToSuperview()
+            m.left.equalToSuperview().offset(16)
+            m.height.equalToSuperview()
+        }
+        line.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(18)
+            make.bottom.equalToSuperview()
+            make.height.equalTo(0.4)
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/HomeVC.swift b/ShenYin/ShenYin/UI/Home/HomeVC.swift
deleted file mode 100644 (file)
index af098e7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-//  HomeVC.swift
-//  Magpie
-//
-//  Created by incar on 2024/1/3.
-//
-
-import UIKit
-
-class HomeVC:BaseVC{
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        self.navBar.title = "首页"
-        
-        self.navBar.rightView.setTitle("more", for: .normal)
-    }
-    
-    override func navRightViewTapped() {
-        let v = BasePickerView()
-        v.setupData(["2","3","4","5","6","7","8"])
-        v.selectedIndex(4)
-        v.show(animate: true)
-        return
-    }
-    
-    @objc func addDeviceAction(){
-        let vc = ScanDeviceVC()
-        self.navigationController?.pushViewController(vc, animated: true)
-    }
-    @objc func saveAction(){
-//        LogManager.instance.add("保存")
-//        LogManager.instance.saveToFile()
-
-//        SVProgressHUD.showLoading()
-//        HttpClient.instance.request(CommomApi.login(userName: "")) { (model:ResponseBaseModel, res) in
-//            if model.isSuccess{
-////                SVProgressHUD.show(withStatus: "请求成功")
-//            }
-//            else{
-////                SVProgressHUD.show(withStatus: "请求失败")
-//            }
-//        }
-    }
-}
-
diff --git a/ShenYin/ShenYin/UI/Home/RecordTranslateVC.swift b/ShenYin/ShenYin/UI/Home/RecordTranslateVC.swift
new file mode 100644 (file)
index 0000000..cd0e7e1
--- /dev/null
@@ -0,0 +1,25 @@
+//
+//  RecordTranslateVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+
+import UIKit
+
+class RecordTranslateVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "同声传译"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Home/RoleListVC.swift b/ShenYin/ShenYin/UI/Home/RoleListVC.swift
new file mode 100644 (file)
index 0000000..ff0f65f
--- /dev/null
@@ -0,0 +1,132 @@
+//
+//  RoleListVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+class RoleListVC: BaseVC{
+    let tableView = UITableView(frame: .zero, style: .plain)
+    var list:[MineCellType] = [.user,.device,.userAgreement,.privacyPolicy,.language,.update,.feeback,.about]
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+    }
+    override func setupViews() {
+        self.navBar.title = "角色切换"
+        tableView.do { v in
+            v.backgroundColor = .rgb(0xF7F7F7)
+            v.delegate = self
+            v.dataSource = self
+            v.rowHeight = 52
+            v.separatorStyle = .none
+            v.register(RoleListCell.self, forCellReuseIdentifier: RoleListCell.reuseID)
+        }
+        view.addSubview(tableView)
+    }
+    override func setupLayout() {
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+            make.top.equalTo(kNavBtm)
+        }
+    }
+}
+
+extension RoleListVC:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = RoleListCell.cell(withTableView: tableView, indexPath: indexPath)
+//        cell.type = list[indexPath.row]
+        let rect = CGRect(x: 0, y: 0, width: kScreenWid - 36, height: 52)
+        if indexPath.row == 0 {
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else if indexPath.row == list.count - 1{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.bottomLeft,.bottomRight], cornerRadii: CGSize(width: 8, height: 8))
+        }
+        else{
+            cell.bgView.yc.setCorners(withRoundedRect: rect, roundingCorners: [.allCorners], cornerRadii: CGSize(width: 0, height: 0))
+        }
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let data = list[indexPath.row]
+    }
+}
+
+
+class RoleListCell: BaseTableViewCell {
+    let bgView = UIView()
+    let icon = UIImageView()
+    let titleLabel = UILabel()
+    let selectedIcon = UIImageView()
+    let line = UIView()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    override func setupViews() {
+        contentView.addSubview(bgView)
+        bgView.addSubviews([titleLabel,icon,selectedIcon,line])
+        
+        backgroundColor = .rgb(0xF7F7F7)
+        contentView.backgroundColor = .clear
+        selectionStyle = .none
+        bgView.do { v in
+            v.backgroundColor = UIColor.white
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(14)
+            v.textAlignment = .left
+            v.text = "阳光大男孩"
+        }
+        icon.do { v in
+            v.backgroundColor = .lightGray
+            v.yc.setCornerRadius(18)
+        }
+        selectedIcon.image = UIImage(named: "cell_selected")
+        line.do { v in
+            v.backgroundColor = .hexString("#F2F2F2")
+        }
+    }
+    
+    override func setupLayout() {
+        bgView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview().inset(18)
+            m.top.equalToSuperview()
+            m.bottom.equalToSuperview()
+        }
+        selectedIcon.snp.makeConstraints { (m) in
+            m.width.equalTo(21)
+            m.height.equalTo(16)
+            m.right.equalToSuperview().inset(22)
+            m.centerY.equalToSuperview()
+        }
+        icon.snp.makeConstraints { (m) in
+            m.width.equalTo(36)
+            m.height.equalTo(36)
+            m.left.equalToSuperview().inset(18)
+            m.centerY.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.centerY.equalTo(icon)
+            m.left.equalTo(icon.snp.right).offset(8)
+            m.height.equalToSuperview()
+        }
+        line.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(18)
+            make.bottom.equalToSuperview()
+            make.height.equalTo(0.4)
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/Root/CurrentDeviceView.swift b/ShenYin/ShenYin/UI/Home/Root/CurrentDeviceView.swift
new file mode 100644 (file)
index 0000000..f62b0be
--- /dev/null
@@ -0,0 +1,30 @@
+//
+//  CurrentDeviceView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+class CurrentDeviceView: BaseView {
+    let icon = UIImageView()
+    override func setupViews() {
+//        backgroundColor = .blue
+        addSubviews([icon])
+        icon.do { v in
+            //v.backgroundColor = .lightGray
+            v.image = UIImage(named: "home_header")
+        }
+    }
+    
+    override func setupLayout() {
+        icon.snp.makeConstraints { make in
+            make.width.equalTo(168)
+            make.height.equalTo(138)
+            make.centerX.equalToSuperview()
+            make.top.equalToSuperview().inset(20)
+            make.bottom.equalToSuperview()
+        }
+    }
+}
+
+
diff --git a/ShenYin/ShenYin/UI/Home/Root/HomeBottomView.swift b/ShenYin/ShenYin/UI/Home/Root/HomeBottomView.swift
new file mode 100644 (file)
index 0000000..80f0b42
--- /dev/null
@@ -0,0 +1,65 @@
+//
+//  HomeBottomView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+class HomeBottomView: BaseView {
+    let bottonView = UIView()
+    let tipsIcon = UIImageView()
+    let titleLabel = UILabel()
+    let valueLabel = UILabel()
+    
+    override func setupViews() {
+        addSubviews([bottonView])
+        bottonView.addSubviews([titleLabel,valueLabel,tipsIcon])
+//        backgroundColor = .red
+        bottonView.do { v in
+            v.backgroundColor = .rgb(0xFAFAFA)
+            v.yc.setCornerRadius(30)
+        }
+        tipsIcon.do { v in
+//            v.backgroundColor = .lightGray
+            v.image = UIImage(named: "home_recordHistory")
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x313230)
+            v.font = .bold(18)
+            v.text = "历史录音"
+        }
+        valueLabel.do { (v) in
+            v.textColor = .rgb(0x8d8d8d)
+            v.font = .regular(14)
+            v.text = "随时随地 一键开录"
+        }
+        
+        yc.addTap(target: self, action: #selector(tapAction))
+    }
+    
+    override func setupLayout() {
+        bottonView.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(15)
+            make.top.equalToSuperview()
+            make.bottom.equalToSuperview()
+            make.height.equalTo(116)
+        }
+        titleLabel.snp.makeConstraints { make in
+            make.left.equalToSuperview().inset(15)
+            make.top.equalTo(35)
+        }
+        valueLabel.snp.makeConstraints { make in
+            make.left.equalTo(titleLabel)
+            make.top.equalTo(65)
+        }
+        tipsIcon.snp.makeConstraints { make in
+            make.size.equalTo(50)
+            make.right.equalToSuperview().inset(15)
+            make.centerY.equalToSuperview()
+        }
+    }
+    @objc func tapAction(){
+        App.shared.goToPage(HistoryRecordVC())
+    }
+}
+
diff --git a/ShenYin/ShenYin/UI/Home/Root/HomeFunctionView.swift b/ShenYin/ShenYin/UI/Home/Root/HomeFunctionView.swift
new file mode 100644 (file)
index 0000000..0c2ebb8
--- /dev/null
@@ -0,0 +1,173 @@
+//
+//  Home.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+public enum HomeCellType: Int {
+    case fileRecord
+    case callRecord
+    case chinese2English
+    case recordTranslate
+    case dialogTranslate
+    case textTranslate
+
+    
+    var title:String{
+        switch self {
+        case .fileRecord:
+            return "现场录音"
+        case .callRecord:
+            return "通话录音"
+        case .chinese2English:
+            return "中英互译"
+        case .recordTranslate:
+            return "同声传译"
+        case .dialogTranslate:
+            return "对话翻译"
+        case .textTranslate:
+            return "文本翻译"
+        }
+    }
+    var subTitle:String{
+        switch self {
+        case .fileRecord:
+            return "随时随地 一键开录"
+        case .callRecord:
+            return "随时随地 一键开录"
+        case .chinese2English:
+            return "随时随地 一键开录"
+        case .recordTranslate:
+            return "随时随地 一键开录"
+        case .dialogTranslate:
+            return "随时随地 一键开录"
+        case .textTranslate:
+            return "随时随地 一键开录"
+        }
+    }
+    var icon:String{
+        switch self {
+        case .fileRecord:
+            return "home_fileRecord"
+        case .callRecord:
+            return "home_callRecord"
+        case .chinese2English:
+            return "home_chinese2English"
+        case .recordTranslate:
+            return "home_recordTranslate"
+        case .dialogTranslate:
+            return "home_dialogTranslate"
+        case .textTranslate:
+            return "home_textTranslate"
+        }
+    }
+}
+
+
+class HomeFunctionView: BaseView {
+    let list:[HomeCellType] = [.fileRecord,.callRecord,.chinese2English,.recordTranslate,.dialogTranslate,.textTranslate]
+    override func setupViews() {
+//        backgroundColor = .yellow
+        
+        let w = (kScreenWid - 45)/2.0
+        let h = 128.0
+        var x = 15.0
+        var y = 0.0
+        for (index, value) in list.enumerated() {
+            let view = HomeCell()
+            addSubview(view)
+            
+            view.type = value
+            x = Double(index%2)*w + Double(index%2 + 1)*15.0
+            y = Double(index/2)*h + Double(index/2)*15.0
+            view.snp.makeConstraints { make in
+                make.width.equalTo(w)
+                make.height.equalTo(h)
+                make.left.equalToSuperview().inset(x)
+                make.top.equalToSuperview().inset(y)
+                if index == list.count - 1 {
+                    make.bottom.equalToSuperview()
+                }
+            }
+        }
+    }
+    
+    override func setupLayout() {
+        
+    }
+}
+class HomeCell: BaseView {
+    let bgView = UIView()
+    let icon = UIImageView()
+    let titleLabel = UILabel()
+    let valueLabel = UILabel()
+    var type = HomeCellType.callRecord{
+        didSet{
+            titleLabel.text = type.title
+            valueLabel.text = type.subTitle
+            icon.image = UIImage(named: type.icon)
+        }
+    }
+    
+    override func setupViews() {
+        addSubview(bgView)
+        bgView.addSubviews([titleLabel,icon,valueLabel])
+        bgView.do { v in
+            v.backgroundColor = .rgb(0xFAFAFA)
+            v.yc.setCornerRadius(30)
+        }
+        icon.do { v in
+//            v.backgroundColor = .lightGray
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x313230)
+            v.font = .bold(14)
+            v.text = "AI智能对话"
+        }
+        valueLabel.do { (v) in
+            v.textColor = .rgb(0x8d8d8d)
+            v.font = .regular(10)
+            v.text = "随时随地 一键开录"
+        }
+        yc.addTap(target: self, action: #selector(tapAction))
+    }
+    
+    override func setupLayout() {
+        bgView.snp.makeConstraints { make in
+            make.left.right.top.bottom.equalToSuperview()
+        }
+        icon.snp.makeConstraints { (m) in
+            m.width.equalTo(32)
+            m.height.equalTo(32)
+            m.left.equalToSuperview().inset(15)
+            m.top.equalToSuperview().inset(15)
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview().inset(50)
+            m.left.equalToSuperview().offset(15)
+        }
+        valueLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview().inset(70)
+            m.left.equalTo(titleLabel)
+        }
+    }
+    @objc func tapAction(){
+        switch type {
+        case .fileRecord:
+            App.shared.goToPage(FieldRecordingVC())
+        case .callRecord:
+            App.shared.goToPage(CallingRecordVC())
+        case .chinese2English:
+            App.shared.goToPage(Chinese2EnglishVC())
+        case .recordTranslate:
+            App.shared.goToPage(RecordTranslateVC())
+        case .dialogTranslate:
+            App.shared.goToPage(ChatVC())
+        case .textTranslate:
+            App.shared.goToPage(TextTranlateVC())
+        }
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Home/Root/HomeHeadView.swift b/ShenYin/ShenYin/UI/Home/Root/HomeHeadView.swift
new file mode 100644 (file)
index 0000000..594526f
--- /dev/null
@@ -0,0 +1,69 @@
+//
+//  HomeheadView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+
+
+class HomeHeadView: BaseView {
+    let icon = CurrentDeviceView()
+    let bottonView = UIView()
+    let tipsIcon = UIImageView()
+    let titleLabel = UILabel()
+    let valueLabel = UILabel()
+    
+    override func setupViews() {
+        addSubviews([icon,bottonView])
+        bottonView.addSubviews([titleLabel,valueLabel,tipsIcon])
+//        backgroundColor = .blue
+        icon.do { v in
+//            v.backgroundColor = .lightGray
+        }
+        bottonView.do { v in
+            v.backgroundColor = .rgb(0xFAFAFA)
+            v.yc.setCornerRadius(30)
+        }
+        tipsIcon.do { v in
+            v.image = UIImage(named: "home_chat")
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x313230)
+            v.font = .bold(18)
+            v.text = "AI智能对话"
+        }
+        valueLabel.do { (v) in
+            v.textColor = .rgb(0x8d8d8d)
+            v.font = .regular(14)
+            v.text = "随时随地 一键开录"
+        }
+    }
+    
+    override func setupLayout() {
+        icon.snp.makeConstraints { make in
+            make.top.width.left.equalToSuperview()
+        }
+        bottonView.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(15)
+            make.top.equalTo(icon.snp.bottom).offset(20)
+            make.bottom.equalToSuperview()
+            make.height.equalTo(116)
+        }
+        titleLabel.snp.makeConstraints { make in
+            make.left.equalToSuperview().inset(15)
+            make.top.equalTo(35)
+        }
+        valueLabel.snp.makeConstraints { make in
+            make.left.equalTo(titleLabel)
+            make.top.equalTo(65)
+        }
+        tipsIcon.snp.makeConstraints { make in
+            make.size.equalTo(50)
+            make.right.equalToSuperview().inset(15)
+            make.centerY.equalToSuperview()
+        }
+    }
+}
+
+
diff --git a/ShenYin/ShenYin/UI/Home/Root/HomeVC.swift b/ShenYin/ShenYin/UI/Home/Root/HomeVC.swift
new file mode 100644 (file)
index 0000000..9bb7fe2
--- /dev/null
@@ -0,0 +1,87 @@
+//
+//  HomeVC.swift
+//  Magpie
+//
+//  Created by incar on 2024/1/3.
+//
+
+import UIKit
+
+class HomeVC:BaseVC{
+    let bgView = UIScrollView()
+    let headerView = HomeHeadView()
+    let functionView = HomeFunctionView()
+    let bottomView = HomeBottomView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+    }
+    
+    override func setupViews() {
+        self.navBar.title = "AI智能"
+        navBar.backgroundColor = .white
+        view.backgroundColor = .white
+        navBar.rightView.setImage(UIImage(named: "add_icon"), for: .normal)
+        view.addSubview(bgView)
+        bgView.addSubviews([headerView,functionView,bottomView])
+    }
+    override func setupLayout() {
+        bgView.snp.makeConstraints { make in
+            make.top.equalTo(kNavBtm)
+            make.left.right.bottom.equalToSuperview()
+        }
+        headerView.snp.makeConstraints { make in
+            make.top.equalToSuperview()
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+        }
+        functionView.snp.makeConstraints { make in
+            make.top.equalTo(headerView.snp.bottom).offset(10)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+        }
+        bottomView.snp.makeConstraints { make in
+            make.top.equalTo(functionView.snp.bottom).offset(10)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.bottom.equalToSuperview()
+        }
+    }
+
+    override func navRightViewTapped() {
+//        App.shared.goToPage(AddDeviceVC())
+//        let v = BasePickerView()
+//        v.setupData(["2","3","4","5","6","7","8"])
+//        v.selectedIndex(4)
+//        v.show(animate: true)
+        
+        let v = CustomPicker(title: "tishi", list: ["2","3","4","5","6","7","8"])
+        v.selectedIndex = 2
+        v.show()
+        v.didSelected = { (index,value) in
+            print(index,value)
+        }
+        return
+    }
+    
+    @objc func addDeviceAction(){
+        let vc = ScanDeviceVC()
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    @objc func saveAction(){
+//        LogManager.instance.add("保存")
+//        LogManager.instance.saveToFile()
+
+//        SVProgressHUD.showLoading()
+//        HttpClient.instance.request(CommomApi.login(userName: "")) { (model:ResponseBaseModel, res) in
+//            if model.isSuccess{
+////                SVProgressHUD.show(withStatus: "请求成功")
+//            }
+//            else{
+////                SVProgressHUD.show(withStatus: "请求失败")
+//            }
+//        }
+    }
+}
+
diff --git a/ShenYin/ShenYin/UI/Home/TextTranslateVC.swift b/ShenYin/ShenYin/UI/Home/TextTranslateVC.swift
new file mode 100644 (file)
index 0000000..9bafdd5
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  TextTranlateVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class TextTranlateVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "文本翻译"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mine/AboutVC.swift b/ShenYin/ShenYin/UI/Mine/AboutVC.swift
new file mode 100644 (file)
index 0000000..f1603d6
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  AboutVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class AboutVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "关于我们"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mine/DeviceInfoVC.swift b/ShenYin/ShenYin/UI/Mine/DeviceInfoVC.swift
new file mode 100644 (file)
index 0000000..74358ee
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  DeviceInfoVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class DeviceInfoVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "设备详情"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mine/FeekbackVC.swift b/ShenYin/ShenYin/UI/Mine/FeekbackVC.swift
new file mode 100644 (file)
index 0000000..6b8fa19
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  FeekbackVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class FeekbackVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "意见反馈"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mine/LanguageVC.swift b/ShenYin/ShenYin/UI/Mine/LanguageVC.swift
new file mode 100644 (file)
index 0000000..328e9cd
--- /dev/null
@@ -0,0 +1,25 @@
+//
+//  LanguageVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+
+import UIKit
+
+class LanguageVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "语言"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
index fef79d6..87388a4 100644 (file)
@@ -18,7 +18,7 @@ class AgreeView: BaseView {
             v.addTarget(self, action: #selector(agreeBtnAction), for: .touchUpInside)
         }
         agreeTitle.do { (v) in
-            v.textColor = .white.withAlphaComponent(0.8)
+            v.textColor = .black.withAlphaComponent(0.8)
             v.font = .medium(14)
             v.textAlignment = .left
             v.text = "登录即代表同意"
index dc762c3..8e7c46c 100644 (file)
@@ -17,23 +17,21 @@ class CodeView: BaseView {
         label.do { v in
             v.text = "验证码"
             v.font = .medium(12)
-            v.textColor = .white.withAlphaComponent(0.8)
+            v.textColor = .black.withAlphaComponent(0.8)
         }
         textField.do { v in
-            v.textColor = .white
+            v.textColor = .black
             v.keyboardType = .phonePad
         }
         codeButton.do { (v) in
             v.maxCount = 20
             v.label.textColor = .color(.theme)
-            v.backgroundColor = UIColor.white.withAlphaComponent(0.04)
+            v.backgroundColor = UIColor.black.withAlphaComponent(0.04)
             v.layer.cornerRadius = 8
             v.layer.masksToBounds = true
         }
         
-        inputBgView.backgroundColor = UIColor.white.withAlphaComponent(0.04)
-        inputBgView.layer.borderColor = UIColor.white.withAlphaComponent(0.1).cgColor
-        inputBgView.layer.borderWidth = 0.5
+        inputBgView.backgroundColor = .rgb(0xF3F4F8)
         inputBgView.layer.cornerRadius = 12
         inputBgView.layer.masksToBounds = true
         
diff --git a/ShenYin/ShenYin/UI/Mine/Login/ForgetVC.swift b/ShenYin/ShenYin/UI/Mine/Login/ForgetVC.swift
new file mode 100644 (file)
index 0000000..060d30c
--- /dev/null
@@ -0,0 +1,105 @@
+//
+//  ForgetVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/11.
+//
+
+import UIKit
+
+class ForgetVC:BaseVC{
+    let bgView = UIImageView()
+    let logoView = UIImageView()
+    let phoneView = PhoneView()
+    let codeView = CodeView()
+    let btn = CustomButton()
+    let agreeView  = AgreeView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+    }
+    override func setupViews(){
+        self.navBar.title = "账号登录"
+        //        view.backgroundColor = .rgb(0x11131E)
+        bgView.image = UIImage(named: "login_cover")
+        logoView.image = UIImage(named: "login_logo")
+        
+        phoneView.do { v in
+            v.textField.text = "13480939445"
+        }
+        codeView.do { v in
+            v.codeButton.addTarget(self, action: #selector(codeButtonAction), for: .touchUpInside)
+        }
+        
+        btn.set(title: "登录", target: self, action: #selector(loginAction))
+        
+        view.addSubviews([bgView,logoView,phoneView,codeView,btn,agreeView])
+        navBar.backgroundColor = .clear
+        view.bringSubviewToFront(navBar)
+    }
+    override func setupLayout(){
+        bgView.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+        logoView.snp.makeConstraints { make in
+            make.width.equalTo(203)
+            make.height.equalTo(86)
+            make.top.equalTo(kNavBtm + 40)
+            make.centerX.equalToSuperview()
+        }
+        phoneView.snp.makeConstraints { make in
+            make.top.equalTo(logoView.snp.bottom).offset(60)
+            make.left.right.equalToSuperview().inset(15)
+        }
+        codeView.snp.makeConstraints { make in
+            make.top.equalTo(phoneView.snp.bottom).offset(10)
+            make.left.right.equalToSuperview().inset(15)
+        }
+        btn.snp.makeConstraints { make in
+            make.top.equalTo(codeView.snp.bottom).offset(30)
+            make.left.right.equalToSuperview().inset(15)
+            make.height.equalTo(52)
+        }
+        agreeView.snp.makeConstraints { make in
+            make.bottom.equalToSuperview().inset(62)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(30)
+        }
+    }
+    
+}
+
+extension ForgetVC{
+    @objc func codeButtonAction(){
+        guard let text = phoneView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的手机号码")
+            return
+        }
+        YLprogressHUD.showLoading()
+        LoginVM.sendCode(phone: text) { [weak self] (model) in
+            if model.isSuccess{
+                self?.codeView.codeButton.start()
+            }
+            YLprogressHUD.showAutoHiden(model.msg)
+        }
+    }
+    @objc func loginAction(){
+        guard let pohne = phoneView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的手机号码")
+            return
+        }
+        guard let  code = codeView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的验证码")
+            return
+        }
+        YLprogressHUD.showLoading()
+        LoginVM.login(phone: pohne, code: code) {[weak self] result in
+            if result.isSuccess{
+                YLprogressHUD.showSuccess {
+                    self?.view.window?.rootViewController = BaseTC()
+                }
+            }
+            YLprogressHUD.showAutoHiden(result.msg)
+        }
+    }
+}
index 746fea3..1856649 100644 (file)
@@ -9,10 +9,11 @@ import UIKit
 
 class LoginVC:BaseVC{
     let bgView = UIImageView()
-    let logoView = UIImageView()
+    let tipsLabel = UILabel()
     let phoneView = PhoneView()
     let codeView = CodeView()
-    let btn = CustomButton()
+    let loginBtn = CustomButton()
+    let registerBtn = CustomButton()
     let agreeView  = AgreeView()
     
     override func viewDidLoad() {
@@ -20,9 +21,20 @@ class LoginVC:BaseVC{
     }
     override func setupViews(){
         self.navBar.title = "账号登录"
-        view.backgroundColor = .rgb(0x11131E)
+//        view.backgroundColor = .rgb(0x11131E)
         bgView.image = UIImage(named: "login_cover")
-        logoView.image = UIImage(named: "login_logo")
+        tipsLabel.do { v in
+            v.numberOfLines = 0
+            v.font = .bold(18)
+            v.textColor = .rgb(0x121212)
+            let text = "您好,\n欢迎使用Joy Audio"
+            let stype = NSMutableParagraphStyle()
+            stype.lineSpacing = 10
+            let attrString = NSMutableAttributedString(string: text)
+            let attr: [NSAttributedString.Key : Any] = [.font: UIFont.medium(22),.paragraphStyle:stype]
+            attrString.addAttributes(attr, range: NSRange(location: 0, length: attrString.length))
+            v.attributedText = attrString
+        }
         
         phoneView.do { v in
             v.textField.text = "13480939445"
@@ -31,9 +43,10 @@ class LoginVC:BaseVC{
             v.codeButton.addTarget(self, action: #selector(codeButtonAction), for: .touchUpInside)
         }
         
-        btn.set(title: "登录", target: self, action: #selector(loginAction))
+        loginBtn.set(title: "登录",style: .theme1, target: self, action: #selector(loginAction))
+        registerBtn.set(title: "注册", style: .theme2,target: self, action: #selector(registerAction))
         
-        view.addSubviews([bgView,logoView,phoneView,codeView,btn,agreeView])
+        view.addSubviews([bgView,tipsLabel,phoneView,codeView,loginBtn,registerBtn,agreeView])
         navBar.backgroundColor = .clear
         view.bringSubviewToFront(navBar)
     }
@@ -41,24 +54,28 @@ class LoginVC:BaseVC{
         bgView.snp.makeConstraints { make in
             make.edges.equalToSuperview()
         }
-        logoView.snp.makeConstraints { make in
-            make.width.equalTo(203)
-            make.height.equalTo(86)
+        tipsLabel.snp.makeConstraints { make in
+            make.left.equalToSuperview().inset(20)
             make.top.equalTo(kNavBtm + 40)
             make.centerX.equalToSuperview()
         }
         phoneView.snp.makeConstraints { make in
-            make.top.equalTo(logoView.snp.bottom).offset(60)
-            make.left.right.equalToSuperview().inset(15)
+            make.top.equalTo(tipsLabel.snp.bottom).offset(60)
+            make.left.right.equalToSuperview().inset(36)
         }
         codeView.snp.makeConstraints { make in
             make.top.equalTo(phoneView.snp.bottom).offset(10)
-            make.left.right.equalToSuperview().inset(15)
+            make.left.right.equalToSuperview().inset(36)
+        }
+        loginBtn.snp.makeConstraints { make in
+            make.top.equalTo(codeView.snp.bottom).offset(54)
+            make.left.right.equalToSuperview().inset(51)
+            make.height.equalTo(55)
         }
-        btn.snp.makeConstraints { make in
-            make.top.equalTo(codeView.snp.bottom).offset(30)
-            make.left.right.equalToSuperview().inset(15)
-            make.height.equalTo(52)
+        registerBtn.snp.makeConstraints { make in
+            make.top.equalTo(loginBtn.snp.bottom).offset(20)
+            make.left.right.equalToSuperview().inset(51)
+            make.height.equalTo(55)
         }
         agreeView.snp.makeConstraints { make in
             make.bottom.equalToSuperview().inset(62)
@@ -82,6 +99,9 @@ extension LoginVC{
             }
             YLprogressHUD.showAutoHiden(model.msg)
         }
+    }
+    @objc func registerAction(){
+        
     }
     @objc func loginAction(){
         guard let pohne = phoneView.textField.text else{
index e612610..8f3f436 100644 (file)
@@ -15,17 +15,15 @@ class PhoneView: BaseView {
         label.do { v in
             v.text = "手机号"
             v.font = .medium(12)
-            v.textColor = .white.withAlphaComponent(0.8)
+            v.textColor = .black.withAlphaComponent(0.8)
         }
         textField.do { v in
-            v.textColor = .white
+            v.textColor = .black
             v.keyboardType = .phonePad
         }
         
-        inputBgView.backgroundColor = UIColor.white.withAlphaComponent(0.04)
-        inputBgView.layer.borderColor = UIColor.white.withAlphaComponent(0.1).cgColor
-        inputBgView.layer.borderWidth = 0.5
-        inputBgView.layer.cornerRadius = 12
+        inputBgView.backgroundColor =  .rgb(0xF3F4F8)
+        inputBgView.layer.cornerRadius = 10
         inputBgView.layer.masksToBounds = true
         
         addSubviews([label,inputBgView])
diff --git a/ShenYin/ShenYin/UI/Mine/Login/RegisterVC.swift b/ShenYin/ShenYin/UI/Mine/Login/RegisterVC.swift
new file mode 100644 (file)
index 0000000..11dad95
--- /dev/null
@@ -0,0 +1,105 @@
+//
+//  RegisterVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/11.
+//
+
+import UIKit
+
+class RegisterVC:BaseVC{
+    let bgView = UIImageView()
+    let logoView = UIImageView()
+    let phoneView = PhoneView()
+    let codeView = CodeView()
+    let btn = CustomButton()
+    let agreeView  = AgreeView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+    }
+    override func setupViews(){
+        self.navBar.title = "账号登录"
+        //        view.backgroundColor = .rgb(0x11131E)
+        bgView.image = UIImage(named: "login_cover")
+        logoView.image = UIImage(named: "login_logo")
+        
+        phoneView.do { v in
+            v.textField.text = "13480939445"
+        }
+        codeView.do { v in
+            v.codeButton.addTarget(self, action: #selector(codeButtonAction), for: .touchUpInside)
+        }
+        
+        btn.set(title: "登录", target: self, action: #selector(loginAction))
+        
+        view.addSubviews([bgView,logoView,phoneView,codeView,btn,agreeView])
+        navBar.backgroundColor = .clear
+        view.bringSubviewToFront(navBar)
+    }
+    override func setupLayout(){
+        bgView.snp.makeConstraints { make in
+            make.edges.equalToSuperview()
+        }
+        logoView.snp.makeConstraints { make in
+            make.width.equalTo(203)
+            make.height.equalTo(86)
+            make.top.equalTo(kNavBtm + 40)
+            make.centerX.equalToSuperview()
+        }
+        phoneView.snp.makeConstraints { make in
+            make.top.equalTo(logoView.snp.bottom).offset(60)
+            make.left.right.equalToSuperview().inset(15)
+        }
+        codeView.snp.makeConstraints { make in
+            make.top.equalTo(phoneView.snp.bottom).offset(10)
+            make.left.right.equalToSuperview().inset(15)
+        }
+        btn.snp.makeConstraints { make in
+            make.top.equalTo(codeView.snp.bottom).offset(30)
+            make.left.right.equalToSuperview().inset(15)
+            make.height.equalTo(52)
+        }
+        agreeView.snp.makeConstraints { make in
+            make.bottom.equalToSuperview().inset(62)
+            make.centerX.equalToSuperview()
+            make.height.equalTo(30)
+        }
+    }
+    
+}
+
+extension RegisterVC{
+    @objc func codeButtonAction(){
+        guard let text = phoneView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的手机号码")
+            return
+        }
+        YLprogressHUD.showLoading()
+        LoginVM.sendCode(phone: text) { [weak self] (model) in
+            if model.isSuccess{
+                self?.codeView.codeButton.start()
+            }
+            YLprogressHUD.showAutoHiden(model.msg)
+        }
+    }
+    @objc func loginAction(){
+        guard let pohne = phoneView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的手机号码")
+            return
+        }
+        guard let  code = codeView.textField.text else{
+            YLprogressHUD.showAutoHiden("请输入正确的验证码")
+            return
+        }
+        YLprogressHUD.showLoading()
+        LoginVM.login(phone: pohne, code: code) {[weak self] result in
+            if result.isSuccess{
+                YLprogressHUD.showSuccess {
+                    self?.view.window?.rootViewController = BaseTC()
+                }
+            }
+            YLprogressHUD.showAutoHiden(result.msg)
+        }
+    }
+}
index b81f75f..d6aee46 100644 (file)
@@ -8,53 +8,68 @@
 import UIKit
 
 public enum MineCellType: Int {
-    case deviceList
-    case service
-    case product
+    case user
+    case device
+    case userAgreement
+    case privacyPolicy
+    case language
+    case update
+    case feeback
+    case about
     
     var title:String{
         switch self {
-        case .deviceList:
-            return "设备列表"
-        case .service:
-            return "配额服务"
-        case .product:
-            return "产品说明"
-            
+        case .user:
+            return "用户管理"
+        case .device:
+            return "设备详情"
+        case .userAgreement:
+            return "用户协议"
+        case .privacyPolicy:
+            return "隐私政策"
+        case .language:
+            return "语言设置"
+        case .update:
+            return "固件升级"
+        case .feeback:
+            return "意见反馈"
+        case .about:
+            return "关于"
         }
     }
-    var icon:UIImage?{
+    var icon:String{
         switch self {
-        case .deviceList:
-            return UIImage(named: "mine_cell_device")
-        case .service:
-            return UIImage(named: "mine_cell_service")
-        case .product:
-            return UIImage(named: "mine_cell_product")
+        case .user:
+            return "mine_cell_user"
+        case .device:
+            return "mine_cell_device"
+        case .userAgreement:
+            return "mine_cell_userAgreement"
+        case .privacyPolicy:
+            return "mine_cell_privacy"
+        case .language:
+            return "mine_cell_language"
+        case .update:
+            return "mine_cell_update"
+        case .feeback:
+            return "mine_cell_feedback"
+        case .about:
+            return "mine_cell_about"
         }
     }
 }
 
 
 class MineCell: BaseTableViewCell {
+    let bgView = UIView()
     let icon = UIImageView()
     let titleLabel = UILabel()
     let nextIcon = UIImageView()
-    let line = UIView()
     
-    var type:MineCellType = .deviceList{
+    var type:MineCellType = .user{
         didSet{
-            icon.image = type.icon
+            icon.image = UIImage(named: type.icon)
             titleLabel.text = type.title
-//            if type == .order {
-//                bgView.yc.setCorners(withRoundedRect: CGRect(x: 0, y: 0, width: kScreenWid - 24.fitR, height: 48.fitR), roundingCorners: [.topLeft,.topRight], cornerRadii: CGSize(width: 4.fitR, height: 4.fitR))
-//            }
-//            else if type == .set {
-//                bgView.yc.setCorners(withRoundedRect: CGRect(x: 0, y: 0, width: kScreenWid - 24.fitR, height: 48.fitR), roundingCorners: [.bottomLeft,.bottomRight], cornerRadii: CGSize(width: 4.fitR, height: 4.fitR))
-//            }
-//            else{
-//                bgView.layer.cornerRadius = 0
-//            }
         }
     }
     
@@ -66,44 +81,49 @@ class MineCell: BaseTableViewCell {
         fatalError("init(coder:) has not been implemented")
     }
     override func setupViews() {
-        contentView.addSubviews([icon,titleLabel,nextIcon,line])
-        backgroundColor = .clear
+        contentView.addSubview(bgView)
+        bgView.addSubviews([titleLabel,icon,nextIcon])
+        
+        backgroundColor = .rgb(0xF7F7F7)
         contentView.backgroundColor = .clear
         selectionStyle = .none
-        line.do { (v) in
-            v.backgroundColor = .white.withAlphaComponent(0.1)
+        bgView.do { v in
+            v.backgroundColor = UIColor.white
+            v.layer.cornerRadius = 12
+            v.layer.masksToBounds = true
         }
         titleLabel.do { (v) in
-            v.textColor = .white
-            v.font = .medium(16)
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(12)
             v.textAlignment = .left
         }
         nextIcon.image = UIImage(named: "arrow_next")
     }
-
+    
     override func setupLayout() {
-        icon.snp.makeConstraints { (m) in
-            m.width.equalTo(24.fitR)
-            m.height.equalTo(24.fitR)
-            m.left.equalToSuperview().inset(15.fitR)
-            m.centerY.equalToSuperview()
+        bgView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview().inset(15)
+            m.top.equalToSuperview().inset(6)
+            m.bottom.equalToSuperview().inset(6)
+            m.height.equalTo(48)
         }
         nextIcon.snp.makeConstraints { (m) in
-            m.width.equalTo(20)
-            m.height.equalTo(20)
+            m.width.equalTo(8)
+            m.height.equalTo(12)
             m.right.equalToSuperview().inset(15)
             m.centerY.equalToSuperview()
         }
+        icon.snp.makeConstraints { (m) in
+            m.width.equalTo(24)
+            m.height.equalTo(24)
+            m.left.equalToSuperview().inset(15)
+            m.centerY.equalToSuperview()
+        }
         titleLabel.snp.makeConstraints { (m) in
             m.centerY.equalTo(icon)
-            m.left.equalTo(icon.snp.right).offset(6)
+            m.left.equalTo(icon.snp.right).offset(15)
             m.height.equalToSuperview()
         }
-        line.snp.makeConstraints { (m) in
-            m.left.right.equalToSuperview().inset(15)
-            m.bottom.equalToSuperview()
-            m.height.equalTo(0.5)
-        }
+        
     }
 }
-
index dbd1ba2..2d382d8 100644 (file)
@@ -8,22 +8,16 @@
 import UIKit
 class MineHeaderView: BaseView {
     let userView = MineUserInfoView()
-    let orderView = MineOrderView()
 
     
     override func setupViews() {
         backgroundColor = .clear
-        addSubviews([userView,orderView])
+        addSubviews([userView])
     }
     override func setupLayout() {
         userView.snp.makeConstraints { make in
             make.left.right.equalToSuperview().inset(15)
             make.top.equalToSuperview().inset(30)
         }
-        orderView.snp.makeConstraints { make in
-            make.left.right.equalToSuperview().inset(15)
-            make.top.equalTo(userView.snp.bottom).offset(20)
-            make.height.equalTo(140)
-        }
     }
 }
index f3f937a..e0de734 100644 (file)
@@ -16,18 +16,14 @@ class MineNavBar: BaseView {
         addSubviews([titleLabel,messageBtn,setBtn])
         
         titleLabel.do { v in
-            v.text = "我的"
-            v.font = .medium(18)
+//            v.text = "我的"
+            v.font = .bold(16)
             v.textColor = .white
         }
         setBtn.do { v in
             v.setImage(UIImage(named: "mine_set"), for: .normal)
             v.addTarget(self, action: #selector(setAction), for: .touchUpInside)
         }
-        messageBtn.do { v in
-            v.setImage(UIImage(named: "mine_msg"), for: .normal)
-            v.addTarget(self, action: #selector(messageAction), for: .touchUpInside)
-        }
     }
     override func setupLayout() {
         titleLabel.snp.makeConstraints { make in
@@ -39,11 +35,6 @@ class MineNavBar: BaseView {
             make.right.equalToSuperview().inset(15)
             make.size.equalTo(30)
         }
-        messageBtn.snp.makeConstraints { make in
-            make.centerY.equalTo(titleLabel)
-            make.right.equalTo(setBtn.snp.left).offset(-15)
-            make.size.equalTo(30)
-        }
     }
     
     @objc func messageAction(){
index a7d0107..7a6f90b 100644 (file)
@@ -60,7 +60,7 @@ class MineOrderButton1: BaseView {
         icon.do { v in
             v.image = UIImage(named: "head")
             v.yc.setCornerRadius(27)
-            v.backgroundColor = .white.withAlphaComponent(0.1)
+            v.backgroundColor = .black.withAlphaComponent(0.1)
         }
         titleLabel.do { (v) in
             v.textColor = .white
@@ -69,7 +69,7 @@ class MineOrderButton1: BaseView {
             v.text = "用户未登录"
         }
         valueLabel.do { (v) in
-            v.textColor = .white.withAlphaComponent(0.6)
+            v.textColor = .black.withAlphaComponent(0.6)
             v.font = .medium(14)
             v.textAlignment = .right
             v.text = "登录帐号后可查看ID"
index 91c3ed7..9fe54fc 100644 (file)
@@ -19,16 +19,16 @@ class MineUserInfoView: BaseView {
         icon.do { v in
             v.image = UIImage(named: "head")
             v.yc.setCornerRadius(27)
-            v.backgroundColor = .white.withAlphaComponent(0.1)
+            v.backgroundColor = .black.withAlphaComponent(0.1)
         }
         titleLabel.do { (v) in
-            v.textColor = .white
+            v.textColor = .rgb(0x121212)
             v.font = .bold(16)
             v.textAlignment = .left
             v.text = "用户未登录"
         }
         valueLabel.do { (v) in
-            v.textColor = .white.withAlphaComponent(0.6)
+            v.textColor = .rgb(0x999999)
             v.font = .medium(14)
             v.textAlignment = .right
             v.text = "登录帐号后可查看ID"
index cf3b645..a2f1cca 100644 (file)
@@ -8,7 +8,7 @@
 import UIKit
 class MineVC: BaseVC{
     let tableView = UITableView(frame: .zero, style: .plain)
-    let list:[MineCellType] = [.deviceList,.service,.product,]
+    let list:[MineCellType] = [.user,.device,.userAgreement,.privacyPolicy,.language,.update,.feeback,.about]
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -17,17 +17,22 @@ class MineVC: BaseVC{
     override func setupViews() {
         self.navBar.title = "我的"
         tableView.do { v in
-            v.backgroundColor = .color(.bgColor)
+            v.backgroundColor = .rgb(0xF7F7F7)
             v.delegate = self
             v.dataSource = self
             v.rowHeight = 68
+            v.separatorStyle = .none
             v.register(MineCell.self, forCellReuseIdentifier: MineCell.reuseID)
-            v.tableHeaderView = MineHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWid, height: 280))
+            v.tableHeaderView = MineHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWid, height: 150))
         }
         view.addSubview(tableView)
         
         let bar = MineNavBar(frame: navBar.frame)
         navBar.addSubview(bar)
+        
+//        let data = Data([0x48, 0x65, 0x6C, 0x6C, 0x6F])
+//        let hexString = data.map { String(format: "%02hhx", $0) }.joined()
+//        print(hexString)
     }
     override func setupLayout() {
         tableView.snp.makeConstraints { make in
@@ -52,6 +57,23 @@ extension MineVC:UITableViewDelegate,UITableViewDataSource {
     }
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         let data = list[indexPath.row]
-
+        switch data {
+        case .user:
+            App.shared.goToPage(AboutVC())
+        case .device:
+            App.shared.goToPage(DeviceInfoVC())
+        case .userAgreement:
+            App.shared.goToPage(AboutVC())
+        case .privacyPolicy:
+            App.shared.goToPage(AboutVC())
+        case .language:
+            App.shared.goToPage(LanguageVC())
+        case .update:
+            App.shared.goToPage(UpdateVC())
+        case .feeback:
+            App.shared.goToPage(FeekbackVC())
+        case .about:
+            App.shared.goToPage(AboutVC())
+        }
     }
 }
diff --git a/ShenYin/ShenYin/UI/Mine/UpdateVC.swift b/ShenYin/ShenYin/UI/Mine/UpdateVC.swift
new file mode 100644 (file)
index 0000000..8e9e53a
--- /dev/null
@@ -0,0 +1,52 @@
+//
+//  UpdateVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class UpdateVC:BaseVC{
+    let versionLabel = UILabel()
+    let btn = UIButton(type: .custom)
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        view.addSubviews([versionLabel,btn])
+        self.navBar.title = "固件升级"
+        versionLabel.do { v in
+            v.text = "当前版本\n" + "v1.0.6"
+            v.textAlignment = .center
+            v.font = .regular(16)
+            v.textColor = .hexString("#232323")
+            v.numberOfLines = 0
+        }
+        btn.do { v in
+            v.setTitle("检查更新", for: .normal)
+            v.titleLabel?.font = .regular(12)
+            v.setTitleColor(.color(.theme), for: .normal)
+            v.addTarget(self, action: #selector(tapAction), for: .touchUpInside)
+            v.backgroundColor = .hexString("#EDEDED")
+            v.yc.setCornerRadius(12)
+        }
+    }
+    override func setupLayout() {
+        versionLabel.snp.makeConstraints { make in
+            make.centerX.equalToSuperview()
+            make.centerY.equalToSuperview()
+        }
+        btn.snp.makeConstraints { make in
+            make.bottom.equalToSuperview().inset(82)
+            make.width.equalTo(240)
+            make.height.equalTo(48)
+            make.centerX.equalToSuperview()
+        }
+    }
+    @objc func tapAction(){
+        
+    }
+}
index df69763..d9cd914 100644 (file)
@@ -64,8 +64,8 @@ class UserInfoCell: BaseTableViewCell {
         contentView.backgroundColor = .clear
         selectionStyle = .none
         bgView.do { v in
-            v.backgroundColor = UIColor.white.withAlphaComponent(0.04)
-            v.layer.borderColor = UIColor.white.withAlphaComponent(0.1).cgColor
+            v.backgroundColor = UIColor.black.withAlphaComponent(0.04)
+            v.layer.borderColor = UIColor.black.withAlphaComponent(0.1).cgColor
             v.layer.borderWidth = 0.5
             v.layer.cornerRadius = 12
             v.layer.masksToBounds = true
@@ -76,7 +76,7 @@ class UserInfoCell: BaseTableViewCell {
             v.textAlignment = .left
         }
         valueLabel.do { (v) in
-            v.textColor = .white.withAlphaComponent(0.8)
+            v.textColor = .black.withAlphaComponent(0.8)
             v.font = .medium(14)
             v.textAlignment = .right
         }
@@ -138,8 +138,8 @@ class UserInfoImageCell: BaseTableViewCell {
         contentView.backgroundColor = .clear
         selectionStyle = .none
         bgView.do { v in
-            v.backgroundColor = UIColor.white.withAlphaComponent(0.04)
-            v.layer.borderColor = UIColor.white.withAlphaComponent(0.1).cgColor
+            v.backgroundColor = UIColor.black.withAlphaComponent(0.04)
+            v.layer.borderColor = UIColor.black.withAlphaComponent(0.1).cgColor
             v.layer.borderWidth = 0.5
             v.layer.cornerRadius = 12
             v.layer.masksToBounds = true
@@ -153,7 +153,7 @@ class UserInfoImageCell: BaseTableViewCell {
         }
         icon.do { v in
             v.yc.setCornerRadius(23)
-            v.backgroundColor = .white.withAlphaComponent(0.5)
+            v.backgroundColor = .black.withAlphaComponent(0.5)
         }
         nextIcon.image = UIImage(named: "arrow_next")
     }
index ba3671e..8f8958b 100644 (file)
@@ -12,7 +12,7 @@ class UserInfoSectionHeader: BaseTableViewSetionHeader {
         contentView.backgroundColor = .color(.bgColor)
         contentView.addSubview(titleLabel)
         titleLabel.do { (v) in
-            v.textColor = .white.withAlphaComponent(0.8)
+            v.textColor = .black.withAlphaComponent(0.8)
             v.font = .medium(16)
             v.textAlignment = .left
         }
index a1b8ba2..53dc86a 100644 (file)
@@ -32,7 +32,7 @@ class UserInfoVC: BaseVC{
         
         let footView = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWid, height: 200))
         let btn = CustomButton(frame: CGRect(x: 15, y: 80, width: kScreenWid - 30, height: 52))
-        btn.set(title: "退出登录", bgColor: .white.withAlphaComponent(0.04), target: self, action: #selector(logoutAction))
+        btn.set(title: "退出登录", target: self, action: #selector(logoutAction))
         footView.addSubview(btn)
         tableView.tableFooterView = footView
         
diff --git a/ShenYin/ShenYin/UI/Mine/UserManagerVC.swift b/ShenYin/ShenYin/UI/Mine/UserManagerVC.swift
new file mode 100644 (file)
index 0000000..d931a11
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  UserManagerVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+
+class UserManagerVC:BaseVC{
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+        
+    }
+    override func setupViews() {
+        self.navBar.title = "用户管理"
+    }
+    override func setupLayout() {
+        
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mode/ModeControView.swift b/ShenYin/ShenYin/UI/Mode/ModeControView.swift
new file mode 100644 (file)
index 0000000..8d6a0ee
--- /dev/null
@@ -0,0 +1,134 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+enum ModeContolType:Int{
+    case anc
+    case environment
+    case free
+    
+    var title:String{
+        switch self {
+        case .anc:
+            return "降噪"
+        case .environment:
+            return "环境感知"
+        case .free:
+            return "自由通话"
+        }
+    }
+}
+
+class ModeControView: BaseView {
+    let titleLabel = UILabel()
+    var list:[ModeContolType] = [.anc,.environment,.free]
+    var itemViews = [ItemView]()
+    
+    override func setupViews() {
+        backgroundColor = .white
+        
+        yc.setCornerRadius(12)
+        
+        addSubviews([titleLabel])
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(14)
+            v.text = "环境声音控制"
+        }
+        
+        let w = 80
+        let h = 80
+        let x = 14.0
+        let y = 47.0
+        for (index, value) in list.enumerated() {
+            let view = ItemView()
+            addSubview(view)
+            itemViews.append(view)
+            view.yc.addTap(target: self, action: #selector(tapAction))
+            
+            view.type = value
+            view.snp.makeConstraints { make in
+                make.width.equalTo(w)
+                make.height.equalTo(h)
+                make.top.equalToSuperview().inset(y)
+                if index == list.count - 1 {
+                    make.right.equalToSuperview().inset(x)
+                }
+                else if( index == 0){
+                    view.isSelected = true
+                    make.left.equalToSuperview().inset(x)
+                }
+                else{
+                    make.centerX.equalToSuperview()
+                }
+            }
+        }
+    }
+    
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.top.left.equalToSuperview().inset(14)
+        }
+    }
+    
+    @objc func tapAction(_ tap:UITapGestureRecognizer){
+        let view = tap.view as! ItemView
+        for item in itemViews {
+            if item === view{
+                item.isSelected = true
+            }
+            else{
+                item.isSelected = false
+            }
+        }
+    }
+    
+    class ItemView: BaseView {
+        let icon = UIImageView()
+        let titleLabel = UILabel()
+        var type = ModeContolType.anc{
+            didSet{
+                titleLabel.text = type.title
+            }
+        }
+        var isSelected:Bool = false{
+            didSet{
+                if isSelected {
+                    titleLabel.textColor = .color(.theme)
+                }
+                else{
+                    titleLabel.textColor = .rgb(0x666666)
+                }
+            }
+        }
+        
+        override func setupViews() {
+            addSubviews([icon,titleLabel])
+            icon.do { v in
+                v.backgroundColor = .rgb(0xF7F7F7)
+                v.yc.setCornerRadius(8)
+            }
+            titleLabel.do { (v) in
+                v.textColor = .rgb(0x666666)
+                v.font = .regular(12)
+                v.text = "降噪"
+            }
+        }
+        
+        override func setupLayout() {
+            icon.snp.makeConstraints { make in
+                make.width.equalTo(80)
+                make.height.equalTo(43)
+                make.left.top.equalToSuperview()
+            }
+            titleLabel.snp.makeConstraints { make in
+                make.centerX.equalToSuperview()
+                make.top.equalTo(icon.snp.bottom).offset(10)
+            }
+        }
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mode/ModeEffectsView.swift b/ShenYin/ShenYin/UI/Mode/ModeEffectsView.swift
new file mode 100644 (file)
index 0000000..3e1475d
--- /dev/null
@@ -0,0 +1,118 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+enum ModeEffectsType:Int{
+    case normal
+    case fashion
+    case classic
+    case rock
+    case jazz
+    case eq
+    
+    var title:String{
+        switch self {
+        case .normal:
+            return "正常"
+        case .fashion:
+            return "流行"
+        case .classic:
+            return "经典"
+        case .rock:
+            return "爵士"
+        case .jazz:
+            return "摇滚"
+        case .eq:
+            return "EQ调音"
+        }
+    }
+}
+
+class ModeEffectsView: BaseView {
+    let titleLabel = UILabel()
+    var list:[ModeEffectsType] = [.normal,.fashion,.classic,.rock,.jazz,.eq]
+    var itemViews = [ItemView]()
+    
+    override func setupViews() {
+        backgroundColor = .white
+        
+        yc.setCornerRadius(12)
+        
+        addSubviews([titleLabel])
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(14)
+            v.text = "个性化音效"
+        }
+        
+        let s = 11.0
+        let w = (kScreenWid - 64 - s)/2.0
+        let h = 80.0
+        var x = 14.0
+        var y = 47.0
+        for (index, value) in list.enumerated() {
+            let view = ItemView()
+            addSubview(view)
+            
+            view.type = value
+            x = Double(index%2)*w + Double(index%2 + 1)*13
+            y = Double(index/2)*h
+            y = y + Double(index/2)*15.0 + 47
+            view.snp.makeConstraints { make in
+                make.width.equalTo(w)
+                make.height.equalTo(h)
+                make.left.equalToSuperview().inset(x)
+                make.top.equalToSuperview().inset(y)
+                if index == list.count - 1 {
+                    make.bottom.equalToSuperview()
+                }
+            }
+        }
+    }
+    
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.top.left.equalToSuperview().inset(14)
+        }
+    }
+    
+    @objc func tapAction(_ tap:UITapGestureRecognizer){
+        let view = tap.view as! ItemView
+
+    }
+    
+    class ItemView: BaseView {
+        let icon = UIImageView()
+        let titleLabel = UILabel()
+        var type = ModeEffectsType.fashion{
+            didSet{
+                titleLabel.text = type.title
+            }
+        }
+        
+        override func setupViews() {
+            addSubviews([icon,titleLabel])
+            icon.do { v in
+                v.backgroundColor = .black
+                v.yc.setCornerRadius(8)
+            }
+            titleLabel.do { (v) in
+                v.textColor = .white
+                v.font = .regular(14)
+            }
+        }
+        
+        override func setupLayout() {
+            icon.snp.makeConstraints { make in
+                make.edges.equalToSuperview()
+            }
+            titleLabel.snp.makeConstraints { make in
+                make.center.equalToSuperview()
+            }
+        }
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mode/ModeFindView.swift b/ShenYin/ShenYin/UI/Mode/ModeFindView.swift
new file mode 100644 (file)
index 0000000..2b538e1
--- /dev/null
@@ -0,0 +1,121 @@
+//
+//  FindView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+
+
+enum ModeFindType:Int{
+    case left
+    case right
+    
+    var title:String{
+        switch self {
+        case .left:
+            return "L"
+        case .right:
+            return "R"
+        }
+    }
+}
+
+class ModeFindView: BaseView {
+    let titleLabel = UILabel()
+    var list:[ModeFindType] = [.left,.right]
+    var itemViews = [ItemView]()
+    
+    override func setupViews() {
+        backgroundColor = .white
+        
+        yc.setCornerRadius(12)
+        
+        addSubviews([titleLabel])
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(14)
+            v.text = "查找耳机"
+        }
+        
+        let w = 66.0
+        let h = 66
+        let y = 38
+        for (index, value) in list.enumerated() {
+            let view = ItemView()
+            view.yc.setCornerRadius(w/2)
+            addSubview(view)
+            itemViews.append(view)
+            view.yc.addTap(target: self, action: #selector(tapAction))
+            
+            view.type = value
+            view.snp.makeConstraints { make in
+                make.width.equalTo(w)
+                make.height.equalTo(h)
+                make.top.equalToSuperview().inset(y)
+                if index == list.count - 1 {
+                    make.right.equalToSuperview().inset(68)
+                }
+                else if( index == 0){
+                    view.isSelected = true
+                    make.left.equalToSuperview().inset(68)
+                }
+                else{
+                    make.centerX.equalToSuperview()
+                }
+            }
+        }
+    }
+    
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.top.left.equalToSuperview().inset(14)
+        }
+    }
+    
+    @objc func tapAction(_ tap:UITapGestureRecognizer){
+        let view = tap.view as! ItemView
+    }
+    
+    class ItemView: BaseView {
+        let icon = UIImageView()
+        let titleLabel = UILabel()
+        var type = ModeFindType.left{
+            didSet{
+                titleLabel.text = type.title
+            }
+        }
+        var isSelected:Bool = false{
+            didSet{
+                if isSelected {
+                    titleLabel.textColor = .color(.theme)
+                }
+                else{
+                    titleLabel.textColor = .rgb(0x666666)
+                }
+            }
+        }
+        
+        override func setupViews() {
+            addSubviews([icon,titleLabel])
+            icon.do { v in
+                v.backgroundColor = .gray
+                v.yc.setCornerRadius(8)
+            }
+            titleLabel.do { (v) in
+                v.textColor = .color(.theme)
+                v.font = .regular(12)
+            }
+        }
+        
+        override func setupLayout() {
+            icon.snp.makeConstraints { make in
+                make.edges.equalToSuperview()
+            }
+            titleLabel.snp.makeConstraints { make in
+                make.center.equalToSuperview()
+            }
+        }
+    }
+    
+}
diff --git a/ShenYin/ShenYin/UI/Mode/ModeListView.swift b/ShenYin/ShenYin/UI/Mode/ModeListView.swift
new file mode 100644 (file)
index 0000000..9e68620
--- /dev/null
@@ -0,0 +1,65 @@
+//
+//  ModeListView.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+class ModeListView: BaseView {
+    let bottonView = UIView()
+    let tipsIcon = UIImageView()
+    let titleLabel = UILabel()
+    let valueLabel = UILabel()
+    
+    override func setupViews() {
+        addSubviews([bottonView])
+        bottonView.addSubviews([titleLabel,valueLabel,tipsIcon])
+        //        backgroundColor = .red
+        bottonView.do { v in
+            v.backgroundColor = .rgb(0xFAFAFA)
+            v.yc.setCornerRadius(30)
+        }
+        tipsIcon.do { v in
+            //            v.backgroundColor = .lightGray
+            v.image = UIImage(named: "home_recordHistory")
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x313230)
+            v.font = .bold(18)
+            v.text = "历史录音"
+        }
+        valueLabel.do { (v) in
+            v.textColor = .rgb(0x8d8d8d)
+            v.font = .regular(14)
+            v.text = "随时随地 一键开录"
+        }
+        
+        yc.addTap(target: self, action: #selector(tapAction))
+    }
+    
+    override func setupLayout() {
+        bottonView.snp.makeConstraints { make in
+            make.left.right.equalToSuperview().inset(15)
+            make.top.equalToSuperview()
+            make.bottom.equalToSuperview()
+            make.height.equalTo(116)
+        }
+        titleLabel.snp.makeConstraints { make in
+            make.left.equalToSuperview().inset(15)
+            make.top.equalTo(35)
+        }
+        valueLabel.snp.makeConstraints { make in
+            make.left.equalTo(titleLabel)
+            make.top.equalTo(65)
+        }
+        tipsIcon.snp.makeConstraints { make in
+            make.size.equalTo(50)
+            make.right.equalToSuperview().inset(15)
+            make.centerY.equalToSuperview()
+        }
+    }
+    @objc func tapAction(){
+        App.shared.goToPage(HistoryRecordVC())
+    }
+}
+
diff --git a/ShenYin/ShenYin/UI/Mode/ModeVC.swift b/ShenYin/ShenYin/UI/Mode/ModeVC.swift
new file mode 100644 (file)
index 0000000..aefd216
--- /dev/null
@@ -0,0 +1,63 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/5.
+//
+import UIKit
+
+class ModeVC:BaseVC{
+    let bgView = UIScrollView()
+    let headerView = CurrentDeviceView()
+    let controlView = ModeControView()
+    let effectsView = ModeEffectsView()
+    let findView = ModeFindView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+    }
+    
+    override func setupViews() {
+        self.navBar.title = "模式"
+        navBar.backgroundColor = .white
+        view.backgroundColor = .color(.bgColor)
+        navBar.rightView.setImage(UIImage(named: "add_icon"), for: .normal)
+        view.addSubview(bgView)
+        bgView.addSubviews([headerView,controlView,effectsView,findView])
+    }
+    override func setupLayout() {
+        bgView.snp.makeConstraints { make in
+            make.top.equalTo(kNavBtm)
+            make.left.right.bottom.equalToSuperview()
+        }
+        headerView.snp.makeConstraints { make in
+            make.top.equalToSuperview()
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+        }
+        controlView.snp.makeConstraints { make in
+            make.top.equalTo(headerView.snp.bottom).offset(10)
+            make.centerX.equalToSuperview()
+            make.width.equalTo(kScreenWid - 36)
+            make.height.equalTo(128)
+        }
+        effectsView.snp.makeConstraints { make in
+            make.top.equalTo(controlView.snp.bottom).offset(10)
+            make.centerX.equalToSuperview()
+            make.width.equalTo(controlView)
+        }
+        findView.snp.makeConstraints { make in
+            make.top.equalTo(effectsView.snp.bottom).offset(10)
+            make.centerX.equalToSuperview()
+            make.width.equalTo(effectsView)
+            make.height.equalTo(115)
+            make.bottom.equalToSuperview().inset(20)
+        }
+    }
+    
+    override func navRightViewTapped() {
+
+    }
+}
+
diff --git a/ShenYin/ShenYin/UI/Scan/AddDeviceVC.swift b/ShenYin/ShenYin/UI/Scan/AddDeviceVC.swift
new file mode 100644 (file)
index 0000000..210b7fb
--- /dev/null
@@ -0,0 +1,93 @@
+//
+//  AddDeviceVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/11.
+//
+
+import UIKit
+
+class AddDeviceVC:BaseVC{
+    
+    let titleLabel = UILabel()
+    let addView = AddDeviceSectionView()
+    let scanView = AddDeviceSectionView()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        
+    }
+    
+    override func setupViews() {
+        self.navBar.title = ""
+        navBar.rightView.setImage(UIImage(named: "tips_cion"), for: .normal)
+        view.addSubviews([titleLabel,addView,scanView])
+        titleLabel.do { v in
+            v.text = "从这里选择一项用来添加设备"
+            v.textColor = .rgb(0x121212)
+            v.font = .medium(14)
+            v.textAlignment = .center
+        }
+        addView.do { v in
+            v.yc.setCornerRadius(20)
+            v.btn.set(title: "添加设备",font: .regular(14),style: .theme1, target: self, action: #selector(addAction))
+        }
+        scanView.do { v in
+            v.yc.setCornerRadius(20)
+            v.btn.set(title: "扫码连接",font: .regular(14),style: .theme1, target: self, action: #selector(scanAction))
+        }
+    }
+    override func setupLayout() {
+        titleLabel.snp.makeConstraints { make in
+            make.top.equalTo(kNavBtm + 10)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+        }
+        addView.snp.makeConstraints { make in
+            make.top.equalTo(titleLabel.snp.bottom).offset(30)
+            make.left.right.equalToSuperview().inset(18)
+            make.height.equalTo(228)
+        }
+        scanView.snp.makeConstraints { make in
+            make.top.equalTo(addView.snp.bottom).offset(20)
+            make.left.right.height.equalTo(addView)
+        }
+    }
+
+    override func navRightViewTapped() {
+
+    }
+    @objc func addAction(){
+        App.shared.goToPage(BleScanVC())
+    }
+    @objc func scanAction(){
+        
+    }
+}
+class AddDeviceSectionView: BaseView {
+    let icon = UIImageView()
+    let btn = CustomButton()
+    
+    override func setupViews() {
+        backgroundColor = .white
+        addSubviews([icon,btn])
+        icon.do { v in
+            v.backgroundColor = .lightGray
+        }
+    }
+    
+    override func setupLayout() {
+        icon.snp.makeConstraints { make in
+            make.width.equalTo(106)
+            make.height.equalTo(104)
+            make.centerX.equalToSuperview()
+            make.top.equalToSuperview().inset(38)
+        }
+        btn.snp.makeConstraints { make in
+            make.top.equalToSuperview().inset(166)
+            make.left.right.equalToSuperview().inset(49)
+            make.height.equalTo(49)
+        }
+    }
+}
+
diff --git a/ShenYin/ShenYin/UI/Scan/BleScanVC.swift b/ShenYin/ShenYin/UI/Scan/BleScanVC.swift
new file mode 100644 (file)
index 0000000..8bc8dda
--- /dev/null
@@ -0,0 +1,140 @@
+//
+//  BleScanVC.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/12.
+//
+
+import UIKit
+class BleScanVC: BaseVC{
+    let tableView = UITableView(frame: .zero, style: .plain)
+    let list:[MineCellType] = [.user,.device,.userAgreement,.privacyPolicy,.language,.update,.feeback,.about]
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+    }
+    override func setupViews() {
+        tableView.do { v in
+            v.backgroundColor = .rgb(0xF7F7F7)
+            v.delegate = self
+            v.dataSource = self
+            v.estimatedRowHeight = 76
+            v.separatorStyle = .none
+            v.register(BleScanCell.self, forCellReuseIdentifier: BleScanCell.reuseID)
+            v.tableHeaderView = BleScanHeaderView(frame: CGRect(x: 0, y: 0, width: kScreenWid, height: 150))
+        }
+        view.addSubview(tableView)
+    }
+    override func setupLayout() {
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+            make.top.equalTo(kNavBtm)
+        }
+    }
+}
+
+extension BleScanVC:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = BleScanCell.cell(withTableView: tableView, indexPath: indexPath)
+        cell.type = list[indexPath.row]
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let data = list[indexPath.row]
+
+    }
+}
+
+
+class BleScanHeaderView: BaseView {
+    var radarImageView = UIImageView()
+    override func setupViews() {
+        backgroundColor = .clear
+        addSubviews([radarImageView])
+        
+        radarImageView.do { v in
+//            v.image = UIImage(named: "radar")
+            v.backgroundColor = .lightGray
+            
+            let animation = CABasicAnimation.init(keyPath: "transform.rotation.z")
+            animation.beginTime = 0.0
+            animation.fromValue = 0.0
+            animation.toValue = 2*Double.pi
+            animation.duration = 2.5
+            animation.repeatCount = MAXFLOAT
+            v.layer.add(animation, forKey: "radar.transform.rotation.x")
+        }
+    }
+    override func setupLayout() {
+        radarImageView.snp.makeConstraints { make in
+            make.size.equalTo(100)
+            make.center.equalToSuperview().inset(30)
+        }
+    }
+}
+
+class BleScanCell: BaseTableViewCell {
+    let bgView = UIView()
+    let icon = UIImageView()
+    let titleLabel = UILabel()
+    
+    var type:MineCellType = .user{
+        didSet{
+            titleLabel.text = type.title
+        }
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    override func setupViews() {
+        contentView.addSubview(bgView)
+        bgView.addSubviews([titleLabel,icon])
+        
+        backgroundColor = .rgb(0xF7F7F7)
+        contentView.backgroundColor = .clear
+        selectionStyle = .none
+        bgView.do { v in
+            v.backgroundColor = UIColor.white
+            v.layer.cornerRadius = 8
+            v.layer.masksToBounds = true
+        }
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x121212)
+            v.font = .bold(16)
+            v.textAlignment = .left
+            v.text = "Deep Gen2 Max"
+        }
+        icon.image = UIImage(named: "scan_device")
+    }
+    
+    override func setupLayout() {
+        bgView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview().inset(15)
+            m.top.equalToSuperview().inset(5)
+            m.bottom.equalToSuperview().inset(5)
+            m.height.equalTo(66)
+        }
+        icon.snp.makeConstraints { (m) in
+            m.width.equalTo(24)
+            m.height.equalTo(24)
+            m.left.equalToSuperview().inset(15)
+            m.centerY.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.centerY.equalTo(icon)
+            m.left.equalTo(icon.snp.right).offset(15)
+            m.height.equalToSuperview()
+        }
+        
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Sleep/MessageListView.swift b/ShenYin/ShenYin/UI/Sleep/MessageListView.swift
new file mode 100644 (file)
index 0000000..1c8b8d6
--- /dev/null
@@ -0,0 +1,81 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/6.
+//
+
+import UIKit
+import JXSegmentedView
+import MJRefresh
+
+public enum MessageListType:Int {
+    case all = 0
+    case school = 1
+    case studycar = 2
+    case exam = 3
+    case system = 4
+    
+    var name:String{
+        switch self {
+        case .all:
+            return "全部"
+        case .studycar:
+            return "学车提醒"
+        case .school:
+            return "驾校通知"
+        case .system:
+            return "系统提醒"
+        case .exam:
+            return "考试通知"
+        }
+    }
+    var icon: UIImage? {
+        switch self {
+        case .all: return UIImage(named: "message_exam")
+        case .studycar: return UIImage(named: "message_oclock")
+        case .school: return UIImage(named: "message_notice")
+        case .system: return UIImage(named: "message_exam")
+        case .exam: return UIImage(named: "message_exam")
+        }
+    }
+}
+
+
+final class MessageListView: BaseView {
+    private let tableView = UITableView(frame: .zero, style: .plain)
+    init(selectType type:MessageListType){
+        super.init(frame: .zero)
+//        setupLayout()
+//        setupStyle()
+        //        tableView.mj_header?.beginRefreshing()
+    }
+
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+    }
+    override func setupViews() {
+        
+    }
+    override func setupLayout() {
+        
+    }
+    
+    @MainActor required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+}
+
+extension MessageListView: JXSegmentedListContainerViewListDelegate {
+    func listView() -> UIView {
+        return self
+    }
+}
+extension UIColor {
+    static func random() -> UIColor {
+        let red = CGFloat.random(in: 0...1)
+        let green = CGFloat.random(in: 0...1)
+        let blue = CGFloat.random(in: 0...1)
+        return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
+    }
+}
diff --git a/ShenYin/ShenYin/UI/Sleep/SleepPageVC.swift b/ShenYin/ShenYin/UI/Sleep/SleepPageVC.swift
new file mode 100644 (file)
index 0000000..806cac7
--- /dev/null
@@ -0,0 +1,25 @@
+////
+////  SleepPageVC.swift
+////  ShenYin
+////
+////  Created by liangshi on 2025/8/6.
+////
+//
+//import UIKit
+//
+//class SleepPageVC:UIViewController{
+//    
+//    override func viewDidLoad() {
+//        super.viewDidLoad()
+//        view.backgroundColor = UIColor.random()
+//    }
+//
+//}
+//extension UIColor {
+//    static func random() -> UIColor {
+//        let red = CGFloat.random(in: 0...1)
+//        let green = CGFloat.random(in: 0...1)
+//        let blue = CGFloat.random(in: 0...1)
+//        return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
+//    }
+//}
diff --git a/ShenYin/ShenYin/UI/Sleep/SleepVC.swift b/ShenYin/ShenYin/UI/Sleep/SleepVC.swift
new file mode 100644 (file)
index 0000000..9e76c89
--- /dev/null
@@ -0,0 +1,164 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/5.
+//
+
+//import UIKit
+//import TabPageViewController
+//
+//class SleepVC:TabPageViewController{
+//    override init() {
+//        super.init()
+//        tabItems = [(SleepPageVC(), "First"),
+//                    (SleepPageVC(), "Second1"),
+//                    (SleepPageVC(), "Second2"),
+//                    (SleepPageVC(), "Second3"),
+//                    (SleepPageVC(), "Second411111111"),
+//                    (SleepPageVC(), "Second5"),
+//                    (SleepPageVC(), "Second6"),
+//        ]
+//
+//        
+//        // 初始化配置
+//        var option = TabPageOption()
+////        option.tabWidth = view.frame.width / CGFloat(tabItems.count)
+//        option.currentColor = .red
+//        option.currentBarHeight = 5
+//        // 标签文字大小
+//        option.fontSize = 16
+//        
+//        // 当前选中标签的颜色
+//        option.currentColor = .systemBlue
+//        
+//        // 未选中标签的颜色
+//        option.defaultColor = .darkGray
+//        
+//        // 标签栏高度
+//        option.tabHeight = 44
+//        
+//        // 标签项间距
+//        option.tabMargin = 16
+//        
+//        // 标签栏背景色
+//        option.tabBackgroundColor = .white
+//        
+//        // 页面背景色
+//        option.pageBackgoundColor = .yellow
+//        
+//        // 是否透明(影响导航栏)
+//        option.isTranslucent = true
+//        
+//        
+//        // 滑动时是否隐藏标签栏
+//        option.hidesTopViewOnSwipeType = .all // .none / .tabBar / .navigationBar / .all
+//        
+//        // 应用配置
+//        self.option = option
+//    }
+//    
+//    @MainActor required init?(coder aDecoder: NSCoder) {
+//        fatalError("init(coder:) has not been implemented")
+//    }
+//    
+//    override func viewDidLoad() {
+//        super.viewDidLoad()
+////        self.navBar.title = "睡眠"
+//        view.backgroundColor = .color(.bgColor)
+//
+//
+//
+//    }
+////    override func setupViews() {
+////        
+////    }
+////    override func setupLayout() {
+////        
+////    }
+//}
+import Foundation
+import JXSegmentedView
+
+class SleepVC: BaseVC {
+    private var titles = [MessageListType.all,MessageListType.school,MessageListType.studycar,MessageListType.exam]
+    private let segmentedDataSource = JXSegmentedTitleDataSource()
+    private let segmentedView = JXSegmentedView()
+    private lazy var listContainerView: JXSegmentedListContainerView! = {
+        let view = JXSegmentedListContainerView(dataSource: self, type: .scrollView)
+        return view
+    }()
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+    }
+
+    override func setupLayout(){
+
+        segmentedView.snp.makeConstraints { (m) in
+            m.left.right.equalToSuperview()
+            m.height.equalTo(44.fitR)
+            m.top.equalToSuperview().inset(kNavBtm)
+        }
+        listContainerView.snp.makeConstraints { (m) in
+            m.width.left.equalToSuperview()
+            m.top.equalTo(segmentedView.snp.bottom)
+            m.bottom.equalToSuperview()
+        }
+    }
+    override func setupViews(){
+        view.addSubview(segmentedView)
+        view.addSubview(listContainerView)
+        
+        navBar.title = "消息"
+        view.backgroundColor = .color(.bgColor)
+        segmentedView.do { (v) in
+            segmentedDataSource.titleNormalColor = .rgb(0xB3B3B3)
+            segmentedDataSource.titleSelectedColor = .color(.primary)
+            segmentedDataSource.titleNormalFont = .regular(14)
+            segmentedDataSource.titleSelectedFont = .medium(14)
+            segmentedDataSource.isTitleZoomEnabled = true
+            segmentedDataSource.titleSelectedZoomScale = 1
+            segmentedDataSource.isTitleStrokeWidthEnabled = true
+            segmentedDataSource.isItemSpacingAverageEnabled = true
+            segmentedDataSource.isTitleColorGradientEnabled = true
+            segmentedDataSource.titles = titles.map{"\($0.name)"}
+            segmentedView.backgroundColor = .white
+            
+            //配置指示器
+            let indicator = JXSegmentedIndicatorLineView()
+            indicator.indicatorWidth = 30.fitR
+            indicator.height = 4.fitR
+            indicator.indicatorColor = .color(.theme)
+            segmentedView.indicators = [indicator]
+            
+            v.dataSource = segmentedDataSource
+            v.listContainer = listContainerView
+        }
+//        self.tz_addPopGesture(to: listContainerView.scrollView)
+    }
+}
+
+extension SleepVC: JXSegmentedListContainerViewListDelegate {
+    func listView() -> UIView {
+        return view
+    }
+}
+
+extension SleepVC: JXSegmentedListContainerViewDataSource {
+    func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
+        if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
+            return titleDataSource.dataSource.count
+        }
+        return 0
+    }
+    
+    func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate {
+        let dele = MessageListView(selectType: titles[index])
+//        dele.popToRoot = { [unowned self] in
+//            navigationController?.popToRootViewController(animated: true)
+//        }
+        return dele
+    }
+}
index 60a9741..320a095 100644 (file)
@@ -6,14 +6,30 @@
 //
 
 import UIKit
+
+enum CustomButtonStyle:Int{
+    case theme1
+    case theme2
+    case custom
+}
+
 class CustomButton: UIButton {
-    func set(title:String,bgColor:UIColor = .rgb(0x0245BC), target: Any?, action: Selector) {
+    func set(title:String,font:UIFont = .bold(18),style:CustomButtonStyle = .theme1, target: Any?, action: Selector) {
         setTitle(title, for: .normal)
-        setTitleColor(.white, for: .normal)
         addTarget(target, action: action, for: .touchUpInside)
         layer.cornerRadius = 12
         layer.masksToBounds = true
-        titleLabel?.font = .systemFont(ofSize: 16)
-        backgroundColor = bgColor
+        titleLabel?.font = font
+        
+        if style == .theme1 {
+            setTitleColor(.white, for: .normal)
+            backgroundColor =  UIColor.color(.theme)
+        }
+        else{
+            setTitleColor(.color(.theme), for: .normal)
+            backgroundColor = .clear
+            layer.borderWidth = 1.4
+            layer.borderColor = UIColor.color(.theme).cgColor
+        }
     }
 }
diff --git a/ShenYin/ShenYin/UI/common/CustomPicker.swift b/ShenYin/ShenYin/UI/common/CustomPicker.swift
new file mode 100644 (file)
index 0000000..ba59023
--- /dev/null
@@ -0,0 +1,177 @@
+//
+//  CustomPicker.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/13.
+//
+
+import UIKit
+class CustomPicker: BasePresentView {
+    private let titleLabel = UILabel()
+    private let btn = UIButton(type: .custom)
+    private let tableView = UITableView(frame: .zero, style: .plain)
+    var list:[String] = []
+    var selectedIndex = 0{
+        didSet{
+            tableView.reloadData()
+        }
+    }
+    var didSelected: ((Int,String)->Void)?
+    private var title:String = ""
+    
+    init(title:String,list:[String]) {
+        self.title = title
+        self.list = list
+        let h =  CGFloat(50 + list.count*52) + kSafeBtm
+        super.init(contentHeight:h)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    override func setupSubView() {
+        super.setupSubView()
+        contentView.addSubviews([titleLabel,btn,tableView])
+    }
+    override func setupLayout() {
+        super.setupLayout()
+        titleLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview()
+            m.left.right.equalToSuperview().inset(60)
+            m.height.equalTo(50)
+        }
+        btn.snp.makeConstraints { (m) in
+            m.centerY.equalTo(titleLabel)
+            m.right.equalToSuperview()
+            m.size.equalTo(60)
+        }
+        tableView.snp.makeConstraints { make in
+            make.left.right.bottom.equalToSuperview()
+            make.top.equalToSuperview().inset(50)
+            make.bottom.equalToSuperview()
+        }
+    }
+    
+    override func setupStyle() {
+        super.setupStyle()
+        contentView.backgroundColor = .white
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x333333)
+            v.font = .semiBold(16)
+            v.textAlignment = .center
+            v.text = "标题"
+        }
+        btn.do { v in
+            v.setImage(UIImage(named: "close_icon"), for: .normal)
+            v.addTarget(self, action: #selector(closeAction), for: .touchUpInside)
+        }
+        tableView.do { v in
+            v.isScrollEnabled = false
+            v.backgroundColor = .white
+            v.delegate = self
+            v.dataSource = self
+            v.rowHeight = 52
+            v.separatorStyle = .none
+            v.register(CustomButton.SelectCell.self, forCellReuseIdentifier: CustomButton.SelectCell.reuseID)
+        }
+    }
+    @objc func closeAction(){
+        hide()
+    }
+}
+extension CustomPicker:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = CustomButton.SelectCell.cell(withTableView: tableView, indexPath: indexPath)
+        cell.titleLabel.text = list[indexPath.row]
+        cell.selectedIcon.isHidden = selectedIndex != indexPath.row
+        return cell
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        selectedIndex = indexPath.row
+        tableView.reloadData()
+        didSelected?(selectedIndex,list[selectedIndex])
+        hide()
+    }
+}
+
+extension CustomButton {
+    class SelectCell: BaseTableViewCell {
+        let bgView = UIView()
+        let titleLabel = UILabel()
+        let selectedIcon = UIImageView()
+        let line = UIView()
+        
+        var fontType:FontType = .min{
+            didSet{
+                titleLabel.text = fontType.title
+            }
+        }
+        
+        var shareType:ShareType = .document{
+            didSet{
+                titleLabel.text = shareType.title
+            }
+        }
+        
+        
+        override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+            super.init(style: style, reuseIdentifier: reuseIdentifier)
+        }
+        
+        required init?(coder: NSCoder) {
+            fatalError("init(coder:) has not been implemented")
+        }
+        override func setupViews() {
+            contentView.addSubview(bgView)
+            bgView.addSubviews([titleLabel,selectedIcon,line])
+            
+            backgroundColor = .rgb(0xF7F7F7)
+            contentView.backgroundColor = .clear
+            selectionStyle = .none
+            bgView.do { v in
+                v.backgroundColor = UIColor.white
+            }
+            titleLabel.do { (v) in
+                v.textColor = .rgb(0x121212)
+                v.font = .bold(14)
+                v.textAlignment = .left
+            }
+            
+            selectedIcon.image = UIImage(named: "cell_selected")
+            line.do { v in
+                v.backgroundColor = .hexString("#F2F2F2")
+            }
+        }
+        
+        override func setupLayout() {
+            bgView.snp.makeConstraints { (m) in
+                m.left.right.equalToSuperview()
+                m.top.equalToSuperview()
+                m.bottom.equalToSuperview()
+            }
+            selectedIcon.snp.makeConstraints { (m) in
+                m.width.equalTo(21)
+                m.height.equalTo(16)
+                m.right.equalToSuperview().inset(21)
+                m.centerY.equalToSuperview()
+            }
+            titleLabel.snp.makeConstraints { (m) in
+                m.centerY.equalToSuperview()
+                m.left.equalToSuperview().offset(24)
+                m.height.equalToSuperview()
+            }
+            line.snp.makeConstraints { make in
+                make.left.right.equalToSuperview().inset(18)
+                make.bottom.equalToSuperview()
+                make.height.equalTo(0.4)
+            }
+        }
+    }
+
+}
+
diff --git a/ShenYin/ShenYin/UI/common/RecordTranslateTipsView.swift b/ShenYin/ShenYin/UI/common/RecordTranslateTipsView.swift
new file mode 100644 (file)
index 0000000..74fe6f8
--- /dev/null
@@ -0,0 +1,76 @@
+//
+//  Untitled.swift
+//  ShenYin
+//
+//  Created by liangshi on 2025/8/14.
+//
+
+import UIKit
+class RecordTranslateTipsView: BasePresentView {
+    let titleLabel = UILabel()
+    let btn = UIButton(type: .custom)
+    let tipsIcon = UIImageView()
+    let desLabel1 = UILabel()
+    let desLabel2 = UILabel()
+    let actionbtn = UIButton(type: .custom)
+    var didSelected: ((Int,String)->Void)?
+    
+    init() {
+        let h =  595.0
+        super.init(contentHeight:h)
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    override func setupSubView() {
+        super.setupSubView()
+        contentView.addSubviews([titleLabel,btn,tipsIcon,desLabel1,desLabel2,actionbtn])
+    }
+    override func setupLayout() {
+        super.setupLayout()
+        titleLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview()
+            m.left.right.equalToSuperview().inset(60)
+            m.height.equalTo(50)
+        }
+        btn.snp.makeConstraints { (m) in
+            m.centerY.equalTo(titleLabel)
+            m.right.equalToSuperview()
+            m.size.equalTo(60)
+        }
+        tipsIcon.snp.makeConstraints { make in
+            make.left.right.equalTo(18)
+            make.top.equalToSuperview().inset(64)
+            make.height.equalTo(234)
+        }
+        titleLabel.snp.makeConstraints { (m) in
+            m.top.equalToSuperview()
+            m.left.right.equalToSuperview().inset(60)
+            m.height.equalTo(50)
+        }
+    }
+    
+    override func setupStyle() {
+        super.setupStyle()
+        contentView.backgroundColor = .white
+        titleLabel.do { (v) in
+            v.textColor = .rgb(0x333333)
+            v.font = .semiBold(16)
+            v.textAlignment = .center
+            v.text = "同传听译模式使用介绍"
+        }
+        btn.do { v in
+            v.setImage(UIImage(named: "close_icon"), for: .normal)
+            v.addTarget(self, action: #selector(closeAction), for: .touchUpInside)
+        }
+        tipsIcon.do { v in
+            v.image = UIImage(named: "")
+        }
+        
+    }
+    @objc func closeAction(){
+        hide()
+    }
+}
index d407d35..2b075c0 100644 (file)
@@ -18,8 +18,11 @@ target 'ShenYin' do
   pod 'RealmSwift'#数据库
   pod 'SwiftDate'#时间转换
   pod 'SVProgressHUD'#蒙版
-  pod 'Kingfisher', '~> 6.0'#图片下载
-#   pod 'FSPagerView'
+  pod 'Kingfisher', '~> 6.0'#图片下载K
+   pod 'FSPagerView'
+   pod "TabPageViewController" #tabpage
+   pod 'JXSegmentedView'
+   pod 'JXPagingView/Paging'
   ##   pod 'Alamofire'
   pod 'Moya'#网络
   pod 'swiftScan'#二维码