Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
GeliBusinessPlatform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ljy
GeliBusinessPlatform
Commits
4f67617f
Commit
4f67617f
authored
Apr 14, 2020
by
lujunye
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加navigationController
parent
4a2a28c1
Changes
23
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1029 additions
and
37 deletions
+1029
-37
GeliBusinessPlatform.xcodeproj/project.pbxproj
GeliBusinessPlatform.xcodeproj/project.pbxproj
+131
-8
GeliBusinessPlatform.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
...ta/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
+1
-1
GeliBusinessPlatform.xcworkspace/xcuserdata/junyelu.xcuserdatad/UserInterfaceState.xcuserstate
...erdata/junyelu.xcuserdatad/UserInterfaceState.xcuserstate
+0
-0
GeliBusinessPlatform/Assets.xcassets/字体色/Contents.json
GeliBusinessPlatform/Assets.xcassets/字体色/Contents.json
+7
-0
GeliBusinessPlatform/Assets.xcassets/字体色/标题字颜色.colorset/Contents.json
...Platform/Assets.xcassets/字体色/标题字颜色.colorset/Contents.json
+21
-0
GeliBusinessPlatform/Assets.xcassets/背景色/Contents.json
GeliBusinessPlatform/Assets.xcassets/背景色/Contents.json
+7
-0
GeliBusinessPlatform/Assets.xcassets/背景色/主色调.colorset/Contents.json
...ssPlatform/Assets.xcassets/背景色/主色调.colorset/Contents.json
+21
-0
GeliBusinessPlatform/BaseView/BaseView.swift
GeliBusinessPlatform/BaseView/BaseView.swift
+31
-0
GeliBusinessPlatform/BaseView/BaseViewController.swift
GeliBusinessPlatform/BaseView/BaseViewController.swift
+34
-0
GeliBusinessPlatform/BaseView/NavViewController.swift
GeliBusinessPlatform/BaseView/NavViewController.swift
+41
-0
GeliBusinessPlatform/Define/Define.swift
GeliBusinessPlatform/Define/Define.swift
+205
-0
GeliBusinessPlatform/Define/NetworkRequest.swift
GeliBusinessPlatform/Define/NetworkRequest.swift
+227
-0
GeliBusinessPlatform/Model/LoginModel.swift
GeliBusinessPlatform/Model/LoginModel.swift
+9
-0
GeliBusinessPlatform/SceneDelegate.swift
GeliBusinessPlatform/SceneDelegate.swift
+3
-2
GeliBusinessPlatform/ViewController/忘记密码/FgPassViewController.swift
...ssPlatform/ViewController/忘记密码/FgPassViewController.swift
+33
-0
GeliBusinessPlatform/ViewController/忘记密码/FgPassViewController.xib
...nessPlatform/ViewController/忘记密码/FgPassViewController.xib
+30
-0
GeliBusinessPlatform/ViewController/注册/RegisterViewController.swift
...ssPlatform/ViewController/注册/RegisterViewController.swift
+33
-0
GeliBusinessPlatform/ViewController/注册/RegisterViewController.xib
...nessPlatform/ViewController/注册/RegisterViewController.xib
+30
-0
GeliBusinessPlatform/ViewController/登录/LoginViewController.swift
...inessPlatform/ViewController/登录/LoginViewController.swift
+41
-0
GeliBusinessPlatform/ViewController/登录/LoginViewController.xib
...usinessPlatform/ViewController/登录/LoginViewController.xib
+42
-0
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
....xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
+11
-13
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
.../junyelu.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
+11
-13
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
...ta/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
+60
-0
No files found.
GeliBusinessPlatform.xcodeproj/project.pbxproj
View file @
4f67617f
This diff is collapsed.
Click to expand it.
GeliBusinessPlatform.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
4f67617f
...
...
@@ -7,7 +7,7 @@
<key>
GeliBusinessPlatform.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
0
</integer>
<integer>
18
</integer>
</dict>
</dict>
</dict>
...
...
GeliBusinessPlatform.xcworkspace/xcuserdata/junyelu.xcuserdatad/UserInterfaceState.xcuserstate
0 → 100644
View file @
4f67617f
File added
GeliBusinessPlatform/Assets.xcassets/字体色/Contents.json
0 → 100644
View file @
4f67617f
{
"info"
:
{
"version"
:
1
,
"author"
:
"xcode"
}
}
\ No newline at end of file
GeliBusinessPlatform/Assets.xcassets/字体色/标题字颜色.colorset/Contents.json
0 → 100644
View file @
4f67617f
{
"info"
:
{
"version"
:
1
,
"author"
:
"xcode"
},
"colors"
:
[
{
"idiom"
:
"universal"
,
"color"
:
{
"color-space"
:
"srgb"
,
"components"
:
{
"red"
:
"0.517"
,
"alpha"
:
"1.000"
,
"blue"
:
"1.000"
,
"green"
:
"1.000"
}
}
}
]
}
\ No newline at end of file
GeliBusinessPlatform/Assets.xcassets/背景色/Contents.json
0 → 100644
View file @
4f67617f
{
"info"
:
{
"version"
:
1
,
"author"
:
"xcode"
}
}
\ No newline at end of file
GeliBusinessPlatform/Assets.xcassets/背景色/主色调.colorset/Contents.json
0 → 100644
View file @
4f67617f
{
"info"
:
{
"version"
:
1
,
"author"
:
"xcode"
},
"colors"
:
[
{
"idiom"
:
"universal"
,
"color"
:
{
"color-space"
:
"srgb"
,
"components"
:
{
"red"
:
"0.851"
,
"alpha"
:
"1.000"
,
"blue"
:
"0.297"
,
"green"
:
"0.196"
}
}
}
]
}
\ No newline at end of file
GeliBusinessPlatform/BaseView/BaseView.swift
0 → 100644
View file @
4f67617f
//
// BaseView.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
import
UIKit
class
BaseView
:
UIView
{
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
}
required
init
?(
coder
aDecoder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
/*
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {
// Drawing code
}
*/
}
GeliBusinessPlatform/BaseView/BaseViewController.swift
0 → 100644
View file @
4f67617f
//
// BaseViewController.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
import
UIKit
import
SwiftyJSON
import
ObjectMapper
import
Alamofire
class
BaseViewController
:
UIViewController
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
self
.
navigationController
?
.
navigationBar
.
isHidden
=
true
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
if
IsOldIos
()
{
self
.
automaticallyAdjustsScrollViewInsets
=
false
;
}
// Do any additional setup after loading the view.
}
override
func
didReceiveMemoryWarning
()
{
super
.
didReceiveMemoryWarning
()
// Dispose of any resources that can be recreated.
}
}
GeliBusinessPlatform/BaseView/NavViewController.swift
0 → 100644
View file @
4f67617f
//
// NavViewController.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/29.
// Copyright © 2018年 geli. All rights reserved.
//
import
UIKit
class
NavViewController
:
UINavigationController
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
self
.
navigationController
?
.
navigationBar
.
tintColor
=
UIColor
(
named
:
"主色调"
)
UIBarButtonItem
.
appearance
()
.
setBackButtonTitlePositionAdjustment
(
UIOffset
(
horizontal
:
-
2000
,
vertical
:
0
),
for
:
UIBarMetrics
.
default
)
//去掉返回图片后面的文字
}
// override func viewDidLayoutSubviews() {
// super.viewDidLayoutSubviews()
//
// }
override
func
didReceiveMemoryWarning
()
{
super
.
didReceiveMemoryWarning
()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
GeliBusinessPlatform/Define/Define.swift
0 → 100644
View file @
4f67617f
//
// Define.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/22.
// Copyright © 2018年 geli. All rights reserved.
//
/*
来个碗Apple开发者账号、密码:
dev@laigewan.com
81338860^geLi
下载链接:
https://itunes.apple.com/cn/app/id1428195489?mt=8
*/
import
UIKit
//版本号
let
systemVersion
=
(
UIDevice
.
current
.
systemVersion
as
String
)
//let UserId = ((UserDefaults.standard.string(forKey: "user_id") != nil) ? (UserDefaults.standard.string(forKey: "user_id")) : "") as! String
//let IsHavUserId = (UserId.count != 0)
//接口地址
//test
//let SERVERCE_ImageHost = "http://admin.lgw.com/"
//let SERVERCE_HOST = "http://admin.lgw.com/api/"
//online
let
SERVERCE_ImageHost
=
"https://api.laigewan.com/upload/images/"
let
SERVERCE_HOST
=
"https://api.laigewan.com/api/"
//视图常量
let
IS_IPHONE_X
=
__CGSizeEqualToSize
(
CGSize
(
width
:
375.0
,
height
:
812.0
),
UIScreen
.
main
.
bounds
.
size
)
||
__CGSizeEqualToSize
(
CGSize
(
width
:
812.0
,
height
:
375.0
),
UIScreen
.
main
.
bounds
.
size
)
||
__CGSizeEqualToSize
(
CGSize
(
width
:
414.0
,
height
:
896.0
),
UIScreen
.
main
.
bounds
.
size
)
||
__CGSizeEqualToSize
(
CGSize
(
width
:
896.0
,
height
:
414.0
),
UIScreen
.
main
.
bounds
.
size
)
let
NavHeight
=
(
IS_IPHONE_X
?
88
:
64
)
let
TabHeight
=
(
IS_IPHONE_X
?
83
:
49
)
let
NavCGRect
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
Int
(
UIScreen
.
main
.
bounds
.
size
.
width
),
height
:
NavHeight
)
let
LoopHeight
=
UIScreen
.
main
.
bounds
.
size
.
width
/
1.25
func
IsOldIos
()
->
Bool
{
if
#available(iOS 11.0, *)
{
return
false
}
else
{
return
true
}
}
func
x
(
object
:
UIView
)
->
CGFloat
{
return
object
.
frame
.
origin
.
x
}
func
y
(
object
:
UIView
)
->
CGFloat
{
return
object
.
frame
.
origin
.
y
}
func
width
(
object
:
UIView
)
->
CGFloat
{
return
object
.
frame
.
size
.
width
}
func
height
(
object
:
UIView
)
->
CGFloat
{
return
object
.
frame
.
size
.
height
}
func
centerX
(
object
:
UIView
)
->
CGFloat
{
return
object
.
center
.
x
}
func
centerY
(
object
:
UIView
)
->
CGFloat
{
return
object
.
center
.
y
}
func
setFont
(
_
size
:
CGFloat
)
->
UIFont
{
return
UIFont
.
boldSystemFont
(
ofSize
:
size
)
}
func
setColor
(
red
:
CGFloat
,
green
:
CGFloat
,
blue
:
CGFloat
)
->
UIColor
{
return
UIColor
(
red
:
red
/
255
,
green
:
green
/
255
,
blue
:
blue
/
255
,
alpha
:
1
)
}
func
isPurnFloat
(
string
:
String
)
->
Bool
{
let
scan
:
Scanner
=
Scanner
(
string
:
string
)
var
val
:
Float
=
0
return
scan
.
scanFloat
(
&
val
)
&&
scan
.
isAtEnd
}
func
isPurnInt
(
string
:
String
)
->
Bool
{
let
scan
:
Scanner
=
Scanner
(
string
:
string
)
var
val
:
Int
=
0
return
scan
.
scanInt
(
&
val
)
&&
scan
.
isAtEnd
}
func
isPurnNumber
(
str
:
String
)
->
Bool
{
if
isPurnInt
(
string
:
str
)
||
isPurnFloat
(
string
:
str
){
return
true
}
else
{
return
false
}
}
//RGB
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
)
}
func
isTelNumber
(
num
:
NSString
)
->
Bool
{
// let mobile = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$"
// let CM = "^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$"
// let CU = "^1(3[0-2]|5[256]|8[56])\\d{8}$"
// let CT = "^1((33|53|8[09])[0-9]|349)\\d{7}$"
// let regextestmobile = NSPredicate(format: "SELF MATCHES %@",mobile)
// let regextestcm = NSPredicate(format: "SELF MATCHES %@",CM )
// let regextestcu = NSPredicate(format: "SELF MATCHES %@" ,CU)
// let regextestct = NSPredicate(format: "SELF MATCHES %@" ,CT)
// if ((regextestmobile.evaluate(with: num) == true)
// || (regextestcm.evaluate(with: num) == true)
// || (regextestct.evaluate(with: num) == true)
// || (regextestcu.evaluate(with: num) == true))
if
num
.
length
==
11
{
// {
return
true
}
else
{
return
false
}
}
func
stringToTimeStamp
(
stringTime
:
Int
)
->
String
{
let
interval
=
TimeInterval
(
stringTime
)
let
date
=
NSDate
(
timeIntervalSince1970
:
interval
)
// 格式化输出
let
dateFormatter
=
DateFormatter
()
dateFormatter
.
dateFormat
=
" yyyy-MM-dd HH:mm:ss"
let
nowDate
=
dateFormatter
.
string
(
from
:
date
as
Date
)
return
nowDate
}
func
isMailBox
(
mail_ad
:
String
)
->
Bool
{
let
emailRegex
=
"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+
\\
.[A-Za-z]{2,4}"
let
emailTest
=
NSPredicate
.
init
(
format
:
"SELF MATCHES %@"
,
emailRegex
)
return
emailTest
.
evaluate
(
with
:
mail_ad
)
}
extension
UIViewController
{
class
func
currentViewController
(
base
:
UIViewController
?
=
UIApplication
.
shared
.
keyWindow
?
.
rootViewController
)
->
UIViewController
?
{
if
let
nav
=
base
as?
UINavigationController
{
return
currentViewController
(
base
:
nav
.
visibleViewController
)
}
if
let
tab
=
base
as?
UITabBarController
{
return
currentViewController
(
base
:
tab
.
selectedViewController
)
}
if
let
presented
=
base
?
.
presentedViewController
{
return
currentViewController
(
base
:
presented
)
}
return
base
}
}
extension
String
{
//MARK:--根据开始位置和长度截取字符串
func
subString
(
start
:
Int
,
length
:
Int
=
-
1
)
->
String
{
var
len
=
length
if
len
==
-
1
{
len
=
self
.
count
-
start
}
let
st
=
self
.
index
(
startIndex
,
offsetBy
:
start
)
let
en
=
self
.
index
(
st
,
offsetBy
:
len
)
return
String
(
self
[
st
..<
en
])
}
}
//MARK:--根据整数返回字符串
func
StringByInt
(
number
:
Int
)
->
String
{
let
num
=
NSNumber
(
value
:
number
)
let
str
=
NumberFormatter
.
localizedString
(
from
:
num
,
number
:
.
none
)
return
str
}
func
TimeByDouble
(
sender
:
Double
)
->
String
{
// 创建一个日期格式器
let
timeInterval
:
TimeInterval
=
TimeInterval
(
sender
)
let
data
:
Date
=
Date
(
timeIntervalSince1970
:
timeInterval
)
let
dformatter
=
DateFormatter
()
dformatter
.
dateFormat
=
"yyyy.MM.dd HH:mm:ss"
return
dformatter
.
string
(
from
:
data
)
}
GeliBusinessPlatform/Define/NetworkRequest.swift
0 → 100644
View file @
4f67617f
//
// NetworkRequest.swift
// GeLiLaiGeWan
//
// Created by geli on 2018/6/25.
// Copyright © 2018年 geli. All rights reserved.
//
import
Foundation
import
Alamofire
import
SwiftyJSON
import
ObjectMapper
import
UIKit
private
let
NetworkRequestShareInstance
=
NetworkRequest
()
class
introModel
:
Mappable
{
var
code
:
Int
?
var
message
:
String
?
var
data
:
String
?
required
init
?(
map
:
Map
)
{
}
func
mapping
(
map
:
Map
)
{
code
<-
map
[
"code"
]
message
<-
map
[
"message"
]
data
<-
map
[
"data"
]
}
}
class
introModel1
:
Mappable
{
var
code
:
Int
?
var
message
:
String
?
var
data
:
urlData
?
required
init
?(
map
:
Map
)
{
}
func
mapping
(
map
:
Map
)
{
code
<-
map
[
"code"
]
message
<-
map
[
"message"
]
data
<-
map
[
"data"
]
}
}
class
urlData
:
Mappable
{
var
art_id
:
Int
?
var
content
:
String
?
required
init
?(
map
:
Map
)
{
}
func
mapping
(
map
:
Map
)
{
art_id
<-
map
[
"art_id"
]
content
<-
map
[
"content"
]
}
}
class
BaseModel
:
Mappable
{
var
code
:
Int
?
var
message
:
String
?
var
data
:
Any
?
required
init
?(
map
:
Map
)
{
}
func
mapping
(
map
:
Map
)
{
code
<-
map
[
"code"
]
message
<-
map
[
"message"
]
data
<-
map
[
"data"
]
}
}
class
NetworkRequest
{
class
var
sharedInstance
:
NetworkRequest
{
return
NetworkRequestShareInstance
}
}
//处理更细分的错误情况,错误类型须遵从Error协议
enum
DogError
:
Error
{
case
DataInvalidError
}
extension
NetworkRequest
{
//MARK: - GET 请求
// let tools : NetworkRequest.shareInstance!
//MARK: - POST 请求
func
postRequest
<
T
:
BaseMappable
>
(
_
url
:
String
,
_
params
:[
String
:
Any
],
_
type
:(
_
t
:
DataResponse
<
T
>
)
->
(),
success
:
@escaping
(
_
res
:
Any
)
->
(),
failture
:
@escaping
(
_
error
:
Error
)
->
()){
let
paths
=
Bundle
.
main
.
path
(
forResource
:
"Interface_Z"
,
ofType
:
"plist"
)
let
dic
=
NSDictionary
(
contentsOfFile
:
(
paths
!
as
String
))
let
dicstr
:
String
=
dic
?[
url
]
as!
String
let
allUrl
=
SERVERCE_HOST
+
dicstr
print
(
allUrl
)
print
(
params
)
var
request
=
URLRequest
(
url
:
URL
(
string
:
allUrl
)
!
)
request
.
httpMethod
=
"POST"
request
.
setValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
request
.
addValue
(
"IOS"
,
forHTTPHeaderField
:
"CLIENT_TYPE"
)
let
infoD
=
Bundle
.
main
.
infoDictionary
let
ver
=
infoD
!
[
"CFBundleShortVersionString"
]
request
.
addValue
(
"
\(
ver
!
)
"
,
forHTTPHeaderField
:
"CLIENT_VERSION"
)
request
.
timeoutInterval
=
10
request
.
httpBody
=
try!
JSONSerialization
.
data
(
withJSONObject
:
params
,
options
:
[])
Alamofire
.
request
(
request
)
.
responseJSON
{
(
response
)
in
switch
response
.
result
{
case
.
success
(
let
value
):
let
json
=
JSON
(
value
)
print
(
json
)
//SwiftNotice.clear()
if
json
[
"code"
]
.
intValue
==
200
{
success
(
Mapper
<
T
>
()
.
map
(
JSONObject
:
value
))
}
else
if
json
[
"code"
]
.
intValue
==
999
{
print
(
"uid错误"
)
let
alt
=
UIAlertView
(
title
:
"提示"
,
message
:
json
[
"message"
]
.
stringValue
,
delegate
:
nil
,
cancelButtonTitle
:
"确定"
)
alt
.
show
()
failture
(
DogError
.
DataInvalidError
)
}
else
{
let
alt
=
UIAlertView
(
title
:
"提示"
,
message
:
json
[
"message"
]
.
stringValue
,
delegate
:
nil
,
cancelButtonTitle
:
"确定"
)
alt
.
show
()
failture
(
DogError
.
DataInvalidError
)
}
case
.
failure
(
let
error
):
//SwiftNotice.clear()
let
alt
=
UIAlertView
(
title
:
"提示"
,
message
:
"网络错误"
,
delegate
:
nil
,
cancelButtonTitle
:
"确定"
)
failture
(
error
)
print
(
"error:
\(
error
)
"
)
}
}
}
//MARK: - 照片上传
func
uploadImage
(
url
:
String
,
image
:
UIImage
,
params
:
[
String
:
String
],
success
:
@escaping
(
_
result
:
[
String
:
Any
])
->
(),
failure
:
@escaping
(
_
error
:
Error
)
->
())
{
let
paths
=
Bundle
.
main
.
path
(
forResource
:
"Interface_Z"
,
ofType
:
"plist"
)
let
dic
=
NSDictionary
(
contentsOfFile
:
(
paths
!
as
String
))
let
dicstr
:
String
=
dic
?[
url
]
as!
String
Alamofire
.
upload
(
multipartFormData
:
{
(
multipartFormData
)
in
let
data
=
image
.
jpegData
(
compressionQuality
:
0.5
)
let
fileName
=
String
.
init
(
describing
:
NSDate
())
+
".png"
// withName:是根据文档决定传入的字符串
multipartFormData
.
append
(
data
!
,
withName
:
"image"
,
fileName
:
fileName
,
mimeType
:
"image/png"
)
// 遍历添加参数
for
(
key
,
value
)
in
params
{
// string 转 data
multipartFormData
.
append
(
value
.
data
(
using
:
String
.
Encoding
.
utf8
)
!
,
withName
:
key
)
}
},
to
:
SERVERCE_HOST
+
dicstr
,
encodingCompletion
:
{
(
encodingResult
)
in
switch
encodingResult
{
case
.
success
(
let
upload
,
_
,
_
):
upload
.
responseJSON
{
response
in
success
(
response
.
result
.
value
as!
[
String
:
Any
])
// 已经转为字典
}
case
.
failure
(
let
encodingError
):
failure
(
encodingError
)
}
})
}
func
postRequestNoMessage
<
T
:
BaseMappable
>
(
_
url
:
String
,
_
params
:[
String
:
Any
],
_
type
:(
_
t
:
DataResponse
<
T
>
)
->
(),
success
:
@escaping
(
_
res
:
Any
)
->
(),
failture
:
@escaping
(
_
error
:
Error
)
->
()){
let
paths
=
Bundle
.
main
.
path
(
forResource
:
"Interface_Z"
,
ofType
:
"plist"
)
let
dic
=
NSDictionary
(
contentsOfFile
:
(
paths
!
as
String
))
let
dicstr
:
String
=
dic
?[
url
]
as!
String
let
allUrl
=
SERVERCE_HOST
+
dicstr
print
(
allUrl
)
print
(
params
)
var
request
=
URLRequest
(
url
:
URL
(
string
:
allUrl
)
!
)
request
.
httpMethod
=
"POST"
request
.
setValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
request
.
timeoutInterval
=
10
request
.
httpBody
=
try!
JSONSerialization
.
data
(
withJSONObject
:
params
,
options
:
[])
Alamofire
.
request
(
request
)
.
responseJSON
{
(
response
)
in
switch
response
.
result
{
case
.
success
(
let
value
):
let
json
=
JSON
(
value
)
print
(
json
)
//SwiftNotice.clear()
UserDefaults
.
standard
.
setValue
(
json
[
"message"
]
.
stringValue
,
forKey
:
"jsonMessage"
)
if
json
[
"code"
]
.
intValue
==
200
{
success
(
Mapper
<
T
>
()
.
map
(
JSONObject
:
value
))
}
else
if
json
[
"code"
]
.
intValue
==
999
{
NotificationCenter
.
default
.
post
(
name
:
Notification
.
Name
(
rawValue
:
"logout"
),
object
:
nil
)
}
else
{
if
json
[
"code"
]
.
intValue
==
500
{
success
(
Mapper
<
T
>
()
.
map
(
JSONObject
:
value
))
}
else
{
failture
(
DogError
.
DataInvalidError
)
}
}
case
.
failure
(
let
error
):
//SwiftNotice.clear()
failture
(
error
)
}
}
}
}
GeliBusinessPlatform/Model/LoginModel.swift
0 → 100644
View file @
4f67617f
//
// LoginModel.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import
Foundation
GeliBusinessPlatform/SceneDelegate.swift
View file @
4f67617f
...
...
@@ -20,12 +20,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
// Create the SwiftUI view that provides the window contents.
let
contentView
=
ContentView
()
let
contentView
=
LoginViewController
()
// Use a UIHostingController as window root view controller.
if
let
windowScene
=
scene
as?
UIWindowScene
{
let
window
=
UIWindow
(
windowScene
:
windowScene
)
window
.
rootViewController
=
UIHostingController
(
rootView
:
contentView
)
let
rootV
=
NavViewController
(
rootViewController
:
contentView
)
window
.
rootViewController
=
rootV
;
self
.
window
=
window
window
.
makeKeyAndVisible
()
}
...
...
GeliBusinessPlatform/ViewController/忘记密码/FgPassViewController.swift
0 → 100644
View file @
4f67617f
//
// FgPassViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import
UIKit
class
FgPassViewController
:
BaseViewController
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
self
.
navigationController
?
.
navigationBar
.
isHidden
=
false
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
GeliBusinessPlatform/ViewController/忘记密码/FgPassViewController.xib
0 → 100644
View file @
4f67617f
<?xml version="1.0" encoding="UTF-8"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"15702"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
useSafeAreas=
"YES"
colorMatched=
"YES"
>
<device
id=
"retina6_1"
orientation=
"portrait"
appearance=
"light"
/>
<dependencies>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"15704"
/>
<capability
name=
"Named colors"
minToolsVersion=
"9.0"
/>
<capability
name=
"Safe area layout guides"
minToolsVersion=
"9.0"
/>
<capability
name=
"documents saved in the Xcode 8 format"
minToolsVersion=
"8.0"
/>
</dependencies>
<objects>
<placeholder
placeholderIdentifier=
"IBFilesOwner"
id=
"-1"
userLabel=
"File's Owner"
customClass=
"FgPassViewController"
customModule=
"GeliBusinessPlatform"
customModuleProvider=
"target"
>
<connections>
<outlet
property=
"view"
destination=
"i5M-Pr-FkT"
id=
"sfx-zR-JGt"
/>
</connections>
</placeholder>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"-2"
customClass=
"UIResponder"
/>
<view
clearsContextBeforeDrawing=
"NO"
contentMode=
"scaleToFill"
id=
"i5M-Pr-FkT"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"414"
height=
"896"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<color
key=
"backgroundColor"
name=
"标题字颜色"
/>
<viewLayoutGuide
key=
"safeArea"
id=
"fnl-2z-Ty3"
/>
<point
key=
"canvasLocation"
x=
"133"
y=
"154"
/>
</view>
</objects>
<resources>
<namedColor
name=
"标题字颜色"
>
<color
red=
"0.51700001955032349"
green=
"1"
blue=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
</namedColor>
</resources>
</document>
GeliBusinessPlatform/ViewController/注册/RegisterViewController.swift
0 → 100644
View file @
4f67617f
//
// RegisterViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import
UIKit
class
RegisterViewController
:
BaseViewController
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
self
.
navigationController
?
.
navigationBar
.
isHidden
=
false
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
GeliBusinessPlatform/ViewController/注册/RegisterViewController.xib
0 → 100644
View file @
4f67617f
<?xml version="1.0" encoding="UTF-8"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"15702"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
useSafeAreas=
"YES"
colorMatched=
"YES"
>
<device
id=
"retina6_1"
orientation=
"portrait"
appearance=
"light"
/>
<dependencies>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"15704"
/>
<capability
name=
"Named colors"
minToolsVersion=
"9.0"
/>
<capability
name=
"Safe area layout guides"
minToolsVersion=
"9.0"
/>
<capability
name=
"documents saved in the Xcode 8 format"
minToolsVersion=
"8.0"
/>
</dependencies>
<objects>
<placeholder
placeholderIdentifier=
"IBFilesOwner"
id=
"-1"
userLabel=
"File's Owner"
customClass=
"RegisterViewController"
customModule=
"GeliBusinessPlatform"
customModuleProvider=
"target"
>
<connections>
<outlet
property=
"view"
destination=
"i5M-Pr-FkT"
id=
"sfx-zR-JGt"
/>
</connections>
</placeholder>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"-2"
customClass=
"UIResponder"
/>
<view
clearsContextBeforeDrawing=
"NO"
contentMode=
"scaleToFill"
id=
"i5M-Pr-FkT"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"414"
height=
"896"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<color
key=
"backgroundColor"
name=
"主色调"
/>
<viewLayoutGuide
key=
"safeArea"
id=
"fnl-2z-Ty3"
/>
<point
key=
"canvasLocation"
x=
"133"
y=
"154"
/>
</view>
</objects>
<resources>
<namedColor
name=
"主色调"
>
<color
red=
"0.85100001096725464"
green=
"0.19599999487400055"
blue=
"0.29699999094009399"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"sRGB"
/>
</namedColor>
</resources>
</document>
GeliBusinessPlatform/ViewController/登录/LoginViewController.swift
0 → 100644
View file @
4f67617f
//
// LoginViewController.swift
// GeliBusinessPlatform
//
// Created by junye lu on 2020/4/14.
// Copyright © 2020 junye lu. All rights reserved.
//
import
UIKit
class
LoginViewController
:
BaseViewController
{
@IBAction
func
forgetPasswordAction
(
_
sender
:
Any
)
{
let
vc
=
FgPassViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
@IBAction
func
registerAction
(
_
sender
:
Any
)
{
let
vc
=
RegisterViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
GeliBusinessPlatform/ViewController/登录/LoginViewController.xib
0 → 100644
View file @
4f67617f
<?xml version="1.0" encoding="UTF-8"?>
<document
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"3.0"
toolsVersion=
"15702"
targetRuntime=
"iOS.CocoaTouch"
propertyAccessControl=
"none"
useAutolayout=
"YES"
useTraitCollections=
"YES"
useSafeAreas=
"YES"
colorMatched=
"YES"
>
<device
id=
"retina6_1"
orientation=
"portrait"
appearance=
"light"
/>
<dependencies>
<plugIn
identifier=
"com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version=
"15704"
/>
<capability
name=
"Safe area layout guides"
minToolsVersion=
"9.0"
/>
<capability
name=
"documents saved in the Xcode 8 format"
minToolsVersion=
"8.0"
/>
</dependencies>
<objects>
<placeholder
placeholderIdentifier=
"IBFilesOwner"
id=
"-1"
userLabel=
"File's Owner"
customClass=
"LoginViewController"
customModule=
"GeliBusinessPlatform"
customModuleProvider=
"target"
>
<connections>
<outlet
property=
"view"
destination=
"i5M-Pr-FkT"
id=
"sfx-zR-JGt"
/>
</connections>
</placeholder>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"-2"
customClass=
"UIResponder"
/>
<view
clearsContextBeforeDrawing=
"NO"
contentMode=
"scaleToFill"
id=
"i5M-Pr-FkT"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"414"
height=
"896"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<subviews>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
fixedFrame=
"YES"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"roundedRect"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"t61-Md-ABJ"
>
<rect
key=
"frame"
x=
"267"
y=
"457"
width=
"62"
height=
"30"
/>
<autoresizingMask
key=
"autoresizingMask"
flexibleMaxX=
"YES"
flexibleMaxY=
"YES"
/>
<state
key=
"normal"
title=
"忘记密码"
/>
<connections>
<action
selector=
"forgetPasswordAction:"
destination=
"-1"
eventType=
"touchUpInside"
id=
"4dU-SE-OkJ"
/>
</connections>
</button>
<button
opaque=
"NO"
contentMode=
"scaleToFill"
fixedFrame=
"YES"
contentHorizontalAlignment=
"center"
contentVerticalAlignment=
"center"
buttonType=
"roundedRect"
lineBreakMode=
"middleTruncation"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"du0-ic-sYA"
>
<rect
key=
"frame"
x=
"102"
y=
"457"
width=
"31"
height=
"30"
/>
<autoresizingMask
key=
"autoresizingMask"
flexibleMaxX=
"YES"
flexibleMaxY=
"YES"
/>
<state
key=
"normal"
title=
"注册"
/>
<connections>
<action
selector=
"registerAction:"
destination=
"-1"
eventType=
"touchUpInside"
id=
"XTb-OE-pq9"
/>
</connections>
</button>
</subviews>
<color
key=
"backgroundColor"
white=
"1"
alpha=
"1"
colorSpace=
"custom"
customColorSpace=
"genericGamma22GrayColorSpace"
/>
<viewLayoutGuide
key=
"safeArea"
id=
"fnl-2z-Ty3"
/>
<point
key=
"canvasLocation"
x=
"133"
y=
"102"
/>
</view>
</objects>
</document>
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
View file @
4f67617f
...
...
@@ -7,15 +7,15 @@
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
>
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"21FA543DECED4F6DC91853F5E1518EB3"
BuildableName =
"Pods
-
GeliBusinessPlatform.framework"
BuildableName =
"Pods
_
GeliBusinessPlatform.framework"
BlueprintName =
"Pods-GeliBusinessPlatform"
ReferencedContainer =
"container:Pods.xcodeproj"
>
</BuildableReference>
...
...
@@ -23,14 +23,15 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -38,17 +39,14 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
debugDocumentVersioning =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
View file @
4f67617f
...
...
@@ -7,15 +7,15 @@
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
>
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"0B00B2C167CD783351BD1D00BD5AD1F8"
BuildableName =
"Reachability
Swift
.framework"
BuildableName =
"Reachability.framework"
BlueprintName =
"ReachabilitySwift"
ReferencedContainer =
"container:Pods.xcodeproj"
>
</BuildableReference>
...
...
@@ -23,14 +23,15 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -38,17 +39,14 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
debugDocumentVersioning =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/junyelu.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
4f67617f
...
...
@@ -8,51 +8,111 @@
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
0
</integer>
</dict>
<key>
CryptoSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
1
</integer>
</dict>
<key>
Dollar.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
10
</integer>
</dict>
<key>
ESTabBarController.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
11
</integer>
</dict>
<key>
Hue.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
2
</integer>
</dict>
<key>
IQKeyboardManagerSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
3
</integer>
</dict>
<key>
Kingfisher.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
12
</integer>
</dict>
<key>
MJRefresh.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
4
</integer>
</dict>
<key>
ObjectMapper.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
5
</integer>
</dict>
<key>
Pods-GeliBusinessPlatform.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
6
</integer>
</dict>
<key>
ReachabilitySwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
7
</integer>
</dict>
<key>
Realm.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
13
</integer>
</dict>
<key>
RealmSwift.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
14
</integer>
</dict>
<key>
SkeletonView.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
15
</integer>
</dict>
<key>
SwiftDate.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
16
</integer>
</dict>
<key>
SwifterSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
8
</integer>
</dict>
<key>
SwiftyJSON.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
9
</integer>
</dict>
<key>
ViewAnimator.xcscheme_^#shared#^_
</key>
<dict>
<key>
orderHint
</key>
<integer>
17
</integer>
</dict>
</dict>
<key>
SuppressBuildableAutocreation
</key>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment