Commit 451b2b7f authored by pete谢兆麟's avatar pete谢兆麟

服务中心首页

parent c38b34f0
...@@ -246,6 +246,7 @@ ...@@ -246,6 +246,7 @@
048787D32BCE6B7D0036E221 /* YHServiceOrderAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D22BCE6B7D0036E221 /* YHServiceOrderAlertView.swift */; }; 048787D32BCE6B7D0036E221 /* YHServiceOrderAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D22BCE6B7D0036E221 /* YHServiceOrderAlertView.swift */; };
048787D52BCE880B0036E221 /* YHServiceOrderListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */; }; 048787D52BCE880B0036E221 /* YHServiceOrderListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */; };
048787D72BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */; }; 048787D72BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */; };
048787D92BCF68530036E221 /* YHProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048787D82BCF68530036E221 /* YHProgressView.swift */; };
048B2A442BC7901900A93BF0 /* YHHomeWebViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */; }; 048B2A442BC7901900A93BF0 /* YHHomeWebViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */; };
048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A452BC7912400A93BF0 /* YHWebModel.swift */; }; 048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A452BC7912400A93BF0 /* YHWebModel.swift */; };
048B2A482BC7CE4800A93BF0 /* YHFourKingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A472BC7CE4800A93BF0 /* YHFourKingViewController.swift */; }; 048B2A482BC7CE4800A93BF0 /* YHFourKingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A472BC7CE4800A93BF0 /* YHFourKingViewController.swift */; };
...@@ -694,6 +695,7 @@ ...@@ -694,6 +695,7 @@
048787D22BCE6B7D0036E221 /* YHServiceOrderAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderAlertView.swift; sourceTree = "<group>"; }; 048787D22BCE6B7D0036E221 /* YHServiceOrderAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderAlertView.swift; sourceTree = "<group>"; };
048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderListViewController.swift; sourceTree = "<group>"; }; 048787D42BCE880B0036E221 /* YHServiceOrderListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderListViewController.swift; sourceTree = "<group>"; };
048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderProgressTableViewCell.swift; sourceTree = "<group>"; }; 048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceOrderProgressTableViewCell.swift; sourceTree = "<group>"; };
048787D82BCF68530036E221 /* YHProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHProgressView.swift; sourceTree = "<group>"; };
048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeWebViewModel.swift; sourceTree = "<group>"; }; 048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeWebViewModel.swift; sourceTree = "<group>"; };
048B2A452BC7912400A93BF0 /* YHWebModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWebModel.swift; sourceTree = "<group>"; }; 048B2A452BC7912400A93BF0 /* YHWebModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWebModel.swift; sourceTree = "<group>"; };
048B2A472BC7CE4800A93BF0 /* YHFourKingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFourKingViewController.swift; sourceTree = "<group>"; }; 048B2A472BC7CE4800A93BF0 /* YHFourKingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFourKingViewController.swift; sourceTree = "<group>"; };
...@@ -2136,6 +2138,7 @@ ...@@ -2136,6 +2138,7 @@
049AC4C92BC5141600F857F4 /* YHServerNoOrderView.swift */, 049AC4C92BC5141600F857F4 /* YHServerNoOrderView.swift */,
048787D02BCE61B20036E221 /* YHServiceNoOrderView.swift */, 048787D02BCE61B20036E221 /* YHServiceNoOrderView.swift */,
048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */, 048787D62BCE96F50036E221 /* YHServiceOrderProgressTableViewCell.swift */,
048787D82BCF68530036E221 /* YHProgressView.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2715,6 +2718,7 @@ ...@@ -2715,6 +2718,7 @@
045EEED12B9F171A0022A143 /* YHScorePersonInfoCell.swift in Sources */, 045EEED12B9F171A0022A143 /* YHScorePersonInfoCell.swift in Sources */,
044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */, 044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */,
045EEF0D2B9F171A0022A143 /* YHBasicInfoFillCell.swift in Sources */, 045EEF0D2B9F171A0022A143 /* YHBasicInfoFillCell.swift in Sources */,
048787D92BCF68530036E221 /* YHProgressView.swift in Sources */,
048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */, 048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */,
045EEEEC2B9F171A0022A143 /* YHBrotherInfoVC.swift in Sources */, 045EEEEC2B9F171A0022A143 /* YHBrotherInfoVC.swift in Sources */,
0477E17A2BA41C7E00436346 /* YHCertificateModel.swift in Sources */, 0477E17A2BA41C7E00436346 /* YHCertificateModel.swift in Sources */,
......
...@@ -31,10 +31,10 @@ class YHServiceCenterMainViewController: YHBaseViewController { ...@@ -31,10 +31,10 @@ class YHServiceCenterMainViewController: YHBaseViewController {
return view return view
}() }()
let arrItemTitles = ["全部(6)","进行中(2)", "待开始(4)", "已完成(0)"] var arrItemTitles = ["全部","进行中", "待开始", "已完成"]
var arrItemVCs : [YHServiceOrderListView] = [] var arrItemVCs : [YHServiceOrderListView] = []
var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: KScreenWidth, height: 48)) var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: k_Height_safeAreaInsetsTop(), width: KScreenWidth, height: 48))
lazy var segmentedDataSource: JXSegmentedBaseDataSource = { lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
let dataSource = JXSegmentedTitleDataSource() let dataSource = JXSegmentedTitleDataSource()
dataSource.isTitleColorGradientEnabled = true dataSource.isTitleColorGradientEnabled = true
dataSource.titles = arrItemTitles dataSource.titles = arrItemTitles
...@@ -130,71 +130,11 @@ extension YHServiceCenterMainViewController { ...@@ -130,71 +130,11 @@ extension YHServiceCenterMainViewController {
override func viewDidLayoutSubviews() { override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews() super.viewDidLayoutSubviews()
segmentedView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 98, width: view.bounds.size.width, height: 48) segmentedView.frame = CGRect(x: 4, y: k_Height_safeAreaInsetsTop() + 98, width: view.bounds.size.width - 8, height: 48)
listContainerView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 48 + 98, width: view.bounds.size.width, height: view.bounds.size.height - 48 - k_Height_safeAreaInsetsTop() - 98 - k_Height_TabBar) listContainerView.frame = CGRect(x: 0, y: k_Height_safeAreaInsetsTop() + 48 + 98, width: view.bounds.size.width, height: view.bounds.size.height - 48 - k_Height_safeAreaInsetsTop() - 98 - k_Height_TabBar)
} }
} }
//// MARK: - UITableViewDelegate 和 UITableViewDataSource
//extension YHServiceCenterMainViewController : UITableViewDelegate,UITableViewDataSource {
// func numberOfSections(in tableView: UITableView) -> Int {
// return self.serviceCenterMainReqVM.arrContactList.count
// }
//
// func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//
// return 1
// }
//
// func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
// return kMargin
// }
//
// func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: kMargin))
// return view
// }
//
// func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
// return 0
// }
//
// func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
// return UIView()
// }
//
//
// func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
// return 81
// }
//
// func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// let cell0 = tableView.dequeueReusableCell(withClass: YHContractCell.self)
// cell0.selectionStyle = .none
//
// if indexPath.section < self.serviceCenterMainReqVM.arrContactList.count {
// cell0.dataModel = self.serviceCenterMainReqVM.arrContactList[indexPath.section]
// }
// return cell0
// }
//
// func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// tableView.deselectRow(at: indexPath, animated: true)
// printLog("点击了 tableView Cell \(indexPath.section)")
//
//
// //获取订单号
// let orderId = serviceCenterMainReqVM.arrContactList[indexPath.section].id
// UserDefaults.standard.set(orderId, forKey: "orderIdForPreview")
// UserDefaults.standard.synchronize()
//
// let vc = YHServiceCenterSecondViewController()
// vc.orderId = orderId
// vc.mobile = serviceCenterMainReqVM.arrContactList[indexPath.section].mobile
// self.navigationController?.pushViewController(vc)
// }
//}
extension YHServiceCenterMainViewController: JXSegmentedViewDelegate { extension YHServiceCenterMainViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) { func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
// NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging"), object: nil) // NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging"), object: nil)
...@@ -294,6 +234,25 @@ extension YHServiceCenterMainViewController { ...@@ -294,6 +234,25 @@ extension YHServiceCenterMainViewController {
let vc = YHServiceOrderListView() let vc = YHServiceOrderListView()
vc.type = i vc.type = i
vc.orderID = orderId vc.orderID = orderId
vc.loadData()
vc.block = {[weak self] type, count in
guard let self = self else {
return
}
if type == 0 {
arrItemTitles[0] = "全部(\(count))"
} else if type == 1 {
arrItemTitles[1] = "进行中(\(count))"
} else if type == 2 {
arrItemTitles[2] = "待开始(\(count))"
} else if type == 3 {
arrItemTitles[3] = "已完成(\(count))"
}
self.updata()
}
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
...@@ -319,5 +278,12 @@ extension YHServiceCenterMainViewController { ...@@ -319,5 +278,12 @@ extension YHServiceCenterMainViewController {
segmentedView.backgroundColor = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1) segmentedView.backgroundColor = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1)
} }
func updata(){
DispatchQueue.main.async {
self.segmentedDataSource.titles = self.arrItemTitles
self.segmentedView.reloadData()
}
}
} }
...@@ -11,7 +11,8 @@ import JXSegmentedView ...@@ -11,7 +11,8 @@ import JXSegmentedView
class YHServiceOrderListView: YHBaseViewController { class YHServiceOrderListView: YHBaseViewController {
private let viewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel() private let viewModel : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
typealias Block = (Int,Int) -> ()
var block: Block?
var orderID: Int = 0 var orderID: Int = 0
var type: Int = 0 var type: Int = 0
var homeTableView: UITableView! var homeTableView: UITableView!
...@@ -19,11 +20,12 @@ class YHServiceOrderListView: YHBaseViewController { ...@@ -19,11 +20,12 @@ class YHServiceOrderListView: YHBaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
loadData()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
loadData() // loadData()
} }
} }
...@@ -31,7 +33,12 @@ extension YHServiceOrderListView { ...@@ -31,7 +33,12 @@ extension YHServiceOrderListView {
func loadData() { func loadData() {
viewModel.getServiceCenterProgressList(orderID, type) {[weak self] success, error in viewModel.getServiceCenterProgressList(orderID, type) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.homeTableView.reloadData() if (self.homeTableView != nil) {
self.homeTableView.reloadData()
}
if let block = self.block {
block(type, self.viewModel.arrDataForSeviceCenterProgress.count)
}
} }
} }
...@@ -123,7 +130,7 @@ extension YHServiceOrderListView: JXSegmentedListContainerViewListDelegate { ...@@ -123,7 +130,7 @@ extension YHServiceOrderListView: JXSegmentedListContainerViewListDelegate {
return view return view
} }
func listWillAppear() { // func listWillAppear() {
loadData() // loadData()
} // }
} }
//
// YHProgressView.swift
// galaxy
//
// Created by EDY on 2024/4/17.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHProgressView: UIView {
private let progressLayer = CAShapeLayer()
override init(frame: CGRect) {
super.init(frame: frame)
configure()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
configure()
}
func changeColor(_ color: UIColor) {
progressLayer.strokeColor = color.cgColor // 设置进度条颜色
}
private func configure() {
// 创建底部圆形路径
let center = CGPoint(x: bounds.midX, y: bounds.midY)
let lineWidth: CGFloat = 3 // 圆环路径宽度
let radius = (min(bounds.width, bounds.height) - lineWidth) / 2 // 圆的半径
let startAngle = -CGFloat.pi / 2 // 起始角度
let endAngle = 1.5 * CGFloat.pi // 终点角度
// 创建进度条圆形路径
let progressPath = UIBezierPath(arcCenter: center,
radius: radius,
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)
// 配置进度条CAShapeLayer
progressLayer.path = progressPath.cgPath
progressLayer.strokeColor = UIColor(hex: 0x00BF60).cgColor // 进度条颜色
progressLayer.fillColor = UIColor.clear.cgColor
progressLayer.lineWidth = lineWidth // 进度条宽度
progressLayer.lineCap = .round
// 设置初始进度
progressLayer.strokeEnd = 0
layer.addSublayer(progressLayer)
}
func setProgress(_ progress: Float, animated: Bool) {
let animation = CABasicAnimation(keyPath: "strokeEnd")
animation.fromValue = progressLayer.strokeEnd
animation.toValue = progress
animation.duration = animated ? 1.0 : 0
progressLayer.strokeEnd = CGFloat(progress)
progressLayer.add(animation, forKey: "progressAnimation")
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_progress_end@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_progress_end@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_progress_normal@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_progress_normal@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "service_progress_start@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "service_progress_start@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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