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