From ca2a4ce89064be715e90ae60dc305c26e7dd5719 Mon Sep 17 00:00:00 2001 From: younger_times <841720330@qq.com> Date: 星期五, 14 七月 2023 18:52:34 +0800 Subject: [PATCH] 新增 --- WanPai/Root/Other/View/StoresChooseView.swift | 104 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 92 insertions(+), 12 deletions(-) diff --git a/WanPai/Root/Other/View/StoresChooseView.swift b/WanPai/Root/Other/View/StoresChooseView.swift index 12b9ef8..100138b 100644 --- a/WanPai/Root/Other/View/StoresChooseView.swift +++ b/WanPai/Root/Other/View/StoresChooseView.swift @@ -1,17 +1,33 @@ -// -// StoresChooseView.swift -// WanPai -// -// Created by 杨锴 on 2023/6/9. -// + // + // StoresChooseView.swift + // WanPai + // + // Created by 杨锴 on 2023/6/9. + // import UIKit import JQTools +import RxSwift class StoresChooseView: UIView,JQNibView{ @IBOutlet weak var view_container: UIView! @IBOutlet weak var label_currently: UILabel! + @IBOutlet weak var label_province: UILabel! + @IBOutlet weak var label_city: UILabel! + + + private var provinceModel:CityProfileModel? + private var cityModel:CityProfileModel? + private var storeModel:CityProfileModel? + + private var provincesModel = [CityProfileModel]() + private var citysModel = [CityProfileModel]() + private var storesModel = [CityProfileModel]() + + + private var clouse:((String)->Void)! + private let disposeBag = DisposeBag() override func awakeFromNib() { super.awakeFromNib() @@ -20,15 +36,36 @@ layoutIfNeeded() } - static func show(){ + static func show(_ clouse:@escaping (String)->Void){ let storesView = StoresChooseView.jq_loadNibView() + storesView.clouse = clouse storesView.frame = screnDelegate?.window?.frame ?? .zero screnDelegate?.window?.addSubview(storesView) UIView.animate(withDuration: 0.4) { storesView.view_container.transform = CGAffineTransform(scaleX: 1.0, y: 1.0) storesView.alpha = 1 + }completion: { _ in + storesView.getData() } + } + + private func getData(_ provinceId:String? = nil){ + Services.queryProvinceAndCity(pcode: provinceId).subscribe(onNext: { [weak self] data in + guard let weakSelf = self else { return } + if provinceId == nil{ + weakSelf.provincesModel = data.data ?? [] + }else{ + weakSelf.citysModel = data.data ?? [] + } + }).disposed(by: disposeBag) + } + + private func getStore(_ cityCode:String){ + Services.queryStoreAtCity(cityCode: cityCode).subscribe(onNext: { [weak self] data in + guard let weakSelf = self else { return } + weakSelf.storesModel = data.data ?? [] + }).disposed(by: disposeBag) } private func close(){ @@ -39,20 +76,63 @@ self.removeFromSuperview() } } - - @IBAction func tapChooseAction(_ sender: TapBtn) { - JQ_MenuView().show(self, tapView: sender, items: ["1","2","3","3","3","3","3","3","3","3"], menuWidth: sender.jq_width, tableHei: 200) { index, str in - + + @IBAction func provinceAction(_ sender: TapBtn) { + guard provincesModel.count != 0 else { + alertError(msg: "省级获取失败,正在重新获取") + getData() + return + } + + let names = provincesModel.map({$0.name}) + JQ_MenuView().show(self, tapView: sender, items: names, menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in + guard let weakSelf = self else { return } + weakSelf.provinceModel = weakSelf.provincesModel[index] + weakSelf.label_province.text = weakSelf.provinceModel?.name ?? "" + weakSelf.getData(weakSelf.provinceModel!.code) } } - + + @IBAction func cityAction(_ sender: TapBtn) { + guard provinceModel != nil else {alertError(msg: "请先选择省份");return} + guard citysModel.count != 0 else {alertError(msg: "当前城市未开通");return} + JQ_MenuView().show(self, tapView: sender, items: citysModel.map({$0.name}), menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in + guard let weakSelf = self else { return } + weakSelf.cityModel = weakSelf.citysModel[index] + weakSelf.label_city.text = weakSelf.cityModel?.name ?? "" + weakSelf.getStore(weakSelf.cityModel!.code) + } + } + + + @IBAction func storeAction(_ sender: TapBtn) { + guard provincesModel.count != 0 else { + alertError(msg: "请先选择省份");return + } + + guard citysModel.count != 0 else { + alertError(msg: "请先选城市");return + } + + JQ_MenuView().show(self, tapView: sender, items: storesModel.map({$0.name}), menuWidth: sender.jq_width, tableHei: 200) { [weak self] index, str in + guard let weakSelf = self else { return } + weakSelf.storeModel = weakSelf.storesModel[index] + weakSelf.label_currently.text = weakSelf.storeModel?.name ?? "" + } + } + @IBAction func closeAction(_ sender: UIButton) { close() } @IBAction func completeAction(_ sender: UIButton) { + guard storeModel != nil else { + alertError(msg: "请选择门店名称");return + } + close() + clouse?(storeModel!.code) } } -- Gitblit v1.7.1