Bläddra i källkod

地址管理完成

南鑫林 6 år sedan
förälder
incheckning
c5ff690dc7
14 ändrade filer med 338 tillägg och 84 borttagningar
  1. 4 0
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 4 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/ViewController/AddressManagerViewController.swift
  3. 123 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressTableViewCell.swift
  4. 95 22
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressView.swift
  5. 17 25
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/ViewController/EditExpressAddressViewController.swift
  6. 9 3
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/View/EditAddressTableViewCell.swift
  7. 0 6
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/View/EditSelfMentionContactsView.swift
  8. 0 4
      RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/ViewController/EditSelfMentionContactsViewController.swift
  9. 50 4
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListTableViewCell.swift
  10. 5 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift
  11. 17 6
      RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/ViewController/ExpressAddressListViewController.swift
  12. 1 1
      RainbowPlanet/RainbowPlanet/Service/Model/UserModel/AddressManagerListModel.swift
  13. 12 12
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift
  14. 1 1
      RainbowPlanet/RainbowPlanet/Src/province_city_area.json

+ 4 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -210,6 +210,7 @@
 		A7D46090227617D200A5A54E /* SQLModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D4608F227617D200A5A54E /* SQLModel.swift */; };
 		A7D46092227619CD00A5A54E /* BaiduToCityFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D46091227619CC00A5A54E /* BaiduToCityFactory.swift */; };
 		A7D460942276854500A5A54E /* BaiduToCity2Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D460932276854500A5A54E /* BaiduToCity2Model.swift */; };
+		A7DC467F22783A47001F3EFC /* EditExpressAddressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -447,6 +448,7 @@
 		A7D4608F227617D200A5A54E /* SQLModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLModel.swift; sourceTree = "<group>"; };
 		A7D46091227619CC00A5A54E /* BaiduToCityFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduToCityFactory.swift; sourceTree = "<group>"; };
 		A7D460932276854500A5A54E /* BaiduToCity2Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaiduToCity2Model.swift; sourceTree = "<group>"; };
+		A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditExpressAddressTableViewCell.swift; sourceTree = "<group>"; };
 		A7E03A30F40582782EC5DA89 /* Pods_RainbowPlanetTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanetTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		BD9052C044FD3AE4E62D3929 /* Pods-RainbowPlanet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RainbowPlanet.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RainbowPlanet/Pods-RainbowPlanet.debug.xcconfig"; sourceTree = "<group>"; };
 		D469F6C3768252BCB7001EDD /* Pods_RainbowPlanet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -592,6 +594,7 @@
 			isa = PBXGroup;
 			children = (
 				A71AA51B227219EF008FF1A5 /* EditExpressAddressView.swift */,
+				A7DC467E22783A47001F3EFC /* EditExpressAddressTableViewCell.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -2201,6 +2204,7 @@
 				A71AF0BA226F00F8001730FE /* SearchResultView.swift in Sources */,
 				A77F2CB52232010F001BD3F6 /* ShoppingMallViewController.swift in Sources */,
 				A71AA513227215B5008FF1A5 /* ExpressAddressListView.swift in Sources */,
+				A7DC467F22783A47001F3EFC /* EditExpressAddressTableViewCell.swift in Sources */,
 				A7824B082271F53A00ABA381 /* EditSetDefaultTableViewCell.swift in Sources */,
 				A77F2CC3223203BA001BD3F6 /* AppDelegate+Window.swift in Sources */,
 				A7824B062271F25400ABA381 /* EditAddressTableViewCell.swift in Sources */,

+ 4 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/AddressManager/ViewController/AddressManagerViewController.swift

@@ -129,6 +129,10 @@ class AddressManagerViewController: BaseViewController {
         }else {
             if self.addressManagerVCType == .mine {
                 let vc = EditExpressAddressViewController()
+                vc.expressAddresModel = self.addressManagerListModel?.expressAddress?[indexPath.row]
+                vc.upAddressListClosure = {
+                    self.configCityManagementIndexApi()
+                }
                 self.navigationController?.pushViewController(vc, animated: true)
             }else {
                 let expressAddressModel = self.addressManagerListModel?.expressAddress?[indexPath.row]

+ 123 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressTableViewCell.swift

@@ -0,0 +1,123 @@
+//
+//  EditExpressAddressTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/4/30.
+//  Copyright © 2019 南鑫林. All rights reserved.
+//
+
+import UIKit
+import RxSwift
+import RxCocoa
+import IQKeyboardManagerSwift
+
+class EditExpressAddressTableViewCell: UITableViewCell {
+    
+    let disposeBag = DisposeBag()
+    
+    typealias EditTextViewClosure = (_ text: String,_ indexPath:IndexPath) -> Void
+    var editTextViewClosure : EditTextViewClosure?
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> EditExpressAddressTableViewCell {
+        let ID = "EditExpressAddressTableViewCell"
+        tableView.register(EditExpressAddressTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : EditExpressAddressTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! EditExpressAddressTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    //MRAK: - 设置View
+    private func setupViews() {
+        selectionStyle = .none
+        addSubview(titleLabel)
+        addSubview(editTextView)
+        addSubview(h_lineLabel)
+    }
+    
+    private func setupLayouts() {
+        titleLabel.snp.remakeConstraints { (make) in
+            make.left.equalTo(14)
+            make.center.equalTo(editTextView)
+        }
+        editTextView.snp.remakeConstraints { (make) in
+            make.top.equalToSuperview().priority(999)
+            make.height.greaterThanOrEqualTo(48).priority(888)
+            make.bottom.equalToSuperview().priority(777)
+            make.left.equalTo(94)
+            make.right.equalTo(-14)
+        }
+        h_lineLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.right.bottom.equalToSuperview()
+            make.height.equalTo(0.5)
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kRegularFont16
+        return titleLabel
+    }()
+    
+    private lazy var editTextView: IQTextView = {
+        let editTextView = IQTextView()
+        editTextView.textColor = k333333Color
+        editTextView.font = kRegularFont16
+        editTextView.tintColor = kEnabledButtonColor
+        editTextView.isScrollEnabled = false
+        editTextView.rx.text.orEmpty.changed.subscribe(onNext: {
+            [weak self] (text) in
+            if let editTextViewClosure = self?.editTextViewClosure {
+                editTextViewClosure(self?.editTextView.text ?? "",(self?.indexPath!)!)
+            }
+            
+        }).disposed(by: disposeBag)
+        return editTextView
+    }()
+    
+    private lazy var h_lineLabel: UILabel = {
+        let h_lineLabel = UILabel()
+        h_lineLabel.backgroundColor = kf5f5f5Color
+        return h_lineLabel
+    }()
+    
+    var titles : [String]? {
+        didSet {
+            titleLabel.text = titles![(indexPath?.row)!]
+        }
+    }
+    var placeholderTitles : [String]? {
+        didSet {
+            editTextView.placeholder = placeholderTitles![(indexPath?.row)!]
+        }
+    }
+    
+    var expressAddresModel: ExpressAddresModel? {
+        didSet {
+            switch indexPath?.row {
+            case 3:
+                editTextView.text = expressAddresModel?.address
+                break
+            default:
+                break
+            }
+        }
+    }
+
+}

+ 95 - 22
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/View/EditExpressAddressView.swift

@@ -14,26 +14,21 @@ class EditExpressAddressView: BaseView {
     
     let placeholderTitles = ["姓名","收件人电话号码","省份、城市、区县","如道路、门牌号、小区、楼栋号等"]
     
-    var expressAddresModel: ExpressAddresModel? {
-        didSet {
-            tableView.reloadData()
-        }
-    }
+    typealias ExpressAddressClosure = (_ expressAddresModel: ExpressAddresModel?) -> Void
+    var expressAddressClosure : ExpressAddressClosure?
     
-    var editExpressAddressVCType :EditExpressAddressVCType? {
+    var expressAddresModel: ExpressAddresModel? {
         didSet {
-            if editExpressAddressVCType == .new {
+            if expressAddresModel == nil {
+                expressAddresModel = ExpressAddresModel()
                 tableView.tableFooterView = nil
-            }else if editExpressAddressVCType == .update {
+            }else {
                 tableView.tableFooterView = editAddressFooterView
             }
             tableView.reloadData()
         }
     }
     
-    typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
-    var didSelectRowClosure : DidSelectRowClosure?
-    
     typealias DeleteClosure = () -> Void
     var deleteClosure : DeleteClosure?
     
@@ -53,8 +48,7 @@ class EditExpressAddressView: BaseView {
         tableView.delegate = self
         tableView.dataSource = self
         tableView.separatorStyle = .none
-        tableView.rowHeight = 48
-       
+        tableView.estimatedRowHeight = 48
         return tableView
     }()
     private lazy var editAddressFooterView: EditAddressFooterView = {
@@ -72,7 +66,6 @@ class EditExpressAddressView: BaseView {
 
 extension EditExpressAddressView: UITableViewDelegate,UITableViewDataSource {
     
-    
     func numberOfSections(in tableView: UITableView) -> Int {
         return titles.count
     }
@@ -86,13 +79,65 @@ extension EditExpressAddressView: UITableViewDelegate,UITableViewDataSource {
         
         switch indexPath.section {
         case 0:
-            let cell = EditAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
-            cell.titles = titles[indexPath.section]
-            cell.placeholderTitles = placeholderTitles
-            if let expressAddresModel = expressAddresModel {
-                 cell.expressAddresModel = expressAddresModel
+            
+            switch indexPath.row {
+            case 3:
+                let cell = EditExpressAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                cell.titles = titles[indexPath.section]
+                cell.placeholderTitles = placeholderTitles
+                if let expressAddresModel = expressAddresModel {
+                    cell.expressAddresModel = expressAddresModel
+                }
+                cell.editTextViewClosure = {
+                    [weak self] (text,indexPath) in
+                    switch indexPath.row {
+                    case 3:
+                        let currentOffset = tableView.contentOffset
+                        UIView.setAnimationsEnabled(false)
+                        tableView.beginUpdates()
+                        tableView.endUpdates()
+                        UIView.setAnimationsEnabled(true)
+                        tableView.setContentOffset(currentOffset, animated: false)
+                        self?.expressAddresModel?.address = text
+                        break
+                    default:
+                        break
+                    }
+                    if let expressAddressClosure = self?.expressAddressClosure {
+                        expressAddressClosure((self?.expressAddresModel)!)
+                    }
+                }
+                
+                return cell
+            default:
+                let cell = EditAddressTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+                cell.titles = titles[indexPath.section]
+                cell.placeholderTitles = placeholderTitles
+                if let expressAddresModel = expressAddresModel {
+                    cell.expressAddresModel = expressAddresModel
+                }
+                cell.editTextFieldClosure = {
+                    [weak self] (text,indexPath) in
+                    switch indexPath.row {
+                    case 0:
+                        self?.expressAddresModel?.contactName = text
+                        break
+                    case 1:
+                        self?.expressAddresModel?.contactMobile = text
+                        break
+                    default:
+                        break
+                    }
+                    if let expressAddressClosure = self?.expressAddressClosure {
+                        expressAddressClosure(self?.expressAddresModel)
+                    }
+                }
+                if indexPath.row == 2 {
+                    cell.placeholderTitles = placeholderTitles
+                    cell.expressAddresModel = self.expressAddresModel
+                }
+                return cell
             }
-            return cell
         default:
             let cell = EditSetDefaultTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
             cell.titles = titles[indexPath.section]
@@ -102,8 +147,36 @@ extension EditExpressAddressView: UITableViewDelegate,UITableViewDataSource {
     }
     
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        if let didSelectRowClosure = self.didSelectRowClosure {
-            didSelectRowClosure(indexPath)
+        
+        switch indexPath.row {
+        case 2:
+            AlertSheetView.sheetProvinceCityAreaView {
+                [weak self] (province, city, area) in
+                self?.expressAddresModel?.provinceId = Int(province.areaCode ?? "")
+                self?.expressAddresModel?.provinceName = province.areaName ?? ""
+                self?.expressAddresModel?.cityId = Int(city.areaCode ?? "")
+                self?.expressAddresModel?.cityName = city.areaName ?? ""
+                self?.expressAddresModel?.areaId = Int(area.areaCode ?? "")
+                self?.expressAddresModel?.areaName = area.areaName ?? ""
+                let indexPath = IndexPath(item: 2, section: 0)
+                tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
+                if let expressAddressClosure = self?.expressAddressClosure {
+                    expressAddressClosure(self?.expressAddresModel)
+                }
+            }
+            break
+        default:
+            break
+        }
+        
+        
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        if indexPath.row == 3 {
+            return UITableView.automaticDimension
+        }else {
+            return 48
         }
     }
     

+ 17 - 25
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditExpressAddress/ViewController/EditExpressAddressViewController.swift

@@ -8,16 +8,6 @@
 
 import UIKit
 
-
-/// 控制器类型
-///
-/// - new: 新建
-/// - change: 修改
-enum EditExpressAddressVCType {
-    case new
-    case update
-}
-
 class EditExpressAddressViewController: BaseViewController {
 
     
@@ -25,7 +15,6 @@ class EditExpressAddressViewController: BaseViewController {
     var upAddressListClosure : UpAddressListClosure?
     
     var expressAddresModel: ExpressAddresModel?
-    var editExpressAddressVCType :EditExpressAddressVCType? = .new
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -53,24 +42,23 @@ class EditExpressAddressViewController: BaseViewController {
     private lazy var editExpressAddressView: EditExpressAddressView = {
         let editExpressAddressView = EditExpressAddressView()
         editExpressAddressView.expressAddresModel = expressAddresModel
-        editExpressAddressView.editExpressAddressVCType = editExpressAddressVCType
         editExpressAddressView.deleteClosure = {
             [weak self] in
             self?.userAddressDelete()
         }
+        editExpressAddressView.expressAddressClosure = {
+            [weak self] (expressAddresModel) in
+            self?.expressAddresModel = expressAddresModel
+        }
         return editExpressAddressView
     }()
     
-     /// 添加保存地址
+     /// 添加保存地址 //编辑
     func userAddExpressAddress() {
-        
-        var id : Int = 0
-        if let expressAddresModel = expressAddresModel {
-            id = expressAddresModel.pickupNodeId ?? 0
-        }
-        
-        SwiftMoyaNetWorkServiceUser.shared().userAddExpressAddressApi( id:id,contactName: "南鑫林", contactMobile: "18392056542", provinceId: "86610000", provinceName: "陕西省", cityId: "86610100", cityName: "西安市", areaId: "86610113", areaName: "雁塔区", address: "abcedfghrijhtuvwxyz打飞机撒;") { (data) -> (Void) in
-            
+        SwiftMoyaNetWorkServiceUser.shared().userAddExpressAddressApi(
+        expressAddresModel:expressAddresModel!) {
+            [weak self] (data) -> (Void) in
+            self?.popVC()
         }
     }
     
@@ -79,10 +67,14 @@ class EditExpressAddressViewController: BaseViewController {
     func userAddressDelete() {
         SwiftMoyaNetWorkServiceUser.shared().userAddressDeleteApi(id: expressAddresModel?.id ?? 0) {
             [weak self] (data) -> (Void) in
-            if let upAddressListClosure = self?.upAddressListClosure {
-                upAddressListClosure()
-            }
-            self?.navigationController?.popViewController(animated: true)
+            self?.popVC()
+        }
+    }
+    
+    func popVC() {
+        if let upAddressListClosure = self.upAddressListClosure {
+            upAddressListClosure()
         }
+        self.navigationController?.popViewController(animated: true)
     }
 }

+ 9 - 3
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/View/EditAddressTableViewCell.swift

@@ -49,6 +49,7 @@ class EditAddressTableViewCell: UITableViewCell {
                 break
             case 2:
                 editTextField.isEnabled = false
+                editTextField.isUserInteractionEnabled = true
             case 3:
                 
                 break
@@ -114,6 +115,7 @@ class EditAddressTableViewCell: UITableViewCell {
         }).disposed(by: disposeBag)
         return editTextField
     }()
+    
     private lazy var h_lineLabel: UILabel = {
         let h_lineLabel = UILabel()
         h_lineLabel.backgroundColor = kf5f5f5Color
@@ -142,9 +144,9 @@ class EditAddressTableViewCell: UITableViewCell {
                 editTextField.text = expressAddresModel?.contactMobile
                 break
             case 2:
-                let provinceName = expressAddresModel!.provinceName
-                let cityName = expressAddresModel!.cityName
-                let areaName = expressAddresModel!.areaName
+                let provinceName = expressAddresModel?.provinceName
+                let cityName = expressAddresModel?.cityName
+                let areaName = expressAddresModel?.areaName
                 editTextField.text = "\(String(describing: provinceName ??  ""))\(String(describing: cityName ?? ""))\(String(describing: areaName ?? ""))"
             case 3:
                 editTextField.text = expressAddresModel?.address
@@ -169,4 +171,8 @@ class EditAddressTableViewCell: UITableViewCell {
             }
         }
     }
+    
+    func provinceCityArea(provinceName:String = "",cityName:String = "",areaName:String = "") -> Void {
+        editTextField.text = "\(provinceName) \(cityName) \(areaName)"
+    }
 }

+ 0 - 6
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/View/EditSelfMentionContactsView.swift

@@ -111,12 +111,6 @@ extension EditSelfMentionContactsView: UITableViewDelegate,UITableViewDataSource
         
     }
     
-    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        if let didSelectRowClosure = self.didSelectRowClosure {
-            didSelectRowClosure(indexPath)
-        }
-    }
-    
     func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
         return nil
     }

+ 0 - 4
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionContacts/ViewController/EditSelfMentionContactsViewController.swift

@@ -46,10 +46,6 @@ class EditSelfMentionContactsViewController: BaseViewController {
             self?.selfMentionContactsModel?.mobile = moblie
             self?.selfMentionContactsModel?.name = name
         }
-        editSelfMentionContactsView.didSelectRowClosure = { //选中
-            [weak self] indexPath in
-            
-        }
         editSelfMentionContactsView.deleteClosure = { //删除
             [weak self] in
             if let selfMentionContactsModel = self?.selfMentionContactsModel {

+ 50 - 4
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListTableViewCell.swift

@@ -51,12 +51,13 @@ class ExpressAddressListTableViewCell: UITableViewCell {
         addSubview(lineLabel)
         addSubview(v_lineLabel)
         addSubview(editButton)
+        addSubview(selectedButton)
     }
     
     private func setupLayouts() {
         nameLabel.snp.makeConstraints { (make) in
             make.top.equalTo(15)
-            make.left.equalTo(14)
+            make.left.equalTo(52)
             make.height.equalTo(23)
         }
         
@@ -66,14 +67,14 @@ class ExpressAddressListTableViewCell: UITableViewCell {
             make.height.equalTo(20)
         }
         
-        addressLabel.snp.makeConstraints { (make) in
+        addressLabel.snp.remakeConstraints { (make) in
             make.top.equalTo(nameLabel.snp.bottom).offset(5)
-            make.left.equalTo(54)
+            make.left.equalTo(92)
             make.right.equalTo(-60)
             make.bottom.equalTo(-15)
         }
         
-        defalutLabel.snp.makeConstraints { (make) in
+        defalutLabel.snp.remakeConstraints { (make) in
             make.left.equalTo(nameLabel)
             make.top.equalTo(addressLabel)
             make.width.equalTo(36)
@@ -92,6 +93,12 @@ class ExpressAddressListTableViewCell: UITableViewCell {
             make.right.equalToSuperview()
         }
         
+        selectedButton.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.top.equalTo(addressLabel.snp.top)
+            make.size.equalTo(16)
+        }
+        
         v_lineLabel.snp.makeConstraints { (make) in
             make.right.equalTo(editButton.snp.left)
             make.height.centerY.equalTo(editButton)
@@ -163,5 +170,44 @@ class ExpressAddressListTableViewCell: UITableViewCell {
         }).disposed(by: disposeBag)
         return editButton
     }()
+    
+    private lazy var selectedButton: UIButton = {
+        let selectedButton = UIButton(type: UIButton.ButtonType.custom)
+        selectedButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        selectedButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return selectedButton
+    }()
+    
+    var expressAddresModel: ExpressAddresModel? {
+        didSet {
+            nameLabel.text = expressAddresModel?.contactName
+            moblieLabel.text = expressAddresModel?.contactMobile
+            let provinceName = expressAddresModel!.provinceName
+            let cityName = expressAddresModel!.cityName
+            let areaName = expressAddresModel!.areaName
+            let address = expressAddresModel!.address
+            
+            addressLabel.text = "\(String(describing: provinceName ??  "")) \(String(describing: cityName ?? "")) \(String(describing: areaName ?? "")) \(String(describing: address ?? ""))"
+            if expressAddresModel!.isDefault == 1 {
+                selectedButton.isSelected = true
+                defalutLabel.isHidden = false
+                addressLabel.snp.remakeConstraints { (make) in
+                    make.top.equalTo(nameLabel.snp.bottom).offset(5)
+                    make.left.equalTo(92)
+                    make.right.equalTo(-60)
+                    make.bottom.equalTo(-15)
+                }
+            }else {
+                selectedButton.isSelected = false
+                defalutLabel.isHidden = true
+                addressLabel.snp.remakeConstraints { (make) in
+                    make.top.equalTo(nameLabel.snp.bottom).offset(5)
+                    make.left.equalTo(52)
+                    make.right.equalTo(-60)
+                    make.bottom.equalTo(-15)
+                }
+            }
+        }
+    }
 
 }

+ 5 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/View/ExpressAddressListView.swift

@@ -24,6 +24,10 @@ class ExpressAddressListView: BaseView {
     
     override func setupViews() {
         addSubview(tableView)
+        let emptyView =  EmptyView.shared.diyCustomEmptyViewStyle2(iconStr: "page04", titleStr: "当前暂无数据,请添加新地址")
+        emptyView.contentViewY = kScaleValue(value: 182)
+        tableView.ly_emptyView = emptyView
+        tableView.ly_startLoading()
     }
     
     override func setupLayouts() {
@@ -56,6 +60,7 @@ extension ExpressAddressListView: UITableViewDelegate,UITableViewDataSource {
     
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = ExpressAddressListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+        cell.expressAddresModel = self.addressManagerListModel?.expressAddress?[indexPath.row]
         cell.editClosure = {
             [weak self] indexPath in
             if let editClosure = self?.editClosure {

+ 17 - 6
RainbowPlanet/RainbowPlanet/Modules/MineModule/ExpressAddressList/ViewController/ExpressAddressListViewController.swift

@@ -27,9 +27,9 @@ class ExpressAddressListViewController: BaseViewController {
         navigationBar.onClickRightButton = {
             [weak self] in
            let vc = EditExpressAddressViewController()
-            vc.editExpressAddressVCType = .new
             vc.upAddressListClosure = {
-                
+                [weak self] in
+                self?.userExpressAddressListApi()
             }
             self?.navigationController?.pushViewController(vc, animated: true)
         }
@@ -44,8 +44,7 @@ class ExpressAddressListViewController: BaseViewController {
     }
     
     override func setupData() {
-        userExpressAddressListApi()
-        self.expressAddressListView.tableView.addHeaderWithHeader(withBeginRefresh: false, animation: true) {
+        self.expressAddressListView.tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) {
             [weak self](page) in
             self?.userExpressAddressListApi()
         }
@@ -57,23 +56,35 @@ class ExpressAddressListViewController: BaseViewController {
             [weak self] indexPath in
             let vc = EditExpressAddressViewController()
             vc.expressAddresModel = self?.addressManagerListModel?.expressAddress![indexPath.row]
-            vc.editExpressAddressVCType = .update
             vc.upAddressListClosure = {
                 [weak self] in
                 self?.userExpressAddressListApi()
             }
             self?.navigationController?.pushViewController(vc, animated: true)
         }
+        expressAddressListView.didSelectRowClosure = {
+            [weak self] indexPath in
+             let expressAddresModel = self?.addressManagerListModel?.expressAddress![indexPath.row]
+            self?.userSetExpreesContactsDefaultApi(id: expressAddresModel?.id ?? 0)
+        }
         return expressAddressListView
     }()
     
     /// 获取地址列表
     func userExpressAddressListApi() {
-        SwiftMoyaNetWorkServiceUser.shared().userSelfAndExpressAddressListApi(type: 2) {
+        SwiftMoyaNetWorkServiceUser.shared().userSelfAndExpressAddressListApi(type: 1) {
             
             [weak self] (addressManagerListModel) -> (Void) in
            self?.addressManagerListModel = (addressManagerListModel as! AddressManagerListModel)
             self?.expressAddressListView.addressManagerListModel = self?.addressManagerListModel
         }
     }
+    
+    /// 自提点收货人信息,设置默认
+    func userSetExpreesContactsDefaultApi(id:Int = 0) {
+        SwiftMoyaNetWorkServiceUser.shared().userSetExpreesContactsDefaultApi(id: id, completion: {
+            [weak self] (data) -> (Void) in
+            self?.userExpressAddressListApi()
+        })
+    }
 }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/Model/UserModel/AddressManagerListModel.swift

@@ -79,7 +79,7 @@ class ExpressAddresModel : NSObject, NSCoding, Mappable{
         return ExpressAddresModel()
     }
     required init?(map: Map){}
-    private override init(){}
+    override init(){}
     
     func mapping(map: Map)
     {

+ 12 - 12
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift

@@ -310,18 +310,18 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     ///   - address: 详细地址
     ///   - zipcode: 邮政编码 710110
     ///   - completion: 回调
-    func userAddExpressAddressApi(id:Int = 0,contactName:String = "",contactMobile:String = "",provinceId:String = "",provinceName:String = "",cityId:String = "",cityName:String = "",areaId:String = "",areaName:String = "",address:String = "",completion: @escaping apiCallBack) {
+    func userAddExpressAddressApi(expressAddresModel:ExpressAddresModel, completion: @escaping apiCallBack) {
         var parameters = Dictionary<String,Any>()
-        parameters.updateValue(id, forKey: "id")
-        parameters.updateValue(contactName, forKey: "contact_name")
-        parameters.updateValue(contactMobile, forKey: "contact_mobile")
-        parameters.updateValue(provinceId, forKey: "province_id")
-        parameters.updateValue(provinceName, forKey: "province_name")
-        parameters.updateValue(cityId, forKey: "city_id")
-        parameters.updateValue(cityName, forKey: "city_name")
-        parameters.updateValue(areaId, forKey: "area_id")
-        parameters.updateValue(areaName, forKey: "area_name")
-        parameters.updateValue(address, forKey: "address")
+        parameters.updateValue(expressAddresModel.id ?? "", forKey: "id")
+        parameters.updateValue(expressAddresModel.contactName ?? "", forKey: "contact_name")
+        parameters.updateValue(expressAddresModel.contactMobile ?? "", forKey: "contact_mobile")
+        parameters.updateValue(expressAddresModel.provinceId ?? "", forKey: "province_id")
+        parameters.updateValue(expressAddresModel.provinceName ?? "", forKey: "province_name")
+        parameters.updateValue(expressAddresModel.cityId ?? "", forKey: "city_id")
+        parameters.updateValue(expressAddresModel.cityName ?? "", forKey: "city_name")
+        parameters.updateValue(expressAddresModel.areaId ?? "", forKey: "area_id")
+        parameters.updateValue(expressAddresModel.areaName ?? "", forKey: "area_name")
+        parameters.updateValue(expressAddresModel.address ?? "", forKey: "address")
 
         SwiftProgressHUD.shared().showWait()
         SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.userAddExpressAddress(parameters: parameters))) {(rootModel) in
@@ -460,7 +460,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
         var parameters = Dictionary<String,Any>()
         let deliveryMethodTypeModel = DeliveryMethodTypeModel.shared().getModel()
         
-        parameters.updateValue(deliveryMethodTypeModel?.deliveryMethodType! as Any, forKey: "address_type")
+        parameters.updateValue(deliveryMethodTypeModel?.deliveryMethodType ?? "0", forKey: "address_type")
         parameters.updateValue(cityId, forKey: "city_id")
         parameters.updateValue(cityName, forKey: "city_name")
         parameters.updateValue(pickupNodeId, forKey: "pickup_node_id")

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
RainbowPlanet/RainbowPlanet/Src/province_city_area.json