From a6a0f0a4ced12b7075edb705e4f8c925d33e9afb Mon Sep 17 00:00:00 2001 From: jiayangyang <534955398@qq.com> Date: Wed, 22 Jul 2026 14:48:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(sos):=20=E5=BA=94=E6=80=A5=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8F=82=E4=B8=8E=E8=AE=A2=E5=8D=95=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E9=A6=96=E9=A1=B5=E5=9B=BE=E6=A0=87=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- XinjiangProject/PodFile | 2 +- XinjiangProject/Podfile.lock | 2 +- .../XinjiangProject.xcodeproj/project.pbxproj | 8 +- .../Manager/NetworkHelpManager/XJPNetAPI.h | 4 + .../Manager/NetworkHelpManager/XJPNetAPI.m | 10 + .../Controller/XJSosCenterViewController.m | 472 +++++++++++++++--- .../SOS/Model/XJParticipatedOrderModel.h | 24 + .../SOS/Model/XJParticipatedOrderModel.m | 15 + .../Project/TUIChat/ChatViewController.m | 47 +- .../firstAid_icon.imageset/Contents.json | 21 + .../firstAid_icon.imageset/firstAid_icon.png | Bin 0 -> 8612 bytes .../order_selected.imageset/Contents.json | 21 + .../order_selected.png | Bin 0 -> 1806 bytes .../order_unselected.imageset/Contents.json | 21 + .../order_unselected.png | Bin 0 -> 1933 bytes .../org_selected.imageset/Contents.json | 21 + .../org_selected.imageset/org_selected.png | Bin 0 -> 787 bytes .../org_unselected.imageset/Contents.json | 21 + .../org_unselected.png | Bin 0 -> 766 bytes .../time_selected.imageset/Contents.json | 21 + .../time_selected.imageset/time_selected.png | Bin 0 -> 1708 bytes .../HOMEV2/yuanxunhuan.imageset/Contents.json | 21 + .../yuanxunhuan.imageset/yuanxunhuan-2.png | Bin 0 -> 1107 bytes .../time_unselected.imageset/Contents.json | 21 + .../time_unselected.png | Bin 0 -> 1717 bytes 25 files changed, 682 insertions(+), 70 deletions(-) create mode 100644 XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.h create mode 100644 XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.m create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/firstAid_icon.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_selected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_selected.imageset/order_selected.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/order_unselected.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_selected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_selected.imageset/org_selected.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/org_unselected.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/time_selected.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/yuanxunhuan.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/yuanxunhuan.imageset/yuanxunhuan-2.png create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/time_unselected.imageset/Contents.json create mode 100644 XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/time_unselected.imageset/time_unselected.png diff --git a/XinjiangProject/PodFile b/XinjiangProject/PodFile index 813e750..88f23fa 100644 --- a/XinjiangProject/PodFile +++ b/XinjiangProject/PodFile @@ -1,5 +1,5 @@ -platform :ios, '12.0' +platform :ios, '15.0' # 忽略引入库的所有警告 inhibit_all_warnings! diff --git a/XinjiangProject/Podfile.lock b/XinjiangProject/Podfile.lock index d33993d..4c37778 100644 --- a/XinjiangProject/Podfile.lock +++ b/XinjiangProject/Podfile.lock @@ -511,6 +511,6 @@ SPEC CHECKSUMS: YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30 -PODFILE CHECKSUM: c63ef0a5edf68dd395621c435af5c0063b38442a +PODFILE CHECKSUM: 9ebe0e8991fab6e5cf3d18a72b82760099c4bc48 COCOAPODS: 1.16.2 diff --git a/XinjiangProject/XinjiangProject.xcodeproj/project.pbxproj b/XinjiangProject/XinjiangProject.xcodeproj/project.pbxproj index 4264386..d823dcd 100644 --- a/XinjiangProject/XinjiangProject.xcodeproj/project.pbxproj +++ b/XinjiangProject/XinjiangProject.xcodeproj/project.pbxproj @@ -219,7 +219,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastUpgradeCheck = 1630; + LastUpgradeCheck = 2630; TargetAttributes = { 1809E4612E092C710034C8FC = { CreatedOnToolsVersion = 16.3; @@ -389,6 +389,7 @@ CODE_SIGN_ENTITLEMENTS = XinjiangProject/XinjiangProject.entitlements; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = A7CC5LW224; + ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_PREFIX_HEADER = "$(SRCROOT)/XinjiangProject/Supporting Files/PrefixHeader.pch"; GENERATE_INFOPLIST_FILE = YES; @@ -413,6 +414,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.14; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; PRODUCT_BUNDLE_IDENTIFIER = com.questionTools.XinjiangProject; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -433,6 +435,7 @@ CODE_SIGN_ENTITLEMENTS = XinjiangProject/XinjiangProject.entitlements; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = A7CC5LW224; + ENABLE_MODULE_VERIFIER = YES; ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_PREFIX_HEADER = "$(SRCROOT)/XinjiangProject/Supporting Files/PrefixHeader.pch"; GENERATE_INFOPLIST_FILE = YES; @@ -457,6 +460,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.14; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; PRODUCT_BUNDLE_IDENTIFIER = com.questionTools.XinjiangProject; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -527,6 +531,7 @@ MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + STRING_CATALOG_GENERATE_SYMBOLS = YES; }; name = Debug; }; @@ -582,6 +587,7 @@ MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; + STRING_CATALOG_GENERATE_SYMBOLS = YES; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.h b/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.h index 92df199..6f774b9 100755 --- a/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.h +++ b/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.h @@ -31,12 +31,16 @@ - (void)getSearchExpert:(NSMutableDictionary *)parmDic; // 急救员 - 搜索员工 - (void)getSearchEmployee:(NSMutableDictionary *)parmDic; +// 急救员 - 我参与的应急工单 +- (void)getMyParticipatedOrders:(NSMutableDictionary *)parmDic; // 急救员 - 创建群聊(不发起音视频通话) - (void)getCreateGroupMagFirstAider:(NSMutableDictionary *)parmDic; // 急救员 - 邀请进群 - (void)postAddGroupUser:(NSMutableDictionary *)parmDic; // 急救员 - 移除群成员 - (void)postRemoveGroupUser:(NSMutableDictionary *)parmDic; +// 急救员 - 判断是否联络员 +- (void)getIsLiaisonUser:(NSMutableDictionary *)parmDic; // 急救员 - 群成员列表 - (void)getGroupMemberList:(NSMutableDictionary *)parmDic; // 急救员 - 实际群成员列表(经腾讯IM验证,含isSelf字段) diff --git a/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.m b/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.m index e1efd10..30e1722 100755 --- a/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.m +++ b/XinjiangProject/XinjiangProject/Manager/NetworkHelpManager/XJPNetAPI.m @@ -74,11 +74,21 @@ [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-emergency/api/emergency/order/searchExpert",Http] params:parmDic]; } +// 急救员 - 判断是否联络员 +- (void)getIsLiaisonUser:(NSMutableDictionary *)parmDic { + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-emergency/emergency/LargeScreenNew/isLiaisonUser",Http] params:parmDic]; +} + // 急救员 - 创建群聊(不发起音视频通话) - (void)getCreateGroupMagFirstAider:(NSMutableDictionary *)parmDic { [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-emergency/api/emergency/createGroupMagFirstAider",Http] params:parmDic]; } +// 急救员 - 我参与的应急工单 +- (void)getMyParticipatedOrders:(NSMutableDictionary *)parmDic { + [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-emergency/api/emergency/order/myParticipatedOrders",Http] params:parmDic]; +} + // 急救员 - 搜索员工 - (void)getSearchEmployee:(NSMutableDictionary *)parmDic { [httpRequest httpGetRequest:[NSString stringWithFormat:@"%@/health-emergency/api/emergency/order/searchEmployee",Http] params:parmDic]; diff --git a/XinjiangProject/XinjiangProject/Project/SOS/Controller/XJSosCenterViewController.m b/XinjiangProject/XinjiangProject/Project/SOS/Controller/XJSosCenterViewController.m index 1a6e6cc..f876aaa 100644 --- a/XinjiangProject/XinjiangProject/Project/SOS/Controller/XJSosCenterViewController.m +++ b/XinjiangProject/XinjiangProject/Project/SOS/Controller/XJSosCenterViewController.m @@ -12,6 +12,8 @@ #import #import "LXSegmentTitleView.h" #import "XJSOSCenterModel.h" +#import "XJParticipatedOrderModel.h" +#import #import #import #import @@ -21,7 +23,7 @@ #import "XJHealthInterveneHomeModel.h" #import "XJAEDNetWrokModel.h" -@interface XJSosCenterViewController () +@interface XJSosCenterViewController () { TYMapNavSheet * TYNavSheet; @@ -50,6 +52,13 @@ @property (nonatomic, strong) XJSOSAddressView * addressView; @property (nonatomic, strong) XJSOSResourcesModel * resourceModel; +@property (nonatomic, strong) XMButton * firstAiderBtn; +@property (nonatomic, strong) XMButton * callBtn; +@property (nonatomic, strong) XMButton * sosBtn; +@property (nonatomic, strong) NSMutableArray *orderList; +@property (nonatomic, assign) NSInteger orderPage; +@property (nonatomic, strong) UITableView *orderPopupTable; +@property (nonatomic, assign) NSInteger selectedOrderIndex; @property (assign, nonatomic) NSInteger selecetIndex; @@ -287,58 +296,56 @@ [self addWhiteToBlackTransparentGradientToView:self.grapView]; // 120 按钮 - XMButton * callBtn = [[XMButton alloc] initWithFrame:CGRectMake(kScreenWidth/4 - 35, grapView.height - 17 - 70, 70, 70)]; - callBtn.style = SDButtonStyleTop; - callBtn.backgroundColor = KWhiteColor; - callBtn.layer.cornerRadius = 35.0f; - callBtn.layer.masksToBounds = true; - [callBtn setTitle:@"120" forState:UIControlStateNormal]; - callBtn.titleLabel.font = SYSTEMFONT(12); - [callBtn setTitleColor:UIColorHex(#FF422F) forState:UIControlStateNormal]; - [callBtn setImage:[UIImage imageNamed:@"callHospation"] forState:UIControlStateNormal]; - [callBtn addTarget:self action:@selector(callHospationAction) forControlEvents:UIControlEventTouchUpInside]; - callBtn.imageW = 22; - callBtn.imageH = 20; - callBtn.imageY = 19; - callBtn.imageX = 24; - callBtn.interval = 5; - [grapView addSubview:callBtn]; + self.callBtn = [[XMButton alloc] initWithFrame:CGRectMake(0, grapView.height - 17 - 70, 70, 70)]; + self.callBtn.style = SDButtonStyleTop; + self.callBtn.backgroundColor = KWhiteColor; + self.callBtn.layer.cornerRadius = 35.0f; + self.callBtn.layer.masksToBounds = true; + [self.callBtn setTitle:@"120" forState:UIControlStateNormal]; + self.callBtn.titleLabel.font = SYSTEMFONT(12); + [self.callBtn setTitleColor:UIColorHex(#FF422F) forState:UIControlStateNormal]; + [self.callBtn setImage:[UIImage imageNamed:@"callHospation"] forState:UIControlStateNormal]; + [self.callBtn addTarget:self action:@selector(callHospationAction) forControlEvents:UIControlEventTouchUpInside]; + self.callBtn.imageW = 22; + self.callBtn.imageH = 20; + self.callBtn.imageY = 19; + self.callBtn.imageX = 24; + self.callBtn.interval = 5; + [grapView addSubview:self.callBtn]; // 应急就医 按钮 - XMButton * sosBtn = [[XMButton alloc] initWithFrame:CGRectMake(kScreenWidth/2 - 35, callBtn.top, 70, 70)]; - sosBtn.style = SDButtonStyleTop; - sosBtn.backgroundColor = KWhiteColor; - sosBtn.layer.cornerRadius = 35.0f; - sosBtn.layer.masksToBounds = true; - [sosBtn setTitle:@"应急就医" forState:UIControlStateNormal]; - sosBtn.titleLabel.font = SYSTEMFONT(11); - [sosBtn setTitleColor:UIColorHex(#FF422F) forState:UIControlStateNormal]; - [sosBtn setImage:[UIImage imageNamed:@"callSoSIcon"] forState:UIControlStateNormal]; - [sosBtn addTarget:self action:@selector(callSoSAction) forControlEvents:UIControlEventTouchUpInside]; - sosBtn.imageW = 22; - sosBtn.imageH = 21; - sosBtn.imageY = 19; - sosBtn.imageX = 24; - sosBtn.interval = 5; - [grapView addSubview:sosBtn]; + self.sosBtn = [[XMButton alloc] initWithFrame:CGRectMake(0, self.callBtn.top, 70, 70)]; + self.sosBtn.style = SDButtonStyleTop; + self.sosBtn.backgroundColor = KWhiteColor; + self.sosBtn.layer.cornerRadius = 35.0f; + self.sosBtn.layer.masksToBounds = true; + [self.sosBtn setTitle:@"应急就医" forState:UIControlStateNormal]; + self.sosBtn.titleLabel.font = SYSTEMFONT(11); + [self.sosBtn setTitleColor:UIColorHex(#FF422F) forState:UIControlStateNormal]; + [self.sosBtn setImage:[UIImage imageNamed:@"callSoSIcon"] forState:UIControlStateNormal]; + [self.sosBtn addTarget:self action:@selector(callSoSAction) forControlEvents:UIControlEventTouchUpInside]; + self.sosBtn.imageW = 22; + self.sosBtn.imageH = 21; + self.sosBtn.imageY = 19; + self.sosBtn.imageX = 24; + self.sosBtn.interval = 5; + [grapView addSubview:self.sosBtn]; // 急救员 按钮 - XMButton * firstAiderBtn = [[XMButton alloc] initWithFrame:CGRectMake(kScreenWidth*3/4 - 35, callBtn.top, 70, 70)]; - firstAiderBtn.style = SDButtonStyleTop; - firstAiderBtn.backgroundColor = KWhiteColor; - firstAiderBtn.layer.cornerRadius = 35.0f; - firstAiderBtn.layer.masksToBounds = true; - [firstAiderBtn setTitle:@"急救员" forState:UIControlStateNormal]; - firstAiderBtn.titleLabel.font = SYSTEMFONT(11); - [firstAiderBtn setTitleColor:UIColorHex(#FF422F) forState:UIControlStateNormal]; - [firstAiderBtn setImage:[UIImage imageNamed:@"sosPeople"] forState:UIControlStateNormal]; - [firstAiderBtn addTarget:self action:@selector(callFirstAiderAction) forControlEvents:UIControlEventTouchUpInside]; - firstAiderBtn.imageW = 22; - firstAiderBtn.imageH = 21; - firstAiderBtn.imageY = 19; - firstAiderBtn.imageX = 24; - firstAiderBtn.interval = 5; - [grapView addSubview:firstAiderBtn]; + self.firstAiderBtn = [[XMButton alloc] initWithFrame:CGRectMake(0, self.callBtn.top, 70, 70)]; + self.firstAiderBtn.style = SDButtonStyleTop; + self.firstAiderBtn.backgroundColor = KWhiteColor; + self.firstAiderBtn.layer.cornerRadius = 35.0f; + self.firstAiderBtn.layer.masksToBounds = true; + [self.firstAiderBtn setBackgroundImage:[UIImage imageNamed:@"firstAid_icon"] forState:UIControlStateNormal]; + [self.firstAiderBtn addTarget:self action:@selector(callFirstAiderAction) forControlEvents:UIControlEventTouchUpInside]; + self.firstAiderBtn.imageW = 22; + self.firstAiderBtn.imageH = 21; + self.firstAiderBtn.imageY = 19; + self.firstAiderBtn.imageX = 24; + self.firstAiderBtn.interval = 5; + self.firstAiderBtn.hidden = YES; + [grapView addSubview:self.firstAiderBtn]; self.titles = @[@"油田医院",@"健康小屋",@"AED",@"救护车"]; self.titleView.segmentTitles = self.titles; @@ -349,11 +356,143 @@ [self.mapView addSubview:self.gpsButton]; UIView *zoomPannelView = [self makeZoomPannelView]; - zoomPannelView.center = CGPointMake(self.grapView.bounds.size.width - CGRectGetMidX(zoomPannelView.bounds) - 10, - self.grapView.bounds.size.height - CGRectGetMidY(zoomPannelView.bounds) - 10); + // 放到指南针底部 + CGFloat compassBottom = self.mapView.compassOrigin.y + self.mapView.compassSize.height; + zoomPannelView.center = CGPointMake(self.grapView.bounds.size.width - CGRectGetMidX(zoomPannelView.bounds) - 10, + compassBottom + 10 + CGRectGetMidY(zoomPannelView.bounds)); zoomPannelView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin; [self.grapView addSubview:zoomPannelView]; + + // 判断是否是联络员,决定是否展示急救员按钮 + XJPNetAPI *api = [[XJPNetAPI alloc] init:self tag:@"isLiaisonUser" NeedToken:@""]; + [api getIsLiaisonUser:nil]; +} + +/// 底部按钮均分布局(宽度三等分,各区域内居中) +- (void)layoutBottomButtons { + NSInteger count = self.firstAiderBtn.hidden ? 2 : 3; + CGFloat segW = kScreenWidth / count; + self.callBtn.centerX = segW * 0 + segW / 2; + self.sosBtn.centerX = segW * 1 + segW / 2; + if (!self.firstAiderBtn.hidden) { + self.firstAiderBtn.centerX = segW * 2 + segW / 2; + } +} + +/// 进入群聊页面 +- (void)enterChatWithSessionId:(NSString *)sessionId title:(NSString *)title { + if (!sessionId.length) return; + ChatViewController *chatVC = [[ChatViewController alloc] init]; + chatVC.isGroupID = YES; + chatVC.isFromFirstAid = YES; + chatVC.isVideo = YES; + chatVC.chatID = sessionId; + chatVC.navTitle = title ?: @"应急就医群"; + [self.navigationController pushViewController:chatVC animated:YES]; +} + + +/// 多个工单选择弹窗 +- (void)showOrderListPopup:(NSArray *)models { + self.selectedOrderIndex = -1; + UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; + + UIView *mask = [[UIView alloc] initWithFrame:keyWindow.bounds]; + mask.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; + mask.tag = 9001; + [keyWindow addSubview:mask]; + + CGFloat panelW = kScreenWidth - 46; + CGFloat panelH = 490; + CGFloat panelX = 23; + CGFloat panelY = (kScreenHeight - panelH) * 0.45; + + UIView *panel = [[UIView alloc] initWithFrame:CGRectMake(panelX, panelY, panelW, panelH)]; + panel.backgroundColor = KWhiteColor; + panel.layer.cornerRadius = 23; + panel.layer.masksToBounds = YES; + panel.tag = 9002; + [keyWindow addSubview:panel]; + + UILabel *titleLbl = [[UILabel alloc] init]; + titleLbl.text = @"请选择正在应急的工单"; + titleLbl.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + titleLbl.textColor = UIColorHex(0x252535); + [titleLbl sizeToFit]; + titleLbl.top = 24; + titleLbl.centerX = panelW / 2; + [panel addSubview:titleLbl]; + + UIButton *closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(panelW - 20 - 24, 21, 24, 24)]; + closeBtn.backgroundColor = UIColorHex(0xF1F5F9); + closeBtn.layer.cornerRadius = 12; + UILabel *xLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 24, 24)]; + xLbl.text = @"✕"; xLbl.font = [UIFont systemFontOfSize:13]; + xLbl.textColor = UIColorHex(0x77849E); xLbl.textAlignment = NSTextAlignmentCenter; + [closeBtn addSubview:xLbl]; + [closeBtn addTarget:self action:@selector(dismissOrderPopup) forControlEvents:UIControlEventTouchUpInside]; + [panel addSubview:closeBtn]; + + CGFloat sep1Y = titleLbl.bottom + 16; + UIView *sep1 = [[UIView alloc] initWithFrame:CGRectMake(0, sep1Y, panelW, 1)]; + sep1.backgroundColor = UIColorHex(0xEAECFA); + [panel addSubview:sep1]; + + CGFloat btnH = 44; + UIButton *confirmBtn = [[UIButton alloc] initWithFrame:CGRectMake(20, panelH - 12 - btnH, panelW - 40, btnH)]; + confirmBtn.backgroundColor = UIColorHex(0x2EB8B2); + confirmBtn.layer.cornerRadius = 12; + [confirmBtn setTitle:@"确认选择" forState:UIControlStateNormal]; + [confirmBtn setTitleColor:KWhiteColor forState:UIControlStateNormal]; + confirmBtn.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + [confirmBtn addTarget:self action:@selector(onConfirmOrderSelection) forControlEvents:UIControlEventTouchUpInside]; + [panel addSubview:confirmBtn]; + + CGFloat sep2Y = confirmBtn.top - 12; + UIView *sep2 = [[UIView alloc] initWithFrame:CGRectMake(0, sep2Y, panelW, 1)]; + sep2.backgroundColor = UIColorHex(0xEAECFA); + [panel addSubview:sep2]; + + CGFloat tableY = sep1Y + 1, tableH = sep2Y - tableY; + self.orderPopupTable = [[UITableView alloc] initWithFrame:CGRectMake(0, tableY, panelW, tableH) style:UITableViewStylePlain]; + self.orderPopupTable.delegate = self; + self.orderPopupTable.dataSource = self; + self.orderPopupTable.separatorStyle = UITableViewCellSeparatorStyleNone; + self.orderPopupTable.showsVerticalScrollIndicator = NO; + self.orderPopupTable.backgroundColor = KWhiteColor; + self.orderPopupTable.rowHeight = UITableViewAutomaticDimension; + self.orderPopupTable.estimatedRowHeight = 160; + if (@available(iOS 15.0, *)) { self.orderPopupTable.sectionHeaderTopPadding = 0; } + self.orderPopupTable.contentInset = UIEdgeInsetsZero; + + __weak typeof(self) wk = self; + self.orderPopupTable.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ + wk.orderPage = 1; NSMutableDictionary *p = [NSMutableDictionary dictionary]; + p[@"pageNo"] = @(1); p[@"pageSize"] = @(10); + [[[XJPNetAPI alloc] init:wk tag:@"myParticipatedOrders" NeedToken:@""] getMyParticipatedOrders:p]; + }]; + self.orderPopupTable.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ + wk.orderPage++; NSMutableDictionary *p = [NSMutableDictionary dictionary]; + p[@"pageNo"] = @(wk.orderPage); p[@"pageSize"] = @(10); + [[[XJPNetAPI alloc] init:wk tag:@"myParticipatedOrders" NeedToken:@""] getMyParticipatedOrders:p]; + }]; + + [panel addSubview:self.orderPopupTable]; + panel.alpha = 0; + [UIView animateWithDuration:0.25 animations:^{ panel.alpha = 1; }]; +} + +- (void)dismissOrderPopup { + [[UIApplication.sharedApplication.keyWindow viewWithTag:9001] removeFromSuperview]; + [[UIApplication.sharedApplication.keyWindow viewWithTag:9002] removeFromSuperview]; +} + +- (void)onConfirmOrderSelection { + if (self.selectedOrderIndex < 0 || self.selectedOrderIndex >= self.orderList.count) return; + XJParticipatedOrderModel *m = self.orderList[self.selectedOrderIndex]; + [self dismissOrderPopup]; + [self enterChatWithSessionId:m.sessionId title:m.salvageUserName]; } - (void)addWhiteToBlackTransparentGradientToView:(UIView *)view { @@ -524,18 +663,13 @@ #pragma mark: 急救员点击 - (void)callFirstAiderAction { - [self showMBProgressHUDWithString:@"急救发起中,请稍候..." autoHidden:false]; - NSUserDefaults * user = [NSUserDefaults standardUserDefaults]; - CGFloat longitude = [[user objectForKey:USERDEFAULLONG] floatValue]; - CGFloat latitude = [[user objectForKey:USERDEFAULLATITUDE] floatValue]; - - NSMutableDictionary * parmDic = [[NSMutableDictionary alloc] init]; - [parmDic setObject:@(longitude) forKey:@"longitude"]; - [parmDic setObject:@(latitude) forKey:@"latitude"]; - [parmDic setObject:@"急救员" forKey:@"name"]; - - XJPNetAPI * sosApi = [[XJPNetAPI alloc] init:self tag:@"FirstAidGroupAPI" NeedToken:@""]; - [sosApi getCreateGroupMagFirstAider:parmDic]; + [self showMBProgressHUDWithString:@"加载中..." autoHidden:false]; + self.orderPage = 1; + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + params[@"pageNo"] = @(self.orderPage); + params[@"pageSize"] = @(10); + XJPNetAPI *api = [[XJPNetAPI alloc] init:self tag:@"myParticipatedOrders" NeedToken:@""]; + [api getMyParticipatedOrders:params]; } #pragma mark:应急点击 @@ -658,7 +792,11 @@ #pragma mark:网络请求 - (void)Failed:(NSString*)message tag:(NSString*)tag { - + if ([tag isEqualToString:@"isLiaisonUser"]) { + self.firstAiderBtn.hidden = NO; + [self layoutBottomButtons]; + return; + } [EasyTextView showErrorText:message]; [self hiddenAllMBProgressHUD]; @@ -759,6 +897,40 @@ chatVC.navTitle = @"应急就医群"; [self.navigationController pushViewController:chatVC animated:YES]; } + if ([tag isEqualToString:@"myParticipatedOrders"]) { + [self hiddenAllMBProgressHUD]; + NSDictionary *dic = [response isKindOfClass:[NSDictionary class]] ? response : nil; + NSArray *records = dic[@"records"]; + if (![records isKindOfClass:[NSArray class]] || records.count == 0) { + if (self.orderPage == 1) [EasyTextView showErrorText:@"暂无进行中的应急工单"]; + return; + } + NSMutableArray *models = [NSMutableArray array]; + for (NSDictionary *d in records) { + [models addObject:[XJParticipatedOrderModel modelWithDictionary:d]]; + } + if (models.count == 1 && self.orderPage == 1 && [dic[@"total"] integerValue] == 1) { + XJParticipatedOrderModel *m = models.firstObject; + [self enterChatWithSessionId:m.sessionId title:m.salvageUserName]; + return; + } + if (self.orderPage == 1) { + self.orderList = models; + [self showOrderListPopup:self.orderList]; + } else { + [self.orderList addObjectsFromArray:models]; + [self.orderPopupTable reloadData]; + } + [self.orderPopupTable.mj_header endRefreshing]; + [self.orderPopupTable.mj_footer endRefreshing]; + if (records.count < 10) [self.orderPopupTable.mj_footer endRefreshingWithNoMoreData]; + return; + } + if ([tag isEqualToString:@"isLiaisonUser"]) { + self.firstAiderBtn.hidden = ![response boolValue]; + [self layoutBottomButtons]; + return; + } if ([tag isEqualToString:@"loginIMAPI"]) { NSDictionary * pamrDic = response; @@ -920,5 +1092,177 @@ } */ +#pragma mark - 工单列表弹窗 TableView + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.orderList.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + return [UIView new]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *cid = @"OrderCell"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cid]; + XJParticipatedOrderModel *m = self.orderList[indexPath.row]; + BOOL selected = (indexPath.row == self.selectedOrderIndex); + + if (!cell) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cid]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.backgroundColor = KWhiteColor; + + UIView *container = [[UIView alloc] init]; + container.tag = 200; + container.layer.cornerRadius = 8; + container.layer.borderWidth = 1; + [cell.contentView addSubview:container]; + [container mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.equalTo(cell.contentView).offset(12); + make.right.equalTo(cell.contentView).offset(-12); + make.bottom.equalTo(cell.contentView); + }]; + + UILabel *nameLbl = [[UILabel alloc] init]; + nameLbl.tag = 201; + nameLbl.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold]; + [container addSubview:nameLbl]; + [nameLbl mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.equalTo(container).offset(16); + }]; + + UIImageView *indicator = [[UIImageView alloc] init]; + indicator.tag = 202; + indicator.contentMode = UIViewContentModeScaleAspectFit; + [container addSubview:indicator]; + [indicator mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(container).offset(-16); + make.top.equalTo(container).offset(14); + make.size.mas_equalTo(CGSizeMake(18, 18)); + }]; + + UIView *deptBg = [[UIView alloc] init]; + deptBg.tag = 209; + deptBg.layer.cornerRadius = 4; + deptBg.layer.masksToBounds = YES; + [container addSubview:deptBg]; + [deptBg mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(container).offset(16); + make.top.equalTo(nameLbl.mas_bottom).offset(8); + make.height.mas_equalTo(20); + }]; + + UILabel *deptLbl = [[UILabel alloc] init]; + deptLbl.tag = 203; + deptLbl.font = [UIFont systemFontOfSize:11 weight:UIFontWeightBold]; + deptLbl.textAlignment = NSTextAlignmentCenter; + [deptBg addSubview:deptLbl]; + [deptLbl mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(deptBg).offset(8); + make.right.equalTo(deptBg).offset(-8); + make.top.equalTo(deptBg).offset(3); + make.bottom.equalTo(deptBg).offset(-3); + }]; + + UIView *line = [[UIView alloc] init]; + line.tag = 204; + line.backgroundColor = UIColorHex(0xEAECFA); + [container addSubview:line]; + [line mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(container).offset(16); + make.right.equalTo(container).offset(-16); + make.top.equalTo(deptLbl.mas_bottom).offset(12); + make.height.mas_equalTo(1); + }]; + + UIImageView *orgIcon = [[UIImageView alloc] init]; + orgIcon.tag = 205; + orgIcon.contentMode = UIViewContentModeScaleAspectFit; + [container addSubview:orgIcon]; + [orgIcon mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(container).offset(16); + make.top.equalTo(line.mas_bottom).offset(12); + make.size.mas_equalTo(CGSizeMake(16, 16)); + }]; + + UILabel *orgLbl = [[UILabel alloc] init]; + orgLbl.tag = 206; + orgLbl.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + orgLbl.numberOfLines = 0; + [container addSubview:orgLbl]; + [orgLbl mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(orgIcon.mas_right).offset(8); + make.top.equalTo(line.mas_bottom).offset(12); + make.right.equalTo(container).offset(-16); + }]; + + UIImageView *timeIcon = [[UIImageView alloc] init]; + timeIcon.tag = 207; + timeIcon.contentMode = UIViewContentModeScaleAspectFit; + [container addSubview:timeIcon]; + [timeIcon mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(container).offset(16); + make.top.equalTo(orgLbl.mas_bottom).offset(15); + make.size.mas_equalTo(CGSizeMake(16, 16)); + }]; + + UILabel *timeLbl = [[UILabel alloc] init]; + timeLbl.tag = 208; + timeLbl.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + [container addSubview:timeLbl]; + [timeLbl mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(timeIcon.mas_right).offset(8); + make.centerY.equalTo(timeIcon); + make.right.equalTo(container).offset(-16); + make.bottom.equalTo(container).offset(-16); + }]; + } + + UIView *container = [cell.contentView viewWithTag:200]; + UILabel *nameLbl = [container viewWithTag:201]; + UIImageView *indicator = [container viewWithTag:202]; + UIView *deptBg = [container viewWithTag:209]; + UILabel *deptLbl = [container viewWithTag:203]; + UIImageView *orgIcon = [container viewWithTag:205]; + UILabel *orgLbl = [container viewWithTag:206]; + UIImageView *timeIcon = [container viewWithTag:207]; + UILabel *timeLbl = [container viewWithTag:208]; + + if (selected) { + container.layer.borderColor = UIColorHex(0x2EB8B280).CGColor; + container.backgroundColor = UIColorHex(0x2EB8B20F); + deptLbl.textColor = UIColorHex(0x2EB8B2); deptBg.backgroundColor = UIColorHex(0x2EB8B21A); + orgLbl.textColor = UIColorHex(0x2EB8B2); + timeLbl.textColor = UIColorHex(0x2EB8B2); + } else { + container.layer.borderColor = UIColorHex(0xE6E6EA).CGColor; + container.backgroundColor = KWhiteColor; + deptLbl.textColor = UIColorHex(0x77849E); deptBg.backgroundColor = UIColorHex(0x77849E1A); + orgLbl.textColor = UIColorHex(0x77849E); + timeLbl.textColor = UIColorHex(0x77849E); + } + nameLbl.textColor = UIColorHex(0x252535); + + nameLbl.text = m.salvageUserName ?: @"--"; + deptLbl.text = [NSString stringWithFormat:@" %@ ", m.deptName ?: @""]; + indicator.image = [UIImage imageNamed:selected ? @"order_selected" : @"order_unselected"]; + orgIcon.image = [UIImage imageNamed:selected ? @"org_selected" : @"org_unselected"]; + orgLbl.text = m.orgName ?: @""; + timeIcon.image = [UIImage imageNamed:selected ? @"time_selected" : @"time_unselected"]; + timeLbl.text = m.createTime.length > 0 ? [NSString stringWithFormat:@"求助时间:%@", m.createTime] : @""; + + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + self.selectedOrderIndex = indexPath.row; + [tableView reloadData]; +} + @end diff --git a/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.h b/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.h new file mode 100644 index 0000000..62c291f --- /dev/null +++ b/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.h @@ -0,0 +1,24 @@ +// +// XJParticipatedOrderModel.h +// XinjiangProject +// +// 急救员 - 我参与的应急工单 +// + +#import + +@interface XJParticipatedOrderModel : NSObject + +@property (nonatomic, copy) NSString *orderId; +@property (nonatomic, copy) NSString *sessionId; +@property (nonatomic, copy) NSString *salvageUserName; +@property (nonatomic, copy) NSString *salvageUserSex; +@property (nonatomic, copy) NSString *salvageUserAvatar; +@property (nonatomic, assign) NSInteger salvageUserAge; +@property (nonatomic, copy) NSString *salvageUserMobile; +@property (nonatomic, copy) NSString *orgName; +@property (nonatomic, copy) NSString *deptName; +@property (nonatomic, copy) NSString *orderStatus; +@property (nonatomic, copy) NSString *createTime; + +@end diff --git a/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.m b/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.m new file mode 100644 index 0000000..48b087f --- /dev/null +++ b/XinjiangProject/XinjiangProject/Project/SOS/Model/XJParticipatedOrderModel.m @@ -0,0 +1,15 @@ +// +// XJParticipatedOrderModel.m +// XinjiangProject +// + +#import "XJParticipatedOrderModel.h" + +@implementation XJParticipatedOrderModel + ++ (NSDictionary *)modelCustomPropertyMapper { + return @{@"createTime": @"initTime"}; +} + + +@end diff --git a/XinjiangProject/XinjiangProject/Project/TUIChat/ChatViewController.m b/XinjiangProject/XinjiangProject/Project/TUIChat/ChatViewController.m index 52759ca..07875f5 100644 --- a/XinjiangProject/XinjiangProject/Project/TUIChat/ChatViewController.m +++ b/XinjiangProject/XinjiangProject/Project/TUIChat/ChatViewController.m @@ -50,7 +50,7 @@ @class TUIChatDataProvider; -@interface ChatViewController () +@interface ChatViewController () @property (nonatomic, strong) TUIC2CChatViewController *vc; @property (nonatomic, strong) TUIGroupChatViewController * groupvc; @@ -74,6 +74,7 @@ @property (nonatomic, strong) UITableView *memberTableView; @property (nonatomic, strong) UILabel *memberTitleLabel; @property (nonatomic, strong) NSMutableArray *memberList; +@property (nonatomic, strong) UIImageView *refreshIcon; @end @@ -99,6 +100,7 @@ [[V2TIMManager sharedInstance] addSimpleMsgListener:self]; [[TUICallEngine createInstance] addObserver:self]; [[V2TIMManager sharedInstance] addConversationListener:self]; + [[V2TIMManager sharedInstance] addGroupListener:self]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShowAction:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHideAction:) name:UIKeyboardWillHideNotification object:nil]; @@ -378,10 +380,31 @@ } - (UIView *)makeAddMemberFooterView:(CGFloat)panelW { - UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, panelW, 20 + 49)]; + UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, panelW, 20 + 49 + 57)]; footer.backgroundColor = KWhiteColor; - UIButton *addBtn = [[UIButton alloc] initWithFrame:CGRectMake(11, 20, panelW - 22, 49)]; + // 更新群成员 按钮 + UIButton *refreshBtn = [[UIButton alloc] initWithFrame:CGRectMake(11, 12, panelW - 22, 49)]; + refreshBtn.backgroundColor = KWhiteColor; + refreshBtn.layer.cornerRadius = 8; + refreshBtn.layer.borderWidth = 1; + refreshBtn.layer.borderColor = UIColorHex(0xCCCCCC).CGColor; + [refreshBtn setTitle:@" 更新群成员" forState:UIControlStateNormal]; + [refreshBtn setTitleColor:UIColorHex(0x070809) forState:UIControlStateNormal]; + refreshBtn.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + [refreshBtn addTarget:self action:@selector(refreshMemberList) forControlEvents:UIControlEventTouchUpInside]; + [footer addSubview:refreshBtn]; + + // 刷新图标 + self.refreshIcon = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 18, 18)]; + self.refreshIcon.image = [UIImage imageNamed:@"yuanxunhuan"]; + self.refreshIcon.contentMode = UIViewContentModeScaleAspectFit; + CGFloat rTitleW = [refreshBtn.titleLabel.text sizeWithAttributes:@{NSFontAttributeName: refreshBtn.titleLabel.font}].width; + CGFloat rIconX = (panelW - 22 - rTitleW) / 2; + self.refreshIcon.center = CGPointMake(rIconX, 49 / 2); + [refreshBtn addSubview:self.refreshIcon]; + + UIButton *addBtn = [[UIButton alloc] initWithFrame:CGRectMake(11, 12 + 49 + 8, panelW - 22, 49)]; addBtn.backgroundColor = [UIColorHex(0x2EB8B2) colorWithAlphaComponent:0.12]; addBtn.layer.cornerRadius = 8; addBtn.layer.borderWidth = 1; @@ -421,6 +444,15 @@ }]; } +- (void)refreshMemberList { + CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; + rotation.toValue = @(M_PI * 2); + rotation.duration = 0.6; + rotation.repeatCount = HUGE_VALF; + [self.refreshIcon.layer addAnimation:rotation forKey:@"refreshRotation"]; + [self loadGroupMembers]; +} + - (void)loadGroupMembers { self.memberList = [NSMutableArray array]; NSMutableDictionary *params = [NSMutableDictionary dictionary]; @@ -916,6 +948,7 @@ } self.memberTitleLabel.text = [NSString stringWithFormat:@"群成员(%lu)", (unsigned long)self.memberList.count]; [self.memberTableView reloadData]; + [self.refreshIcon.layer removeAnimationForKey:@"refreshRotation"]; } } @@ -1379,4 +1412,12 @@ return [super forwardingTargetForSelector:aSelector]; } +#pragma mark - V2TIMGroupListener + +- (void)onMemberEnter:(NSString *)groupID memberList:(NSArray *)memberList { + if ([groupID isEqualToString:self.chatID] && self.memberPanel) { + [self loadGroupMembers]; + } +} + @end diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/Contents.json b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/Contents.json new file mode 100644 index 0000000..af88df4 --- /dev/null +++ b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "firstAid_icon.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/firstAid_icon.png b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/firstAid_icon.imageset/firstAid_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7687183740361da310c37bf013f0164bfdfdf90c GIT binary patch literal 8612 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 literal 0 HcmV?d00001 diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/Contents.json b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/Contents.json new file mode 100644 index 0000000..73e4bdb --- /dev/null +++ b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "order_unselected.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/order_unselected.png b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/order_unselected.imageset/order_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..7200ed538c76f7ec764aec07e900c8677d5076c7 GIT binary patch literal 1933 zcmV;82Xgp{P)=VG8V9W`IIYGh+ z5>7xk0pSD_P5^TP%n5)KSda>a38^@X?bzC;pJaJjt(KQqGO@&~^7dO!xnJJ@z5OqV zED+6Rv#hG6s-k56FbusW%hGRzNRNiiRqk@lwn8b=~^3xw+mT3xq^s z21qFsR<|t6eBzQ}m&yESNRoU&i2lA(sc0ld#6pmt6jCSg!Xc|tS$j=lK%@kLn0$U^ zhq}gYL`s`4OH@^%?=#M4S(cqw7N%(t8he~qUDt_W zn9eIcPk=*IrLz8lM1Z*oIy^kCXEOHRBp75z$YxcN&*z*6PsFS+O_K};I_Y+=oYyhX zDDk`Z?ydbp=D@WHf@*TPmFHA3yP|eFLXlFbNFN14|Dz-hfUJv)E+uL(Mp@E+zkm6n zR;#tiHE^w8-fFd~ww-xL1gcpCF+6PQ+fY=e(+wkvx}Ev>IZ zv@l|Lc#7)vu0+jk!?2$|cyRYEnE^BPH8%ku>g1#yq9*Iv z#>TzB**O&Bc8CYP68$L)B~-?}&LC^uEF!j!YRy5bOYlL3-0 zE;@pi>6A2)prfPjPblMWcspFGP{@&G0Af4fZtp$-{Q?qAJNya?}ZZNP6GY& z90cQKaVrrDg}f6tIaG&z6+-A@U%q^QqA32jgJ3N9<4cM2^G;xN3yViW1yOQdvY#=} zfqIgHm6c*(O^EfR$khS_VZK8+*Sd43eBo1z z5kalizuSaUPqCOMNe4v0t0Bhe4zwYW;Kc4o?Wqggbpm za_r&32WyJD=Vn6%W$J7zB7Bl#4-cq_-^=pc%pr((uQbFS9yn0&!*w$+2G!Z7o3b;w zNaXWb-t-7=CLbQQ>Z}!`SDM_*gLg*9pj;}IsxobO#9EheD2{RDvg_|QVRslw@ei!((@U;Ob9jJ@*106}S(J%>RS?2f@yWesT@ z!8{21UY#%1A_e$G&;L^t_2i?T${AQ3MPZJDM8Xl)`DEXv_hbu zHeG7ipC??D8X!rO1rpe?)X@AFrI{dq-@y%4(4fH@CuEK$8irx`KAUFdqpa&CjlOUH zZ!}ZsW=PlL`;D`DxmLRka(sdM>Z(uDhJJs*n;LlXhIwDI_0`pYqz!y#tR&e7cy$Qs z_tgWo5pgI@^C7rbF!oyS@$3*Zbh8HAjO53(K#=6w@Y3?wnY7Q%y4_wXRD^V4UOk?B z0V9HjZq{bMmfv*y13UE1=4m;X8+@QmRnLaK z+V%C@iP_Lc*f>5u4X9^h<8F<=Hn1NA6;XDdvNpHOC^@bcbSG%es!vIF;wPJwgV-M@aOaM%Nse{#&5!J!$Z*aV%oaZnI<-0zkb`L zoWA7km?xp0W8RwvLRsYghbbI=(l zDJ&Mg1BTKE8iO7hhEAan~*|89ZdxEJrE2HJyzE_D$7eQ+$cY;BzE0Y1Y5AaGa!1P%*; zz^OkEC`s-cTI+MtW`oIhfzhX4oT5U!5@7pnLQYX7*}RvOK{e@eYmnUg*o%j#2(LZ? zN@cBvNeT5B72?|-klF$a^aoUkSD(PR_vl6Y-Qk4%{Ox(~g)v{qN9>|PyxRoF_a9a| zKpUI~AaGa!1P-UdWr8nO*B8<6Lbaz965yn+pHXRBmaZe08@!iZAg}AgL0#WVFOb*u zY4CkG;4-{`bpu(PdYEx|1*b9KYfOA*?1P%*;z+p3l z1<1`2U84V9P~JZIfni$UKRUB4&ACAP{o$+ZtQ48DrOhiyJ4td!qd3cTE@1ZukzQA& z4AfGc3sAZ`w8bcBYs?I(Ex?;|0cG^l%*ehuqc}o_={4o;Y3>DzvQ%DR^k*}w+$OUZ za10B8z+nLpI4l4Hr?ddsJo9r7MmBCN(!Nw*VkRkTn6I`rQw8t*3}8*DJ$l&1N@7Mo zO%|Valv699DP(_j2cIK4O-kQSKjA%K>c(Wd`7*(Zk~>%_GN)dHVHk$-nP2Ug@DYFn R#^eA1002ovPDHLkV1g4yQAq#* literal 0 HcmV?d00001 diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/Contents.json b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/Contents.json new file mode 100644 index 0000000..6488e01 --- /dev/null +++ b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "org_unselected.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/org_unselected.png b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/org_unselected.imageset/org_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..fe267f92476250787f3f4eca60c76cf1ea64388b GIT binary patch literal 766 zcmVpt#>@e9Sxo4%m-|JJlc^>gnom0rT-BQI7{vV{GfH;DBm? z180jj5Iy)cXNImQn07P_5%3rM2PQMxwM9XIg5gTCNArQk7!mVx6aZJ~K>vSu-o762 z9sTv`Z)1uVfN6&o;*8^$&zi?5fL8ZiP0tmcx2GxZ+Qv9}29y~Q0G=ZPz;i?ZcuwJY zz^WMEa80Fuq|GU*F(p4vdeNg1a->uOw7PHWMErr5Way+*JOowkDBs-ebsomZiIQyr zmBBEn`^b?}3BcfywGZJla->vS;8mv?wGNNQ#JF`ym#_U!bATKv-9xbdG~Wf+@NrR$MW;lwQD9UB8rG;Iys}-iH(1djV?%tXtPl z71i|p%yiMl3y@`dIrjqV*7cvfI07lkB!GAUh!=2<2msF!0pK}ehOh?491*AC#otZd zK1~p3c}M3W8*?tuJ{-O_DKgXYyuDh%NH6BLzI0?|!_EaP{(ul(S#l>Wm$Oml0FHGm?*fcIFi0M`_*`XtZbAQ=tYf@{>t4Zix+T=2msF!0pK|z06b@P z0aiTeA%&akj9+OkT1?8WD*9#}Gv7FSw_l$Cp@!|`1hdJ#c}KYz0jH_$)-K+#he~xJ wdzELvLMx#Gn=sj4Vk8r%UPBNBK`1jn0Z2IZ;l@EW0RR9107*qoM6N<$f-OBwLI3~& literal 0 HcmV?d00001 diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/Contents.json b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/Contents.json new file mode 100644 index 0000000..119b331 --- /dev/null +++ b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "time_selected.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/time_selected.png b/XinjiangProject/XinjiangProject/Supporting Files/Assets.xcassets/HOMEV2/time_selected.imageset/time_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..16ccab79eff7baa4eb4f3aba30f7b0edceafe87a GIT binary patch literal 1708 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