Commit 0ed304da authored by 刘俊宏's avatar 刘俊宏

嵌入富文本编辑器+订单列表接口完善

parent ea39e71d
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "baritem_folder@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "baritem_folder@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "original"
}
}
\ No newline at end of file
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_bold@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_bold@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_italic@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_italic@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_strikethrough@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_strikethrough@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_underline@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_font_underline@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_accessory_checkbox@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_accessory_checkbox@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_accessory_checkbox_@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_accessory_checkbox_@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_center@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_center@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_left@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_left@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_right@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_alignment_right@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_btn_edit@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_btn_edit@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_btn_plus@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_btn_plus@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_delete@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_delete@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_left_square@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_left_square@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_list@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_list@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_checkbox@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_checkbox@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_dot@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_dot@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_number@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_list_number@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_a@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_a@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_close@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_close@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_image@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_image@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_subtitle@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_subtitle@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_t@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_t@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_title@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "lmn_tool_title@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#ifndef Bridge_Header_h #ifndef Bridge_Header_h
#define Bridge_Header_h #define Bridge_Header_h
#import "LMNoteViewController.h"
#import "MJRefresh.h" #import "MJRefresh.h"
#import "WYHead.h" #import "WYHead.h"
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
import UIKit import UIKit
import SwiftDate //日期处理库
//版本号 //版本号
let systemVersion = (UIDevice.current.systemVersion as String) let systemVersion = (UIDevice.current.systemVersion as String)
...@@ -133,7 +135,7 @@ func isPurnNumber(str:String)-> Bool{ ...@@ -133,7 +135,7 @@ func isPurnNumber(str:String)-> Bool{
func RGB(r:CGFloat,g:CGFloat,b:CGFloat)->UIColor{ func RGB(r:CGFloat,g:CGFloat,b:CGFloat)->UIColor{
return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1) return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
} }
//MARK:--是否手机号码
func isTelNumber(num:NSString)->Bool func isTelNumber(num:NSString)->Bool
{ {
var mobile = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$" var mobile = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$"
...@@ -171,7 +173,7 @@ func stringToTimeStamp(stringTime:Int)->String { ...@@ -171,7 +173,7 @@ func stringToTimeStamp(stringTime:Int)->String {
let nowDate = dateFormatter.string(from: date as Date) let nowDate = dateFormatter.string(from: date as Date)
return nowDate return nowDate
} }
//MARK:--是否是邮箱
func isMailBox(mail_ad:String) -> Bool { func isMailBox(mail_ad:String) -> Bool {
let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}" let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
...@@ -195,8 +197,8 @@ extension UIViewController { ...@@ -195,8 +197,8 @@ extension UIViewController {
return base return base
} }
} }
//MARK:--根据开始位置和长度截取字符串
extension String { extension String {
//MARK:--根据开始位置和长度截取字符串
func subString(start:Int, length:Int = -1) -> String { func subString(start:Int, length:Int = -1) -> String {
var len = length var len = length
if len == -1 { if len == -1 {
...@@ -214,7 +216,6 @@ func StringByInt(number:Int) -> String { ...@@ -214,7 +216,6 @@ func StringByInt(number:Int) -> String {
return str return str
} }
//MARK: 创建一个日期格式器 //MARK: 创建一个日期格式器
func TimeByDouble (sender : Double ) -> String { func TimeByDouble (sender : Double ) -> String {
let timeInterval:TimeInterval = TimeInterval(sender) let timeInterval:TimeInterval = TimeInterval(sender)
let data : Date = Date(timeIntervalSince1970: timeInterval) let data : Date = Date(timeIntervalSince1970: timeInterval)
...@@ -222,3 +223,10 @@ func TimeByDouble (sender : Double ) -> String { ...@@ -222,3 +223,10 @@ func TimeByDouble (sender : Double ) -> String {
dformatter.dateFormat = "yyyy.MM.dd HH:mm:ss" dformatter.dateFormat = "yyyy.MM.dd HH:mm:ss"
return dformatter.string(from: data) return dformatter.string(from: data)
} }
func dayByDouble (sender : Double ) -> String {
let timeInterval:TimeInterval = TimeInterval(sender)
let data : Date = Date(timeIntervalSince1970: timeInterval)
let dformatter = DateFormatter()
dformatter.dateFormat = "yyyy.MM.dd"
return dformatter.string(from: data)
}
...@@ -43,5 +43,29 @@ ...@@ -43,5 +43,29 @@
<string>goods/goodsAdd</string> <string>goods/goodsAdd</string>
<key>编辑商品</key> <key>编辑商品</key>
<string>goods/goodsEdit</string> <string>goods/goodsEdit</string>
<key>订单列表</key>
<string>Order/orderList</string>
<key>订单详情</key>
<string>Order/orderDetail</string>
<key>普通订单发货</key>
<string>Order/sendOut</string>
<key>预售订单发货</key>
<string>Order/sendOutAd</string>
<key>订单绑定/更换绑定客户</key>
<string>Order/bindCus</string>
<key>确认订单</key>
<string>Order/orderConfirm</string>
<key>订单取消</key>
<string>Order/orderCancel</string>
<key>修改订单商品价格</key>
<string>Order/editOrderGoodsPrice</string>
<key>订单退款</key>
<string>Order/orderRefund</string>
<key>普通订单退货</key>
<string>Order/orderReturnedGoods</string>
<key>预售订单退货</key>
<string>Order/orderReturnedGoodsAd</string>
<key>修改订单支付方式(状态)</key>
<string>Order/editPayType</string>
</dict> </dict>
</plist> </plist>
//
// GoodsInterface.swift
// GeliBusinessPlatform
//
// Created by 刘俊宏 on 2020/5/12.
// Copyright © 2020 junye lu. All rights reserved.
//
import Foundation
import Alamofire
import SwiftyJSON
import ObjectMapper
//MARK:--商品列表
//params-key(user_token,keyword(关键字),sort(1时间降序,2时间升序,3销量降序,4销量升序),is_show(上、下架,0下架,1上架,2全部),page(第几页))
func goodsList(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("商品列表", params, { (rep:DataResponse<GoodsListModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--商品详情
//params-key(user_token,goods_id)
func goodsDetail(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("商品详情", params, { (rep:DataResponse<GoodsDetailModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--新增商品-获取基本信息
//params-key(user_token)
func GeneralInfo(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("新增商品-获取基本信息", params, { (rep:DataResponse<GeneralInfoModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--新增商品
//params-key
/*
user_token
cat_id 分类ID
brand_id 品牌ID
goods_name 商品名称
is_qz 是否清真商品,1是0非
goods_type 商品类型,普通2现货3期货4团购
is_adsale 商品类型字段,预售专用,选定”预售”则值为1,否则值为0
is_inquiry 是否询价:1是0非
need_check 付款是否需要审核, 1是0非
dj_time_start 预设预付定金开始时间,时间戳,预售专用
dj_time_end 预设预付定金结束时间,时间戳,预售专用
wk_time_start 预设预付尾款开始时间,时间戳,预售专用
wk_time_end 预设预付尾款结束时间,时间戳,预售专用
set_time 预付尾款后几天后发货
keywords 关键字
goods_intro 简介
logistics 物流费用
coun_id 国家id
gs_id 商品状态
shelf_life 保质期,单位:月
transportation 运输方式,1冷链,2常温,3热链
goods_desc 商品详情
market_price 市场价
specifications 默认规格,选sku中最低价格(需判定阶梯价)的 规格值
shop_price 默认售价,选sku中最低价格(需判定阶梯价)的价格
goods_unit 默认商品单位,选sku中最低价格(需判定阶梯价)的单位
original_img 商品封面图
goods_banner 商品副图,多张,最多5张,使用一维数组转json格式
sku_info 商品sku信息,字段见“SKU信息表”,使用二维数组转json格式
*/
func goodsAdd(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("新增商品", params, { (rep:DataResponse<GoodsUpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--编辑商品
//params-key(user_token)
/*
商品基础信息新增 goods_id 参数
商品封面 是否修改 参数
goods_banner(商品副图) 参数比新增复杂
sku信息 新增 sku_id 、 goods_id 、is_del等字段信息
goods_id 需要修改的商品ID
original_img_edit 商品封面图是否有修改,1是0非
*/
func goodsEdit(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("编辑商品", params, { (rep:DataResponse<GoodsUpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
...@@ -120,16 +120,6 @@ func locationGeliPay(_ params:[String:Any],success:@escaping (_ res:Any)->(),fai ...@@ -120,16 +120,6 @@ func locationGeliPay(_ params:[String:Any],success:@escaping (_ res:Any)->(),fai
failture(error) failture(error)
} }
} }
//MARK:--商品列表
//params-key(user_token,keyword(关键字),sort(1时间降序,2时间升序,3销量降序,4销量升序),is_show(上、下架,0下架,1上架,2全部),page(第几页))
func goodsList(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("商品列表", params, { (rep:DataResponse<GoodsListModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--简单通用操作接口 //MARK:--简单通用操作接口
//params-key(user_token,function_id(功能id,根据功能填写。功能表见“简单通用操作表”页面),prval( 操作对象id,例:执行商品信息变更操作,为商品id;执行商店信息变更操作,为商店id),value(操作对象变更后的值)) //params-key(user_token,function_id(功能id,根据功能填写。功能表见“简单通用操作表”页面),prval( 操作对象id,例:执行商品信息变更操作,为商品id;执行商店信息变更操作,为商店id),value(操作对象变更后的值))
func editField(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) { func editField(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
...@@ -160,87 +150,7 @@ func getShopAdministratorInfo(_ params:[String:Any],success:@escaping (_ res:Any ...@@ -160,87 +150,7 @@ func getShopAdministratorInfo(_ params:[String:Any],success:@escaping (_ res:Any
failture(error) failture(error)
} }
} }
//MARK:--商品详情 //MARK:--图片(文件)上传
//params-key(user_token,goods_id)
func goodsDetail(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("商品详情", params, { (rep:DataResponse<GoodsDetailModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--新增商品-获取基本信息
//params-key(user_token)
func GeneralInfo(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("新增商品-获取基本信息", params, { (rep:DataResponse<GeneralInfoModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--新增商品
//params-key
/*
user_token
cat_id 分类ID
brand_id 品牌ID
goods_name 商品名称
is_qz 是否清真商品,1是0非
goods_type 商品类型,普通2现货3期货4团购
is_adsale 商品类型字段,预售专用,选定”预售”则值为1,否则值为0
is_inquiry 是否询价:1是0非
need_check 付款是否需要审核, 1是0非
dj_time_start 预设预付定金开始时间,时间戳,预售专用
dj_time_end 预设预付定金结束时间,时间戳,预售专用
wk_time_start 预设预付尾款开始时间,时间戳,预售专用
wk_time_end 预设预付尾款结束时间,时间戳,预售专用
set_time 预付尾款后几天后发货
keywords 关键字
goods_intro 简介
logistics 物流费用
coun_id 国家id
gs_id 商品状态
shelf_life 保质期,单位:月
transportation 运输方式,1冷链,2常温,3热链
goods_desc 商品详情
market_price 市场价
specifications 默认规格,选sku中最低价格(需判定阶梯价)的 规格值
shop_price 默认售价,选sku中最低价格(需判定阶梯价)的价格
goods_unit 默认商品单位,选sku中最低价格(需判定阶梯价)的单位
original_img 商品封面图
goods_banner 商品副图,多张,最多5张,使用一维数组转json格式
sku_info 商品sku信息,字段见“SKU信息表”,使用二维数组转json格式
*/
func goodsAdd(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("新增商品", params, { (rep:DataResponse<GoodsUpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--编辑商品
//params-key(user_token)
/*
商品基础信息新增 goods_id 参数
商品封面 是否修改 参数
goods_banner(商品副图) 参数比新增复杂
sku信息 新增 sku_id 、 goods_id 、is_del等字段信息
goods_id 需要修改的商品ID
original_img_edit 商品封面图是否有修改,1是0非
*/
func goodsEdit(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("编辑商品", params, { (rep:DataResponse<GoodsUpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
func saveFile(image: UIImage,_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) { func saveFile(image: UIImage,_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.uploadImage(url: "图片(文件)上传", image: image, params: params, success: { (data) in NetworkRequest.sharedInstance.uploadImage(url: "图片(文件)上传", image: image, params: params, success: { (data) in
......
//
// OrderInterface.swift
// GeliBusinessPlatform
//
// Created by 刘俊宏 on 2020/5/12.
// Copyright © 2020 junye lu. All rights reserved.
//
import Foundation
import Alamofire
import SwiftyJSON
import ObjectMapper
//MARK:--订单列表
/**
params-key:
user_token(验证token)
keyword(搜索筛选,订单sn或者客户名)
start_time(时间筛选,开始时间)
end_time(时间筛选,结束时间)
pay_status(支付状态;0未付款;1欠款;2已付款,10月结,11退款 12已付定金)
order_source(下单方式,1自主下单,2销售下单)
shipping_status(商品配送状态;0未发货,1已发货,2已收货,4退货 )
order_status(订单状态:0待确认,1待付款,6待发货,7已发货,5退款/货,2已取消)
page(页数)
*/
func orderList(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("订单列表", params, { (rep:DataResponse<OrderListModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--订单详情
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderDetail(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("订单详情", params, { (rep:DataResponse<OrderDetailModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--普通订单发货
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func sendOut(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("普通订单发货", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--预售订单发货
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func sendOutAd(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("预售订单发货", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--订单绑定/更换绑定客户
/**
params-key:
user_token(验证token)
order_id(订单ID)
cus_id(客户id)
*/
func bindCus(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("订单绑定/更换绑定客户", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--确认订单
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderConfirm(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("确认订单", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--确认订单
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderCancel(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("订单取消", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--修改订单商品价格
/**
params-key:
user_token(验证token)
order_id(订单ID)
order_goods(订单商品数据,二维数组json格式,字段见下表)
og_id(订单商品id,取数返回)
cart_number(订单商品数量)
goods_price(订单商品修改后的价格)
is_edit(订单商品是否有修改,1是0非)
*/
func editOrderGoodsPrice(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("修改订单商品价格", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--订单退款
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderRefund(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("订单退款", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--普通订单退货
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderReturnedGoods(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("普通订单退货", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--普通订单退货
/**
params-key:
user_token(验证token)
order_id(订单ID)
*/
func orderReturnedGoodsAd(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("预售订单退货", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//MARK:--修改订单支付方式(状态)
/**
params-key:
user_token(验证token)
order_id(订单ID)
is_adsale(是否为预售订单,1是0非)
amount_type(预售订单修改定金或者尾款,1定金,2尾款)
pay_type(修改后的支付方式)
*/
func editPayType(_ params:[String:Any],success:@escaping (_ res:Any)->(),failture:@escaping(_ error:Error)->()) {
NetworkRequest.sharedInstance.postRequest("修改订单支付方式(状态)", params, { (rep:DataResponse<UpDataModel>) in
}, success: { (data) in
success(data)
}) { (error) in
failture(error)
}
}
//
// OrderDetailModel.swift
// GeliBusinessPlatform
//
// Created by 刘俊宏 on 2020/5/12.
// Copyright © 2020 junye lu. All rights reserved.
//
import Foundation
import ObjectMapper
//订单详情
class OrderDetailModel: Mappable {
var code:Int?
var message : String?
var data : OrderDetailDataModel?
required init?( map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
message <- map["message"]
data <- map["data"]
}
}
class OrderDetailDataModel: Mappable {
var order_res : Array<GoodsResModel>? //商品数据
var order_goods : Array<GoodsResModel>? //商品数据
var receiving : Array<GoodsResModel>? //商品数据
required init?( map: Map) {
}
func mapping(map: Map) {
order_res <- map["order_res"]
order_goods <- map["order_goods"]
receiving <- map["receiving"]
}
}
class OrderDetailResModel: Mappable {
var order_id:Int?
var order_sn : String?
var add_time : Double? //下单时间
var user_id : Int? //用户Id,为0则无用户
var cus_id : Int?//客户id,为0则无客户
var goods_amount : String?
var order_amount : String?
var discount_amount : String?
var sum_amount : String? //订单合计价格
var from : String?
var lc_id : String?
var lwb_no : String?//运单号
var pay_type : String?
var pay_status : String?
var postscript : String? //买家留言
var order_postscript : String? //订单备注
var address : String?
var lc_name : String?
var user_name : String? //用户名
var cus_name : String? //客户名
var from_cn : String? //订单来源中文
var pay_type_cn : String? //支付方式中文
var pay_status_cn : String? //支付状态中文
required init?( map: Map) {
}
func mapping(map: Map) {
order_id <- map["order_id"]
order_sn <- map["order_sn"]
add_time <- map["add_time"]
user_id <- map["user_id"]
cus_id <- map["cus_id"]
add_time <- map["add_time"]
goods_amount <- map["goods_amount"]
order_amount <- map["order_amount"]
discount_amount <- map["discount_amount"]
sum_amount <- map["sum_amount"]
from <- map["from"]
lc_id <- map["lc_id"]
lwb_no <- map["lwb_no"]
pay_type <- map["pay_type"]
pay_status <- map["pay_status"]
postscript <- map["postscript"]
order_postscript <- map["order_postscript"]
address <- map["address"]
lc_name <- map["lc_name"]
user_name <- map["user_name"]
cus_name <- map["cus_name"]
from_cn <- map["from_cn"]
pay_type_cn <- map["pay_type_cn"]
pay_status_cn <- map["pay_status_cn"]
}
}
class OrderDetailGoodsModel: Mappable {
var og_id:Int? //订单商品号
var goods_id : Int? //商品id
var goods_name : String? //商品名
var goods_attr : String? //商品规格
var goods_unit : String? //商品单位
var goods_price : String? //商品单价
var cart_number : String? //商品数量
var goods_subtotal : String? //商品小计
var goods_thumb : String? //商品缩略图
var warehouse_inventory : String? //商品库存
required init?( map: Map) {
}
func mapping(map: Map) {
og_id <- map["og_id"]
goods_id <- map["goods_id"]
goods_name <- map["goods_name"]
goods_attr <- map["goods_attr"]
goods_unit <- map["goods_unit"]
goods_price <- map["goods_price"]
cart_number <- map["cart_number"]
goods_subtotal <- map["goods_subtotal"]
goods_thumb <- map["goods_thumb"]
warehouse_inventory <- map["warehouse_inventory"]
}
}
class OrderDetailReceivingModel: Mappable {
var country:Int?
var consignee : String? //收货人
var address : String?
var city : String?
var address_id : Int?
var mobile : String? //联系方式
var is_send_default : Int?
var is_default : Int?
var zipcode : String?
var province : String?
var user_id : Int?
var street : String?
var district : String?
var tel : String?
var addr_str : String? //地址
required init?( map: Map) {
}
func mapping(map: Map) {
country <- map["country"]
consignee <- map["consignee"]
address <- map["address"]
city <- map["city"]
address_id <- map["address_id"]
mobile <- map["mobile"]
is_send_default <- map["is_send_default"]
is_default <- map["is_default"]
zipcode <- map["zipcode"]
province <- map["province"]
user_id <- map["user_id"]
street <- map["street"]
district <- map["district"]
tel <- map["tel"]
addr_str <- map["addr_str"]
}
}
//
// OrderListModel.swift
// GeliBusinessPlatform
//
// Created by 刘俊宏 on 2020/5/12.
// Copyright © 2020 junye lu. All rights reserved.
//
import Foundation
import ObjectMapper
//订单列表
class OrderListModel: Mappable {
var code:Int?
var message : String?
var data : Array<OrderListDataModel>?
required init?( map: Map) {
}
func mapping(map: Map) {
code <- map["code"]
message <- map["message"]
data <- map["data"]
}
}
class OrderListDataModel: Mappable {
var order_id : Int? //订单id
var order_sn : String? //订单SN
var add_time : Double? //下单时间
var sum_amount : String? //订单价格
var order_status : Int? //订单状态
var order_status_d : Int? //订单详细状态
var order_type : Int? //订单类型 1普通2期货3团购4预售
var pay_status : Int? //支付状态
var pay_type : Int? //支付类型
var shipping_status : Int? //发货状态
var from : Int? //订单来源
var user_name : String? //购买用户
var cus_name : String? //购买客户
var goods_number : String? //订单商量总数
required init?( map: Map) {
}
func mapping(map: Map) {
order_id <- map["order_id"]
order_sn <- map["order_sn"]
add_time <- map["add_time"]
sum_amount <- map["sum_amount"]
order_status <- map["order_status"]
order_status_d <- map["order_status_d"]
order_type <- map["order_type"]
pay_status <- map["pay_status"]
pay_type <- map["pay_type"]
shipping_status <- map["shipping_status"]
from <- map["from"]
user_name <- map["user_name"]
cus_name <- map["cus_name"]
goods_number <- map["goods_number"]
}
}
//MARK:--根据order_type返回字符串状态
func orderTypeStrByInt(statusNumber:Int) -> String? {
var str = ""
switch statusNumber {
case 1:
str = "普通"
break
case 2:
str = "期货"
break
case 3:
str = "团购"
break
case 4:
str = "预售"
break
default: break
}
return str
}
//MARK:--根据order_status_d返回字符串状态
func orderStatusStrByInt(leftBtn:UIButton,rightBtn:UIButton,statusNumber:Int) -> String? {
var str = ""
leftBtn.isHidden = true
rightBtn.setTitle("查看详情", for: .normal)
rightBtn.backgroundColor = UIColor.white
rightBtn.layer.borderWidth = 1
rightBtn.layer.borderColor = UIColor.init(named: "按钮背景颜色")?.cgColor
rightBtn.setTitleColor(UIColor.init(named: "按钮背景颜色"), for: .normal)
switch statusNumber {
case 0:
str = "未确定"
leftBtn.isHidden = false
rightBtn.setTitle("确认订单", for: .normal)
rightBtn.setTitleColor(UIColor.white, for: .normal)
rightBtn.backgroundColor = UIColor.init(named: "按钮背景颜色")
rightBtn.layer.borderColor = UIColor.init(named: "按钮背景颜色")?.cgColor
break
//待付款
case 1:
str = "待付款"
rightBtn.setTitle("取消订单", for: .normal)
rightBtn.setTitleColor(UIColor.init(named: "灰色字体颜色"), for: .normal)
rightBtn.backgroundColor = UIColor.white
rightBtn.layer.borderColor = UIColor.init(named: "灰色字体颜色")?.cgColor
break
case 6:
str = "待发货"
break
case 7:
str = "待收货"
break
//订单完成
case 5:
str = "订单完成"
break
//订单关闭
case 8:
str = "订单关闭"
break
//已取消
case 2:
str = "已取消" //用户取消(预售
break
default:
break
}
return str
}
//MARK:--根据order_status_d返回字符串状态
func orderStatusDstrByInt(statusNumber:Int) -> String? {
var str = ""
switch statusNumber {
case 1:
str = "未确定"
break
//待付款
case 11:
str = "已确定"
break
case 12:
str = "已付定金"
break
case 61:
str = "待发货"
break
case 71:
str = "待收货"
break
//订单完成
case 51:
str = "仅退款"
break
case 52:
str = "仅退货"
break
case 53:
str = "订单完成"
break
//订单关闭
case 81:
str = "退货退款"
break
//已取消
case 21:
str = "待付款" //用户取消(预售
break
case 22:
str = "待确认" //用户取消(预售
break
case 23:
str = "未付定金" //系统取消(预售
break
case 24:
str = "未付尾款" // 系统取消(预售
break
case 25:
str = "待确认" // 商家取消(预售
break
case 26:
str = "已确认" // 商家取消(预售
break
case 27:
str = "已付定金" //商家取消(预售
break
case 28:
str = "待付款" // 商家取消(普通
break
case 29:
str = "待付款" //用户取消(普通
break
default: break
}
return str
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import Foundation import Foundation
import ObjectMapper import ObjectMapper
//发送验证码,验证短信验证码,修改登录密码,绑定、更换绑定格利支付账号,简单通用操作接口 //发送验证码,验证短信验证码,修改登录密码,绑定、更换绑定格利支付账号,简单通用操作接口,普通订单发货,预售订单发货,订单绑定/更换绑定客户,确认订单,订单取消,修改订单商品价格,订单退款,普通订单退货,预售订单退货,修改订单支付方式(状态)
class UpDataModel: Mappable { class UpDataModel: Mappable {
var code:Int? var code:Int?
var message : String? var message : String?
......
======================================== 待办 ========================================
功能: 颜色 | 视频 | 链接 | 引言
功能: toolBar 适配(通过 … 实现)
bug: emoji 高度计算错误
bug: 拼音输入过程中高度计算错误
bug: 找到修改 kLineSpacing 会导致整个计算错误的原因。
优化: 草稿,图片缓存优化,没有使用的图片定时清理
优化: 支持斜体。
优化: 图片非编辑状态应该收起
优化: 图片点击之后更丰富的处理
优化: 在选图片 collectionView 上下拉,选中状态会闪烁
优化: 图片前后输入文字处理。
======================================== 完成 ========================================
功能: 草稿
功能: 导出成 HTML
bug: checkbox 后插入图片计算错误
bug: 首行切换 checkbox 后换行显示错误
bug: 中间插入图片后位置不正确
bug: 首行图片后位置计算不正确
bug: 删除图片后位置计算不正确
bug: 连续插入图片位置不正确
bug: 粗体换行好计算错误
bug: 中文高度计算错误
bug: 图片插在 numbering 中间
bug: 行高计算小数精确位数影响结果
bug: 粗体和 underline 时候高度错误。
优化: bullets 换成图片
优化: 居中换行到下一行时,光标位置不正确。
优化: 插入图片时候主线程会卡顿一下,应该图片太大导致。
优化: 粗体换行后继承。
优化: numbering 之间间距太大。
优化: 插入位置为行首时,图片插入在前面
重构: Line 的扩展
//
// LMNote.h
// LMNote
//
// Created by littleMeaning on 2018/1/10.
// Copyright © 2018年 littleMeaning. All rights reserved.
//
#import <UIKit/UIKit.h>
FOUNDATION_EXPORT double LMNoteVersionNumber;
FOUNDATION_EXPORT const unsigned char LMNoteVersionString[];
#import "LMNTextView.h"
#import "LMNoteViewController.h"
#import "LMNStore.h"
#import "LMNFolder.h"
#import "LMNItem.h"
#import "LMNDraft.h"
//
// NoteViewController.h
// LMNoteDemo
//
// Created by littleMeaning on 2018/1/10.
// Copyright © 2018年 littleMeaning. All rights reserved.
//
#import <UIKit/UIKit.h>
@class LMNDraft;
@interface LMNoteViewController : UIViewController
@property (nonatomic, readonly) LMNDraft *draft;
- (instancetype)initWithDraft:(LMNDraft *)draft;
@end
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment