feat: update app workflows and permissions

This commit is contained in:
2026-07-09 17:34:00 +08:00
parent 43e6133c21
commit 8e356973bd
44 changed files with 2944 additions and 307 deletions

View File

@ -21,6 +21,8 @@ final class CooperationOrderListViewController: BaseViewController, UITableViewD
private let footerLabel = UILabel()
private let emptyLabel = UILabel()
private var isApplyingTab = false
private var isSearchBarVisible = false
private var searchBarHeightConstraint: Constraint?
override func setupNavigationBar() {
title = "合作订单"
@ -39,6 +41,8 @@ final class CooperationOrderListViewController: BaseViewController, UITableViewD
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.contentInset.top = AppSpacing.sm
tableView.verticalScrollIndicatorInsets.top = AppSpacing.sm
tableView.dataSource = self
tableView.delegate = self
tableView.register(ReferralLeadCell.self, forCellReuseIdentifier: ReferralLeadCell.reuseIdentifier)
@ -75,6 +79,7 @@ final class CooperationOrderListViewController: BaseViewController, UITableViewD
searchBar.snp.makeConstraints { make in
make.top.equalTo(tabBarView.snp.bottom)
make.leading.trailing.equalToSuperview()
searchBarHeightConstraint = make.height.equalTo(0).constraint
}
tableView.snp.makeConstraints { make in
make.top.equalTo(searchBar.snp.bottom)
@ -139,7 +144,7 @@ final class CooperationOrderListViewController: BaseViewController, UITableViewD
tabBarView.setSelectedTab(viewModel.selectedTab)
isApplyingTab = false
}
searchBar.isHidden = viewModel.selectedTab != 1
updateSearchBarVisibility(viewModel.selectedTab == 1)
searchBar.textField.text = viewModel.searchText
let isEmpty = viewModel.selectedTab == 0 ? viewModel.leads.isEmpty : viewModel.orders.isEmpty
@ -163,6 +168,24 @@ final class CooperationOrderListViewController: BaseViewController, UITableViewD
tableView.reloadData()
}
private func updateSearchBarVisibility(_ isVisible: Bool) {
guard isSearchBarVisible != isVisible else { return }
isSearchBarVisible = isVisible
searchBarHeightConstraint?.update(offset: isVisible ? 62 : 0)
if isVisible {
searchBar.isHidden = false
} else {
searchBar.textField.resignFirstResponder()
}
UIView.animate(withDuration: 0.2, delay: 0, options: [.curveEaseInOut]) {
self.view.layoutIfNeeded()
} completion: { _ in
if self.isSearchBarVisible == isVisible {
self.searchBar.isHidden = !isVisible
}
}
}
private func tableFooterView(isEmpty: Bool) -> UIView? {
guard !isEmpty else { return nil }
if viewModel.isLoadingMore {