Commit af1d9fdc9cf9c09f669edecdfa41cdf069701bef

Authored by liushiyu
2 parents 569d375e 1fc3a88c
Showing 34 changed files with 1061 additions and 66 deletions
metaCode.xcodeproj/project.pbxproj
@@ -21,6 +21,9 @@ @@ -21,6 +21,9 @@
21 19565ECD2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */; }; 21 19565ECD2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */; };
22 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */; }; 22 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */; };
23 19565ED42AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ED32AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift */; }; 23 19565ED42AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565ED32AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift */; };
  24 + 1965FA3E2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1965FA3D2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift */; };
  25 + 1965FA402AFB38AA00F0F435 /* CNLiveAddGoodsSelectUploadImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1965FA3F2AFB38AA00F0F435 /* CNLiveAddGoodsSelectUploadImageView.swift */; };
  26 + 1965FA422AFB79EA00F0F435 /* CNLiveGoodsCategoryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1965FA412AFB79EA00F0F435 /* CNLiveGoodsCategoryController.swift */; };
24 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */; }; 27 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */; };
25 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */; }; 28 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */; };
26 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */; }; 29 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */; };
@@ -179,6 +182,9 @@ @@ -179,6 +182,9 @@
179 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsListClassifyView.swift; sourceTree = "<group>"; }; 182 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsListClassifyView.swift; sourceTree = "<group>"; };
180 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsListCell.swift; sourceTree = "<group>"; }; 183 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopGoodsListCell.swift; sourceTree = "<group>"; };
181 19565ED32AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopAddEditGoodsModel.swift; sourceTree = "<group>"; }; 184 19565ED32AF9FEB4007D6727 /* CNLiveShopAddEditGoodsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopAddEditGoodsModel.swift; sourceTree = "<group>"; };
  185 + 1965FA3D2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopAddGoodsSingleView.swift; sourceTree = "<group>"; };
  186 + 1965FA3F2AFB38AA00F0F435 /* CNLiveAddGoodsSelectUploadImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAddGoodsSelectUploadImageView.swift; sourceTree = "<group>"; };
  187 + 1965FA412AFB79EA00F0F435 /* CNLiveGoodsCategoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveGoodsCategoryController.swift; sourceTree = "<group>"; };
182 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNSlideBaseNavigationController.swift; sourceTree = "<group>"; }; 188 19BB1FDE2AEA3A450094D962 /* CNSlideBaseNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNSlideBaseNavigationController.swift; sourceTree = "<group>"; };
183 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleController.swift; sourceTree = "<group>"; }; 189 19BB1FE02AEB5C220094D962 /* CNLiveShopConsoleController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleController.swift; sourceTree = "<group>"; };
184 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleViewModel.swift; sourceTree = "<group>"; }; 190 19BB1FE22AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopConsoleViewModel.swift; sourceTree = "<group>"; };
@@ -348,17 +354,20 @@ @@ -348,17 +354,20 @@
348 children = ( 354 children = (
349 19565EC42AF8AD1F007D6727 /* CNLiveShopProductManagerController.swift */, 355 19565EC42AF8AD1F007D6727 /* CNLiveShopProductManagerController.swift */,
350 19565EC62AF8AD38007D6727 /* CNLiveShopNewProductController.swift */, 356 19565EC62AF8AD38007D6727 /* CNLiveShopNewProductController.swift */,
  357 + 1965FA412AFB79EA00F0F435 /* CNLiveGoodsCategoryController.swift */,
351 ); 358 );
352 path = GoodsManager; 359 path = GoodsManager;
353 sourceTree = "<group>"; 360 sourceTree = "<group>";
354 }; 361 };
355 - 19565ED02AF8D904007D6727 /* GoodsList */ = { 362 + 19565ED02AF8D904007D6727 /* GoodsManager */ = {
356 isa = PBXGroup; 363 isa = PBXGroup;
357 children = ( 364 children = (
358 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */, 365 19565ECC2AF8D256007D6727 /* CNLiveShopGoodsListClassifyView.swift */,
359 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */, 366 19565ECE2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift */,
  367 + 1965FA3D2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift */,
  368 + 1965FA3F2AFB38AA00F0F435 /* CNLiveAddGoodsSelectUploadImageView.swift */,
360 ); 369 );
361 - path = GoodsList; 370 + path = GoodsManager;
362 sourceTree = "<group>"; 371 sourceTree = "<group>";
363 }; 372 };
364 19565ED12AF9FE56007D6727 /* GoodsManager */ = { 373 19565ED12AF9FE56007D6727 /* GoodsManager */ = {
@@ -769,7 +778,7 @@ @@ -769,7 +778,7 @@
769 7CD675232A26F8F8008354C1 /* View */ = { 778 7CD675232A26F8F8008354C1 /* View */ = {
770 isa = PBXGroup; 779 isa = PBXGroup;
771 children = ( 780 children = (
772 - 19565ED02AF8D904007D6727 /* GoodsList */, 781 + 19565ED02AF8D904007D6727 /* GoodsManager */,
773 7CD675372A2740B0008354C1 /* CNUpSlideViewRemindView.swift */, 782 7CD675372A2740B0008354C1 /* CNUpSlideViewRemindView.swift */,
774 7CD6753B2A2740B0008354C1 /* CNDownSlideView.swift */, 783 7CD6753B2A2740B0008354C1 /* CNDownSlideView.swift */,
775 7CD675382A2740B0008354C1 /* CNMainView.swift */, 784 7CD675382A2740B0008354C1 /* CNMainView.swift */,
@@ -1171,6 +1180,7 @@ @@ -1171,6 +1180,7 @@
1171 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, 1180 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */,
1172 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */, 1181 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */,
1173 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, 1182 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */,
  1183 + 1965FA402AFB38AA00F0F435 /* CNLiveAddGoodsSelectUploadImageView.swift in Sources */,
1174 7C83B43E2A52B8BA004BF4A4 /* CNHomePageViewModel.swift in Sources */, 1184 7C83B43E2A52B8BA004BF4A4 /* CNHomePageViewModel.swift in Sources */,
1175 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */, 1185 19BB1FDF2AEA3A450094D962 /* CNSlideBaseNavigationController.swift in Sources */,
1176 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */, 1186 19BB1FE12AEB5C220094D962 /* CNLiveShopConsoleController.swift in Sources */,
@@ -1178,6 +1188,7 @@ @@ -1178,6 +1188,7 @@
1178 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */, 1188 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */,
1179 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */, 1189 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */,
1180 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */, 1190 19BB1FE32AEB8B7C0094D962 /* CNLiveShopConsoleViewModel.swift in Sources */,
  1191 + 1965FA422AFB79EA00F0F435 /* CNLiveGoodsCategoryController.swift in Sources */,
1181 792E57D92A3AA2F2005834DB /* CNLiveCommonBaseModel.swift in Sources */, 1192 792E57D92A3AA2F2005834DB /* CNLiveCommonBaseModel.swift in Sources */,
1182 791C1C862AFB2EB4003E6362 /* CNLiveShopOrderExpressViewController.swift in Sources */, 1193 791C1C862AFB2EB4003E6362 /* CNLiveShopOrderExpressViewController.swift in Sources */,
1183 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */, 1194 7CD6753E2A2740B0008354C1 /* CNUpSlideView.swift in Sources */,
@@ -1233,6 +1244,7 @@ @@ -1233,6 +1244,7 @@
1233 791C1C8A2AFB84EE003E6362 /* CNLiveShopOrderExpressListViewController.swift in Sources */, 1244 791C1C8A2AFB84EE003E6362 /* CNLiveShopOrderExpressListViewController.swift in Sources */,
1234 7CD6753F2A2740B0008354C1 /* CNDownSlideViewRemindView.swift in Sources */, 1245 7CD6753F2A2740B0008354C1 /* CNDownSlideViewRemindView.swift in Sources */,
1235 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */, 1246 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */,
  1247 + 1965FA3E2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift in Sources */,
1236 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */, 1248 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */,
1237 19BB1FEC2AF0AB8E0094D962 /* CNLiveDownShopDetailController.swift in Sources */, 1249 19BB1FEC2AF0AB8E0094D962 /* CNLiveDownShopDetailController.swift in Sources */,
1238 798A44E82A30134400815935 /* CNLiveMineHeaderView.swift in Sources */, 1250 798A44E82A30134400815935 /* CNLiveMineHeaderView.swift in Sources */,
metaCode/Classes/Main/HomePage/Controller/CNLiveShopConsoleController.swift
@@ -112,7 +112,7 @@ class CNLiveShopConsoleController: CNLiveBaseViewController, UICollectionViewDel @@ -112,7 +112,7 @@ class CNLiveShopConsoleController: CNLiveBaseViewController, UICollectionViewDel
112 112
113 }else if itemModel.type == CNLiveShopConsoleType.DDGL.rawValue{ 113 }else if itemModel.type == CNLiveShopConsoleType.DDGL.rawValue{
114 //订单管理 114 //订单管理
115 - 115 + currentViewController()?.navigationController?.pushViewController(CNLiveShopOrderViewController.init(), animated: true)
116 } 116 }
117 // else if itemModel.type == CNLiveShopConsoleType.SH.rawValue{ 117 // else if itemModel.type == CNLiveShopConsoleType.SH.rawValue{
118 // //退款/售后 118 // //退款/售后
metaCode/Classes/Main/HomePage/Controller/CNMetaCodeHomePageController.swift
@@ -390,9 +390,10 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -390,9 +390,10 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
390 if (identityModel.auth == true){ 390 if (identityModel.auth == true){
391 bannerView?.baseScrollView.isScrollEnabled = true 391 bannerView?.baseScrollView.isScrollEnabled = true
392 }else{ 392 }else{
  393 + //未认证
393 if (identityModel.downType == 3 || identityModel.downType == 4 || identityModel.upType == 3 || identityModel.upType == 4) 394 if (identityModel.downType == 3 || identityModel.downType == 4 || identityModel.upType == 3 || identityModel.upType == 4)
394 - {  
395 -// bannerView?.baseScrollView.isScrollEnabled = false 395 + {//电商工作台和详情页 禁止滑动
  396 + bannerView?.baseScrollView.isScrollEnabled = false
396 }else{ 397 }else{
397 bannerView?.baseScrollView.isScrollEnabled = true 398 bannerView?.baseScrollView.isScrollEnabled = true
398 } 399 }
metaCode/Classes/Main/HomePage/Controller/GoodsManager/CNLiveGoodsCategoryController.swift 0 → 100644
  1 +//
  2 +// CNLiveGoodsCategoryController.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2023/11/8.
  6 +//
  7 +
  8 +import Foundation
  9 +
  10 +class CNLiveGoodsCategoryController: CNLiveBaseViewController {
  11 +
  12 + override func viewDidLoad() {
  13 + super.viewDidLoad()
  14 +
  15 + }
  16 +}
metaCode/Classes/Main/HomePage/Controller/GoodsManager/CNLiveShopNewProductController.swift
@@ -30,28 +30,433 @@ class CNLiveShopNewProductController:CNLiveBaseViewController{ @@ -30,28 +30,433 @@ class CNLiveShopNewProductController:CNLiveBaseViewController{
30 return dataModel 30 return dataModel
31 }() 31 }()
32 32
  33 + var selectCategoryVC = CNLiveGoodsCategoryController()
  34 + lazy var bottomNavView :UIView = {
  35 + let bottomNavView = UIView(frame: CGRect(x: 0, y: KSreenHeight-KTabBarHeight, width: self.view.width, height: KTabBarHeight))
  36 + bottomNavView.backgroundColor = HexColor("F2F2F2")
  37 + return bottomNavView
  38 + }()
  39 +
33 override func viewDidLoad() { 40 override func viewDidLoad() {
34 super.viewDidLoad() 41 super.viewDidLoad()
35 self.setUI() 42 self.setUI()
36 - self.bgScrollView.backgroundColor = .red 43 + self.bgScrollView.backgroundColor = .white
37 self.view.addSubview(self.bgScrollView) 44 self.view.addSubview(self.bgScrollView)
38 - self.type = .add 45 + self.initBgScrollViewContentView()
39 } 46 }
  47 +
  48 + override func viewWillLayoutSubviews() {
  49 + super.viewWillLayoutSubviews()
  50 + self.bgScrollView.frame = CGRect(x: 0, y: KNavigationHeight, width: KSreenWidth, height: KSreenHeight-KNavigationHeight-KTabBarHeight)
  51 + var lastView:UIView? = nil
  52 + for i in 0..<self.dataModel.list.count{
  53 + let singleView = self.view.viewWithTag(i+1) as! CNLiveShopAddGoodsSingleView
  54 + singleView.frame = CGRect(x: 0, y: lastView?.bottom ?? 0, width: self.bgScrollView.width, height: singleView.height)
  55 + if i+1 == 15{
  56 + singleView.frame = CGRect(x: 0, y: lastView?.bottom ?? 0, width: self.bgScrollView.width, height: 0.001)
  57 + }
  58 + lastView = singleView
  59 + }
  60 + self.bgScrollView.contentSize = CGSize(width: self.bgScrollView.width, height: lastView?.bottom ?? 0)
  61 + self.selectCategoryVC.view.frame = CGRect(x: 0, y: 0, width: self.view.width, height: self.view.height)
  62 + }
  63 +
40 func setUI(){ 64 func setUI(){
41 navigationBarHidden = false 65 navigationBarHidden = false
42 titleName = "新增商品" 66 titleName = "新增商品"
  67 + self.initBottomView()
  68 + }
  69 + func initBottomView(){
  70 + self.view.addSubview(self.bottomNavView)
  71 + self.bottomNavView.backgroundColor = .white
  72 + let previewBtn = UIButton(type: .custom)
  73 + previewBtn.frame = CGRect(x: 0, y: 0, width: 130, height: KTabBarHeight)
  74 + previewBtn.setTitle("预览", for: .normal)
  75 + previewBtn.setTitleColor(HexColor("#3A3A3A"), for: .normal)
  76 + previewBtn.titleLabel?.font = Font_15
  77 + previewBtn.addTarget(self, action: #selector(previewBtnClick), for: .touchUpInside)
  78 + self.bottomNavView.addSubview(previewBtn)
43 79
  80 + let saveBtn = UIButton(type: .custom)
  81 + saveBtn.frame = CGRect(x: previewBtn.right, y: 0, width: self.view.width - previewBtn.right, height: KTabBarHeight)
  82 + saveBtn.setTitle("保存", for: .normal)
  83 + saveBtn.setTitleColor(HexColor("#FFFFFF"), for: .normal)
  84 + saveBtn.titleLabel?.font = Font_15
  85 + saveBtn.addTarget(self, action: #selector(saveBtnClick), for: .touchUpInside)
  86 + saveBtn.backgroundColor = UIColor(hue:0.31, saturation:0.39, brightness:0.77, alpha:1.00)
  87 + self.bottomNavView.addSubview(saveBtn)
44 } 88 }
  89 +
45 func initBgScrollViewContentView(){ 90 func initBgScrollViewContentView(){
46 - if self.type == .add{  
47 -// self.dataModel.initDataSource()  
48 -// self.dataModel.list  
49 - }else if self.type == .edit{ 91 + if self.type == .edit{
50 92
51 - }else{ 93 + }
  94 + self.dataModel.initDataSource()
  95 + for i in 0..<self.dataModel.list.count {
  96 + let model = self.dataModel.list[i]
  97 + let singleView = CNLiveShopAddGoodsSingleView.init(frame: CGRect(x: 0, y: 0, width: KSreenWidth, height: 50))
  98 + singleView.addEditGoodsListModel = model
  99 + singleView.tag = i+1
  100 + //完成frame更新通知
  101 + singleView.updateFrameBlock = {
  102 + self.viewWillLayoutSubviews()
  103 + }
  104 + singleView.tapBlock = { single in
  105 + // TODO:
  106 +// if (single.tag == 1) {
  107 +// //点击了商品分类
  108 +//
  109 +// if (self.type == DSShopGoodsManageDetailsVCTypeEdit) {
  110 +// DS_showMessage(@"商品分类不能修改");
  111 +// return;
  112 +// }
  113 +// [weakSelf displaySelectCategoryVC];
  114 +// }
  115 +// else if([single.addEditGoodsListModel.title isEqualToString:@"店铺分类"])
  116 +// {
  117 +// //点击了店铺分类
  118 +// [weakSelf displaySelectShopClassifyVC];
  119 +// }
  120 + }
52 121
  122 + self.bgScrollView.addSubview(singleView)
53 } 123 }
54 -  
55 } 124 }
56 125
  126 + // MARK: - BtnAction
  127 + @objc func previewBtnClick(){
  128 + /*
  129 + //商品轮播
  130 + let singleView4 = self.bgScrollView.viewWithTag(4) as! CNLiveShopAddGoodsSingleView
  131 + //商品名称
  132 + let singleView5 = self.bgScrollView.viewWithTag(5) as! CNLiveShopAddGoodsSingleView
  133 + //商品副标题
  134 + let singleView6 = self.bgScrollView.viewWithTag(6) as! CNLiveShopAddGoodsSingleView
  135 + //本店售价
  136 + let singleView7 = self.bgScrollView.viewWithTag(7) as! CNLiveShopAddGoodsSingleView
  137 + //市场售价
  138 + let singleView8 = self.bgScrollView.viewWithTag(8) as! CNLiveShopAddGoodsSingleView
  139 + //商品详情图
  140 + let singleView13 = self.bgScrollView.viewWithTag(13) as! CNLiveShopAddGoodsSingleView
  141 + //品名
  142 + let singleView18 = self.bgScrollView.viewWithTag(18) as! CNLiveShopAddGoodsSingleView
  143 + //规格
  144 + let singleView19 = self.bgScrollView.viewWithTag(19) as! CNLiveShopAddGoodsSingleView
  145 + //寄送区域
  146 + let singleView20 = self.bgScrollView.viewWithTag(20) as! CNLiveShopAddGoodsSingleView
  147 + //发货时效
  148 + let singleView21 = self.bgScrollView.viewWithTag(21) as! CNLiveShopAddGoodsSingleView
  149 +// let bannersSelectImageUrls = singleView4.uploadImageView.getCurrentSelectImageUrls
  150 +// let bannersSelectImageUrls = singleView4.uploadImageView.getCurrentSelectVideoUrl
  151 +// let bannerSelectVideoImage = singleView4.uploadImageView.getCurrentSelectLocalVideoUrlFirstImage
  152 +// let contentDetailsSelectImageUrls = singleView13.uploadImageView.getCurrentSelectImageUrls
  153 +
  154 + if (bannersSelectImageUrls.count == 0 && bannerSelectVideoUrl.count == 0) {
  155 + showMessage(message: "请选择商品轮播")
  156 + return
  157 + }else if (singleView5.contentTextField.text?.count == 0) {
  158 + showMessage(message: "请输入商品名称")
  159 + return
  160 + }else if (singleView7.contentTextField.text?.count == 0) {
  161 + showMessage(message: "请输入本店售价")
  162 + return
  163 + }else if (contentDetailsSelectImageUrls.count == 0) {
  164 + showMessage(message: "请选择商品详情图")
  165 + return
  166 + }
  167 + else if (self.selectShopClassifyVC.firCategoryId.count == 0) {
  168 + showMessage(message: "请选择店铺分类")
  169 + return
  170 + }
  171 +
  172 + BKShopGoodsDetailsModel * goodsDetailsModel = [[BKShopGoodsDetailsModel alloc] init];
  173 + NSMutableArray * bannerImage = [NSMutableArray array];
  174 + for (NSString * imageUrl in bannersSelectImageUrls) {
  175 + BKGoodsDetailsImageModel * model = [[BKGoodsDetailsImageModel alloc] init];
  176 + model.simg = imageUrl;
  177 + [bannerImage addObject:model];
  178 + }
  179 + goodsDetailsModel.image = [bannerImage copy];
  180 + DSGoodsDetailsBannerVideosModel * banner_video = [[DSGoodsDetailsBannerVideosModel alloc] init];
  181 + if (bannerSelectVideoImage) {
  182 + banner_video.video_image = bannerSelectVideoImage;
  183 + }else {
  184 + banner_video.video_img = self.shopGoodsDetailsModel.video.video_img;
  185 + }
  186 + banner_video.video_url = bannerSelectVideoUrl;
  187 + goodsDetailsModel.video = banner_video;
  188 + goodsDetailsModel.title = singleView5.contentTextField.text;
  189 + goodsDetailsModel.ads = singleView6.contentTextView.text;
  190 + goodsDetailsModel.price = singleView7.contentTextField.text;
  191 + goodsDetailsModel.prices = singleView8.contentTextField.text;
  192 + goodsDetailsModel.category_id = self.selectShopClassifyVC.firCategoryId;
  193 + goodsDetailsModel.category_id2 = self.selectShopClassifyVC.secCategoryId;
  194 +
  195 + NSMutableArray * contentDetailsImage = [NSMutableArray array];
  196 + for (NSString * imageUrl in contentDetailsSelectImageUrls) {
  197 + BKGoodsDetailsContentModel * model = [[BKGoodsDetailsContentModel alloc] init];
  198 + model.simg = imageUrl;
  199 + [contentDetailsImage addObject:model];
  200 + }
  201 + goodsDetailsModel.detail_img = [contentDetailsImage copy];
  202 +
  203 + NSMutableArray * kvArray = [[NSMutableArray alloc] init];
  204 + [kvArray addObject:@{@"k":@"品名",@"v":singleView18.contentTextField.text}];
  205 + [kvArray addObject:@{@"k":@"规格",@"v":singleView19.contentTextField.text}];
  206 + [kvArray addObject:@{@"k":@"寄送区域",@"v":singleView20.contentTextView.text}];
  207 + [kvArray addObject:@{@"k":@"发货时效",@"v":singleView21.contentTextField.text}];
  208 +
  209 + NSMutableArray * tempArray = [self.bgScrollView.subviews mutableCopy];
  210 + [tempArray removeObjectsInRange:NSMakeRange(0, [tempArray indexOfObject:singleView19])];
  211 + if (tempArray.count > 2) {
  212 + for (DSShopGoodsManageDetailsSingleView * singleView in tempArray) {
  213 + if ([singleView isKindOfClass:DSShopGoodsManageDetailsSingleView.class]) {
  214 + if (singleView.contentTextField.text.length > 0 && ![kvArray containsObject:@{@"k":singleView.model.title,@"v":singleView.contentTextField.text}]) {
  215 + [kvArray addObject:@{@"k":singleView.model.title,@"v":singleView.contentTextField.text}];
  216 + }
  217 + }
  218 + }
  219 + }
  220 + goodsDetailsModel.attrArray = kvArray;
  221 +
  222 + BKShopGoodsDetailsViewController * vc = [[BKShopGoodsDetailsViewController alloc] init];
  223 + vc.type = BKShopGoodsDetailsVCTypePreview;
  224 + vc.detailsModel = goodsDetailsModel;
  225 + vc.goodsId = self.goodsId;
  226 + [self dsPushViewController:vc animated:YES];
  227 + */
  228 + }
  229 + @objc func saveBtnClick(){
  230 + /*
  231 + DSShopGoodsManageDetailsSingleView * singleView4 = [self.bgScrollView viewWithTag:4];//商品轮播
  232 + DSShopGoodsManageDetailsSingleView * singleView5 = [self.bgScrollView viewWithTag:5];//商品名称
  233 + DSShopGoodsManageDetailsSingleView * singleView6 = [self.bgScrollView viewWithTag:6];//商品副标题
  234 + DSShopGoodsManageDetailsSingleView * singleView7 = [self.bgScrollView viewWithTag:7];//本店售价
  235 + DSShopGoodsManageDetailsSingleView * singleView8 = [self.bgScrollView viewWithTag:8];//市场售价
  236 + DSShopGoodsManageDetailsSingleView * singleView9 = [self.bgScrollView viewWithTag:9];//商品重量
  237 + DSShopGoodsManageDetailsSingleView * singleView10 = [self.bgScrollView viewWithTag:10];//最低起售
  238 + DSShopGoodsManageDetailsSingleView * singleView11 = [self.bgScrollView viewWithTag:11];//上架
  239 +
  240 + DSShopGoodsManageDetailsSingleView * singleView13 = [self.bgScrollView viewWithTag:13];//商品详情图
  241 + DSShopGoodsManageDetailsSingleView * singleView14 = [self.bgScrollView viewWithTag:14];//商品运费
  242 + DSShopGoodsManageDetailsSingleView * singleView15 = [self.bgScrollView viewWithTag:15];//是否支持退货
  243 + DSShopGoodsManageDetailsSingleView * singleView16 = [self.bgScrollView viewWithTag:16];//商品单位
  244 +
  245 + DSShopGoodsManageDetailsSingleView * singleView18 = [self.bgScrollView viewWithTag:18];//品名
  246 + DSShopGoodsManageDetailsSingleView * singleView19 = [self.bgScrollView viewWithTag:19];//规格
  247 + DSShopGoodsManageDetailsSingleView * singleView20 = [self.bgScrollView viewWithTag:20];//寄送区域
  248 + DSShopGoodsManageDetailsSingleView * singleView21 = [self.bgScrollView viewWithTag:21];//发货时效
  249 +
  250 +
  251 + NSArray * bannersSelectImageUrls = [singleView4.uploadImageView getCurrentSelectImageUrls];
  252 + NSMutableArray * bannerImage = [NSMutableArray array];
  253 + for (NSString * imageUrl in bannersSelectImageUrls) {
  254 + [bannerImage addObject:@{@"img":imageUrl, @"ord":@"99"}];
  255 + }
  256 + NSData * bannerImageData = [NSJSONSerialization dataWithJSONObject:bannerImage options:NSJSONWritingPrettyPrinted error:nil];
  257 + NSString * bannerImageStr = [[NSString alloc] initWithData:bannerImageData encoding:NSUTF8StringEncoding];
  258 + bannerImageStr = [bannerImageStr stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
  259 + bannerImageStr = [bannerImageStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];
  260 + bannerImageStr = [bannerImageStr stringByReplacingOccurrencesOfString:@"\\" withString:@""];
  261 + bannerImageStr = [bannerImageStr stringByReplacingOccurrencesOfString:@" " withString:@""];
  262 +
  263 + NSString * bannerSelectVideoUrl = [singleView4.uploadImageView getCurrentSelectVideoUrl];
  264 +
  265 + NSArray * contentDetailsSelectImageUrls = [singleView13.uploadImageView getCurrentSelectImageUrls];
  266 + NSMutableArray * contentDetailsImage = [NSMutableArray array];
  267 + for (NSString * imageUrl in contentDetailsSelectImageUrls) {
  268 + [contentDetailsImage addObject:@{@"img":imageUrl, @"ord":@"99"}];
  269 + }
  270 + NSData * contentDetailsImageData = [NSJSONSerialization dataWithJSONObject:contentDetailsImage options:NSJSONWritingPrettyPrinted error:nil];
  271 + NSString * contentDetailsImageStr = [[NSString alloc] initWithData:contentDetailsImageData encoding:NSUTF8StringEncoding];
  272 + contentDetailsImageStr = [contentDetailsImageStr stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
  273 + contentDetailsImageStr = [contentDetailsImageStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];
  274 + contentDetailsImageStr = [contentDetailsImageStr stringByReplacingOccurrencesOfString:@"\\" withString:@""];
  275 + contentDetailsImageStr = [contentDetailsImageStr stringByReplacingOccurrencesOfString:@" " withString:@""];
  276 +
  277 + if (self.type == DSShopGoodsManageDetailsVCTypeAdd && [self.selectCategoryVC.thiCategoryId length] == 0) {
  278 + DS_showMessage(@"请选择商品分类");
  279 + return;
  280 + }
  281 + else if (!self.selectShopClassifyVC.firCategoryId ||[DS_ToString(self.selectShopClassifyVC.firCategoryId) length] == 0
  282 + || [DS_ToString(self.selectShopClassifyVC.firCategoryId) isEqualToString:@"0"]) {
  283 + DS_showMessage(@"请选择店铺分类");
  284 + return;
  285 + }
  286 + else if ([bannersSelectImageUrls count] == 0 && [bannerSelectVideoUrl length] == 0) {
  287 + DS_showMessage(@"请选择商品轮播");
  288 + return;
  289 + }else if ([[self strimStr:singleView5.contentTextField.text] length] == 0) {
  290 + DS_showMessage(@"请输入商品名称");
  291 + return;
  292 + }
  293 + else if ([singleView5.contentTextField.text length] > 50) {
  294 + DS_showMessage(@"商品名称最多支持50个字");
  295 + return;
  296 + }
  297 + else if ([singleView6.contentTextView.text length] > 30)
  298 + {
  299 + DS_showMessage(@"副商品名称最多支持30个字");
  300 + return;
  301 + }else if ([singleView7.contentTextField.text length] == 0) {
  302 + DS_showMessage(@"请输入本店售价");
  303 + return;
  304 + }else if ([singleView7.contentTextField.text onlyNumber] && [singleView7.contentTextField.text length] >= DSMaxPrice) {
  305 + DS_showMessage(@"请输入正确的售价");
  306 + return;
  307 + }else if ([singleView8.contentTextField.text onlyNumber] && [singleView8.contentTextField.text length] >= DSMaxPrice) {
  308 + DS_showMessage(@"请输入正确的市场售价");
  309 + return;
  310 + }else if ([singleView8.contentTextField.text length] == 0) {
  311 + DS_showMessage(@"请输入的市场售价");
  312 + return;
  313 + }else if ([singleView10.countTF.text length] >= 5) {
  314 + DS_showMessage(@"请输入正确的起售件数");
  315 + return;
  316 + }else if ([contentDetailsSelectImageUrls count] == 0) {
  317 + DS_showMessage(@"请选择商品详情图");
  318 + return;
  319 + }else if ([[self strimStr:singleView18.contentTextField.text] length] == 0) {
  320 + DS_showMessage(@"请输入品名");
  321 + return;
  322 + }else if ([[self strimStr:singleView19.contentTextField.text] length] == 0) {
  323 + DS_showMessage(@"请输入规格");
  324 + return;
  325 + }else if ([[self strimStr:singleView20.contentTextView.text] length] == 0) {
  326 + DS_showMessage(@"请输入寄送区域");
  327 + return;
  328 + }else if ([singleView21.contentTextField.text length] == 0) {
  329 + DS_showMessage(@"请输入发货时效");
  330 + return;
  331 + }
  332 +
  333 +
  334 + NSMutableArray * kvArray = [[NSMutableArray alloc] init];
  335 + [kvArray addObject:@{@"k":@"品名",@"v":singleView18.contentTextField.text}];
  336 + [kvArray addObject:@{@"k":@"规格",@"v":singleView19.contentTextField.text}];
  337 + [kvArray addObject:@{@"k":@"寄送区域",@"v":singleView20.contentTextView.text}];
  338 + [kvArray addObject:@{@"k":@"发货时效",@"v":singleView21.contentTextField.text}];
  339 +
  340 + NSMutableArray * tempArray = [self.bgScrollView.subviews mutableCopy];
  341 + [tempArray removeObjectsInRange:NSMakeRange(0, [tempArray indexOfObject:singleView21])];
  342 + if (tempArray.count > 2) {
  343 + for (DSShopGoodsManageDetailsSingleView * singleView in tempArray) {
  344 + if ([singleView isKindOfClass:DSShopGoodsManageDetailsSingleView.class]) {
  345 + if (singleView.contentTextField.text.length > 0 && ![kvArray containsObject:@{@"k":singleView.model.title,@"v":singleView.contentTextField.text}]) {
  346 + [kvArray addObject:@{@"k":singleView.model.title,@"v":singleView.contentTextField.text}];
  347 + }
  348 + }
  349 + }
  350 + }
  351 +
  352 + for (int i = 4; i < 20; i ++) {
  353 + if (i == 11 || i == 16) continue;
  354 + DSShopGoodsManageDetailsSingleView * singleView = [self.bgScrollView viewWithTag:i];
  355 + NSString * content = [singleView.contentTextField.text isNotBlank] ? singleView.contentTextField.text : singleView.contentTextView.text;
  356 + if ([self stringContainsEmoji:content]) {
  357 + DS_showMessage(@"参数不能添加表情");
  358 + return;
  359 + }
  360 + }
  361 +
  362 +
  363 + for (NSDictionary * subDict in kvArray) {
  364 + if ([self stringContainsEmoji:[subDict objectForKey:@"k"]]) {
  365 + DS_showMessage(@"规格参数不能添加表情");
  366 + return;
  367 + }
  368 + if ([self stringContainsEmoji:[subDict objectForKey:@"v"]]) {
  369 + DS_showMessage(@"规格参数不能添加表情");
  370 + return;
  371 + }
  372 + }
  373 +
  374 + NSString *category_id = @"";
  375 + if (![NSString isEmpty:self.selectShopClassifyVC.secCategoryId]) {
  376 + category_id = self.selectShopClassifyVC.secCategoryId;
  377 + }
  378 + else
  379 + {
  380 + category_id = self.selectShopClassifyVC.firCategoryId;
  381 + }
  382 +
  383 +
  384 + [self.view showLoading];
  385 + if (self.type == DSShopGoodsManageDetailsVCTypeAdd) {
  386 + [DSShopRequest postGoodsAddWithUid:DS_USER_MODEL.uid
  387 + groupid3:self.selectCategoryVC.thiCategoryId
  388 + bannerImg:bannerImageStr
  389 + simg:[bannersSelectImageUrls firstObject]
  390 + video:bannerSelectVideoUrl
  391 + title:singleView5.contentTextField.text
  392 + ads:singleView6.contentTextView.text
  393 + price:singleView7.contentTextField.text
  394 + prices:singleView8.contentTextField.text
  395 + kg:singleView9.contentTextField.text
  396 + unit:singleView16.contentTextField.text
  397 + state:singleView11.contentSwitch.on ? @"2" : @"1"
  398 + storage:[kvArray mj_JSONString]
  399 + infoImg:contentDetailsImageStr
  400 + yunfei:singleView14.contentTextField.text
  401 + min_count:singleView10.countTF.text
  402 + isRefund:@"0"//singleView15.contentSwitch.on ? @"0" : @"1"
  403 + category_id:category_id
  404 + result:^(NSDictionary * _Nonnull jsonData, NSString * _Nonnull errorMessage) {
  405 + [self.view hideLoading];
  406 + if (errorMessage) {
  407 + DS_showMessage(errorMessage);
  408 + return;
  409 + }
  410 + DS_showMessage(@"发布成功");
  411 + [[NSNotificationCenter defaultCenter] postNotificationName:kDSGoodsManageAddNotification object:nil];
  412 +
  413 + for (int i = 0; i < [self.disposeDataModel.list count]; i++) {
  414 + DSShopGoodsManageDetailsSingleView * singleView = (DSShopGoodsManageDetailsSingleView*)[self.view viewWithTag:i+1];
  415 + if (singleView.model.style == 3) {
  416 + [singleView.uploadImageView deleteReplaceImageUrlAfterSuccessUploadThings];
  417 + }
  418 + }
  419 +
  420 + [self dsPopViewControllerAnimated:YES];
  421 + }];
  422 + }else {
  423 + [DSShopRequest postGoodsEditWithGoodsId:self.goodsId
  424 + uid:DS_USER_MODEL.uid
  425 + bannerImg:bannerImageStr
  426 + simg:[bannersSelectImageUrls firstObject]
  427 + video:bannerSelectVideoUrl
  428 + title:singleView5.contentTextField.text
  429 + ads:singleView6.contentTextView.text
  430 + price:singleView7.contentTextField.text
  431 + prices:singleView8.contentTextField.text
  432 + kg:singleView9.contentTextField.text
  433 + unit:singleView16.contentTextField.text
  434 + state:singleView11.contentSwitch.on ? @"2" : @"1"
  435 + storage:[kvArray mj_JSONString]
  436 + infoImg:contentDetailsImageStr
  437 + yunfei:singleView14.contentTextField.text
  438 + min_count:singleView10.countTF.text
  439 + isRefund:@"0"//singleView15.contentSwitch.on ? @"0" : @"1"
  440 + category_id:category_id
  441 + result:^(NSDictionary * _Nonnull jsonData, NSString * _Nonnull errorMessage) {
  442 + [self.view hideLoading];
  443 + if (errorMessage) {
  444 + DS_showMessage(errorMessage);
  445 + return;
  446 + }
  447 + DS_showMessage(@"修改成功");
  448 + [[NSNotificationCenter defaultCenter] postNotificationName:kDSGoodsManageEditNotification object:nil userInfo:jsonData];
  449 +
  450 + for (int i = 0; i < [self.disposeDataModel.list count]; i++) {
  451 + DSShopGoodsManageDetailsSingleView * singleView = (DSShopGoodsManageDetailsSingleView*)[self.view viewWithTag:i+1];
  452 + if (singleView.model.style == 3) {
  453 + [singleView.uploadImageView deleteReplaceImageUrlAfterSuccessUploadThings];
  454 + }
  455 + }
  456 +
  457 + [self dsPopViewControllerAnimated:YES];
  458 + }];
  459 + }*/
  460 + }
57 } 461 }
  462 +
metaCode/Classes/Main/HomePage/Controller/GoodsManager/CNLiveShopProductManagerController.swift
@@ -50,7 +50,7 @@ class CNLiveShopProductManagerController:CNLiveBaseViewController, UITableViewDa @@ -50,7 +50,7 @@ class CNLiveShopProductManagerController:CNLiveBaseViewController, UITableViewDa
50 func setUI(){ 50 func setUI(){
51 navigationBarHidden = false 51 navigationBarHidden = false
52 titleName = "商品管理" 52 titleName = "商品管理"
53 - rightNavBtns = [self.addBtn] 53 +// rightNavBtns = [self.addBtn]
54 self.view.addSubview(self.classifyView) 54 self.view.addSubview(self.classifyView)
55 self.view.addSubview(tableView) 55 self.view.addSubview(tableView)
56 tableView.frame = CGRect(x: 0, y:self.classifyView.bottom , width: KSreenWidth, height: KSreenHeight - self.classifyView.bottom) 56 tableView.frame = CGRect(x: 0, y:self.classifyView.bottom , width: KSreenWidth, height: KSreenHeight - self.classifyView.bottom)
metaCode/Classes/Main/HomePage/View/CNLiveShopDetailBtnsCell.swift
@@ -35,12 +35,14 @@ class CNLiveShopDetailBtnsCell: UICollectionViewCell { @@ -35,12 +35,14 @@ class CNLiveShopDetailBtnsCell: UICollectionViewCell {
35 self.backgroundColor = .white 35 self.backgroundColor = .white
36 var titlesArr:Array<String> = [] 36 var titlesArr:Array<String> = []
37 if DSUserInfoManager.shared.dsUserInfo.type != "3" { 37 if DSUserInfoManager.shared.dsUserInfo.type != "3" {
38 - titlesArr = ["发布动态", "商品管理", "订单管理", "交易记录"] 38 + titlesArr = [ "商品管理", "订单管理"]
  39 +// titlesArr = ["发布动态", "商品管理", "订单管理", "交易记录"]
39 }else{ 40 }else{
40 //健康餐桌 不处理 41 //健康餐桌 不处理
41 } 42 }
42 //替换icon 43 //替换icon
43 - let icons = ["ds_Up_Btn", "ds_Up_Btn", "ds_Up_Btn", "ds_Up_Btn"] 44 + let icons = ["ds_Up_Btn", "ds_Up_Btn"]
  45 +// let icons = ["ds_Up_Btn", "ds_Up_Btn", "ds_Up_Btn", "ds_Up_Btn"]
44 if titlesArr.count > 0 { 46 if titlesArr.count > 0 {
45 for i in 0..<titlesArr.count { 47 for i in 0..<titlesArr.count {
46 let titleStr = titlesArr[i] 48 let titleStr = titlesArr[i]
@@ -71,18 +73,25 @@ class CNLiveShopDetailBtnsCell: UICollectionViewCell { @@ -71,18 +73,25 @@ class CNLiveShopDetailBtnsCell: UICollectionViewCell {
71 let tag = sender.tag 73 let tag = sender.tag
72 ///push VC 74 ///push VC
73 if tag == 100 { 75 if tag == 100 {
74 - //发布动态  
75 - }else if tag == 101 {  
76 //商品管理 76 //商品管理
77 - let webVC = CNWebViewController()  
78 - webVC.url = URL(string:"https://www.baidu.com")  
79 - currentViewController()?.navigationController?.pushViewController(webVC, animated: true)  
80 -  
81 - }else if tag == 102 { 77 + currentViewController()?.navigationController?.pushViewController(CNLiveShopProductManagerController.init(), animated: true)
  78 + }else if tag == 101 {
82 //订单管理 79 //订单管理
83 - }else if tag == 103 {  
84 - //交易记录 80 + currentViewController()?.navigationController?.pushViewController(CNLiveShopOrderViewController.init(), animated: true)
85 } 81 }
  82 +// if tag == 100 {
  83 +// //发布动态
  84 +// }else if tag == 101 {
  85 +// //商品管理
  86 +// let webVC = CNWebViewController()
  87 +// webVC.url = URL(string:"https://www.baidu.com")
  88 +// currentViewController()?.navigationController?.pushViewController(webVC, animated: true)
  89 +//
  90 +// }else if tag == 102 {
  91 +// //订单管理
  92 +// }else if tag == 103 {
  93 +// //交易记录
  94 +// }
86 95
87 } 96 }
88 } 97 }
metaCode/Classes/Main/HomePage/View/CNLiveShopDetailOrderAssetCell.swift
@@ -68,6 +68,11 @@ class CNLiveShopDetailOrderAssetCell:UICollectionViewCell{ @@ -68,6 +68,11 @@ class CNLiveShopDetailOrderAssetCell:UICollectionViewCell{
68 self.navsubBtn.setTitle("订单明细", for: .normal) 68 self.navsubBtn.setTitle("订单明细", for: .normal)
69 self.navsubBtn.setupButtonImageAndTitlePossitionWith(padding: 4, style:.right) 69 self.navsubBtn.setupButtonImageAndTitlePossitionWith(padding: 4, style:.right)
70 self.contentView.addSubview(self.navsubBtn) 70 self.contentView.addSubview(self.navsubBtn)
  71 + if self.displayType == .CNLiveShopDetailDisplayTypeOrder{
  72 +
  73 + }else if self.displayType == .CNLiveShopDetailDisplayTypeAsset{
  74 + self.navsubBtn.isHidden = true
  75 + }
71 76
72 var imgName = "" 77 var imgName = ""
73 if self.displayType == .CNLiveShopDetailDisplayTypeOrder{ 78 if self.displayType == .CNLiveShopDetailDisplayTypeOrder{
@@ -120,6 +125,7 @@ class CNLiveShopDetailOrderAssetCell:UICollectionViewCell{ @@ -120,6 +125,7 @@ class CNLiveShopDetailOrderAssetCell:UICollectionViewCell{
120 @objc func navsubBtnAction(_ sender: UIButton){ 125 @objc func navsubBtnAction(_ sender: UIButton){
121 if self.displayType == .CNLiveShopDetailDisplayTypeOrder{ 126 if self.displayType == .CNLiveShopDetailDisplayTypeOrder{
122 //push订单VC 127 //push订单VC
  128 + currentViewController()?.navigationController?.pushViewController(CNLiveShopOrderViewController.init(), animated: true)
123 }else if self.displayType == .CNLiveShopDetailDisplayTypeAsset{ 129 }else if self.displayType == .CNLiveShopDetailDisplayTypeAsset{
124 //push余额VC 130 //push余额VC
125 } 131 }
metaCode/Classes/Main/HomePage/View/CNMainView.swift
@@ -199,7 +199,16 @@ class CNFrontMainView : UIView{ @@ -199,7 +199,16 @@ class CNFrontMainView : UIView{
199 //跳转到添加身份页面 199 //跳转到添加身份页面
200 // currentViewController()?.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _idModel!), animated: false) 200 // currentViewController()?.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _idModel!), animated: false)
201 // DispatchQueue.main.asyncAfter(deadline: .now()+0.25){ 201 // DispatchQueue.main.asyncAfter(deadline: .now()+0.25){
202 - currentViewController()?.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: self._idModel!), animated: false) 202 + if _idModel!.id == 9 {
  203 + showLoading(message: "")
  204 + CNLiveMineViewModel.requestApplyShopInfo { [weak self] result, respStatue in
  205 +
  206 + if respStatue == .success {
  207 + currentViewController()?.navigationController?.pushViewController(CNLiveMineShopViewController.init(showType: .one, listModel: (self?.idModel)!, tempArray: []), animated: true)
  208 + }
  209 + }
  210 + }
  211 +// currentViewController()?.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: self._idModel!), animated: false)
203 // } 212 // }
204 213
205 } 214 }
metaCode/Classes/Main/HomePage/View/CNUpSlideView.swift
@@ -54,6 +54,7 @@ class CNUpSlideView:UIView{ @@ -54,6 +54,7 @@ class CNUpSlideView:UIView{
54 else if(type == UpDownTypePage){ 54 else if(type == UpDownTypePage){
55 55
56 }else if(type == UpDownTypeShopDetail){ 56 }else if(type == UpDownTypeShopDetail){
  57 + currentViewController()?.addChild(self.upSlideVC)//看行不行
57 self.addSubview(self.upSlideVC.view) 58 self.addSubview(self.upSlideVC.view)
58 }else if(type == UpDownTypeShopControlConsole){ 59 }else if(type == UpDownTypeShopControlConsole){
59 60
metaCode/Classes/Main/HomePage/View/GoodsManager/CNLiveAddGoodsSelectUploadImageView.swift 0 → 100644
  1 +//
  2 +// CNLiveAddGoodsSelectUploadImageView.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2023/11/8.
  6 +//
  7 +
  8 +import Foundation
  9 +
  10 +class CNLiveAddGoodsSelectUploadImageView: UIView {
  11 + override init(frame: CGRect) {
  12 + super.init(frame: frame)
  13 + }
  14 +
  15 + required init?(coder: NSCoder) {
  16 + fatalError("init(coder:) has not been implemented")
  17 + }
  18 +}
metaCode/Classes/Main/HomePage/View/GoodsManager/CNLiveShopAddGoodsSingleView.swift 0 → 100644
  1 +//
  2 +// CNLiveShopAddGoodsSingleView.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2023/11/8.
  6 +//
  7 +
  8 +import Foundation
  9 +
  10 +///回调
  11 +typealias updateBlock = ()->Void
  12 +typealias tapClickBlock = (_ singleView:CNLiveShopAddGoodsSingleView)->Void
  13 +
  14 +class CNLiveShopAddGoodsSingleView: UIView, UITextFieldDelegate {
  15 + ///
  16 + var updateFrameBlock:updateBlock?
  17 + //
  18 + var tapBlock:tapClickBlock?
  19 + //model
  20 + var _addEditGoodsListModel : CNLiveShopAddEditGoodsListModel?
  21 + var addEditGoodsListModel : CNLiveShopAddEditGoodsListModel? {
  22 + get{
  23 + _addEditGoodsListModel
  24 + }
  25 + set{
  26 + _addEditGoodsListModel = newValue!
  27 + self.setupNewUI(model: _addEditGoodsListModel!)
  28 + }
  29 + }
  30 +
  31 + ///标题
  32 + lazy var titleLabel: UILabel = {
  33 + let titleLabel = UILabel.init(frame: CGRectMake(15 , 15, 145, 20))
  34 +// titleLabel.textColor = HexColor("#333333")
  35 +// titleLabel.textAlignment = .left
  36 +// titleLabel.font = Font_15
  37 +// titleLabel.adjustsFontSizeToFitWidth=true
  38 +// titleLabel.text = "啊啊啊啊啊"
  39 + return titleLabel
  40 + }()
  41 + //副标题
  42 + var subButton = UIButton()
  43 + var contentTextField = UITextField()
  44 + var delectButton = UIButton()
  45 + var rightImageView = UIImageView()
  46 + var contentSwitch = UISwitch()
  47 + var uploadImageView = CNLiveAddGoodsSelectUploadImageView(frame: CGRectZero)
  48 + var contentTextBgView = UIView()
  49 + var contentTextView = UITextView()//
  50 + var addBtn = UIButton()
  51 + var subtractBtn = UIButton()
  52 + var countTF = UITextField()
  53 + var descLab = UILabel()
  54 + var line = UIImageView()
  55 + var starImageView = UIImageView()
  56 +
  57 +
  58 +
  59 + override init(frame: CGRect) {
  60 + super.init(frame: frame)
  61 + self.setUI()
  62 + }
  63 +
  64 + func setUI(){
  65 +
  66 + }
  67 +
  68 + func setupNewUI(model:CNLiveShopAddEditGoodsListModel){
  69 + self.backgroundColor = model.style == "2" ? HexColor("#F6F6F6") : HexColor("#FFFFFF")
  70 + if (model.isHaveTo ?? false) {
  71 + self.starImageView = UIImageView()
  72 + self.starImageView.image = UIImage(named: "DS_shop_manageGoodsDetails_star")
  73 + self.starImageView.clipsToBounds = true
  74 + self.starImageView.contentMode = .scaleAspectFit
  75 + self.addSubview(self.starImageView)
  76 + }
  77 + self.titleLabel = UILabel()
  78 + if (self.addEditGoodsListModel?.style == "2") {
  79 +
  80 + self.titleLabel.textColor = HexColor("#9D9D9D")
  81 + self.titleLabel.text = self.addEditGoodsListModel?.title
  82 + if (self.addEditGoodsListModel!.touchSubtitle?.count ?? 0 > 0) {
  83 + let subBtn = UIButton(type: .custom)
  84 + subBtn.frame = CGRect(x: self.width - 50, y: 0, width: 50, height: 50)
  85 + subBtn.setTitle("添加通用参数", for: .normal)
  86 + subBtn.setTitleColor(HexColor("#0091FF"), for: .normal)
  87 + subBtn.titleLabel?.font = Font_14
  88 + subBtn.titleLabel?.textAlignment = .right
  89 + subBtn.addTarget(self, action: #selector(subBtnAction), for: .touchUpInside)
  90 + self.subButton = subBtn
  91 + self.addSubview(self.subButton)
  92 + }
  93 + }else
  94 + {
  95 + self.titleLabel.textColor = HexColor("#333333")
  96 + if (self.addEditGoodsListModel?.subtitle?.count ?? 0 > 0) {
  97 + self.titleLabel.text = "\(self.addEditGoodsListModel?.title ?? "")+\(self.addEditGoodsListModel?.subtitle ?? "")"
  98 + }else{
  99 + self.titleLabel.text = self.addEditGoodsListModel?.title ?? ""
  100 + }
  101 + }
  102 + self.titleLabel.font = Font_14
  103 + self.addSubview(self.titleLabel)
  104 +
  105 + if (self.addEditGoodsListModel?.style == "1") {
  106 + let contentTextField = UITextField()
  107 + contentTextField.returnKeyType = .done
  108 + contentTextField.placeholder = "请输入"
  109 + contentTextField.font = Font_14
  110 + contentTextField.textColor = HexColor(model.contentTextColor ?? "#787878")
  111 + contentTextField.delegate = self
  112 +
  113 + if (model.content?.count ?? 0 > 0){ contentTextField.text = model.content
  114 + }
  115 +
  116 + if (model.contentTextFieldkeyboardType == "2") {
  117 + contentTextField.keyboardType = .decimalPad
  118 + }else {
  119 + contentTextField.keyboardType = .default
  120 + }
  121 + self.contentTextField = contentTextField
  122 +
  123 + if (model.contentType == "1") {
  124 + self.contentTextField.isUserInteractionEnabled = true
  125 +
  126 + if (model.isDelect ?? false) {
  127 + self.delectButton = UIButton(type: .custom)
  128 + self.delectButton.setTitle("删除", for: .normal)
  129 + self.delectButton.setTitleColor(HexColor("#0091FF"), for: .normal)
  130 + self.delectButton.titleLabel?.font = Font_14
  131 + self.delectButton.titleLabel?.textAlignment = .right
  132 + self.delectButton.addTarget(self, action: #selector(selectDelectParamAction), for: .touchUpInside)
  133 + self.addSubview(self.delectButton)
  134 + }
  135 + }else if (model.contentType == "2") {
  136 + self.contentTextField.isUserInteractionEnabled = false
  137 + self.rightImageView = UIImageView()
  138 + self.rightImageView.image = UIImage(named: "DS_shop_manageGoodsDetails_rightArrow")
  139 + self.rightImageView.contentMode = .scaleAspectFit
  140 + self.rightImageView.clipsToBounds = true
  141 + self.addSubview(self.rightImageView)
  142 + self.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(selfTap)))
  143 + }else {
  144 + self.contentTextField.isUserInteractionEnabled = false
  145 + self.contentTextField.isHidden = true
  146 +
  147 + self.contentSwitch = UISwitch()
  148 + self.contentSwitch.transform = CGAffineTransformMakeScale(0.7, 0.7)
  149 + //不写到layoutSubviews中是因为 会变位置
  150 + self.contentSwitch.top = (50-self.contentSwitch.height)*0.5
  151 + self.contentSwitch.onTintColor = HexColor("#61C464")
  152 + self.contentSwitch.tintColor = HexColor("#DBDEDB")
  153 + self.contentSwitch.isOn = true
  154 + self.contentSwitch.addTarget(self, action: #selector(switchValueChanged), for: .valueChanged)
  155 + self.addSubview(self.contentSwitch)
  156 + }
  157 + self.addSubview(self.contentTextField)
  158 + self.height = 50
  159 + }else if (model.style == "2") {
  160 + self.height = 50
  161 + }else if (model.style == "3") {
  162 + self.uploadImageView = CNLiveAddGoodsSelectUploadImageView(frame: CGRectZero)
  163 +// self.uploadImageView.column = 3
  164 +// self.uploadImageView.maxSelectImageCount = model.maxSelectImageCount
  165 +// self.uploadImageView.isAbleSelectVideo = model.isAbleSelectVideo
  166 +// self.uploadImageView.isDisplySelectCover = model.isAbleSelectCover
  167 +// if model.id?.isEmpty {
  168 +// self.uploadImageView.deleteImage = UIImage(named: "DS_shop_manageGoodsDetails_delete")
  169 +// }
  170 +// [self.uploadImageView setChangeFrameCallBack:^{
  171 +// weakSelf.height = CGRectGetMaxY(weakSelf.uploadImageView.frame) + DS_adapt_length(15);
  172 +// if (weakSelf.changeFrameCallBack) {
  173 +// weakSelf.changeFrameCallBack();
  174 +// }
  175 +// }];
  176 + self.addSubview(self.uploadImageView)
  177 + }else if (model.style == "4") {
  178 + self.contentTextBgView = UIView()
  179 +// self.contentTextBgView.fillColor = HexColor("F9F9F9")
  180 +// self.contentTextBgView.radius = 8
  181 + self.addSubview(self.contentTextBgView)
  182 +
  183 +// self.contentTextView = UITextView()
  184 +// self.contentTextView.placeholder = model.placeholder
  185 +// self.contentTextView.placeholderColor = HexColor("c6c6c6")
  186 +// self.contentTextView.font = Font_14
  187 +// self.contentTextView.textColor = HexColor("787878")
  188 +// self.contentTextView.delegate = self
  189 +// if (model.content?.count ?? 0 > 0){ self.contentTextView.text = model.content
  190 +// }
  191 +// self.contentTextBgView.addSubview(self.contentTextView)
  192 + self.height = 120
  193 + }else if (model.style == "5") {
  194 + //添加输入框
  195 + self.addBtn = UIButton(type: .custom)
  196 + self.addBtn.setImage(UIImage(named: "DS_main_add_count"), for: .normal)
  197 + self.addBtn.imageView?.contentMode = .scaleAspectFit
  198 + self.addBtn.addTarget(self, action: #selector(addBtnClick), for: .touchUpInside)
  199 + self.addSubview(self.addBtn)
  200 +
  201 + self.subtractBtn = UIButton(type: .custom)
  202 + self.subtractBtn.setImage(UIImage(named: "DS_main_unadd_count_n"), for: .normal)
  203 + self.subtractBtn.imageView?.contentMode = .scaleAspectFit
  204 + self.subtractBtn.addTarget(self, action: #selector(subtractBtnClick), for: .touchUpInside)
  205 + self.addSubview(self.subtractBtn)
  206 +
  207 + self.countTF = UITextField()
  208 + self.countTF.text = "1"
  209 + self.countTF.textAlignment = .center
  210 + self.countTF.font = Font_15
  211 + self.countTF.borderStyle = .none
  212 + self.countTF.delegate = self
  213 + self.countTF.layer.masksToBounds = true
  214 + self.countTF.layer.cornerRadius = 5
  215 + self.countTF.keyboardType = .numberPad
  216 + self.countTF.backgroundColor = HexColor("#F1F1F1")
  217 + self.countTF.addTarget(self, action: #selector(textDidChange(sender:)), for: .editingChanged)
  218 + self.addSubview(self.countTF)
  219 +
  220 + self.descLab = UILabel()
  221 + self.descLab.textColor = HexColor("#C4C4C6)")
  222 + self.descLab.font = Font_10
  223 + self.descLab.text = model.desc
  224 + self.addSubview(self.descLab)
  225 +
  226 + self.height = 60
  227 + }
  228 + if (model.isDisplayLine ?? false) {
  229 + self.line = UIImageView()
  230 + self.line.backgroundColor = HexColor("#e6e6e6)")
  231 + self.addSubview(self.line)
  232 + }
  233 + }
  234 +
  235 + override func layoutSubviews() {
  236 + super.layoutSubviews()
  237 + self.titleLabel.frame = CGRect(x: 15, y: 15, width: 145, height: 20)
  238 + if (self.addEditGoodsListModel!.desc?.count ?? 0 > 0 && self.addEditGoodsListModel!.style == "5") {
  239 + self.descLab.frame = CGRect(x: 15, y: 35, width: 145, height: 20)
  240 + }
  241 + self.starImageView.frame = CGRect(x: self.titleLabel.left-3-5, y: 0, width: 5, height: 5)
  242 + self.starImageView.centerY = self.titleLabel.centerY
  243 + if (self.addEditGoodsListModel?.style == "2"){
  244 + self.subButton.frame = CGRect(x: KSreenWidth-130, y: 15, width: 120, height: 20)
  245 + }
  246 + if (self.addEditGoodsListModel!.style == "1") {
  247 + if (self.addEditGoodsListModel!.contentType == "1") {
  248 + if (self.addEditGoodsListModel!.isDelect ?? false) {
  249 + self.delectButton.frame = CGRect(x: KSreenWidth-50, y: 0, width: 40, height: 50)
  250 + self.contentTextField.frame = CGRect(x: self.titleLabel.right+15, y: 0, width: self.width-self.titleLabel.right+15*2-40, height: 50)
  251 + }else{
  252 + self.contentTextField.frame = CGRect(x: self.titleLabel.right+15, y: 0, width: self.width-self.titleLabel.right-15*2, height: 50)
  253 + }
  254 + }else if (self.addEditGoodsListModel!.contentType == "2") {
  255 + let contentTextFieldMaxW = self.width - self.titleLabel.right-15*3-2
  256 + self.contentTextField.sizeToFit()
  257 + if (self.contentTextField.width > contentTextFieldMaxW) {
  258 + self.contentTextField.width = contentTextFieldMaxW
  259 + }
  260 + self.contentTextField.left = self.titleLabel.right + 15
  261 + self.contentTextField.centerY = self.titleLabel.centerY
  262 + self.rightImageView.frame = CGRect(x: self.contentTextField.right+2, y: 0, width: 15, height: 15)
  263 + self.rightImageView.centerY = self.titleLabel.centerY
  264 + }else {
  265 + self.contentSwitch.left = self.titleLabel.right+15
  266 + }
  267 + self.addSubview(self.contentTextField)
  268 + }else if (self.addEditGoodsListModel!.style == "3") {
  269 + self.uploadImageView.frame = CGRect(x: 0, y: self.titleLabel.bottom+2, width: self.width, height: 0)
  270 + if (self.height == 0) {
  271 + self.height = self.uploadImageView.bottom+15
  272 + if ((self.updateFrameBlock) != nil) {
  273 + self.updateFrameBlock!()
  274 + }
  275 + }
  276 + }else if (self.addEditGoodsListModel!.style == "4") {
  277 + self.contentTextBgView.frame = CGRect(x: 15, y: self.titleLabel.bottom+10, width: self.width - 15*2, height: 60)
  278 + self.contentTextView.frame = CGRect(x: 10, y: 10, width: self.contentTextBgView.width-10*2, height: self.contentTextBgView.height-10*2)
  279 + }else if (self.addEditGoodsListModel!.style == "5") {
  280 + self.subtractBtn.frame = CGRect(x: 15+self.titleLabel.right, y: 15, width: 30, height: 30)
  281 + self.countTF.frame = CGRect(x: self.subtractBtn.right+2, y: self.subtractBtn.top+5, width: 55, height: 20)
  282 + self.addBtn.frame = CGRect(x: self.countTF.right+2, y: self.subtractBtn.top, width: 30, height: 30)
  283 + }
  284 + self.line.frame = CGRect(x: 15, y: self.height-1, width: self.width-15*2, height: 1)
  285 + }
  286 +
  287 + required init?(coder: NSCoder) {
  288 + fatalError("init(coder:) has not been implemented")
  289 + }
  290 +
  291 + // MARK: - BtnAction
  292 + @objc func subBtnAction(){
  293 + if ((self.updateFrameBlock) != nil) {
  294 + self.updateFrameBlock!()
  295 + }
  296 + }
  297 + @objc func selectDelectParamAction(){
  298 + AlertTool.showSystemAlert(title: "确认删除?", message: nil, actionTitles: ["取消","确定"], style: .alert, actionStyles:[.cancel,.default] ) { index in
  299 + if (index == 1) {
  300 + if ((self.updateFrameBlock) != nil) {
  301 + self.updateFrameBlock!()
  302 + }
  303 + }
  304 + }
  305 + }
  306 + @objc func selfTap(){
  307 +
  308 + if ((self.tapBlock) != nil) {
  309 + self.tapBlock!(self)
  310 + }
  311 + }
  312 + @objc func switchValueChanged(){
  313 +
  314 + }
  315 + @objc func addBtnClick(){
  316 +
  317 + }
  318 + @objc func subtractBtnClick(){
  319 +
  320 + }
  321 +
  322 + @objc func textDidChange(sender:UITextField) {
  323 + if (sender == self.countTF) {
  324 + if (self.countTF.text?.count ?? 0 > 0 && self.countTF.text?.isPurnInt() ?? false) {
  325 + let count:Int = (self.countTF.text! as NSString).integerValue
  326 + if (count <= 1) {
  327 + self.subtractBtn.setImage(UIImage(named: "DS_main_unadd_count_n"), for: .normal)
  328 + }else{
  329 + self.subtractBtn.setImage(UIImage(named: "DS_main_unadd_count"), for: .normal)
  330 + }
  331 + }
  332 + }
  333 + }
  334 +
  335 +}
metaCode/Classes/Main/HomePage/View/GoodsList/CNLiveShopGoodsListCell.swift renamed to metaCode/Classes/Main/HomePage/View/GoodsManager/CNLiveShopGoodsListCell.swift
@@ -29,7 +29,8 @@ class CNLiveShopGoodsListCell: UITableViewCell { @@ -29,7 +29,8 @@ class CNLiveShopGoodsListCell: UITableViewCell {
29 lazy var editBtn: UIButton = { 29 lazy var editBtn: UIButton = {
30 let editBtn = UIButton(type: .custom) 30 let editBtn = UIButton(type: .custom)
31 editBtn.frame = CGRect(x: KSreenWidth-15*2-28, y: 0, width: 15*2+28, height: 15*2+20) 31 editBtn.frame = CGRect(x: KSreenWidth-15*2-28, y: 0, width: 15*2+28, height: 15*2+20)
32 - editBtn.setTitle("编辑", for: .normal) 32 + editBtn.setTitle(" ", for: .normal)
  33 +// editBtn.setTitle("编辑", for: .normal)
33 editBtn.setTitleColor(HexColor("#333333"), for: .normal) 34 editBtn.setTitleColor(HexColor("#333333"), for: .normal)
34 editBtn.titleLabel?.font = Font_15 35 editBtn.titleLabel?.font = Font_15
35 editBtn.addTarget(self, action: #selector(editBtnAction), for: .touchUpInside) 36 editBtn.addTarget(self, action: #selector(editBtnAction), for: .touchUpInside)
@@ -103,7 +104,7 @@ class CNLiveShopGoodsListCell: UITableViewCell { @@ -103,7 +104,7 @@ class CNLiveShopGoodsListCell: UITableViewCell {
103 contentView.addSubview(self.priceLabel) 104 contentView.addSubview(self.priceLabel)
104 contentView.addSubview(self.bottomLineView) 105 contentView.addSubview(self.bottomLineView)
105 contentView.addSubview(self.countLabel) 106 contentView.addSubview(self.countLabel)
106 - contentView.addSubview(self.editCountBtn) 107 +// contentView.addSubview(self.editCountBtn)
107 108
108 } 109 }
109 110
metaCode/Classes/Main/HomePage/View/GoodsList/CNLiveShopGoodsListClassifyView.swift renamed to metaCode/Classes/Main/HomePage/View/GoodsManager/CNLiveShopGoodsListClassifyView.swift
@@ -42,7 +42,7 @@ class CNLiveShopGoodsListClassifyView: UIView { @@ -42,7 +42,7 @@ class CNLiveShopGoodsListClassifyView: UIView {
42 42
43 func setUI(){ 43 func setUI(){
44 self.addSubview(self.lastestBtn) 44 self.addSubview(self.lastestBtn)
45 - self.addSubview(self.priceBtn) 45 +// self.addSubview(self.priceBtn)
46 self.lastestBtn.isSelected = true 46 self.lastestBtn.isSelected = true
47 } 47 }
48 48
metaCode/Classes/Main/Model/CNLiveShopConsoleModel.swift
@@ -59,7 +59,7 @@ class CNLiveShopConsoleModel:BaseModel { @@ -59,7 +59,7 @@ class CNLiveShopConsoleModel:BaseModel {
59 var dataSource = 59 var dataSource =
60 [["title":"商品管理", 60 [["title":"商品管理",
61 "list":[ 61 "list":[
62 - ["title":"新增商品", "subtitle":"创建新的商品", "simg":"DS_WB_XZSP", "type":0], 62 +// ["title":"新增商品", "subtitle":"创建新的商品", "simg":"DS_WB_XZSP", "type":0],
63 ["title":"商品管理", "subtitle":"管理现有的商品", "simg":"DS_WB_SPGL", "type":1]]], 63 ["title":"商品管理", "subtitle":"管理现有的商品", "simg":"DS_WB_SPGL", "type":1]]],
64 ["title":"订单管理", 64 ["title":"订单管理",
65 "list":[ 65 "list":[
metaCode/Classes/Main/Model/GoodsManager/CNLiveShopAddEditGoodsModel.swift
@@ -9,41 +9,91 @@ import Foundation @@ -9,41 +9,91 @@ import Foundation
9 9
10 class CNLiveShopAddEditGoodsModel: BaseModel { 10 class CNLiveShopAddEditGoodsModel: BaseModel {
11 ///列表 11 ///列表
12 - /*var list = [CNLiveShopAddEditGoodsListModel]() 12 + var list = [CNLiveShopAddEditGoodsListModel]()
13 func initDataSource(){ 13 func initDataSource(){
14 - var dataSource =  
15 - [ ["style":"1","isHaveTo":true,"title":"商品分类","contentType":"2"],  
16 - ["style":"1","isHaveTo":true,"title":"店铺分类","contentType":"2"],  
17 - ["style":"2","title":"基本信息"],  
18 - ["style":"3","isHaveTo":true,"title":"商品轮播","isDisplayLine":true,"isAbleSelectVideo":true,"isAbleSelectCover":true,"maxSelectImageCount":"7"],  
19 - ["style":"1","isHaveTo":true,"title":"商品名称","isDisplayLine":true,"contentType":"1"],  
20 - ["style":"4","isHaveTo":false,"title":"商品副标题","isDisplayLine":true,"placeholder":"请在此输入..."],  
21 - ["style":"1","isHaveTo":true,"title":"本店售价","subtitle":"(实际售价)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentTextColor":"0xFC1541","contentType":"1"],  
22 - ["style":"1","isHaveTo":true,"title":"市场售价","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"],  
23 - ["style":"1","isHaveTo":false,"title":"商品重量","subtitle":"(kg)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"3","contentType":"1"],  
24 - ["style":"5","isHaveTo":false,"title":"最低起售","subtitle":"(件)","isDisplayLine":true,"desc":"如起售数超出库存买家无法购买","decimalLength":"3","contentType":"4"],  
25 - ["style":"1","isHaveTo":false,"title":"上架","contentType":"3"],  
26 - ["style":"2","title":"通用信息"],  
27 - ["style":"3","isHaveTo":true,"title":"商品详情图","isDisplayLine":true,"maxSelectImageCount":"9"],  
28 - ["style":"1","isHaveTo":false,"title":"商品运费","subtitle":"(0为包邮)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"],  
29 - ["style":"1","isHaveTo":false,"title":"是否支持退货","isDisplayLine":true,"contentType":"3"],  
30 - ["style":"1","isHaveTo":false,"title":"商品单位","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1"],  
31 - ["style":"2","title":"通用参数(*为必填)","touchSubtitle":"添加通用参数"],  
32 - ["style":"1","isHaveTo":true,"title":"品名","isDisplayLine":true,"contentType":"1"],  
33 - ["style":"1","isHaveTo":true,"title":"规格","isDisplayLine":true,"contentType":"1"],  
34 - ["style":"4","isHaveTo":true,"title":"寄送区域","isDisplayLine":true,"contentType":"1","placeholder":"请填写不配送**地区、仅配送**地区或全国包邮"],  
35 - ["style":"1","isHaveTo":true,"title":"发货时效","isDisplayLine":true,"contentType":"1"],  
36 - ["style":"1","isHaveTo":false,"title":"口味","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true],  
37 - ["style":"1","isHaveTo":false,"title":"产地","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true],  
38 - ["style":"1","isHaveTo":false,"title":"存储方式及期限","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true]  
39 - ] 14 + var dataArr:Array<Any> = []
  15 + let dic1 = ["style":"1","isHaveTo":true,"title":"商品分类","contentType":"2"] as [String : Any]
  16 + let dic2 = ["style":"1","isHaveTo":true,"title":"店铺分类","contentType":"2"] as [String : Any]
  17 + let dic3 = ["style":"2","title":"基本信息"] as [String : Any]
  18 + let dic4 = ["style":"3","isHaveTo":true,"title":"商品轮播","isDisplayLine":true,"isAbleSelectVideo":true,"isAbleSelectCover":true,"maxSelectImageCount":"7"] as [String : Any]
  19 + let dic5 = ["style":"1","isHaveTo":true,"title":"商品名称","isDisplayLine":true,"contentType":"1"] as [String : Any]
  20 + let dic6 = ["style":"4","isHaveTo":false,"title":"商品副标题","isDisplayLine":true,"placeholder":"请在此输入..."] as [String : Any]
  21 + let dic7 = ["style":"1","isHaveTo":true,"title":"本店售价","subtitle":"(实际售价)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentTextColor":"0xFC1541","contentType":"1"] as [String : Any]
  22 + let dic8 = ["style":"1","isHaveTo":true,"title":"市场售价","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"] as [String : Any]
  23 + let dic9 = ["style":"1","isHaveTo":false,"title":"商品重量","subtitle":"(kg)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"3","contentType":"1"] as [String : Any]
  24 + let dic10 = ["style":"5","isHaveTo":false,"title":"最低起售","subtitle":"(件)","isDisplayLine":true,"desc":"如起售数超出库存买家无法购买","decimalLength":"3","contentType":"4"] as [String : Any]
  25 + let dic11 = ["style":"1","isHaveTo":false,"title":"上架","contentType":"3"] as [String : Any]
  26 + let dic12 = ["style":"2","title":"通用信息"] as [String : Any]
  27 + let dic13 = ["style":"3","isHaveTo":true,"title":"商品详情图","isDisplayLine":true,"maxSelectImageCount":"9"] as [String : Any]
  28 + let dic14 = ["style":"1","isHaveTo":false,"title":"商品运费","subtitle":"(0为包邮)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"] as [String : Any]
  29 + let dic15 = ["style":"1","isHaveTo":false,"title":"是否支持退货","isDisplayLine":true,"contentType":"3"] as [String : Any]
  30 + let dic16 = ["style":"1","isHaveTo":false,"title":"商品单位","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1"] as [String : Any]
  31 + let dic17 = ["style":"2","title":"通用参数(*为必填)","touchSubtitle":"添加通用参数"] as [String : Any]
  32 + let dic18 = ["style":"1","isHaveTo":true,"title":"品名","isDisplayLine":true,"contentType":"1"] as [String : Any]
  33 + let dic19 = ["style":"1","isHaveTo":true,"title":"规格","isDisplayLine":true,"contentType":"1"] as [String : Any]
  34 + let dic20 = ["style":"4","isHaveTo":true,"title":"寄送区域","isDisplayLine":true,"contentType":"1","placeholder":"请填写不配送**地区、仅配送**地区或全国包邮"] as [String : Any]
  35 + let dic21 = ["style":"1","isHaveTo":true,"title":"发货时效","isDisplayLine":true,"contentType":"1"] as [String : Any]
  36 + let dic22 = ["style":"1","isHaveTo":false,"title":"口味","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true] as [String : Any]
  37 + let dic23 = ["style":"1","isHaveTo":false,"title":"产地","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true] as [String : Any]
  38 + let dic24 = ["style":"1","isHaveTo":false,"title":"存储方式及期限","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true] as [String : Any]
  39 + dataArr.append(dic1)
  40 + dataArr.append(dic2)
  41 + dataArr.append(dic3)
  42 + dataArr.append(dic4)
  43 + dataArr.append(dic5)
  44 + dataArr.append(dic6)
  45 + dataArr.append(dic7)
  46 + dataArr.append(dic8)
  47 + dataArr.append(dic9)
  48 + dataArr.append(dic10)
  49 + dataArr.append(dic11)
  50 + dataArr.append(dic12)
  51 + dataArr.append(dic13)
  52 + dataArr.append(dic14)
  53 + dataArr.append(dic15)
  54 + dataArr.append(dic16)
  55 + dataArr.append(dic17)
  56 + dataArr.append(dic18)
  57 + dataArr.append(dic19)
  58 + dataArr.append(dic20)
  59 + dataArr.append(dic21)
  60 + dataArr.append(dic22)
  61 + dataArr.append(dic23)
  62 + dataArr.append(dic24)
  63 +// var dataSource =
  64 +// [
  65 +// ["style":"1","isHaveTo":true,"title":"商品分类","contentType":"2"],
  66 +// ["style":"1","isHaveTo":true,"title":"店铺分类","contentType":"2"],
  67 +// ["style":"2","title":"基本信息"],
  68 +// ["style":"3","isHaveTo":true,"title":"商品轮播","isDisplayLine":true,"isAbleSelectVideo":true,"isAbleSelectCover":true,"maxSelectImageCount":"7"],
  69 +// ["style":"1","isHaveTo":true,"title":"商品名称","isDisplayLine":true,"contentType":"1"],
  70 +// ["style":"4","isHaveTo":false,"title":"商品副标题","isDisplayLine":true,"placeholder":"请在此输入..."],
  71 +// ["style":"1","isHaveTo":true,"title":"本店售价","subtitle":"(实际售价)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentTextColor":"0xFC1541","contentType":"1"],
  72 +// ["style":"1","isHaveTo":true,"title":"市场售价","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"],
  73 +// ["style":"1","isHaveTo":false,"title":"商品重量","subtitle":"(kg)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"3","contentType":"1"],
  74 +// ["style":"5","isHaveTo":false,"title":"最低起售","subtitle":"(件)","isDisplayLine":true,"desc":"如起售数超出库存买家无法购买","decimalLength":"3","contentType":"4"],
  75 +// ["style":"1","isHaveTo":false,"title":"上架","contentType":"3"],
  76 +// ["style":"2","title":"通用信息"],
  77 +// ["style":"3","isHaveTo":true,"title":"商品详情图","isDisplayLine":true,"maxSelectImageCount":"9"],
  78 +// ["style":"1","isHaveTo":false,"title":"商品运费","subtitle":"(0为包邮)","isDisplayLine":true,"contentTextFieldkeyboardType":"2","decimalLength":"2","contentType":"1"],
  79 +// ["style":"1","isHaveTo":false,"title":"是否支持退货","isDisplayLine":true,"contentType":"3"],
  80 +// ["style":"1","isHaveTo":false,"title":"商品单位","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1"],
  81 +// ["style":"2","title":"通用参数(*为必填)","touchSubtitle":"添加通用参数"],
  82 +// ["style":"1","isHaveTo":true,"title":"品名","isDisplayLine":true,"contentType":"1"],
  83 +// ["style":"1","isHaveTo":true,"title":"规格","isDisplayLine":true,"contentType":"1"],
  84 +// ["style":"4","isHaveTo":true,"title":"寄送区域","isDisplayLine":true,"contentType":"1","placeholder":"请填写不配送**地区、仅配送**地区或全国包邮"],
  85 +// ["style":"1","isHaveTo":true,"title":"发货时效","isDisplayLine":true,"contentType":"1"],
  86 +// ["style":"1","isHaveTo":false,"title":"口味","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true],
  87 +// ["style":"1","isHaveTo":false,"title":"产地","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true],
  88 +// ["style":"1","isHaveTo":false,"title":"存储方式及期限","contentTextFieldkeyboardType":"1","isDisplayLine":true,"contentType":"1","isDelect":true]
  89 +// ]
40 90
41 - for dic in dataSource{  
42 - let mdl = newDictionaryToModel(dic, CNLiveShopAddEditGoodsListModel.self) 91 + for dic in dataArr{
  92 + let mdl = newDictionaryToModel(dic as! [String : Any], CNLiveShopAddEditGoodsListModel.self)
43 list.append(mdl as! CNLiveShopAddEditGoodsListModel) 93 list.append(mdl as! CNLiveShopAddEditGoodsListModel)
44 94
45 } 95 }
46 - }*/ 96 + }
47 } 97 }
48 98
49 99
@@ -51,7 +101,7 @@ class CNLiveShopAddEditGoodsListModel: BaseModel { @@ -51,7 +101,7 @@ class CNLiveShopAddEditGoodsListModel: BaseModel {
51 /// 商品id 101 /// 商品id
52 var id: String? 102 var id: String?
53 /// 样式4中 二是标题 三是选取图片 四是输入框 五添加起售数量 103 /// 样式4中 二是标题 三是选取图片 四是输入框 五添加起售数量
54 - var style:Int = 0 104 + var style:String?
55 /// 是否必须 105 /// 是否必须
56 var isHaveTo: Bool? 106 var isHaveTo: Bool?
57 /// 标题 107 /// 标题
@@ -69,13 +119,13 @@ class CNLiveShopAddEditGoodsListModel: BaseModel { @@ -69,13 +119,13 @@ class CNLiveShopAddEditGoodsListModel: BaseModel {
69 /// 是否显示底部的线 119 /// 是否显示底部的线
70 var isDisplayLine: Bool? 120 var isDisplayLine: Bool?
71 /// 样式一属性 内容输入框键盘类型 1默认类型 2数字类型带小数点 121 /// 样式一属性 内容输入框键盘类型 1默认类型 2数字类型带小数点
72 - var contentTextFieldkeyboardType:Int = 0 122 + var contentTextFieldkeyboardType:String?
73 /// 样式一属性 小数点位数 123 /// 样式一属性 小数点位数
74 - var decimalLength:Int = 0 124 + var decimalLength:String?
75 /// 样式一属性 内容输入框颜色 默认0x787878 125 /// 样式一属性 内容输入框颜色 默认0x787878
76 var contentTextColor: String? 126 var contentTextColor: String?
77 /// 样式一属性 1输入框 2选择 3开关 4可以增加数量 127 /// 样式一属性 1输入框 2选择 3开关 4可以增加数量
78 - var contentType:Int = 0 128 + var contentType:String?
79 /// 样式一属性 是不是显示输入框右边删除按钮 129 /// 样式一属性 是不是显示输入框右边删除按钮
80 var isDelect: Bool? 130 var isDelect: Bool?
81 /// 样式三属性 是否可以选择视频 131 /// 样式三属性 是否可以选择视频
@@ -83,5 +133,5 @@ class CNLiveShopAddEditGoodsListModel: BaseModel { @@ -83,5 +133,5 @@ class CNLiveShopAddEditGoodsListModel: BaseModel {
83 /// 样式三属性 是否可以选择主页 133 /// 样式三属性 是否可以选择主页
84 var isAbleSelectCover: Bool? 134 var isAbleSelectCover: Bool?
85 /// 样式三属性 最多可以选取多少张图片 135 /// 样式三属性 最多可以选取多少张图片
86 - var maxSelectImageCount:Int = 0 136 + var maxSelectImageCount:String?
87 } 137 }
metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_add_count.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_main_add_count@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_main_add_count@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_add_count.imageset/DS_main_add_count@2x.png 0 → 100644

548 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_add_count.imageset/DS_main_add_count@3x.png 0 → 100644

927 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_main_unadd_count@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_main_unadd_count@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count.imageset/DS_main_unadd_count@2x.png 0 → 100644

510 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count.imageset/DS_main_unadd_count@3x.png 0 → 100644

871 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count_n.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_main_unadd_count_n@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_main_unadd_count_n@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count_n.imageset/DS_main_unadd_count_n@2x.png 0 → 100644

516 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_main_unadd_count_n.imageset/DS_main_unadd_count_n@3x.png 0 → 100644

919 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_delete.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_shop_manageGoodsDetails_delete@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_shop_manageGoodsDetails_delete@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_delete.imageset/DS_shop_manageGoodsDetails_delete@2x.png 0 → 100644

1.02 KB

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_delete.imageset/DS_shop_manageGoodsDetails_delete@3x.png 0 → 100644

1.46 KB

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_rightArrow.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_shop_manageGoodsDetails_rightArrow@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_shop_manageGoodsDetails_rightArrow@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_rightArrow.imageset/DS_shop_manageGoodsDetails_rightArrow@2x.png 0 → 100644

345 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_rightArrow.imageset/DS_shop_manageGoodsDetails_rightArrow@3x.png 0 → 100644

449 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_star.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "DS_shop_manageGoodsDetails_star@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "DS_shop_manageGoodsDetails_star@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_star.imageset/DS_shop_manageGoodsDetails_star@2x.png 0 → 100644

331 Bytes

metaCode/Supporting Files/Assets.xcassets/Shop/DS_shop_manageGoodsDetails_star.imageset/DS_shop_manageGoodsDetails_star@3x.png 0 → 100644

584 Bytes