Commit ff8c99b1 authored by pete谢兆麟's avatar pete谢兆麟

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

parents e2c6c7b8 f241c731
...@@ -21,6 +21,7 @@ import HyphenateChat ...@@ -21,6 +21,7 @@ import HyphenateChat
@main @main
class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
private lazy var liveViewModel = YHLiveSalesViewModel()
var window: UIWindow? var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
...@@ -69,7 +70,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { ...@@ -69,7 +70,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
YHOSSManager.share.getOSSID() YHOSSManager.share.getOSSID()
AGCInstance.startUp() AGCInstance.startUp()
AGCAppLinking.instance().handle { (link, error) in AGCAppLinking.instance().handle { [weak self] (link, error) in
guard let self = self else {
return
}
if let deepLink = link?.deepLink,deepLink.contains(YhConstant.DeepLink.compareUrl) { if let deepLink = link?.deepLink,deepLink.contains(YhConstant.DeepLink.compareUrl) {
if let url = URL(string: deepLink) { if let url = URL(string: deepLink) {
let components = URLComponents(url: url, resolvingAgainstBaseURL: false) let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
...@@ -92,6 +96,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { ...@@ -92,6 +96,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate {
} }
//直播 - 获取它对应的参数 //直播 - 获取它对应的参数
if let liveId = arrItems["LiveID"] as? String { if let liveId = arrItems["LiveID"] as? String {
if let userId = arrItems["fromUserId"] as? String, let sourceType = arrItems["sourceType"] as? String {
self.liveViewModel.postLiveViewRecords(id: liveId.intValue(), userId: userId, sourceType: sourceType.intValue()) { _, _ in
//
}
}
let playbackInfo = YHPlayerManager.PlaybackInfo(id: liveId.intValue(), isLive: true, isFromSaleDetail: false) let playbackInfo = YHPlayerManager.PlaybackInfo(id: liveId.intValue(), isLive: true, isFromSaleDetail: false)
YHPlayerManager.shared.enterLive(from: nil, playbackInfo: playbackInfo) YHPlayerManager.shared.enterLive(from: nil, playbackInfo: playbackInfo)
} }
......
...@@ -539,7 +539,9 @@ class YHLivePlayerViewController: YHBasePlayerViewController { ...@@ -539,7 +539,9 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
} else { } else {
oldUrl = oldUrl + "?appDeepLink=\(tmpT)" oldUrl = oldUrl + "?appDeepLink=\(tmpT)"
} }
if let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 {
oldUrl += "&sourceType=1&fromUserId=\(userId)"
}
YHShareAlertView.show(image: liveModel.live_image, title: "@" + liveModel.account, subMessage: liveModel.live_title, linkUrl: oldUrl, isLive: true, fromAiSale: true) YHShareAlertView.show(image: liveModel.live_image, title: "@" + liveModel.account, subMessage: liveModel.live_title, linkUrl: oldUrl, isLive: true, fromAiSale: true)
return return
} }
......
...@@ -328,6 +328,28 @@ extension YHLiveSalesViewModel { ...@@ -328,6 +328,28 @@ extension YHLiveSalesViewModel {
callback(nil, err) callback(nil, err)
} }
} }
func postLiveViewRecords(id: Int, userId: String, sourceType: Int, callback: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) {
let params: [String: Any] = ["live_id": id,
"from_user_id": userId,
"view_port": 1,
"source_type": sourceType,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.LiveSales.viewRecords
_ = YHNetRequest.postRequest(url: strUrl, params: params) { json, _ in
// 1. json字符串 转 对象
printLog("model 是 ==> \(json)")
if json.code == 200 {
callback(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback(false, err)
}
} failBlock: { err in
callback(false, err)
}
}
} }
......
...@@ -120,7 +120,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -120,7 +120,7 @@ class YHMemberCenterViewController: YHBaseViewController {
make.left.equalToSuperview() make.left.equalToSuperview()
make.right.equalToSuperview() make.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar) make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom) make.bottom.equalToSuperview()
} }
tableView.tableHeaderView = headerView tableView.tableHeaderView = headerView
tableView.tableFooterView = footerView tableView.tableFooterView = footerView
...@@ -185,7 +185,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -185,7 +185,7 @@ class YHMemberCenterViewController: YHBaseViewController {
switch currentLevel { switch currentLevel {
case .normal: case .normal:
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue)) datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.customerService, .pointsConsumption, .afternoonTea, .offlineSalons, .onSiteConsultation] let services: [YHMemberCenterCellContent] = [.customerService, .pointsConsumption, .afternoonTea, .offlineSalons, .onSiteConsultation]
let ids: [String] = [memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.specialIntegralConsumption.giftId, memberCenterInfo.luxuryTea.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId] let ids: [String] = [memberCenterInfo.dedicatedAdviser.giftId, memberCenterInfo.specialIntegralConsumption.giftId, memberCenterInfo.luxuryTea.giftId, memberCenterInfo.offlineSalon.giftId, memberCenterInfo.answerConsult.giftId]
details = ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"] details = ["不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换", "不限次数兑换"]
...@@ -196,8 +196,11 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -196,8 +196,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row) datas.append(row)
} }
case .gold: case .gold:
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel)) if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue)) datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId, let ids: [String] = [memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
memberCenterInfo.luxuryTea.giftId, memberCenterInfo.luxuryTea.giftId,
...@@ -215,8 +218,11 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -215,8 +218,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row) datas.append(row)
} }
case .platinum: case .platinum:
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel)) if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue)) datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.crossBorder, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.crossBorder, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.carTransfer.giftId, let ids: [String] = [memberCenterInfo.carTransfer.giftId,
memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId, memberCenterInfo.highTeaBox.giftId, memberCenterInfo.experienceCenter.giftId,
...@@ -236,8 +242,11 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -236,8 +242,11 @@ class YHMemberCenterViewController: YHBaseViewController {
datas.append(row) datas.append(row)
} }
case .diamond: case .diamond:
datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel)) if memberCenterInfo.currentLevel < currentLevel.rawValue {
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue)) datas.append(.currentPrivilege(currentLevel, currentLevel.privilegeCount, memberCenterInfo.currentLevel >= currentLevel.rawValue, myLevel))
}
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangedCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
let services: [YHMemberCenterCellContent] = [.highEndMeeting, .crossBorder, .hkTravel,.drivingLicense, .schoolSelection, .brandPlanning, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption] let services: [YHMemberCenterCellContent] = [.highEndMeeting, .crossBorder, .hkTravel,.drivingLicense, .schoolSelection, .brandPlanning, .kidsBay, .luxury, .afternoonTea, .offlineSalons, .onSiteConsultation, .customerService, .pointsConsumption]
let ids: [String] = [memberCenterInfo.highEndPrivilege.giftId, let ids: [String] = [memberCenterInfo.highEndPrivilege.giftId,
memberCenterInfo.carTransfer.giftId, memberCenterInfo.carTransfer.giftId,
...@@ -297,7 +306,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -297,7 +306,7 @@ class YHMemberCenterViewController: YHBaseViewController {
@objc private func didShareButtonClicked() { @objc private func didShareButtonClicked() {
YHAnalytics.track("Membership_Privileges_Page_Share") YHAnalytics.track("Membership_Privileges_Page_Share")
let url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/center" let url = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/vip/center"
YHShareManager.shared.sendLinkContent("分享会员中心", "", UIImage(named: "AppIcon") ?? UIImage(), link: url) YHShareManager.shared.sendLinkContent("银河会员等级", "查看特色福利,享会员特权", UIImage(named: "AppIcon") ?? UIImage(), link: url)
} }
private func gotoYinheStore() { private func gotoYinheStore() {
...@@ -408,7 +417,9 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -408,7 +417,9 @@ class YHMemberCenterViewController: YHBaseViewController {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, let navigationController = UIViewController.current?.navigationController else { guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, let navigationController = UIViewController.current?.navigationController else {
return return
} }
YHHUD.show(.progress(message: "加载中..."))
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in
YHHUD.hide()
}) })
} }
......
...@@ -135,6 +135,23 @@ class YHVipLevelRightViewController: YHBaseViewController, UITableViewDataSource ...@@ -135,6 +135,23 @@ class YHVipLevelRightViewController: YHBaseViewController, UITableViewDataSource
make.width.equalTo(12) make.width.equalTo(12)
} }
} }
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
autoScrollToOwnVipRight()
}
func autoScrollToOwnVipRight() {
var offSetX = 0.0
if self.level == .normal || self.level == .gold {
offSetX = 0.0
} else if self.level == .platinum || self.level == .diamond {
offSetX = KScreenWidth * 2.0 / 3.0
}
printLog("&&&@ \(offSetX)")
self.scrollView.contentOffset = CGPointMake(offSetX, 0)
self.titleView.scrollView.contentOffset = CGPointMake(offSetX, 0)
}
} }
extension YHVipLevelRightViewController { extension YHVipLevelRightViewController {
......
...@@ -75,7 +75,7 @@ enum YHMemberCenterCellContent: String, CaseIterable { ...@@ -75,7 +75,7 @@ enum YHMemberCenterCellContent: String, CaseIterable {
case .afternoonTea: case .afternoonTea:
return 65.0 / 311.0 return 65.0 / 311.0
case .offlineSalons: case .offlineSalons:
return 126.0 / 311.0 return 180.0 / 311.0
case .onSiteConsultation: case .onSiteConsultation:
return 180.0 / 311.0 return 180.0 / 311.0
case .customerService: case .customerService:
......
...@@ -54,6 +54,7 @@ class YHMemberCenterActionCell: YHResignDocumentCell { ...@@ -54,6 +54,7 @@ class YHMemberCenterActionCell: YHResignDocumentCell {
} }
private func setupUI() { private func setupUI() {
subContainerView.radius = 4
updateCellCorner(.single) updateCellCorner(.single)
subContainerView.addSubview(leftLabel) subContainerView.addSubview(leftLabel)
subContainerView.addSubview(rightLabel) subContainerView.addSubview(rightLabel)
......
...@@ -125,10 +125,12 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell { ...@@ -125,10 +125,12 @@ class YHMemberCenterHeaderBannerCell: FSPagerViewCell {
make.right.lessThanOrEqualTo(upgradeButton.snp.left).offset(-26) make.right.lessThanOrEqualTo(upgradeButton.snp.left).offset(-26)
} }
let progressViewWidth = KScreenWidth >= 375 ? 158 : 120
progressView.snp.makeConstraints { make in progressView.snp.makeConstraints { make in
make.left.equalTo(bannerTitleLabel) make.left.equalTo(bannerTitleLabel)
make.bottom.equalTo(tipsLabel.snp.top).offset(-6) make.bottom.equalTo(tipsLabel.snp.top).offset(-6)
make.right.equalTo(upgradeButton.snp.left).offset(-26) make.width.equalTo(progressViewWidth)
// make.right.equalTo(upgradeButton.snp.left).offset(-26)
make.height.equalTo(2) make.height.equalTo(2)
} }
......
...@@ -50,7 +50,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell { ...@@ -50,7 +50,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
private lazy var privilegeLabel: UILabel = { private lazy var privilegeLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.text = "高端权益兑换" label.text = "高端权益兑换"
label.font = .PFSC_R(ofSize: 12) label.font = .PFSC_R(ofSize: 13)
label.textColor = .mainTextColor label.textColor = .mainTextColor
return label return label
}() }()
...@@ -100,6 +100,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell { ...@@ -100,6 +100,7 @@ class YHMemberCenterMyPrivilegeCell: YHResignDocumentCell {
} }
private func setupUI() { private func setupUI() {
subContainerView.radius = 4
updateCellCorner(.single) updateCellCorner(.single)
subContainerView.addSubview(midLabel) subContainerView.addSubview(midLabel)
subContainerView.addSubview(leftIcon) subContainerView.addSubview(leftIcon)
......
...@@ -50,13 +50,15 @@ class YHMembershipGrowthGuideView: UIView { ...@@ -50,13 +50,15 @@ class YHMembershipGrowthGuideView: UIView {
view.backgroundColor = .clear view.backgroundColor = .clear
view.showsVerticalScrollIndicator = false view.showsVerticalScrollIndicator = false
view.showsHorizontalScrollIndicator = false view.showsHorizontalScrollIndicator = false
view.isScrollEnabled = true
view.isUserInteractionEnabled = true
return view return view
}() }()
lazy var bkgImageV: UIImageView = { lazy var bkgImageV: UIImageView = {
let imageV = UIImageView() let imageV = UIImageView()
imageV.image = UIImage(named: "membership_growth_guide") imageV.image = UIImage(named: "membership_growth_guide")
imageV.contentMode = .scaleAspectFit imageV.contentMode = .scaleAspectFill
imageV.clipsToBounds = true imageV.clipsToBounds = true
return imageV return imageV
}() }()
...@@ -81,7 +83,7 @@ extension YHMembershipGrowthGuideView { ...@@ -81,7 +83,7 @@ extension YHMembershipGrowthGuideView {
UIApplication.shared.yhKeyWindow()?.addSubview(self) UIApplication.shared.yhKeyWindow()?.addSubview(self)
UIView.animate(withDuration: 0.5) { UIView.animate(withDuration: 0.5) {
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar let whiteHeight = KScreenHeight - 120
self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight) self.whiteContentView.frame = CGRect(x: 0, y: KScreenHeight - whiteHeight, width: KScreenWidth, height: whiteHeight)
} }
} }
...@@ -113,7 +115,7 @@ private extension YHMembershipGrowthGuideView { ...@@ -113,7 +115,7 @@ private extension YHMembershipGrowthGuideView {
make.edges.equalToSuperview() make.edges.equalToSuperview()
} }
let whiteHeight = KScreenHeight - k_Height_NavigationtBarAndStatuBar let whiteHeight = KScreenHeight - 120
whiteContentView.frame = CGRect(x: 0, y: KScreenHeight, width: KScreenWidth, height: whiteHeight) whiteContentView.frame = CGRect(x: 0, y: KScreenHeight, width: KScreenWidth, height: whiteHeight)
whiteContentView.addSubview(topTitleLabel) whiteContentView.addSubview(topTitleLabel)
whiteContentView.addSubview(closeButton) whiteContentView.addSubview(closeButton)
...@@ -134,15 +136,15 @@ private extension YHMembershipGrowthGuideView { ...@@ -134,15 +136,15 @@ private extension YHMembershipGrowthGuideView {
make.top.equalToSuperview().offset(52) make.top.equalToSuperview().offset(52)
make.left.equalToSuperview().offset(20) make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20) make.right.equalToSuperview().offset(-20)
make.height.equalTo(1)
} }
whiteContentView.addSubview(myScrollView) whiteContentView.addSubview(myScrollView)
myScrollView.snp.makeConstraints { make in myScrollView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(54) make.top.equalToSuperview().offset(73)
make.left.equalToSuperview() make.left.equalToSuperview()
make.right.equalToSuperview()
make.width.equalTo(KScreenWidth) make.width.equalTo(KScreenWidth)
make.height.equalTo(whiteHeight - 54) make.height.equalTo(whiteHeight - 73)
} }
if let _ = UIImage(named: "membership_growth_guide") { if let _ = UIImage(named: "membership_growth_guide") {
...@@ -152,11 +154,10 @@ private extension YHMembershipGrowthGuideView { ...@@ -152,11 +154,10 @@ private extension YHMembershipGrowthGuideView {
bkgImageV.snp.makeConstraints { make in bkgImageV.snp.makeConstraints { make in
make.top.equalToSuperview() make.top.equalToSuperview()
make.left.equalToSuperview().offset(margin) make.left.equalToSuperview().offset(margin)
make.right.equalToSuperview().offset(-margin) make.width.equalTo((KScreenWidth - 2 * margin))
make.width.equalTo(333.0) make.height.equalTo((KScreenWidth - 2 * margin) * radio)
make.height.equalTo(333.0 * radio)
} }
myScrollView.contentSize = CGSize(width: KScreenWidth, height: 333.0 * radio) myScrollView.contentSize = CGSize(width: KScreenWidth, height: (KScreenWidth - 2 * margin) * radio + 34)
} }
} }
} }
...@@ -732,6 +732,8 @@ class YHAllApiName { ...@@ -732,6 +732,8 @@ class YHAllApiName {
static let shareLive = "super-app/live/share-live" static let shareLive = "super-app/live/share-live"
// app直播间状态 // app直播间状态
static let liveStatus = "super-app/live/live-status" static let liveStatus = "super-app/live/live-status"
// 查看浏览记录
static let viewRecords = "super-app/live/viewing-records"
} }
struct AIChat { struct AIChat {
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_afternoonTea@2x.png", "filename" : "银河体验中心下午茶@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_afternoonTea@3x.png", "filename" : "银河体验中心下午茶@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_brandPlanning@2x.png", "filename" : "品牌策划方案@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_brandPlanning@3x.png", "filename" : "品牌策划方案@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_crossBorder@2x.png", "filename" : "深港跨境出行预约@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_crossBorder@3x.png", "filename" : "深港跨境出行预约@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_customerService@2x.png", "filename" : "专属客服服务@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_customerService@3x.png", "filename" : "专属客服服务@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_drivingLicense@2x.png", "filename" : "国际驾照续期@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_drivingLicense@3x.png", "filename" : "国际驾照续期@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_highEndMeeting@2x.png", "filename" : "高端私董会@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_highEndMeeting@3x.png", "filename" : "高端私董会@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_hkTravel@2x.png", "filename" : "香港境内出行预约@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_hkTravel@3x.png", "filename" : "香港境内出行预约@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_kidsbay@2x.png", "filename" : "kidsbay高端早教盒子@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_kidsbay@3x.png", "filename" : "kidsbay高端早教盒子@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_luxury@2x.png", "filename" : "体验中心图@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_luxury@3x.png", "filename" : "体验中心图@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_offlineSalons@2x.png", "filename" : "特色线下沙龙&分享会@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_offlineSalons@3x.png", "filename" : "特色线下沙龙&分享会@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_onSiteConsultation@2x.png", "filename" : "截屏2024-07-05 上午10.54.23 1@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_onSiteConsultation@3x.png", "filename" : "截屏2024-07-05 上午10.54.23 1@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_pointsConsumption@2x.png", "filename" : "专属积分商城消费@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_pointsConsumption@3x.png", "filename" : "专属积分商城消费@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_cell_schoolSelection@2x.png", "filename" : "香港择校规划@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_cell_schoolSelection@3x.png", "filename" : "香港择校规划@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_bg_diamond@2x.png", "filename" : "头图-钻石会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_bg_diamond@3x.png", "filename" : "头图-钻石会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_bg_gold@2x.png", "filename" : "头图-黄金会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_bg_gold@3x.png", "filename" : "头图-黄金会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_bg_normal@2x.png", "filename" : "头图-大众会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_bg_normal@3x.png", "filename" : "头图-大众会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_bg_platinum@2x.png", "filename" : "头图-铂金会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_bg_platinum@3x.png", "filename" : "头图-铂金会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_card_diamond@2x.png", "filename" : "钻石会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_card_diamond@3x.png", "filename" : "钻石会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_card_gold@2x.png", "filename" : "黄金会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_card_gold@3x.png", "filename" : "黄金会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_card_normal@2x.png", "filename" : "大众会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_card_normal@3x.png", "filename" : "大众会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "member_center_card_platinum@2x.png", "filename" : "铂金会员@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "member_center_card_platinum@3x.png", "filename" : "铂金会员@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment