Ver código fonte

我的自提收货信息完成,接口保存后台有问题)

南鑫林 6 anos atrás
pai
commit
85c0f3ab20

+ 5 - 2
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditAddressTableViewCell.swift

@@ -98,6 +98,9 @@ class EditAddressTableViewCell: UITableViewCell {
         editTextField.rx.text.orEmpty.changed.subscribe(onNext: {
             [weak self] (text) in
             switch self?.indexPath!.row {
+            case 0:
+                self?.editTextField.text = String(describing: text.prefix(10))
+                break
             case 1:
                 self?.editTextField.text = String(describing: text.prefix(11))
                 break
@@ -156,10 +159,10 @@ class EditAddressTableViewCell: UITableViewCell {
         didSet {
             switch indexPath?.row {
             case 0:
-                editTextField.text = selfMentionContactsModel?.mobile
+                editTextField.text = selfMentionContactsModel?.name
                 break
             case 1:
-                editTextField.text = selfMentionContactsModel?.name
+                editTextField.text = selfMentionContactsModel?.mobile
                 break
             default:
                 break

+ 13 - 1
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/View/EditSelfMentionAddressView.swift

@@ -10,12 +10,19 @@ import UIKit
 
 class EditSelfMentionAddressView: BaseView {
     
+    
+    typealias DeleteClosure = () -> Void
+    var deleteClosure: DeleteClosure?
+    
     let titles = [["收货人","联系电话"]]
     let placeholderTitles = ["姓名","收件人电话号码"]
     var moblie : String = ""
     var name : String = ""
     var selfMentionContactsModel: SelfMentionContactsModel? {
         didSet {
+            if self.selfMentionContactsModel != nil {
+                 tableView.tableFooterView = editAddressFooterView
+            }
             tableView.reloadData()
         }
     }
@@ -45,12 +52,17 @@ class EditSelfMentionAddressView: BaseView {
         tableView.dataSource = self
         tableView.separatorStyle = .none
         tableView.rowHeight = 48
-        tableView.tableFooterView = editAddressFooterView
         return tableView
     }()
     private lazy var editAddressFooterView: EditAddressFooterView = {
         let editAddressFooterView = EditAddressFooterView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 44))
         editAddressFooterView.title = "删除该自提收货人信息"
+        editAddressFooterView.deleteClosure = {
+            [weak self] in
+            if let deleteClosure = self?.deleteClosure {
+                deleteClosure()
+            }
+        }
         return editAddressFooterView
     }()
 }

+ 31 - 13
RainbowPlanet/RainbowPlanet/Modules/MineModule/EditSelfMentionAddress/ViewController/EditSelfMentionAddressViewController.swift

@@ -13,10 +13,7 @@ class EditSelfMentionAddressViewController: BaseViewController {
     typealias SaveClosure = () -> Void
     var saveClosure : SaveClosure?
     
-    lazy var selfMentionContactsModel: SelfMentionContactsModel = {
-        let selfMentionContactsModel = SelfMentionContactsModel()
-        return selfMentionContactsModel
-    }()
+    var selfMentionContactsModel: SelfMentionContactsModel?
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -44,13 +41,20 @@ class EditSelfMentionAddressViewController: BaseViewController {
     private lazy var editSelfMentionAddressView: EditSelfMentionAddressView = {
         let editSelfMentionAddressView = EditSelfMentionAddressView()
         editSelfMentionAddressView.selfMentionContactsModel = selfMentionContactsModel
-        editSelfMentionAddressView.selfMentionContactsClosure = {
+        editSelfMentionAddressView.selfMentionContactsClosure = { //赋值
             [weak self] (moblie,name) in
-            self?.selfMentionContactsModel.mobile = moblie
-            self?.selfMentionContactsModel.name = name
+            self?.selfMentionContactsModel?.mobile = moblie
+            self?.selfMentionContactsModel?.name = name
         }
-        editSelfMentionAddressView.didSelectRowClosure = {
+        editSelfMentionAddressView.didSelectRowClosure = { //选中
             [weak self] indexPath in
+            
+        }
+        editSelfMentionAddressView.deleteClosure = { //删除
+            [weak self] in
+            if let selfMentionContactsModel = self?.selfMentionContactsModel {
+                self?.userDelExpreesContactsApi()
+            }
         }
         return editSelfMentionAddressView
     }()
@@ -58,12 +62,26 @@ class EditSelfMentionAddressViewController: BaseViewController {
     
     /// 新增、编辑 自提地址收货人信息
     func userSaveExpreesContactsApi() {
-        SwiftMoyaNetWorkServiceUser.shared().userSaveExpreesContactsApi(id: self.selfMentionContactsModel.id ?? 0 ,mobile: self.selfMentionContactsModel.mobile ?? "", name: self.selfMentionContactsModel.name ?? "") {
+        SwiftMoyaNetWorkServiceUser.shared().userSaveExpreesContactsApi(id: self.selfMentionContactsModel?.id ?? 0 ,mobile: self.selfMentionContactsModel?.mobile ?? "", name: self.selfMentionContactsModel?.name ?? "") {
             [weak self] (data) -> (Void) in
-            if let saveClosure = self?.saveClosure {
-                saveClosure()
-            }
-            self?.navigationController?.popViewController(animated: true)
+             self?.popVC()
+        }
+    }
+    
+    /// 删除 自提地址收货人信息
+    func userDelExpreesContactsApi() {
+        SwiftMoyaNetWorkServiceUser.shared().userDelExpreesContactsApi(id: self.selfMentionContactsModel?.id ?? 0) {
+            [weak self] (data) -> (Void) in
+            self?.popVC()
+        }
+    }
+    
+    
+    /// 返回到上一个页面
+    func popVC() {
+        if let saveClosure = self.saveClosure {
+            saveClosure()
         }
+        self.navigationController?.popViewController(animated: true)
     }
 }

+ 47 - 3
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionContactsList/View/SelfMentionContactsListTableViewCell.swift

@@ -7,9 +7,16 @@
 //
 
 import UIKit
+import RxCocoa
+import RxSwift
 
 class SelfMentionContactsListTableViewCell: UITableViewCell {
     
+    let disposeBag = DisposeBag()
+    
+    typealias EditClosure = (_ selfMentionContactsModel:SelfMentionContactsModel) -> Void
+    var editClosure : EditClosure?
+    
     class func cellWith(tableView:UITableView,indexPath:IndexPath) -> SelfMentionContactsListTableViewCell {
         let ID = "SelfMentionContactsListTableViewCell"
         tableView.register(SelfMentionContactsListTableViewCell.self, forCellReuseIdentifier: ID)
@@ -36,6 +43,7 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
     //MRAK: - 设置View
     private func setupViews() {
         self.selectionStyle = .none
+        addSubview(setDefalutButton)
         addSubview(nameLabel)
         addSubview(moblieLabel)
         addSubview(defalutLabel)
@@ -45,10 +53,16 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
     }
     
     private func setupLayouts() {
-        nameLabel.snp.makeConstraints { (make) in
+        
+        setDefalutButton.snp.makeConstraints { (make) in
+            make.centerY.equalToSuperview()
+            make.left.equalTo(14)
+        }
+        
+        nameLabel.snp.remakeConstraints { (make) in
             make.top.equalTo(26)
             make.bottom.equalTo(-26)
-            make.left.equalTo(66)
+            make.left.equalTo(98)
         }
         
         moblieLabel.snp.makeConstraints { (make) in
@@ -58,7 +72,7 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
         
         defalutLabel.snp.makeConstraints { (make) in
             make.centerY.equalTo(nameLabel)
-            make.left.equalTo(14)
+            make.left.equalTo(52)
             make.width.equalTo(36)
             make.height.equalTo(17)
         }
@@ -83,6 +97,13 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
         
     }
     
+    private lazy var setDefalutButton: UIButton = {
+        let setDefalutButton = UIButton(type: UIButton.ButtonType.custom)
+        setDefalutButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        setDefalutButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return setDefalutButton
+    }()
+    
     private lazy var nameLabel: UILabel = {
         let nameLabel = UILabel()
         nameLabel.textColor = k333333Color
@@ -126,6 +147,12 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
         editButton.setTitle("编辑", for: UIControl.State.normal)
         editButton.setTitleColor(k999999Color, for: UIControl.State.normal)
         editButton.titleLabel?.font = kRegularFont14
+        editButton.rx.tap.subscribe(onNext: {
+            [weak self] (data) in
+            if let editClosure = self?.editClosure {
+                editClosure((self?.selfMentionContactsModel)!)
+            }
+        }).disposed(by: disposeBag)
         return editButton
     }()
     
@@ -133,6 +160,23 @@ class SelfMentionContactsListTableViewCell: UITableViewCell {
         didSet {
             nameLabel.text = selfMentionContactsModel?.name
             moblieLabel.text = selfMentionContactsModel?.mobile
+            if selfMentionContactsModel?.isDefault == 0 {
+                setDefalutButton.isSelected = false
+                defalutLabel.isHidden = true
+                nameLabel.snp.remakeConstraints { (make) in
+                    make.top.equalTo(26)
+                    make.bottom.equalTo(-26)
+                    make.left.equalTo(52)
+                }
+            }else if selfMentionContactsModel?.isDefault == 1 {
+                setDefalutButton.isSelected = true
+                defalutLabel.isHidden = false
+                nameLabel.snp.remakeConstraints { (make) in
+                    make.top.equalTo(26)
+                    make.bottom.equalTo(-26)
+                    make.left.equalTo(98)
+                }
+            }
         }
     }
     

+ 9 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionContactsList/View/SelfMentionContactsListView.swift

@@ -13,6 +13,9 @@ class SelfMentionContactsListView: BaseView {
     typealias DidSelectRowClosure = (_ indexPath: IndexPath) -> Void
     var didSelectRowClosure : DidSelectRowClosure?
     
+    typealias EditClosure = (_ selfMentionContactsModel:SelfMentionContactsModel) -> Void
+    var editClosure : EditClosure?
+    
     var selfMentionContactsModels: Array<SelfMentionContactsModel>? {
         didSet {
             tableView.reloadData()
@@ -59,6 +62,12 @@ extension SelfMentionContactsListView: UITableViewDelegate,UITableViewDataSource
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = SelfMentionContactsListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
         cell.selfMentionContactsModel = selfMentionContactsModels?[indexPath.row]
+        cell.editClosure = {
+            [weak self] selfMentionContactsModel in
+            if let editClosure = self?.editClosure {
+                editClosure(selfMentionContactsModel)
+            }
+        }
         return cell
         
     }

+ 36 - 6
RainbowPlanet/RainbowPlanet/Modules/MineModule/SelfMentionContactsList/ViewController/SelfMentionContactsListViewController.swift

@@ -10,7 +10,6 @@ import UIKit
 
 class SelfMentionContactsListViewController: BaseViewController {
     
-    
     var selfMentionContactsModels : Array<SelfMentionContactsModel>?
     
     override func viewDidLoad() {
@@ -26,11 +25,7 @@ class SelfMentionContactsListViewController: BaseViewController {
         navigationBar.rightButton.titleLabel!.font = kRegularFont14
         navigationBar.onClickRightButton = {
             [weak self] in
-            let vc = EditSelfMentionAddressViewController()
-            vc.saveClosure = {
-                self?.userExpreesContactsListApi()
-            }
-            self?.navigationController?.pushViewController(vc, animated: true)
+            self?.pushEditSelfMention()
         }
         view.addSubview(selfMentionContactsListView)
     }
@@ -53,9 +48,36 @@ class SelfMentionContactsListViewController: BaseViewController {
     
     private lazy var selfMentionContactsListView: SelfMentionContactsListView = {
         let selfMentionContactsListView = SelfMentionContactsListView()
+        selfMentionContactsListView.editClosure = { //编辑,新增
+            [weak self] selfMentionContactsModel in
+            self?.pushEditSelfMention(selfMentionContactsModel: selfMentionContactsModel)
+        }
+        selfMentionContactsListView.didSelectRowClosure = {
+            [weak self] indexPath in
+            let selfMentionContactsModel = self?.selfMentionContactsModels?[indexPath.row]
+            self?.userSetExpreesContactsDefaultApi(id: selfMentionContactsModel?.id ?? 0)
+        }
         return selfMentionContactsListView
     }()
     
+    
+    /// 修改/新建
+    ///
+    /// - Parameter selfMentionContactsModel: 修改个人信息
+    func pushEditSelfMention(selfMentionContactsModel:SelfMentionContactsModel? = nil) -> Void {
+        let vc = EditSelfMentionAddressViewController()
+        vc.saveClosure = {
+            [weak self] in
+            self?.userExpreesContactsListApi()
+        }
+        if let selfMentionContactsModel = selfMentionContactsModel   {
+            vc.selfMentionContactsModel = selfMentionContactsModel
+        }
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+    
+    /// 自提收货人信息
     func userExpreesContactsListApi() {
         SwiftMoyaNetWorkServiceUser.shared().userExpreesContactsListApi {
             [weak self] (selfMentionContactsModels) -> (Void) in
@@ -63,5 +85,13 @@ class SelfMentionContactsListViewController: BaseViewController {
             self?.selfMentionContactsListView.selfMentionContactsModels = self?.selfMentionContactsModels
         }
     }
+    
+    /// 自提点收货人信息,设置默认
+    func userSetExpreesContactsDefaultApi(id:Int = 0) {
+        SwiftMoyaNetWorkServiceUser.shared().userSetExpreesContactsDefaultApi(id: id, completion: {
+            [weak self] (data) -> (Void) in
+            self?.userExpreesContactsListApi()
+        })
+    }
 
 }

+ 2 - 0
RainbowPlanet/RainbowPlanet/Service/Model/UserModel/SelfMentionContactsModel.swift

@@ -15,6 +15,7 @@ class SelfMentionContactsModel : NSObject, Mappable{
     var name : String?
     var uid : Int?
     var updatedAt : String?
+    var isDefault : Int?
     
     
     class func newInstance(map: Map) -> Mappable?{
@@ -32,6 +33,7 @@ class SelfMentionContactsModel : NSObject, Mappable{
         name <- map["name"]
         uid <- map["uid"]
         updatedAt <- map["updated_at"]
+        isDefault <- map["is_default"]
         
     }
     

+ 18 - 1
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift

@@ -407,7 +407,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     /// - Parameters:
     ///   - id: 收货人id
     ///   - completion: 完成
-    func userDelExpreesContactsApi(id:String = "",completion: @escaping apiCallBack) {
+    func userDelExpreesContactsApi(id:Int = 0,completion: @escaping apiCallBack) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(id, forKey: "id")
         SwiftProgressHUD.shared().showWait()
@@ -418,5 +418,22 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
             completion("")
         }
     }
+    
+    /// 自提点收货人信息,设置默认
+    ///
+    /// - Parameters:
+    ///   - id: 收货人id
+    ///   - completion: 完成
+    func userSetExpreesContactsDefaultApi(id:Int = 0,completion: @escaping apiCallBack) {
+        var parameters = Dictionary<String,Any>()
+        parameters.updateValue(id, forKey: "id")
+        SwiftProgressHUD.shared().showWait()
+        SwiftMoyaNetWorkManager.shared().request(target: MultiTarget(SwiftMoyaServiceUserApi.userSetExpreesContactsDefault(parameters: parameters))) {
+            (rootModel) in
+            let rootModel = rootModel as! RootModel
+            SwiftProgressHUD.shared().showText(rootModel.msg!)
+            completion("")
+        }
+    }
 
 }

+ 16 - 6
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaServiceUserApi.swift

@@ -77,6 +77,10 @@ public let kUserSaveExpreesContactsApi = "/user/saveExpreesContacts"
 /// 删除自提点收货人信息
 public let kUserDelExpreesContactsApi = "/user/delExpreesContacts"
 
+// MARK: - 自提点收货人信息,设置默认
+/// 自提点收货人信息,设置默认
+public let kUserSetExpreesContactsDefaultApi = "/user/setExpreesContactsDefault"
+
 /// 用户
 ///
 /// - userLogout: 登出
@@ -96,6 +100,7 @@ public let kUserDelExpreesContactsApi = "/user/delExpreesContacts"
 /// - userExpreesContactsList: 自提点收货人列表
 /// - userSaveExpreesContacts: 新增、编辑 自提地址收货人信息
 /// - userDelExpreesContacts: 删除自提点收货人信息
+/// - userSetExpreesContactsDefault: 自提点收货人信息,设置默认
 public enum SwiftMoyaServiceUserApi {
     case userLogout(parameters:Dictionary<String, Any>)
     case userRefresh(parameters:Dictionary<String, Any>)
@@ -114,6 +119,7 @@ public enum SwiftMoyaServiceUserApi {
     case userExpreesContactsList(parameters:Dictionary<String, Any>)
     case userSaveExpreesContacts(parameters:Dictionary<String, Any>)
     case userDelExpreesContacts(parameters:Dictionary<String, Any>)
+    case userSetExpreesContactsDefault(parameters:Dictionary<String, Any>)
     
 }
 
@@ -137,7 +143,8 @@ extension SwiftMoyaServiceUserApi: TargetType {
              .userAddressDelete,
              .userExpreesContactsList,
              .userSaveExpreesContacts,
-             .userDelExpreesContacts
+             .userDelExpreesContacts,
+             .userSetExpreesContactsDefault
             :
             return URL(string: kApiDataPrefix())!
         }
@@ -179,7 +186,8 @@ extension SwiftMoyaServiceUserApi: TargetType {
             return kUserSaveExpreesContactsApi
         case .userDelExpreesContacts:
             return kUserDelExpreesContactsApi
-
+        case .userSetExpreesContactsDefault:
+            return kUserSetExpreesContactsDefaultApi
         }
     }
 
@@ -201,7 +209,8 @@ extension SwiftMoyaServiceUserApi: TargetType {
              .userAddressDelete,
              .userExpreesContactsList,
              .userSaveExpreesContacts,
-             .userDelExpreesContacts
+             .userDelExpreesContacts,
+             .userSetExpreesContactsDefault
             :
             return .post
         }
@@ -228,7 +237,8 @@ extension SwiftMoyaServiceUserApi: TargetType {
              .userAddressDelete(var parameters),
              .userExpreesContactsList(var parameters),
              .userSaveExpreesContacts(var parameters),
-             .userDelExpreesContacts(var parameters)
+             .userDelExpreesContacts(var parameters),
+             .userSetExpreesContactsDefault(var parameters)
             :
             let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
             parameters.updateValue(sign, forKey: "sign")
@@ -267,8 +277,8 @@ extension SwiftMoyaServiceUserApi: TargetType {
              .userAddressDelete,
              .userExpreesContactsList,
              .userSaveExpreesContacts,
-             .userDelExpreesContacts
-             
+             .userDelExpreesContacts,
+             .userSetExpreesContactsDefault
             :
             return (headerParameters(headerType: .tokenHeader) as! [String : String])
         case .userLogout,