Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
pidan
/
FuSiLive
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9adafae2
authored
Apr 01, 2025
by
pidan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/邀请有奖' of
http://git.yabolive.net:88/pidan/FuSiLive
into feature/邀请有奖
parents
e7e5cc9f
dcdea2da
Hide whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
489 additions
and
161 deletions
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/Models/FUSLiveAssesDetailModel.h
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/Other/FUSSocialShareManager.m
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/View/FUSOCBaseView.m
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/Http/FUSCommonURLs.m
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/Categories/NSString/NSMutableAttributedString+FUSHTML.m
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/Categories/UIButton/UIButton+WebImage.m
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/FormatContent/FUSFormatContentHelper.m
Modules/FUSChatCenterModule/FUSChatCenterModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
Modules/FUSShowRoomModule/FUSShowRoomModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSAssessQualityInfoModel.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSAssessQualityInfoModel.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FUSVideoEndView/FUSVideoEndLiveScoreSheetView.swift
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FUSVideoEndView/FUSVideoEndScoreQualityAlertView.swift
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Router/FUSShowRoomRouter.m
Modules/FUSUserCenterModule/FUSUserCenterModule.xcodeproj/project.pbxproj
Modules/FUSUserCenterModule/FUSUserCenterModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/InviteReward_task_common_background.imageset/Contents.json
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/InviteReward_task_common_background.imageset/InviteReward_task_common_background@2x.png
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/Contents.json
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/inviteReward_invite_navi_rank_btn@2x.png
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/inviteReward_invite_navi_rank_btn@3x.png
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepOneContentView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepThreeContentView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepTwoContentView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardInvitePlanCell.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardMyClansmanHeader.swift → Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardMyClansmanHeaderCell.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardTaskCommonCell.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardTaskMemberCell.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/FFInviteFunctionController.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/FFInviteRewardController.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Other/FUSInviteRewardHttpHelper.m
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteEmissaryConditionAlertView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteQRCodeView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteRewardMyView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteRewardTaskView.swift
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFMyEmissaryQRCodeView.swift
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/Models/FUSLiveAssesDetailModel.h
View file @
9adafae2
...
@@ -15,10 +15,15 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -15,10 +15,15 @@ NS_ASSUME_NONNULL_BEGIN
@property
(
nonatomic
,
assign
)
NSInteger
level
;
@property
(
nonatomic
,
assign
)
NSInteger
level
;
/// 得分
/// 得分
@property
(
nonatomic
,
assign
)
NSInteger
score
;
@property
(
nonatomic
,
assign
)
NSInteger
score
;
// MARK: 下面都是只有在quality直播质量里面才有的属性
/// 目标,直播质量有,是所有目标项
/// 目标,直播质量有,是所有目标项
@property
(
nonatomic
,
assign
)
NSInteger
target
;
@property
(
nonatomic
,
assign
)
NSInteger
target
;
/// 序列ID,直播质量有
/// 序列ID,直播质量有
@property
(
nonatomic
,
strong
)
NSString
*
sid
;
@property
(
nonatomic
,
strong
)
NSString
*
sid
;
/// 评级名称 只有直播质量有
@property
(
nonatomic
,
copy
)
NSString
*
levelName
;
#pragma mark - 额外的属性,为了其他模型定制的
#pragma mark - 额外的属性,为了其他模型定制的
/// 进度
/// 进度
...
...
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/Other/FUSSocialShareManager.m
View file @
9adafae2
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
//社会化分享
//社会化分享
#import <ShareSDK/ShareSDK.h>
#import <ShareSDK/ShareSDK.h>
#import <mob_sharesdk/WXApi.h>
#import <mob_sharesdk/WXApi.h>
#import <Social/Social.h>
@interface
FUSSocialShareManager
()
<
TWTRComposerViewControllerDelegate
,
FBSDKSharingDelegate
,
UIDocumentInteractionControllerDelegate
>
@interface
FUSSocialShareManager
()
<
TWTRComposerViewControllerDelegate
,
FBSDKSharingDelegate
,
UIDocumentInteractionControllerDelegate
>
...
@@ -174,7 +175,8 @@
...
@@ -174,7 +175,8 @@
self
.
shareSuccess
=
success
;
self
.
shareSuccess
=
success
;
self
.
shareFailure
=
failure
;
self
.
shareFailure
=
failure
;
if
(
!
[[
Twitter
sharedInstance
].
sessionStore
hasLoggedInUsers
]
&&
!
[[
UIApplication
sharedApplication
]
canOpenURL
:[
NSURL
URLWithString
:
@"twitter://"
]])
{
if
(
viewController
==
nil
||
!
[[
UIApplication
sharedApplication
]
canOpenURL
:[
NSURL
URLWithString
:
@"twitter://"
]])
{
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"请先安装Twitter"
]];
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"请先安装Twitter"
]];
if
(
self
.
shareFailure
)
_shareFailure
();
if
(
self
.
shareFailure
)
_shareFailure
();
self
.
shareSuccess
=
nil
;
self
.
shareSuccess
=
nil
;
...
@@ -182,46 +184,52 @@
...
@@ -182,46 +184,52 @@
return
;
return
;
}
}
//分享图片
// 检查 Twitter 是否可用
if
(
shareType
==
FUSShareTypeImage
){
if
(
!
[
SLComposeViewController
isAvailableForServiceType
:
@"com.apple.share.Twitter.post"
])
{
TWTRComposer
*
composer
=
[[
TWTRComposer
alloc
]
init
];
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"请先安装Twitter"
]];
[
composer
setImage
:
image
];
if
(
self
.
shareFailure
)
_shareFailure
();
__weak
typeof
(
self
)
weakSelf
=
self
;
self
.
shareSuccess
=
nil
;
[
composer
showFromViewController
:
viewController
completion
:
^
(
TWTRComposerResult
result
)
{
self
.
shareFailure
=
nil
;
if
(
result
==
TWTRComposerResultCancelled
)
{
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"分享取消"
]];
if
(
weakSelf
.
shareFailure
)
weakSelf
.
shareFailure
();
FUSLogInfo
(
@"Tweet composition cancelled"
);
}
else
{
//上报分享成功数据
NSString
*
version
=
[[
FUSDeviceHelper
getAppVersionNumber
]
description
];
[
FUSCommonHttpRequest
fus_socialShareStatisticWithMode
:
_mode
modeType
:
2
version
:
version
from
:
from
roomId
:
roomId
];
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"分享成功"
]];
if
(
weakSelf
.
shareSuccess
)
weakSelf
.
shareSuccess
();
FUSLogInfo
(
@"Sending Tweet!"
);
}
weakSelf
.
shareSuccess
=
nil
;
weakSelf
.
shareFailure
=
nil
;
}];
return
;
return
;
}
}
//上报分享请求数据
SLComposeViewController
*
twitterComposeVC
=
[
SLComposeViewController
composeViewControllerForServiceType
:
@"com.apple.share.Twitter.post"
];
[
self
shareDataReportToSeverWithPlatform
:
TwitterPlatform
from
:
from
roomId
:
roomId
];
switch
(
shareType
)
{
case
FUSShareTypeText
:{
[
twitterComposeVC
setInitialText
:
content
];
}
break
;
case
FUSShareTypeImage
:{
if
(
image
!=
nil
)
{
[
twitterComposeVC
addImage
:
image
];
}
}
break
;
case
FUSShareTypeWebUrl
:{
[
twitterComposeVC
addURL
:[
NSURL
URLWithString
:
contentURL
]];
[
twitterComposeVC
setInitialText
:
content
];
}
break
;
case
FUSShareTypeDefault
:
case
FUSShareTypeImageWithText
:{
if
(
image
!=
nil
)
{
[
twitterComposeVC
addImage
:
image
];
}
[
twitterComposeVC
setInitialText
:
content
];
}
break
;
default
:
break
;
}
// Called from a UIViewController(方式一)
TWTRComposer
*
composer
=
[[
TWTRComposer
alloc
]
init
];
[
composer
setText
:
content
];
[
composer
setImage
:
image
];
[
composer
setURL
:[
NSURL
URLWithString
:
contentURL
]];
__weak
typeof
(
self
)
weakSelf
=
self
;
__weak
typeof
(
self
)
weakSelf
=
self
;
[
composer
showFromViewController
:
viewController
completion
:
^
(
TWTRCompos
erResult
result
)
{
twitterComposeVC
.
completionHandler
=
^
(
SLComposeViewControll
erResult
result
)
{
if
(
result
==
TWTRCompos
erResultCancelled
)
{
if
(
result
==
SLComposeViewControll
erResultCancelled
)
{
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"分享取消"
]];
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"分享取消"
]];
if
(
weakSelf
.
shareFailure
)
weakSelf
.
shareFailure
();
if
(
weakSelf
.
shareFailure
)
weakSelf
.
shareFailure
();
FUSLogInfo
(
@"Tweet composition cancelled"
);
FUSLogInfo
(
@"Tweet composition cancelled"
);
}
}
else
{
else
{
//上报分享成功数据
//上报分享成功数据
NSString
*
version
=
[[
FUSDeviceHelper
getAppVersionNumber
]
description
];
NSString
*
version
=
[[
FUSDeviceHelper
getAppVersionNumber
]
description
];
[
FUSCommonHttpRequest
fus_socialShareStatisticWithMode
:
_mode
modeType
:
2
version
:
version
from
:
from
roomId
:
roomId
];
[
FUSCommonHttpRequest
fus_socialShareStatisticWithMode
:
_mode
modeType
:
2
version
:
version
from
:
from
roomId
:
roomId
];
...
@@ -231,8 +239,74 @@
...
@@ -231,8 +239,74 @@
}
}
weakSelf
.
shareSuccess
=
nil
;
weakSelf
.
shareSuccess
=
nil
;
weakSelf
.
shareFailure
=
nil
;
weakSelf
.
shareFailure
=
nil
;
};
twitterComposeVC
.
modalPresentationStyle
=
UIModalPresentationOverFullScreen
;
[[
UIViewController
fus_topViewController
]
presentViewController
:
twitterComposeVC
animated
:
YES
completion
:^
{
}];
}];
// 20250331 下面的不用了,用新的
// if (![[Twitter sharedInstance].sessionStore hasLoggedInUsers] && ![[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"twitter://"]]) {
// [FUSDialogView fus_showDialog:[NSString fus_localString:@"请先安装Twitter"]];
// if(self.shareFailure)_shareFailure();
// self.shareSuccess = nil;
// self.shareFailure = nil;
// return;
// }
//
// //分享图片
// if(shareType == FUSShareTypeImage){
// TWTRComposer *composer = [[TWTRComposer alloc] init];
// [composer setImage:image];
// __weak typeof(self) weakSelf = self;
// [composer showFromViewController:viewController completion:^(TWTRComposerResult result) {
// if (result == TWTRComposerResultCancelled) {
// [FUSDialogView fus_showDialog:[NSString fus_localString:@"分享取消"]];
// if(weakSelf.shareFailure)weakSelf.shareFailure();
// FUSLogInfo(@"Tweet composition cancelled");
// }
// else{
// //上报分享成功数据
// NSString *version = [[FUSDeviceHelper getAppVersionNumber] description];
// [FUSCommonHttpRequest fus_socialShareStatisticWithMode:_mode modeType:2 version:version from:from roomId:roomId];
// [FUSDialogView fus_showDialog:[NSString fus_localString:@"分享成功"]];
// if(weakSelf.shareSuccess)weakSelf.shareSuccess(); FUSLogInfo(@"Sending Tweet!");
// }
// weakSelf.shareSuccess = nil;
// weakSelf.shareFailure = nil;
// }];
// return;
// }
//
// //上报分享请求数据
// [self shareDataReportToSeverWithPlatform:TwitterPlatform from:from roomId:roomId];
//
// // Called from a UIViewController(方式一)
// TWTRComposer *composer = [[TWTRComposer alloc] init];
// [composer setText:content];
// [composer setImage:image];
// [composer setURL:[NSURL URLWithString:contentURL]];
// __weak typeof(self) weakSelf = self;
// [composer showFromViewController:viewController completion:^(TWTRComposerResult result) {
// if (result == TWTRComposerResultCancelled) {
// [FUSDialogView fus_showDialog:[NSString fus_localString:@"分享取消"]];
// if(weakSelf.shareFailure)weakSelf.shareFailure();
// FUSLogInfo(@"Tweet composition cancelled");
// }
// else{
// //上报分享成功数据
// NSString *version = [[FUSDeviceHelper getAppVersionNumber] description];
// [FUSCommonHttpRequest fus_socialShareStatisticWithMode:_mode modeType:2 version:version from:from roomId:roomId];
// [FUSDialogView fus_showDialog:[NSString fus_localString:@"分享成功"]];
// if(weakSelf.shareSuccess)weakSelf.shareSuccess();
// FUSLogInfo(@"Sending Tweet!");
// }
// weakSelf.shareSuccess = nil;
// weakSelf.shareFailure = nil;
// }];
//(方式二)
//(方式二)
// if ([[Twitter sharedInstance].sessionStore hasLoggedInUsers]) {
// if ([[Twitter sharedInstance].sessionStore hasLoggedInUsers]) {
// TWTRComposerViewController *composer = [[TWTRComposerViewController alloc] initWithInitialText:[NSString stringWithFormat:@"%@%@",content,contentURL] image:image videoURL:nil];
// TWTRComposerViewController *composer = [[TWTRComposerViewController alloc] initWithInitialText:[NSString stringWithFormat:@"%@%@",content,contentURL] image:image videoURL:nil];
...
...
DevelopmentPods/FUSCommon/FUSCommon/Classes/Common/View/FUSOCBaseView.m
View file @
9adafae2
...
@@ -7,6 +7,12 @@
...
@@ -7,6 +7,12 @@
#import "FUSOCBaseView.h"
#import "FUSOCBaseView.h"
@interface
FUSOCBaseView
()
@property
(
nonatomic
,
assign
)
BOOL
fusocviewIsLoaded
;
@end
@implementation
FUSOCBaseView
@implementation
FUSOCBaseView
-
(
instancetype
)
init
-
(
instancetype
)
init
...
@@ -17,8 +23,11 @@
...
@@ -17,8 +23,11 @@
_transparency
=
false
;
_transparency
=
false
;
_transparencyFrame
=
CGRectZero
;
_transparencyFrame
=
CGRectZero
;
[
self
makeUI
];
if
(
self
.
fusocviewIsLoaded
==
NO
)
{
[
self
bindViewModel
];
[
self
makeUI
];
[
self
bindViewModel
];
}
self
.
fusocviewIsLoaded
=
YES
;
}
}
return
self
;
return
self
;
}
}
...
@@ -31,9 +40,11 @@
...
@@ -31,9 +40,11 @@
_transparency
=
false
;
_transparency
=
false
;
_transparencyFrame
=
CGRectZero
;
_transparencyFrame
=
CGRectZero
;
[
self
makeUI
];
if
(
self
.
fusocviewIsLoaded
==
NO
)
{
[
self
makeUI
];
[
self
bindViewModel
];
[
self
bindViewModel
];
}
self
.
fusocviewIsLoaded
=
YES
;
}
}
return
self
;
return
self
;
...
...
DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/Http/FUSCommonURLs.m
View file @
9adafae2
...
@@ -86,22 +86,22 @@
...
@@ -86,22 +86,22 @@
/// 邀请有奖-下载帮助页地址
/// 邀请有奖-下载帮助页地址
+
(
NSString
*
)
fus_inviteDownloadHelpUrl
{
+
(
NSString
*
)
fus_inviteDownloadHelpUrl
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
Nesting
/newShare/helpDownload.html"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
vestApp
/newShare/helpDownload.html"
];
}
}
/// 邀请有奖-绑定帮助页地址
/// 邀请有奖-绑定帮助页地址
+
(
NSString
*
)
fus_inviteBindHelpUrl
{
+
(
NSString
*
)
fus_inviteBindHelpUrl
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
Nesting
/newShare/helpBind.html"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
vestApp
/newShare/helpBind.html"
];
}
}
/// 使者奖励地址
/// 使者奖励地址
+
(
NSString
*
)
fus_inviteEmissaryRewardUrl
{
+
(
NSString
*
)
fus_inviteEmissaryRewardUrl
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
Nesting
/newShare/inviteReward.html"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
vestApp
/newShare/inviteReward.html"
];
}
}
/// 我的族人地址
/// 我的族人地址
+
(
NSString
*
)
fus_inviteMyClansmanUrl
{
+
(
NSString
*
)
fus_inviteMyClansmanUrl
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
Nesting
/newShare/inviteNum.html"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
webUrl
:
@"/
vestApp
/newShare/inviteNum.html"
];
}
}
@end
@end
...
...
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/Categories/NSString/NSMutableAttributedString+FUSHTML.m
View file @
9adafae2
...
@@ -69,7 +69,8 @@
...
@@ -69,7 +69,8 @@
if
(
colorString
.
length
||
rtlString
.
length
)
{
if
(
colorString
.
length
||
rtlString
.
length
)
{
styleString
=
[
NSString
stringWithFormat
:
@" style=%@%@display:inline-blcok"
,
rtlString
,
colorString
];
styleString
=
[
NSString
stringWithFormat
:
@" style=%@%@display:inline-blcok"
,
rtlString
,
colorString
];
}
}
finalHtmlString
=
[
NSString
stringWithFormat
:
@"%@<div%@>%@</div>"
,
imgAutoFitHeight
,
styleString
,
htmlString
];
// finalHtmlString = [NSString stringWithFormat:@"%@<div%@>%@</div>",imgAutoFitHeight,styleString,htmlString];
finalHtmlString
=
[
NSString
stringWithFormat
:
@"%@<span%@>%@</span>"
,
imgAutoFitHeight
,
styleString
,
htmlString
];
}
}
// 获得HTML的Attribute
// 获得HTML的Attribute
...
...
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/Categories/UIButton/UIButton+WebImage.m
View file @
9adafae2
...
@@ -87,8 +87,7 @@
...
@@ -87,8 +87,7 @@
[
self
setImageWithURL
:
url
forState
:
state
placeholder
:
placeholder
];
[
self
setImageWithURL
:
url
forState
:
state
placeholder
:
placeholder
];
}
}
-
(
void
)
setWebImageWithSubURLString
:(
NSString
*
)
urlString
controlState
:(
UIControlState
)
state
placeholder
:(
UIImage
*
)
placeholder
completion
:(
void
(
BOOL
,
UIImage
*
_Nullable
))
completion
{
-
(
void
)
setWebImageWithSubURLString
:(
NSString
*
)
urlString
controlState
:(
UIControlState
)
state
placeholder
:(
UIImage
*
)
placeholder
completion
:(
void
(
^
)(
BOOL
,
UIImage
*
_Nullable
))
completion
{
if
([
urlString
containsString
:
@"boy"
]
||
[
urlString
containsString
:
@"girl"
])
{
if
([
urlString
containsString
:
@"boy"
]
||
[
urlString
containsString
:
@"girl"
])
{
[
self
setImage
:
UIImage
.
fus_defaultIcon
forState
:
UIControlStateNormal
];
[
self
setImage
:
UIImage
.
fus_defaultIcon
forState
:
UIControlStateNormal
];
return
;
return
;
...
@@ -109,9 +108,9 @@
...
@@ -109,9 +108,9 @@
[
self
setImageWithURL
:
url
forState
:
state
placeholder
:
placeholder
options
:
kNilOptions
completion
:^
(
UIImage
*
_Nullable
image
,
NSURL
*
_Nonnull
url
,
YYWebImageFromType
from
,
YYWebImageStage
stage
,
NSError
*
_Nullable
error
)
{
[
self
setImageWithURL
:
url
forState
:
state
placeholder
:
placeholder
options
:
kNilOptions
completion
:^
(
UIImage
*
_Nullable
image
,
NSURL
*
_Nonnull
url
,
YYWebImageFromType
from
,
YYWebImageStage
stage
,
NSError
*
_Nullable
error
)
{
if
(
error
==
nil
&&
image
!=
nil
)
{
if
(
error
==
nil
&&
image
!=
nil
)
{
completion
(
YES
,
image
);
if
(
completion
!=
nil
)
completion
(
YES
,
image
);
}
else
{
}
else
{
completion
(
NO
,
nil
);
if
(
completion
!=
nil
)
completion
(
NO
,
nil
);
}
}
}];
}];
}
}
...
...
DevelopmentPods/FUSFoundation/FUSFoundation/Classes/FUSFoundation/Tools/FormatContent/FUSFormatContentHelper.m
View file @
9adafae2
...
@@ -59,8 +59,7 @@
...
@@ -59,8 +59,7 @@
}
}
}
}
}
}
NSMutableAttributedString
*
attr
=
[
NSMutableAttributedString
fus_attributeStringWithHTMLString
:
languageContentString
baseColor
:
@"ffffff"
font
:
font
imgHeight
:
levelSize
.
height
imgWidth
:
levelSize
.
width
];
NSMutableAttributedString
*
attr
=
[
NSMutableAttributedString
fus_attributeStringWithHTMLString
:
model
.
languageContent
baseColor
:
@"ffffff"
font
:
font
imgHeight
:
levelSize
.
height
imgWidth
:
levelSize
.
width
];
if
(
!
[
FUSDeviceHelper
fus_checkOldIPhoneDeviceHandler
:
nil
])
{
if
(
!
[
FUSDeviceHelper
fus_checkOldIPhoneDeviceHandler
:
nil
])
{
NSShadow
*
shadow
=
[[
NSShadow
alloc
]
init
];
NSShadow
*
shadow
=
[[
NSShadow
alloc
]
init
];
...
...
Modules/FUSChatCenterModule/FUSChatCenterModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
9adafae2
...
@@ -7,12 +7,12 @@
...
@@ -7,12 +7,12 @@
<
k
e
y
>
FUSChatCenterBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
k
e
y
>
FUSChatCenterBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
d
i
c
t
>
<
d
i
c
t
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
int
e
g
e
r
>
7
2
<
/int
e
g
e
r
>
<
int
e
g
e
r
>
7
3
<
/int
e
g
e
r
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
k
e
y
>
FUSChatCenterModule.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
k
e
y
>
FUSChatCenterModule.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
d
i
c
t
>
<
d
i
c
t
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
int
e
g
e
r
>
7
8
<
/int
e
g
e
r
>
<
int
e
g
e
r
>
7
4
<
/int
e
g
e
r
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
9adafae2
...
@@ -7,12 +7,12 @@
...
@@ -7,12 +7,12 @@
<
k
e
y
>
FUSShowRoomBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
k
e
y
>
FUSShowRoomBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
d
i
c
t
>
<
d
i
c
t
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
int
e
g
e
r
>
7
4
<
/int
e
g
e
r
>
<
int
e
g
e
r
>
7
5
<
/int
e
g
e
r
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
k
e
y
>
FUSShowRoomModule.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
k
e
y
>
FUSShowRoomModule.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
d
i
c
t
>
<
d
i
c
t
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
int
e
g
e
r
>
7
5
<
/int
e
g
e
r
>
<
int
e
g
e
r
>
7
8
<
/int
e
g
e
r
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSAssessQualityInfoModel.h
View file @
9adafae2
...
@@ -9,6 +9,26 @@
...
@@ -9,6 +9,26 @@
NS_ASSUME_NONNULL_BEGIN
NS_ASSUME_NONNULL_BEGIN
@class
FUSAssessQualityInfoModel
;
@interface
FUSAssessQualityInfoRequestModel
:
FUSBaseModel
/// 直播质量各项列表
@property
(
nonatomic
,
copy
)
NSArray
<
FUSAssessQualityInfoModel
*>
*
dataList
;
/// 结果状态(0:首次、1:非首次
@property
(
nonatomic
,
assign
)
NSInteger
resultCase
;
/// 结果提示文案
@property
(
nonatomic
,
copy
)
NSString
*
resultHint
;
/// 评级
@property
(
nonatomic
,
assign
)
NSInteger
resultLevel
;
/// 评级标题
@property
(
nonatomic
,
copy
)
NSString
*
resultLevelName
;
/// 获取评级显示的颜色
-
(
UIColor
*
)
fus_getLevelColor
;
@end
@interface
FUSAssessQualityInfoModel
:
FUSBaseModel
@interface
FUSAssessQualityInfoModel
:
FUSBaseModel
/// 选项ID
/// 选项ID
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Model/FUSAssessQualityInfoModel.m
View file @
9adafae2
...
@@ -7,6 +7,23 @@
...
@@ -7,6 +7,23 @@
#import "FUSAssessQualityInfoModel.h"
#import "FUSAssessQualityInfoModel.h"
@implementation
FUSAssessQualityInfoRequestModel
+
(
NSDictionary
*
)
modelContainerPropertyGenericClass
{
return
@{
@"dataList"
:
[
FUSAssessQualityInfoModel
class
]};
}
-
(
UIColor
*
)
fus_getLevelColor
{
NSArray
*
colors
=
@[[
UIColor
colorWithHex
:
@"#DFDEDE"
],
[
UIColor
colorWithHex
:
@"#FB2424"
],
[
UIColor
colorWithHex
:
@"#FC8226"
],
[
UIColor
colorWithHex
:
@"#00F088"
],
[
UIColor
colorWithHex
:
@"#0394FA"
]];
if
(
self
.
resultLevel
>=
0
&&
self
.
resultLevel
<=
4
)
{
return
colors
[
self
.
resultLevel
];;
}
return
[
UIColor
colorWithHex
:
@"#DFDEDE"
];
}
@end
@implementation
FUSAssessQualityInfoModel
@implementation
FUSAssessQualityInfoModel
@end
@end
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.h
View file @
9adafae2
...
@@ -934,11 +934,21 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -934,11 +934,21 @@ NS_ASSUME_NONNULL_BEGIN
/// 获取用户直播质量详细
/// 获取用户直播质量详细
/// @param sid id
/// @param sid id
/// @param type 类型(1:房间)
/// @param succeed 1
/// @param succeed 1
/// @param failure 0
/// @param failure 0
+
(
void
)
fus_requestUserliveAssessQualityInfoWithSid
:(
NSString
*
)
sid
+
(
void
)
fus_requestUserliveAssessQualityInfoWithSid
:(
NSString
*
)
sid
succeed
:(
void
(
^
)(
NSArray
<
FUSAssessQualityInfoModel
*>
*
modelList
))
succeed
type
:(
NSInteger
)
type
succeed
:(
void
(
^
)(
FUSAssessQualityInfoRequestModel
*
model
))
succeed
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
/// 重申直播质量认定
/// @param sid SID
/// @param succeed 1
/// @param failure 0
+
(
void
)
fus_requestUserliveAssessQualityReaffirmWithSid
:(
NSString
*
)
sid
succeed
:(
void
(
^
)(
void
))
succeed
failure
:(
void
(
^
)(
NSString
*
msg
,
NSInteger
code
))
failure
;
/// 结束直播
/// 结束直播
/// @param roomId 房间id
/// @param roomId 房间id
/// @param channelId 直播场次ID
/// @param channelId 直播场次ID
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Other/FUSLiveHttpHelper.m
View file @
9adafae2
...
@@ -2515,14 +2515,25 @@
...
@@ -2515,14 +2515,25 @@
}];
}];
}
}
/// 获取用户直播质量详细
/// 获取用户直播质量详细
+
(
void
)
fus_requestUserliveAssessQualityInfoWithSid
:
(
NSString
*
)
sid
succeed
:
(
void
(
^
)(
NSArray
<
FUSAssessQualityInfoModel
*>
*
))
succeed
failure
:
(
void
(
^
)(
NSString
*
,
NSInteger
))
failure
{
+
(
void
)
fus_requestUserliveAssessQualityInfoWithSid
:
(
NSString
*
)
sid
type
:
(
NSInteger
)
type
succeed
:
(
void
(
^
)(
FUSAssessQualityInfoRequestModel
*
_Nonnull
))
succeed
failure
:
(
void
(
^
)(
NSString
*
_Nonnull
,
NSInteger
))
failure
{
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
NSDictionary
*
parm
=
@{
@"sid"
:
sid
,
@"type"
:
@
(
type
)};
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_userliveAssessQualityInfo
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_userliveAssessQualityInfo
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
succeed
([
NSArray
modelArrayWithClass
:[
FUSAssessQualityInfoModel
class
]
json
:
dataDict
[
@"dataList"
]]);
succeed
([
FUSAssessQualityInfoRequestModel
fus_modelWithDict
:
dataDict
]);
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
failure
)
failure
(
dataDict
[
@"msg"
],
code
);
}];
}
/// 重申直播质量认定
+
(
void
)
fus_requestUserliveAssessQualityReaffirmWithSid
:
(
NSString
*
)
sid
succeed
:
(
void
(
^
)(
void
))
succeed
failure
:
(
void
(
^
)(
NSString
*
_Nonnull
,
NSInteger
))
failure
{
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSShowRoomURLs
.
fus_URL_userliveAssessQualityReaffirm
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
succeed
();
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
failure
)
failure
(
dataDict
[
@"msg"
],
code
);
if
(
failure
)
failure
(
dataDict
[
@"msg"
],
code
);
}];
}];
}
}
/// 结束直播
/// 结束直播
+
(
void
)
fus_requestEndLiveWithRoomId
:
(
NSString
*
)
roomid
channelId
:
(
NSString
*
)
channelId
succeed
:
(
void
(
^
)(
NSDictionary
*
))
succeed
failure
:
(
void
(
^
)(
NSString
*
,
NSInteger
))
failure
{
+
(
void
)
fus_requestEndLiveWithRoomId
:
(
NSString
*
)
roomid
channelId
:
(
NSString
*
)
channelId
succeed
:
(
void
(
^
)(
NSDictionary
*
))
succeed
failure
:
(
void
(
^
)(
NSString
*
,
NSInteger
))
failure
{
NSDictionary
*
parm
=
@{
@"roomid"
:
roomid
,
NSDictionary
*
parm
=
@{
@"roomid"
:
roomid
,
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FUSVideoEndView/FUSVideoEndLiveScoreSheetView.swift
View file @
9adafae2
...
@@ -201,10 +201,10 @@ extension FUSVideoEndLiveScoreSheetView {
...
@@ -201,10 +201,10 @@ extension FUSVideoEndLiveScoreSheetView {
if
type
==
.
quality
{
if
type
==
.
quality
{
FUSLoadingView
.
fus_showProgressView
(
withMessage
:
""
,
canTouchBottomView
:
false
)
FUSLoadingView
.
fus_showProgressView
(
withMessage
:
""
,
canTouchBottomView
:
false
)
FUSLiveHttpHelper
.
fus_requestUserliveAssessQualityInfo
(
withSid
:
self
.
liveAssessModel
.
quality
.
sid
)
{[
weak
self
]
dataList
in
FUSLiveHttpHelper
.
fus_requestUserliveAssessQualityInfo
(
withSid
:
self
.
liveAssessModel
.
quality
.
sid
,
type
:
0
)
{[
weak
self
]
model
in
FUSLoadingView
.
fus_dismissProgressView
()
FUSLoadingView
.
fus_dismissProgressView
()
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
FUSVideoEndScoreQualityAlertView
.
fus_create
(
dataList
:
dataList
,
showOn
:
self
)
FUSVideoEndScoreQualityAlertView
.
fus_create
(
model
:
model
,
showOn
:
self
)
}
failure
:
{
msg
,
code
in
}
failure
:
{
msg
,
code
in
FUSLoadingView
.
fus_dismissProgressView
()
FUSLoadingView
.
fus_dismissProgressView
()
FUSDialogView
.
fus_showDialog
(
msg
)
FUSDialogView
.
fus_showDialog
(
msg
)
...
@@ -360,8 +360,11 @@ class FFVideoEndLiveScoreBlankButton: UIButton {
...
@@ -360,8 +360,11 @@ class FFVideoEndLiveScoreBlankButton: UIButton {
make
.
append
(
""
)
make
.
append
(
""
)
make
.
append
(
"
\(
model
.
score
)
"
)
.
textColor
(
UIColor
.
fus_fireGreen
())
make
.
append
(
"
\(
model
.
score
)
"
)
.
textColor
(
UIColor
.
fus_fireGreen
())
case
.
quality
:
case
.
quality
:
make
.
append
(
"
\(
model
.
levelName
)
"
)
.
textColor
(
model
.
fus_color
)
make
.
append
(
"("
)
make
.
append
(
"
\(
model
.
score
)
"
)
.
textColor
(
model
.
fus_color
)
make
.
append
(
"
\(
model
.
score
)
"
)
.
textColor
(
model
.
fus_color
)
make
.
append
(
"/
\(
model
.
target
)
"
)
.
textColor
(
.
init
(
hex
:
"#111111"
))
make
.
append
(
"/
\(
model
.
target
)
)"
)
make
.
textColor
(
.
init
(
hex
:
"#111111"
))
}
}
make
.
font
(
UIFont
.
fus_themeFont
(
18
))
make
.
font
(
UIFont
.
fus_themeFont
(
18
))
})
})
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/FUSVideoEndView/FUSVideoEndScoreQualityAlertView.swift
View file @
9adafae2
...
@@ -10,28 +10,69 @@ import RxSwift
...
@@ -10,28 +10,69 @@ import RxSwift
@objcMembers
public
class
FUSVideoEndScoreQualityAlertView
:
FUSBaseView
{
@objcMembers
public
class
FUSVideoEndScoreQualityAlertView
:
FUSBaseView
{
@objc
static
public
func
fus_create
(
dataList
:
[
FUSAssessQualityInfoModel
],
showOn
:
UIView
?
=
nil
)
{
@objc
public
enum
FUSVideoEndScoreQualityAlertClickedType
:
Int
{
/// 普通关闭
case
close
/// 重新认证
case
reidentify
}
@objc
static
public
func
fus_create
(
model
:
FUSAssessQualityInfoRequestModel
,
showOn
:
UIView
?
=
nil
)
{
guard
let
showOnView
=
((
showOn
!=
nil
)
?
showOn
:
UIViewController
.
fus_top
()?
.
view
)
else
{
return
}
let
view
=
FUSVideoEndScoreQualityAlertView
(
frame
:
showOnView
.
bounds
)
view
.
dataModel
=
model
showOnView
.
addSubview
(
view
)
view
.
fus_showWithAnimation
()
}
/// 创建一个有重新认定的质量认定弹窗
@objc
static
public
func
fus_createWithReidentify
(
model
:
FUSAssessQualityInfoRequestModel
,
showOn
:
UIView
?
=
nil
,
clickedHandler
:((
FUSVideoEndScoreQualityAlertClickedType
)
->
Void
)?)
{
guard
let
showOnView
=
((
showOn
!=
nil
)
?
showOn
:
UIViewController
.
fus_top
()?
.
view
)
else
{
return
}
guard
let
showOnView
=
((
showOn
!=
nil
)
?
showOn
:
UIViewController
.
fus_top
()?
.
view
)
else
{
return
}
let
view
=
FUSVideoEndScoreQualityAlertView
(
frame
:
showOnView
.
bounds
)
let
view
=
FUSVideoEndScoreQualityAlertView
(
frame
:
showOnView
.
bounds
)
view
.
dataList
=
dataList
view
.
dataModel
=
model
view
.
reidentify
=
true
view
.
clickedHandler
=
clickedHandler
showOnView
.
addSubview
(
view
)
showOnView
.
addSubview
(
view
)
view
.
fus_showWithAnimation
()
view
.
fus_showWithAnimation
()
}
}
var
data
List
:
[
FUSAssessQualityInfoModel
]
=
.
init
()
{
var
data
Model
:
FUSAssessQualityInfoRequestModel
=
.
init
()
{
didSet
{
didSet
{
self
.
fus_reloadData
()
self
.
fus_reloadData
()
}
}
}
}
/// 点击回调
var
clickedHandler
:((
FUSVideoEndScoreQualityAlertClickedType
)
->
Void
)?
/// 重新认定的提示,如果为空,则不显示重新认定的标志
var
reidentify
:
Bool
=
false
{
didSet
{
if
reidentify
==
true
{
self
.
reidentifyBtn
.
isHidden
=
false
self
.
okBtn
.
snp
.
updateConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
44
)
}
}
else
{
self
.
reidentifyBtn
.
isHidden
=
true
self
.
okBtn
.
snp
.
updateConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
32
)
}
}
}
}
let
bgBtn
=
UIButton
(
type
:
.
custom
)
let
bgBtn
=
UIButton
(
type
:
.
custom
)
let
contentView
=
UIImageView
(
frame
:
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
(),
300
))
let
contentView
=
UIImageView
(
frame
:
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
(),
300
))
let
titleLabel
=
UILabel
()
let
titleLabel
=
UILabel
()
let
qualityGradeLabel
=
UILabel
()
let
qualityInfoBgView
=
UIView
()
let
qualityInfoBgView
=
UIView
()
var
qualityInfoViewList
:
[
FFScoreQualityItemView
]
=
.
init
()
var
qualityInfoViewList
:
[
FFScoreQualityItemView
]
=
.
init
()
let
okBtn
=
FUSStyleButton
(
type
:
.
custom
)
let
okBtn
=
FUSStyleButton
(
type
:
.
custom
)
let
reidentifyBtn
=
UIButton
(
type
:
.
custom
)
public
override
func
makeUI
()
{
public
override
func
makeUI
()
{
self
.
alpha
=
0
self
.
alpha
=
0
...
@@ -61,10 +102,16 @@ import RxSwift
...
@@ -61,10 +102,16 @@ import RxSwift
make
.
centerX
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
}
}
contentView
.
addSubview
(
qualityGradeLabel
)
qualityGradeLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
titleLabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
centerX
.
equalToSuperview
()
}
contentView
.
addSubview
(
qualityInfoBgView
)
contentView
.
addSubview
(
qualityInfoBgView
)
qualityInfoBgView
.
snp
.
makeConstraints
{
make
in
qualityInfoBgView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
22
)
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
22
)
make
.
top
.
equalTo
(
titl
eLabel
.
snp
.
bottom
)
.
offset
(
10
)
make
.
top
.
equalTo
(
qualityGrad
eLabel
.
snp
.
bottom
)
.
offset
(
10
)
}
}
okBtn
.
style
=
.
blue
okBtn
.
style
=
.
blue
...
@@ -77,22 +124,48 @@ import RxSwift
...
@@ -77,22 +124,48 @@ import RxSwift
make
.
size
.
equalTo
(
CGSizeMake
(
214
,
42
))
make
.
size
.
equalTo
(
CGSizeMake
(
214
,
42
))
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
32
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
32
)
}
}
reidentifyBtn
.
isHidden
=
true
reidentifyBtn
.
setAttributedTitle
(
.
sj
.
makeText
({
make
in
make
.
append
(
.
fus_localString
(
"申请重新认定"
))
.
textColor
(
.
fus_textColorLight
())
.
underLine
{
make
in
make
.
style
=
.
single
make
.
color
=
.
fus_textColorLight
()
}
make
.
font
(
.
fus_themeFont
(
11
))
}),
for
:
.
normal
)
contentView
.
addSubview
(
reidentifyBtn
)
reidentifyBtn
.
snp
.
makeConstraints
{
make
in
make
.
centerX
.
equalToSuperview
()
make
.
top
.
equalTo
(
okBtn
.
snp
.
bottom
)
.
offset
(
9
)
}
}
}
public
override
func
bindViewModel
()
{
public
override
func
bindViewModel
()
{
okBtn
.
rx
.
tap
.
subscribe
(
onNext
:
{[
weak
self
]
in
okBtn
.
rx
.
tap
.
subscribe
(
onNext
:
{[
weak
self
]
in
self
?
.
fus_dismissWithAnimation
()
self
?
.
fus_dismissWithAnimation
()
self
?
.
clickedHandler
?(
.
close
)
})
.
disposed
(
by
:
disposeBag
)
reidentifyBtn
.
rx
.
tap
.
subscribe
(
onNext
:
{[
weak
self
]
in
self
?
.
fus_dismissWithAnimation
()
self
?
.
clickedHandler
?(
.
reidentify
)
})
.
disposed
(
by
:
disposeBag
)
})
.
disposed
(
by
:
disposeBag
)
}
}
func
fus_reloadData
(){
func
fus_reloadData
(){
self
.
qualityGradeLabel
.
attributedText
=
.
sj
.
makeText
({
make
in
make
.
append
(
.
fus_versionLocalString
(
"質量評級"
)
+
":"
)
.
textColor
(
.
fus_textColorRich
())
make
.
append
(
self
.
dataModel
.
resultLevelName
)
.
textColor
(
self
.
dataModel
.
fus_getLevelColor
())
.
font
(
.
fus_themeMediumFont
(
20
))
make
.
font
(
.
fus_themeFont
(
15
))
})
self
.
qualityInfoViewList
.
removeAll
()
self
.
qualityInfoViewList
.
removeAll
()
self
.
qualityInfoBgView
.
removeAllSubviews
()
self
.
qualityInfoBgView
.
removeAllSubviews
()
var
qualityTopConstrain
=
self
.
qualityInfoBgView
.
snp
.
top
var
qualityTopConstrain
=
self
.
qualityInfoBgView
.
snp
.
top
for
(
index
,
model
)
in
self
.
dataList
.
enumerated
()
{
for
(
index
,
model
)
in
self
.
data
Model
.
data
List
.
enumerated
()
{
let
qualityView
=
FFScoreQualityItemView
(
frame
:
.
zero
)
let
qualityView
=
FFScoreQualityItemView
(
frame
:
.
zero
)
qualityView
.
model
=
model
qualityView
.
model
=
model
...
@@ -101,13 +174,13 @@ import RxSwift
...
@@ -101,13 +174,13 @@ import RxSwift
qualityView
.
snp
.
makeConstraints
{
make
in
qualityView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
qualityTopConstrain
)
.
offset
(
10
)
make
.
top
.
equalTo
(
qualityTopConstrain
)
.
offset
(
10
)
if
index
==
self
.
dataList
.
count
-
1
{
if
index
==
self
.
data
Model
.
data
List
.
count
-
1
{
make
.
bottom
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
}
}
}
}
qualityTopConstrain
=
qualityView
.
snp
.
bottom
qualityTopConstrain
=
qualityView
.
snp
.
bottom
qualityView
.
lineView
.
isHidden
=
index
==
self
.
dataList
.
count
-
1
qualityView
.
lineView
.
isHidden
=
index
==
self
.
data
Model
.
data
List
.
count
-
1
self
.
qualityInfoViewList
.
append
(
qualityView
)
self
.
qualityInfoViewList
.
append
(
qualityView
)
}
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.h
View file @
9adafae2
...
@@ -418,6 +418,9 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -418,6 +418,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 获取用户直播质量详细
/// 获取用户直播质量详细
+
(
NSString
*
)
fus_URL_userliveAssessQualityInfo
;
+
(
NSString
*
)
fus_URL_userliveAssessQualityInfo
;
/// 重申直播质量认定
+
(
NSString
*
)
fus_URL_userliveAssessQualityReaffirm
;
/// 结束直播
/// 结束直播
+
(
NSString
*
)
fus_URL_liveEnd
;
+
(
NSString
*
)
fus_URL_liveEnd
;
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Others/FUSShowRoomURLs.m
View file @
9adafae2
...
@@ -538,6 +538,10 @@
...
@@ -538,6 +538,10 @@
+
(
NSString
*
)
fus_URL_userliveAssessQualityInfo
{
+
(
NSString
*
)
fus_URL_userliveAssessQualityInfo
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/userlive/assess/quality/info"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/userlive/assess/quality/info"
];
}
}
/// 重申直播质量认定
+
(
NSString
*
)
fus_URL_userliveAssessQualityReaffirm
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/userlive/assess/quality/reaffirm"
];
}
/// 结束直播
/// 结束直播
+
(
NSString
*
)
fus_URL_liveEnd
{
+
(
NSString
*
)
fus_URL_liveEnd
{
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/live/end"
];
return
[
FUSConfig
.
sharedInstanced
.
pathConfigs
apiUrl
:
@"/live/end"
];
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Router/FUSShowRoomRouter.m
View file @
9adafae2
...
@@ -422,15 +422,47 @@
...
@@ -422,15 +422,47 @@
}
}
-
(
void
)
fus_showVideoScoreQualityAlertView
:
(
NSString
*
)
sid
{
-
(
void
)
fus_showVideoScoreQualityAlertView
:
(
NSString
*
)
sid
{
[
FUSLiveHttpHelper
fus_requestUserliveAssessQualityInfoWithSid
:
sid
succeed
:
^
(
NSArray
<
FUSAssessQualityInfoModel
*>
*
_Nonnull
modelList
)
{
NSInteger
type
=
0
;
[
FUSVideoEndScoreQualityAlertView
fus_createWithDataList
:
modelList
showOn
:[
UIViewController
fus_topViewController
].
view
];
if
([
FUSLiveHelper
shareInstance
].
liveType
==
FUSLiveTypeAnchor
)
{
type
=
1
;
}
MJWeakSelf
[
FUSLiveHttpHelper
fus_requestUserliveAssessQualityInfoWithSid
:
sid
type
:
type
succeed
:^
(
FUSAssessQualityInfoRequestModel
*
_Nonnull
model
)
{
if
([
FUSLiveHelper
shareInstance
].
liveType
==
FUSLiveTypeAnchor
&&
model
.
resultCase
==
1
)
{
[
FUSVideoEndScoreQualityAlertView
fus_createWithReidentifyWithModel
:
model
showOn
:[
UIViewController
fus_topViewController
].
view
clickedHandler
:^
(
enum
FUSVideoEndScoreQualityAlertClickedType
clickType
)
{
if
(
clickType
==
FUSVideoEndScoreQualityAlertClickedTypeReidentify
)
{
// 申请重新认定
if
([
NSString
isNull
:
model
.
resultHint
])
{
// 没有提示直接确定
[
weakSelf
fus_userliveAssessQualityReaffirmHandlerWithSid
:
sid
];
}
else
{
// 有提示展示提示
[
FUSAlertView
showAlertWithTitle
:[
NSString
fus_localString
:
@"直播基础质量"
]
message
:
model
.
resultHint
cancelButtonTitle
:
[
NSString
fus_localString
:
@"取消"
]
otherButtonTitles
:
@[[
NSString
fus_localString
:
@"确认"
]]
clickBlock
:^
(
NSInteger
buttonIndex
)
{
if
(
clickType
==
1
)
{
[
weakSelf
fus_userliveAssessQualityReaffirmHandlerWithSid
:
sid
];
}
}];
}
}
}];
}
else
{
[
FUSVideoEndScoreQualityAlertView
fus_createWithModel
:
model
showOn
:[
UIViewController
fus_topViewController
].
view
];
}
}
failure
:^
(
NSString
*
_Nonnull
msg
,
NSInteger
code
)
{
}
failure
:^
(
NSString
*
_Nonnull
msg
,
NSInteger
code
)
{
}];
}];
}
}
-
(
void
)
fus_userliveAssessQualityReaffirmHandlerWithSid
:
(
NSString
*
)
sid
{
[
FUSLiveHttpHelper
fus_requestUserliveAssessQualityReaffirmWithSid
:
sid
succeed
:
^
{
[
FUSDialogView
fus_showDialog
:[
NSString
fus_localString
:
@"申请重新认定成功"
]];
}
failure
:^
(
NSString
*
_Nonnull
msg
,
NSInteger
code
)
{
[
FUSDialogView
fus_showDialog
:
msg
];
}];
}
#pragma mark - HTTP
#pragma mark - HTTP
/**
/**
* 追踪包房
* 追踪包房
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule.xcodeproj/project.pbxproj
View file @
9adafae2
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
00B45E632D9401CE00FF138F
/* FFInviteRewardMainView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E442D9401CE00FF138F
/* FFInviteRewardMainView.swift */
;
};
00B45E632D9401CE00FF138F
/* FFInviteRewardMainView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E442D9401CE00FF138F
/* FFInviteRewardMainView.swift */
;
};
00B45E642D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3E2D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift */
;
};
00B45E642D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3E2D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift */
;
};
00B45E652D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
;
};
00B45E652D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
;
};
00B45E662D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
.swift */
;
};
00B45E662D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
Cell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeaderCell
.swift */
;
};
00B45E672D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3B2D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift */
;
};
00B45E672D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3B2D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift */
;
};
00B45E682D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3D2D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift */
;
};
00B45E682D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E3D2D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift */
;
};
00B45E692D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E492D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift */
;
};
00B45E692D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
00B45E492D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift */
;
};
...
@@ -1010,7 +1010,7 @@
...
@@ -1010,7 +1010,7 @@
00B45E2B2D9401CE00FF138F
/* FFInviteRewardInvitePlanCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardInvitePlanCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2B2D9401CE00FF138F
/* FFInviteRewardInvitePlanCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardInvitePlanCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2C2D9401CE00FF138F
/* FFInviteRewardMyClansmanCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2C2D9401CE00FF138F
/* FFInviteRewardMyClansmanCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2D2D9401CE00FF138F
/* FFInviteRewardMyClansmanEmptyCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanEmptyCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2D2D9401CE00FF138F
/* FFInviteRewardMyClansmanEmptyCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanEmptyCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanHeader
.swift
;
sourceTree
=
"<group>"
;
};
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
Cell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyClansmanHeaderCell
.swift
;
sourceTree
=
"<group>"
;
};
00B45E2F2D9401CE00FF138F
/* FFInviteRewardMyHeaderCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyHeaderCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E2F2D9401CE00FF138F
/* FFInviteRewardMyHeaderCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardMyHeaderCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardTaskCommonCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardTaskCommonCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E312D9401CE00FF138F
/* FFInviteRewardTaskMemberCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardTaskMemberCell.swift
;
sourceTree
=
"<group>"
;
};
00B45E312D9401CE00FF138F
/* FFInviteRewardTaskMemberCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
FFInviteRewardTaskMemberCell.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -2076,7 +2076,7 @@
...
@@ -2076,7 +2076,7 @@
00B45E2B2D9401CE00FF138F
/* FFInviteRewardInvitePlanCell.swift */
,
00B45E2B2D9401CE00FF138F
/* FFInviteRewardInvitePlanCell.swift */
,
00B45E2C2D9401CE00FF138F
/* FFInviteRewardMyClansmanCell.swift */
,
00B45E2C2D9401CE00FF138F
/* FFInviteRewardMyClansmanCell.swift */
,
00B45E2D2D9401CE00FF138F
/* FFInviteRewardMyClansmanEmptyCell.swift */
,
00B45E2D2D9401CE00FF138F
/* FFInviteRewardMyClansmanEmptyCell.swift */
,
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader.swift */
,
00B45E2E2D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
Cell
.swift */
,
00B45E2F2D9401CE00FF138F
/* FFInviteRewardMyHeaderCell.swift */
,
00B45E2F2D9401CE00FF138F
/* FFInviteRewardMyHeaderCell.swift */
,
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
,
00B45E302D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift */
,
00B45E312D9401CE00FF138F
/* FFInviteRewardTaskMemberCell.swift */
,
00B45E312D9401CE00FF138F
/* FFInviteRewardTaskMemberCell.swift */
,
...
@@ -4808,7 +4808,7 @@
...
@@ -4808,7 +4808,7 @@
00B45E632D9401CE00FF138F
/* FFInviteRewardMainView.swift in Sources */
,
00B45E632D9401CE00FF138F
/* FFInviteRewardMainView.swift in Sources */
,
00B45E642D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift in Sources */
,
00B45E642D9401CE00FF138F
/* FFInviteFunctionStepThreeView.swift in Sources */
,
00B45E652D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift in Sources */
,
00B45E652D9401CE00FF138F
/* FFInviteRewardTaskCommonCell.swift in Sources */
,
00B45E662D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader.swift in Sources */
,
00B45E662D9401CE00FF138F
/* FFInviteRewardMyClansmanHeader
Cell
.swift in Sources */
,
00B45E672D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift in Sources */
,
00B45E672D9401CE00FF138F
/* FFInviteEmissaryConditionContentAlertView.swift in Sources */
,
00B45E682D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift in Sources */
,
00B45E682D9401CE00FF138F
/* FFInviteFunctionStepOneView.swift in Sources */
,
00B45E692D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift in Sources */
,
00B45E692D9401CE00FF138F
/* FFInviteRewardInviteViewModel.swift in Sources */
,
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule.xcodeproj/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
9adafae2
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<
k
e
y
>
FUSUserCenterModuleBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
k
e
y
>
FUSUserCenterModuleBundle.xcscheme_
^#
shared
#^
_
<
/k
e
y
>
<
d
i
c
t
>
<
d
i
c
t
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
k
e
y
>
orderHint
<
/k
e
y
>
<
int
e
g
e
r
>
7
3
<
/int
e
g
e
r
>
<
int
e
g
e
r
>
7
2
<
/int
e
g
e
r
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/InviteReward_task_common_background.imageset/Contents.json
0 → 100644
View file @
9adafae2
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"InviteReward_task_common_background@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/InviteReward_task_common_background.imageset/InviteReward_task_common_background@2x.png
0 → 100644
View file @
9adafae2
6.1 KB
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/Contents.json
0 → 100644
View file @
9adafae2
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"inviteReward_invite_navi_rank_btn@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"inviteReward_invite_navi_rank_btn@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/inviteReward_invite_navi_rank_btn@2x.png
0 → 100644
View file @
9adafae2
1.22 KB
Modules/FUSUserCenterModule/FUSUserCenterModule/FUSUserCenterModuleBundle.bundle/FUSUserCenterAssets.xcassets/inviteReward/inviteReward_invite_navi_rank_btn.imageset/inviteReward_invite_navi_rank_btn@3x.png
0 → 100644
View file @
9adafae2
2.07 KB
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepOneContentView.swift
View file @
9adafae2
...
@@ -99,7 +99,7 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
...
@@ -99,7 +99,7 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
self
.
typeContentView
.
removeAllSubviews
()
self
.
typeContentView
.
removeAllSubviews
()
if
self
.
type
==
.
media
{
if
self
.
type
==
.
media
{
let
shareTypeList
:
[
SocialSharePlatform
]
=
[
.
LineSharePlatform
,
.
WhatsAppPlatform
,
.
FacebookPlatform
,
.
TwitterPlatform
,
.
WechatFriendPlatform
,
.
WechatCirclePaltform
/*, .friendChat*/
]
let
shareTypeList
:
[
SocialSharePlatform
]
=
[
.
LineSharePlatform
,
.
WhatsAppPlatform
,
.
FacebookPlatform
,
.
TwitterPlatform
]
let
itemW
:
CGFloat
=
45
let
itemW
:
CGFloat
=
45
let
insentMargin
:
CGFloat
=
15
let
insentMargin
:
CGFloat
=
15
var
lineItemCount
:
Int
=
6
var
lineItemCount
:
Int
=
6
...
@@ -195,6 +195,10 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
...
@@ -195,6 +195,10 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
loadingView
.
animationImages
=
UIImage
.
fus_animationImages
(
"fusi_loading_animate_black_"
,
mainBundle
:
false
,
needCache
:
true
)
loadingView
.
animationImages
=
UIImage
.
fus_animationImages
(
"fusi_loading_animate_black_"
,
mainBundle
:
false
,
needCache
:
true
)
loadingView
.
animationDuration
=
1.5
loadingView
.
animationDuration
=
1.5
loadingView
.
startAnimating
()
loadingView
.
startAnimating
()
qrCodeImageView
.
addSubview
(
loadingView
)
loadingView
.
snp
.
makeConstraints
{
make
in
make
.
center
.
equalToSuperview
()
}
let
copyBtnSize
=
String
.
fus_localString
(
"保存QRCode"
)
.
size
(
for
:
.
fus_themeMediumFont
(
14
))
let
copyBtnSize
=
String
.
fus_localString
(
"保存QRCode"
)
.
size
(
for
:
.
fus_themeMediumFont
(
14
))
let
copyBtn
=
FUSStyleButton
(
type
:
.
custom
)
let
copyBtn
=
FUSStyleButton
(
type
:
.
custom
)
...
@@ -216,12 +220,14 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
...
@@ -216,12 +220,14 @@ class FFInviteFunctionStepOneContentView: FFInviteFunctionStepContentBaseView {
imgUrl
=
model
.
qrurl
imgUrl
=
model
.
qrurl
}
}
qrCodeImageView
.
setWebImageWithSubURLString
(
imgUrl
,
controlState
:
.
normal
,
placeholder
:
.
init
())
{[
weak
loadingView
]
suc
,
image
in
qrCodeImageView
.
setWebImageWithSubURLString
(
imgUrl
,
controlState
:
.
normal
,
placeholder
:
.
init
())
{[
weak
loadingView
]
suc
,
image
in
if
suc
==
true
,
DispatchQueue
.
main
.
async
(
execute
:
{
let
image
=
image
{
if
suc
==
true
,
qrImage
=
image
let
image
=
image
{
loadingView
?
.
stopAnimating
()
qrImage
=
image
loadingView
?
.
isHidden
=
true
loadingView
?
.
stopAnimating
()
}
loadingView
?
.
isHidden
=
true
}
})
}
}
}
failure
:
{
msg
,
code
in
}
failure
:
{
msg
,
code
in
FUSDialogView
.
fus_showDialog
(
msg
)
FUSDialogView
.
fus_showDialog
(
msg
)
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepThreeContentView.swift
View file @
9adafae2
...
@@ -173,14 +173,14 @@ class FFInviteFunctionStepThreeEmptyView: FUSBaseView {
...
@@ -173,14 +173,14 @@ class FFInviteFunctionStepThreeEmptyView: FUSBaseView {
emptyImageView
.
snp
.
makeConstraints
{
make
in
emptyImageView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
make
.
top
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
make
.
size
.
equalTo
(
CGSizeMake
(
50
,
5
0
))
make
.
size
.
equalTo
(
CGSizeMake
(
100
,
10
0
))
}
}
waitingLabel
.
numberOfLines
=
0
waitingLabel
.
numberOfLines
=
0
self
.
addSubview
(
waitingLabel
)
self
.
addSubview
(
waitingLabel
)
waitingLabel
.
snp
.
makeConstraints
{
make
in
waitingLabel
.
snp
.
makeConstraints
{
make
in
// make.centerX.equalToSuperview().offset(-6)
// make.centerX.equalToSuperview().offset(-6)
make
.
top
.
equalTo
(
emptyImageView
.
snp
.
bottom
)
make
.
top
.
equalTo
(
emptyImageView
.
snp
.
bottom
)
.
offset
(
-
12
)
make
.
bottom
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
18
)
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
18
)
}
}
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteFunctionStepTwoContentView.swift
View file @
9adafae2
...
@@ -314,16 +314,9 @@ class FFInviteFunctionStepTwoContentView: FFInviteFunctionStepContentBaseView {
...
@@ -314,16 +314,9 @@ class FFInviteFunctionStepTwoContentView: FFInviteFunctionStepContentBaseView {
// 头像
// 头像
// self.saveBtn.isHidden = true
// self.saveBtn.isHidden = true
avatarImageView
.
setWebImageWithSubURLString
(
FUSSwiftCacheDataShare
.
share
.
userInfo
.
value
?
.
uid
,
placeholder
:
.
fus_boyIcon
())
{[
weak
self
]
image
,
url
,
from
,
stage
,
error
in
avatarImageView
.
setWebImageWithSubURLString
(
FUSSwiftCacheDataShare
.
share
.
userInfo
.
value
?
.
face
.
fus_bigCdn
,
placeholder
:
.
fus_boyIcon
())
if
error
!=
nil
,
// qrcode
let
image
=
image
{
self
.
qrCodeView
.
ff_setup
(
url
:
FFInviteRewardInviteViewModel
.
share
.
inviteDataModel
.
value
?
.
shareData
.
shareContent
.
fus_getWebpage
()
??
""
,
avatarURL
:
FUSSwiftCacheDataShare
.
share
.
userInfo
.
value
?
.
face
.
fus_bigCdn
??
""
)
self
?
.
qrCodeView
.
ff_setup
(
url
:
FFInviteRewardInviteViewModel
.
share
.
inviteDataModel
.
value
?
.
shareData
.
shareContent
.
fus_getWebpage
()
??
""
,
avatar
:
image
,
completeHandler
:
{
isSuccess
in
if
isSuccess
{
// self?.saveBtn.isHidden = false
}
})
}
}
}
}
}
}
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardInvitePlanCell.swift
View file @
9adafae2
...
@@ -265,6 +265,8 @@ class FFInviteRewardInviteRewardDescView: FUSBaseView {
...
@@ -265,6 +265,8 @@ class FFInviteRewardInviteRewardDescView: FUSBaseView {
make
.
height
.
equalTo
(
25
)
make
.
height
.
equalTo
(
25
)
}
}
descLabel
.
setContentHuggingPriority
(
.
required
,
for
:
.
vertical
)
descLabel
.
setContentCompressionResistancePriority
(
.
required
,
for
:
.
horizontal
)
descLabel
.
numberOfLines
=
0
descLabel
.
numberOfLines
=
0
descLabel
.
textAlignment
=
.
center
descLabel
.
textAlignment
=
.
center
self
.
addSubview
(
descLabel
)
self
.
addSubview
(
descLabel
)
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardMyClansmanHeader.swift
→
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardMyClansmanHeader
Cell
.swift
View file @
9adafae2
//
//
// FFInviteRewardMyClansmanHeader.swift
// FFInviteRewardMyClansmanHeader
Cell
.swift
// PersonalPage
// PersonalPage
//
//
// Created by aaa on 2025/3/5.
// Created by aaa on 2025/3/5.
...
@@ -7,14 +7,16 @@
...
@@ -7,14 +7,16 @@
import
UIKit
import
UIKit
class
FFInviteRewardMyClansmanHeader
:
UITableViewHeaderFooterView
{
class
FFInviteRewardMyClansmanHeader
Cell
:
UITableViewCell
{
static
public
let
cellID
:
String
=
"FFInviteRewardMyClansmanHeader"
static
public
let
cellID
:
String
=
"FFInviteRewardMyClansmanHeader
Cell
"
static
public
let
cellHeight
:
CGFloat
=
45
+
8
static
public
let
cellHeight
:
CGFloat
=
45
+
8
override
init
(
reuseIdentifier
:
String
?)
{
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
reuseIdentifier
:
reuseIdentifier
)
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
makeUI
()
self
.
selectionStyle
=
UITableViewCell
.
SelectionStyle
.
none
self
.
makeUI
()
}
}
required
init
?(
coder
:
NSCoder
)
{
required
init
?(
coder
:
NSCoder
)
{
...
@@ -26,14 +28,14 @@ class FFInviteRewardMyClansmanHeader: UITableViewHeaderFooterView {
...
@@ -26,14 +28,14 @@ class FFInviteRewardMyClansmanHeader: UITableViewHeaderFooterView {
func
makeUI
(){
func
makeUI
(){
self
.
backgroundColor
=
.
fus_appBG
()
self
.
backgroundColor
=
.
clear
self
.
contentView
.
backgroundColor
=
.
fus_appBG
()
self
.
contentView
.
backgroundColor
=
.
clear
bgView
.
frame
=
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
()
-
18*
2
,
45
)
bgView
.
frame
=
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
()
-
18*
2
,
45
)
bgView
.
backgroundColor
=
.
white
.
withAlphaComponent
(
0.1
)
bgView
.
backgroundColor
=
.
white
.
withAlphaComponent
(
0.1
)
// bgView.addRoundCorners(with: UIRectCorner(rawValue: UIRectCorner(rawValue: UIRectCorner.topRight.rawValue | UIRectCorner.topLeft.rawValue).rawValue), radius: CGSizeMake(9, 9))
// bgView.addRoundCorners(with: UIRectCorner(rawValue: UIRectCorner(rawValue: UIRectCorner.topRight.rawValue | UIRectCorner.topLeft.rawValue).rawValue), radius: CGSizeMake(9, 9))
bgView
.
fus_addInviteCellShadow
(
currentRow
:
0
,
maxRowCount
:
3
)
bgView
.
fus_addInviteCellShadow
(
currentRow
:
0
,
maxRowCount
:
3
)
self
.
addSubview
(
bgView
)
self
.
contentView
.
addSubview
(
bgView
)
bgView
.
snp
.
makeConstraints
{
make
in
bgView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
18
)
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
18
)
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardTaskCommonCell.swift
View file @
9adafae2
...
@@ -26,7 +26,9 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
...
@@ -26,7 +26,9 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
/// 空白卡片内容部分高度
/// 空白卡片内容部分高度
static
public
let
emptyContentHeight
:
CGFloat
=
158
static
public
let
emptyContentHeight
:
CGFloat
=
158
/// 背景左右两边的空隙
/// 背景左右两边的空隙
static
public
let
bgHorizontalMargin
:
CGFloat
=
15
static
public
let
bgHorizontalMargin
:
CGFloat
=
18
/// 背景下面空间
static
public
let
bgBottomMargin
:
CGFloat
=
10
/// 内容距离背景两边的空隙
/// 内容距离背景两边的空隙
static
public
let
contentHorizontalMargin
:
CGFloat
=
22
static
public
let
contentHorizontalMargin
:
CGFloat
=
22
...
@@ -46,6 +48,7 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
...
@@ -46,6 +48,7 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
/// 预留一个背景imageview
/// 预留一个背景imageview
let
bgImageView
=
UIImageView
()
let
bgImageView
=
UIImageView
()
let
strokeBgImageView
=
UIImageView
(
image
:
FUSUserCenterBunble
.
imageNamed
(
"InviteReward_task_common_background"
))
let
titleLabel
=
YYLabel
()
let
titleLabel
=
YYLabel
()
let
descLabel
=
UILabel
()
let
descLabel
=
UILabel
()
let
lineView
=
UIView
()
let
lineView
=
UIView
()
...
@@ -60,12 +63,22 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
...
@@ -60,12 +63,22 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
self
.
contentView
.
backgroundColor
=
.
clear
self
.
contentView
.
backgroundColor
=
.
clear
self
.
backgroundColor
=
.
clear
self
.
backgroundColor
=
.
clear
bgImageView
.
fus_addInviteShadow
()
bgImageView
.
backgroundColor
=
.
white
bgImageView
.
backgroundColor
=
.
white
bgImageView
.
layer
.
cornerRadius
=
12
bgImageView
.
isUserInteractionEnabled
=
true
bgImageView
.
isUserInteractionEnabled
=
true
self
.
contentView
.
addSubview
(
bgImageView
)
self
.
contentView
.
addSubview
(
bgImageView
)
bgImageView
.
snp
.
makeConstraints
{
make
in
bgImageView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
FFInviteRewardTaskCommonCell
.
bgHorizontalMargin
)
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
FFInviteRewardTaskCommonCell
.
bgHorizontalMargin
)
make
.
top
.
bottom
.
equalToSuperview
()
make
.
top
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
-
FFInviteRewardTaskCommonCell
.
bgBottomMargin
)
}
strokeBgImageView
.
contentMode
=
.
scaleAspectFill
bgImageView
.
addSubview
(
strokeBgImageView
)
strokeBgImageView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
.
inset
(
4
)
make
.
bottom
.
equalTo
(
-
12
)
}
}
bgImageView
.
addSubview
(
titleLabel
)
bgImageView
.
addSubview
(
titleLabel
)
...
@@ -152,7 +165,6 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
...
@@ -152,7 +165,6 @@ class FFInviteRewardTaskCommonCell: UITableViewCell {
self
.
emptyView
.
isHidden
=
false
self
.
emptyView
.
isHidden
=
false
}
}
self
.
bgImageView
.
fus_addInviteShadow
()
}
}
}
}
...
@@ -214,6 +226,7 @@ extension FUSInviteDataAwardGetListDataModel {
...
@@ -214,6 +226,7 @@ extension FUSInviteDataAwardGetListDataModel {
cellHeight
+=
FFInviteRewardTaskCommonCell
.
emptyContentHeight
cellHeight
+=
FFInviteRewardTaskCommonCell
.
emptyContentHeight
}
}
cellHeight
+=
FFInviteRewardTaskCommonCell
.
bottomMargin
cellHeight
+=
FFInviteRewardTaskCommonCell
.
bottomMargin
cellHeight
+=
FFInviteRewardTaskCommonCell
.
bgBottomMargin
return
cellHeight
return
cellHeight
}
}
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Cell/FFInviteRewardTaskMemberCell.swift
View file @
9adafae2
...
@@ -22,6 +22,7 @@ class FFInviteRewardTaskMemberCell: UITableViewCell {
...
@@ -22,6 +22,7 @@ class FFInviteRewardTaskMemberCell: UITableViewCell {
self
.
selectionStyle
=
UITableViewCell
.
SelectionStyle
.
none
self
.
selectionStyle
=
UITableViewCell
.
SelectionStyle
.
none
self
.
makeUI
()
self
.
makeUI
()
self
.
bindViewModel
()
}
}
required
init
?(
coder
:
NSCoder
)
{
required
init
?(
coder
:
NSCoder
)
{
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/FFInviteFunctionController.swift
View file @
9adafae2
...
@@ -213,7 +213,7 @@ extension UIView {
...
@@ -213,7 +213,7 @@ extension UIView {
self
.
layer
.
shadowColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
.
cgColor
self
.
layer
.
shadowColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
.
cgColor
self
.
layer
.
shadowOffset
=
CGSize
(
width
:
0
,
height
:
0
)
self
.
layer
.
shadowOffset
=
CGSize
(
width
:
0
,
height
:
0
)
self
.
layer
.
shadowOpacity
=
1
self
.
layer
.
shadowOpacity
=
1
self
.
layer
.
shadowRadius
=
6.5
//
self.layer.shadowRadius = 6.5
}
}
/// 添加邀请卡片的圆角,注意,会去掉所有的 CAShapeLayer
/// 添加邀请卡片的圆角,注意,会去掉所有的 CAShapeLayer
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/FFInviteRewardController.swift
View file @
9adafae2
...
@@ -126,12 +126,13 @@ public class FFInviteRewardController: FUSBaseViewController {
...
@@ -126,12 +126,13 @@ public class FFInviteRewardController: FUSBaseViewController {
func
makeNaviBtn
(){
func
makeNaviBtn
(){
// 榜单
// 榜单
let
boardBtn
=
UIButton
(
type
:
.
custom
)
let
boardBtn
=
UIButton
(
type
:
.
custom
)
let
boardImageView
=
UIImageView
(
image
:
FUSUserCenterBunble
.
imageNamed
(
"fus_home_navi_rank_icon"
))
boardBtn
.
setImage
(
FUSUserCenterBunble
.
imageNamed
(
"inviteReward_invite_navi_rank_btn"
),
for
:
.
normal
)
boardBtn
.
addSubview
(
boardImageView
)
// let boardImageView = UIImageView(image: FUSUserCenterBunble.imageNamed("fus_home_navi_rank_icon"))
boardImageView
.
snp
.
makeConstraints
{
make
in
// boardBtn.addSubview(boardImageView)
make
.
center
.
equalToSuperview
()
// boardImageView.snp.makeConstraints { make in
make
.
size
.
equalTo
(
CGSizeMake
(
24
,
24
))
// make.center.equalToSuperview()
}
// make.size.equalTo(CGSizeMake(24, 24))
// }
boardBtn
.
rx
.
tap
.
subscribe
(
onNext
:
{
boardBtn
.
rx
.
tap
.
subscribe
(
onNext
:
{
var
url
=
FUSCacheDataShare
.
shareStore
()
.
settingInitDataModel
.
fusiConfig
.
rankAddress
+
"?isSpecialUser=
\(
(
FUSSwiftCacheDataShare
.
share
.
settingConfigModel
.
value
?
.
specialUserMark
==
true
?
"1"
:
"0"
)
)
"
var
url
=
FUSCacheDataShare
.
shareStore
()
.
settingInitDataModel
.
fusiConfig
.
rankAddress
+
"?isSpecialUser=
\(
(
FUSSwiftCacheDataShare
.
share
.
settingConfigModel
.
value
?
.
specialUserMark
==
true
?
"1"
:
"0"
)
)
"
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/Other/FUSInviteRewardHttpHelper.m
View file @
9adafae2
...
@@ -49,7 +49,9 @@
...
@@ -49,7 +49,9 @@
+
(
void
)
fus_inviteDataAwardReceiveWithSid
:(
NSString
*
)
sid
success
:(
void
(
^
)(
FUSInviteDataAwardReceiveItemModel
*
_Nonnull
))
success
failure
:(
void
(
^
)(
NSString
*
_Nonnull
,
int
))
failure
{
+
(
void
)
fus_inviteDataAwardReceiveWithSid
:(
NSString
*
)
sid
success
:(
void
(
^
)(
FUSInviteDataAwardReceiveItemModel
*
_Nonnull
))
success
failure
:(
void
(
^
)(
NSString
*
_Nonnull
,
int
))
failure
{
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSUserCenterURLs
.
fus_URL_inviteDataAwardReceive
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSUserCenterURLs
.
fus_URL_inviteDataAwardReceive
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
success
([
FUSInviteDataAwardReceiveItemModel
modelWithDictionary
:
dataDict
[
@"getJson"
]]);
FUSInviteDataAwardReceiveItemModel
*
model
=
[
FUSInviteDataAwardReceiveItemModel
modelWithDictionary
:
dataDict
[
@"getJson"
]];
[[
FUSRouter
userRouter
]
fus_showAwardAnimateWithCurrency
:
0
classify
:
model
.
classify
tips
:
model
.
itemName
icon
:
model
.
itemUrl
amount
:
model
.
itemNum
];
success
(
model
);
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
failure
)
{
if
(
failure
)
{
failure
(
FAILURE_MESSAGE
,
code
);
failure
(
FAILURE_MESSAGE
,
code
);
...
@@ -61,7 +63,9 @@
...
@@ -61,7 +63,9 @@
+
(
void
)
fus_inviteDataTaskReceiveWithSid
:(
NSString
*
)
sid
success
:(
void
(
^
)(
FUSInviteDataAwardReceiveItemModel
*
_Nonnull
))
success
failure
:(
void
(
^
)(
NSString
*
_Nonnull
,
int
))
failure
{
+
(
void
)
fus_inviteDataTaskReceiveWithSid
:(
NSString
*
)
sid
success
:(
void
(
^
)(
FUSInviteDataAwardReceiveItemModel
*
_Nonnull
))
success
failure
:(
void
(
^
)(
NSString
*
_Nonnull
,
int
))
failure
{
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
NSDictionary
*
parm
=
@{
@"sid"
:
sid
};
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSUserCenterURLs
.
fus_URL_inviteDataTaskReceive
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
[
FUSHttpHelper
postRequestBinaryWithUrl
:
FUSUserCenterURLs
.
fus_URL_inviteDataTaskReceive
params
:
parm
success
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
success
([
FUSInviteDataAwardReceiveItemModel
modelWithDictionary
:
dataDict
[
@"dataJson"
]]);
FUSInviteDataAwardReceiveItemModel
*
model
=
[
FUSInviteDataAwardReceiveItemModel
modelWithDictionary
:
dataDict
[
@"dataJson"
]];
[[
FUSRouter
userRouter
]
fus_showAwardAnimateWithCurrency
:
0
classify
:
model
.
classify
tips
:
model
.
itemName
icon
:
model
.
itemUrl
amount
:
model
.
itemNum
];
success
(
model
);
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
}
failure
:^
(
NSDictionary
*
_Nullable
dataDict
,
int
code
)
{
if
(
failure
)
{
if
(
failure
)
{
failure
(
FAILURE_MESSAGE
,
code
);
failure
(
FAILURE_MESSAGE
,
code
);
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteEmissaryConditionAlertView.swift
View file @
9adafae2
...
@@ -40,6 +40,8 @@ class FFInviteEmissaryConditionAlertView: FUSBaseView {
...
@@ -40,6 +40,8 @@ class FFInviteEmissaryConditionAlertView: FUSBaseView {
override
func
makeUI
()
{
override
func
makeUI
()
{
super
.
makeUI
()
super
.
makeUI
()
self
.
backgroundColor
=
.
fus_alertViewBackground
()
self
.
addSubview
(
bgBtn
)
self
.
addSubview
(
bgBtn
)
bgBtn
.
snp
.
makeConstraints
{
make
in
bgBtn
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
make
.
edges
.
equalToSuperview
()
...
@@ -264,6 +266,7 @@ class FFInviteEmissaryConditionAlertViewCell: FUSBaseView {
...
@@ -264,6 +266,7 @@ class FFInviteEmissaryConditionAlertViewCell: FUSBaseView {
}
}
conditionContentLabel
.
numberOfLines
=
0
conditionContentLabel
.
numberOfLines
=
0
conditionContentLabel
.
textAlignment
=
.
center
self
.
addSubview
(
conditionContentLabel
)
self
.
addSubview
(
conditionContentLabel
)
conditionContentLabel
.
snp
.
makeConstraints
{
make
in
conditionContentLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
dotView
.
snp
.
right
)
.
offset
(
5
)
make
.
left
.
equalTo
(
dotView
.
snp
.
right
)
.
offset
(
5
)
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteQRCodeView.swift
View file @
9adafae2
...
@@ -65,12 +65,14 @@ class FFInviteQRCodeView: FUSBaseView {
...
@@ -65,12 +65,14 @@ class FFInviteQRCodeView: FUSBaseView {
}
}
YYWebImageManager
.
shared
()
.
requestImage
(
with
:
avatarURL
,
options
:
.
showNetworkActivity
,
progress
:
nil
,
transform
:
nil
)
{[
weak
self
]
image
,
iamgeUrl
,
from
,
stage
,
error
in
YYWebImageManager
.
shared
()
.
requestImage
(
with
:
avatarURL
,
options
:
.
showNetworkActivity
,
progress
:
nil
,
transform
:
nil
)
{[
weak
self
]
image
,
iamgeUrl
,
from
,
stage
,
error
in
if
error
==
nil
,
DispatchQueue
.
main
.
async
(
execute
:
{
let
image
=
image
{
if
error
==
nil
,
self
?
.
ff_setup
(
url
:
url
,
avatar
:
image
,
completeHandler
:
completeHandler
)
let
image
=
image
{
}
else
{
self
?
.
ff_setup
(
url
:
url
,
avatar
:
image
,
completeHandler
:
completeHandler
)
completeHandler
?(
false
)
}
else
{
}
completeHandler
?(
false
)
}
})
}
}
}
}
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteRewardMyView.swift
View file @
9adafae2
...
@@ -10,7 +10,7 @@ import SJAttributesStringMaker
...
@@ -10,7 +10,7 @@ import SJAttributesStringMaker
class
FFInviteRewardMyView
:
FFInviteRewardBaseView
{
class
FFInviteRewardMyView
:
FFInviteRewardBaseView
{
private
let
tableView
=
UITableView
(
frame
:
.
zero
)
private
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
plain
)
var
myselfInfoModel
:
FUSInviteDataMyselfGetInfoModel
?
var
myselfInfoModel
:
FUSInviteDataMyselfGetInfoModel
?
var
dauModelList
:
[
FUSInviteDataMyselfDauGetListDataModel
]
=
.
init
()
var
dauModelList
:
[
FUSInviteDataMyselfDauGetListDataModel
]
=
.
init
()
...
@@ -31,7 +31,7 @@ class FFInviteRewardMyView: FFInviteRewardBaseView {
...
@@ -31,7 +31,7 @@ class FFInviteRewardMyView: FFInviteRewardBaseView {
tableView
.
delegate
=
self
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
dataSource
=
self
tableView
.
register
(
FFInviteRewardMyHeaderCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyHeaderCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyHeaderCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyHeaderCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanHeader
.
self
,
forHeaderFooterViewReuseIdentifier
:
FFInviteRewardMyClansmanHeader
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanHeader
Cell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyClansmanHeaderCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanEmptyCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyClansmanEmptyCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanEmptyCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyClansmanEmptyCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyClansmanCell
.
cellID
)
tableView
.
register
(
FFInviteRewardMyClansmanCell
.
self
,
forCellReuseIdentifier
:
FFInviteRewardMyClansmanCell
.
cellID
)
self
.
addSubview
(
tableView
)
self
.
addSubview
(
tableView
)
...
@@ -125,14 +125,14 @@ class FFInviteRewardMyView: FFInviteRewardBaseView {
...
@@ -125,14 +125,14 @@ class FFInviteRewardMyView: FFInviteRewardBaseView {
extension
FFInviteRewardMyView
:
UITableViewDelegate
,
UITableViewDataSource
{
extension
FFInviteRewardMyView
:
UITableViewDelegate
,
UITableViewDataSource
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
func
numberOfSections
(
in
tableView
:
UITableView
)
->
Int
{
return
2
return
3
}
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
if
section
==
0
{
if
section
==
0
||
section
==
1
{
return
1
return
1
}
}
else
if
section
==
1
{
else
if
section
==
2
{
return
self
.
dauModelList
.
count
<=
0
?
1
:
self
.
dauModelList
.
count
return
self
.
dauModelList
.
count
<=
0
?
1
:
self
.
dauModelList
.
count
}
}
return
0
return
0
...
@@ -143,6 +143,9 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
...
@@ -143,6 +143,9 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
return
FFInviteRewardMyHeaderCell
.
cellHeight
return
FFInviteRewardMyHeaderCell
.
cellHeight
}
}
else
if
indexPath
.
section
==
1
{
else
if
indexPath
.
section
==
1
{
return
FFInviteRewardMyClansmanHeaderCell
.
cellHeight
}
else
if
indexPath
.
section
==
2
{
if
self
.
dauModelList
.
count
<=
0
{
if
self
.
dauModelList
.
count
<=
0
{
return
FFInviteRewardMyClansmanEmptyCell
.
cellHeight
return
FFInviteRewardMyClansmanEmptyCell
.
cellHeight
}
}
...
@@ -192,6 +195,25 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
...
@@ -192,6 +195,25 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
}
}
}
}
else
if
indexPath
.
section
==
1
{
else
if
indexPath
.
section
==
1
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
FFInviteRewardMyClansmanHeaderCell
.
cellID
,
for
:
indexPath
)
as?
FFInviteRewardMyClansmanHeaderCell
{
let
regexText
=
"regex_replaceText"
cell
.
titleLabel
.
attributedText
=
.
sj
.
makeText
({[
weak
self
]
make
in
make
.
append
(
.
init
(
format
:
.
fus_localString
(
"活跃族人%@"
),
regexText
))
make
.
regex
(
regexText
)
.
replace
{
make
in
if
self
?
.
dauModelList
.
count
??
0
>
0
{
make
.
append
(
" ("
)
make
.
append
(
"
\(
self
?
.
dauModelList
.
count
??
0
)
"
)
.
textColor
(
.
fus_diamondBlue
())
make
.
append
(
") "
)
}
else
{
make
.
append
(
""
)
}
}
make
.
textColor
(
.
black
)
.
font
(
.
fus_themeMediumFont
(
18
))
})
return
cell
}
}
else
if
indexPath
.
section
==
2
{
if
self
.
dauModelList
.
count
<=
0
{
if
self
.
dauModelList
.
count
<=
0
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
FFInviteRewardMyClansmanEmptyCell
.
cellID
,
for
:
indexPath
)
as?
FFInviteRewardMyClansmanEmptyCell
{
if
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
FFInviteRewardMyClansmanEmptyCell
.
cellID
,
for
:
indexPath
)
as?
FFInviteRewardMyClansmanEmptyCell
{
...
@@ -215,32 +237,14 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
...
@@ -215,32 +237,14 @@ extension FFInviteRewardMyView: UITableViewDelegate, UITableViewDataSource{
}
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
if
section
==
1
{
if
section
==
0
{
return
FFInviteRewardMyClansmanHeader
.
cellHeight
return
10
}
}
return
1
0
return
0
}
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
if
section
==
1
{
let
headerView
=
UIView
()
if
let
header
=
tableView
.
dequeueReusableHeaderFooterView
(
withIdentifier
:
FFInviteRewardMyClansmanHeader
.
cellID
)
as?
FFInviteRewardMyClansmanHeader
{
headerView
.
backgroundColor
=
.
clear
return
headerView
let
regexText
=
"regex_replaceText"
header
.
titleLabel
.
attributedText
=
.
sj
.
makeText
({[
weak
self
]
make
in
make
.
append
(
.
init
(
format
:
.
fus_localString
(
"活跃族人%@"
),
regexText
))
make
.
regex
(
regexText
)
.
replace
{
make
in
if
self
?
.
dauModelList
.
count
??
0
>
0
{
make
.
append
(
" ("
)
make
.
append
(
"
\(
self
?
.
dauModelList
.
count
??
0
)
"
)
.
textColor
(
.
fus_diamondBlue
())
make
.
append
(
") "
)
}
else
{
make
.
append
(
""
)
}
}
make
.
textColor
(
.
black
)
.
font
(
.
fus_themeMediumFont
(
18
))
})
return
header
}
}
return
.
init
()
}
}
}
}
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFInviteRewardTaskView.swift
View file @
9adafae2
...
@@ -15,7 +15,7 @@ class FFInviteRewardTaskView: FFInviteRewardBaseView {
...
@@ -15,7 +15,7 @@ class FFInviteRewardTaskView: FFInviteRewardBaseView {
}
}
let
viewType
:
FFInviteRewardTaskViewType
let
viewType
:
FFInviteRewardTaskViewType
private
let
tableView
=
UITableView
(
frame
:
.
zero
)
private
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
var
dataList
:
[
FUSInviteDataAwardGetListDataModel
]
=
.
init
()
var
dataList
:
[
FUSInviteDataAwardGetListDataModel
]
=
.
init
()
...
@@ -183,14 +183,6 @@ extension FFInviteRewardTaskView: UITableViewDelegate, UITableViewDataSource{
...
@@ -183,14 +183,6 @@ extension FFInviteRewardTaskView: UITableViewDelegate, UITableViewDataSource{
}
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
if
section
==
0
{
if
section
==
0
{
// if let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: FFInviteRewardInviteFunctionHeader.cellID) as? FFInviteRewardInviteFunctionHeader {
// if self.viewType == .reward{
// header.ff_setHeaderType(type: .emissaryReward)
// }else {
// header.ff_setHeaderType(type: .emisaaryTask)
// }
// return header
// }
let
header
=
FFInviteRewardInviteFunctionHeader
(
frame
:
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
(),
FFInviteRewardInviteFunctionHeader
.
cellHeight
))
let
header
=
FFInviteRewardInviteFunctionHeader
(
frame
:
CGRectMake
(
0
,
0
,
UIView
.
fus_screenW
(),
FFInviteRewardInviteFunctionHeader
.
cellHeight
))
if
self
.
viewType
==
.
reward
{
if
self
.
viewType
==
.
reward
{
header
.
ff_setHeaderType
(
type
:
.
emissaryReward
)
header
.
ff_setHeaderType
(
type
:
.
emissaryReward
)
...
...
Modules/FUSUserCenterModule/FUSUserCenterModule/Features/InviteReward/View/FFMyEmissaryQRCodeView.swift
View file @
9adafae2
...
@@ -94,7 +94,7 @@ class FFMyEmissaryQRCodeView: FUSBaseView {
...
@@ -94,7 +94,7 @@ class FFMyEmissaryQRCodeView: FUSBaseView {
override
func
bindViewModel
()
{
override
func
bindViewModel
()
{
super
.
bindViewModel
()
super
.
bindViewModel
()
self
.
qrCodeView
.
ff_setup
(
url
:
FFInviteRewardInviteViewModel
.
share
.
inviteDataModel
.
value
?
.
qrcodeFormLink
??
""
,
avatarURL
:
FUSSwiftCacheDataShare
.
share
.
userInfo
.
value
?
.
uid
.
fus_bigCdn
??
""
)
{[
weak
self
]
isSuccess
in
self
.
qrCodeView
.
ff_setup
(
url
:
FFInviteRewardInviteViewModel
.
share
.
inviteDataModel
.
value
?
.
qrcodeFormLink
??
""
,
avatarURL
:
FUSSwiftCacheDataShare
.
share
.
userInfo
.
value
?
.
face
.
fus_bigCdn
??
""
)
{[
weak
self
]
isSuccess
in
if
isSuccess
{
if
isSuccess
{
self
?
.
avatarImageIsReady
.
accept
(
true
)
self
?
.
avatarImageIsReady
.
accept
(
true
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment