Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hls-easyUI-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
easyUI
hls-easyUI-template
Commits
e8d30c2c
Commit
e8d30c2c
authored
May 10, 2019
by
Nature
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hmapLogin
parent
bbc23a33
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
50 deletions
+156
-50
README.md
README.md
+6
-11
home.vue
src/pages/home.vue
+3
-0
login.js
src/scripts/login.js
+147
-39
No files found.
README.md
View file @
e8d30c2c
...
...
@@ -45,18 +45,13 @@ For a detailed explanation on how things work, check out the [guide](http://vuej
{path: '/tab/userInfo', component: UserInfo, name: 'UserInfo', meta: {keepAlive: true}},
```
#
keyStore签名信息
#
## 组件的使用
keystore文件 hlscar.keystore
参考home页面
详细的用法参考插件的源码
别名 HLSkey
### 开发说明
密码 com.hls.easy.car
# 签名
jarsigner -verbose -keystore hls.keystore -signedjar 车租易.apk hls.apk HLSkey
# 打包冲突解决
各项目如果安装了 com.hls.plugins.barcode 扫码插件与cordova-plugin-open-camera 媒体插件
两个插件之间存在一些冲突 请注释掉媒体插件 plugin.xml 第83行
<uses-feature
android:name=
"android.hardware.camera"
/>
1.
项目开发中中入口页面必须为home页面
2.
在home页面的created函数中调用登录接口用于根据海马汇的个人信息获取业务系统的个人信息
src/pages/home.vue
View file @
e8d30c2c
...
...
@@ -265,6 +265,7 @@
<
script
>
import
svg
from
'@/assets/image/loading/rolling.svg'
import
hmapLogin
from
'@/scripts/login'
export
default
{
data
()
{
...
...
@@ -358,6 +359,8 @@ export default {
// this.bottom = 20;
},
created
:
function
()
{
hmapLogin
(
'local'
).
then
(
res
=>
{
})
this
.
bgColor
=
[
'#5D98F6'
,
'#1aad19'
,
'#eebe41'
]
},
mounted
()
{
...
...
src/scripts/login.js
View file @
e8d30c2c
...
...
@@ -7,34 +7,40 @@ import axios from 'axios'
import
{
getUrlParam
}
from
'./utils'
// 模拟登录
export
async
function
analogLogin
()
{
const
url
=
`
${
$config
.
baseURL
}
/oauth/token?client_id=a765ff3f-8d33-49b4-a9c9-48e991544242&client_secret=ec2a9a5d-8b21-40fb-b20b-fa846b944e7b&grant_type=password&authType=TEL&username=17700002674&password=123456`
const
res
=
await
axios
.
post
(
url
)
return
{
token
:
res
.
data
.
access_token
,
tokenType
:
res
.
data
.
token_type
,
expires
:
res
.
data
.
expires_in
,
userId
:
res
.
data
.
userId
,
organizationId
:
res
.
data
.
organizationId
,
}
export
function
analogLogin
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
url
=
`
${
$config
.
hmapUrl
}
/oauth/token?client_id=18f58010-2831-11e8-b467-0ed5f89f718b&client_secret=2fe58f36-2831-11e8-b467-0ed5f89f718b&grant_type=password&username=%2B8618325379820&password=jingchaowu520&authType=TEL`
axios
.
post
(
url
).
then
(
res
=>
{
window
.
localStorage
.
setItem
(
'token'
,
res
.
access_token
)
resolve
({
token
:
res
.
access_token
,
tokenType
:
res
.
token_type
,
expires
:
res
.
expires_in
,
userId
:
res
.
userId
,
organizationId
:
res
.
organizationId
,
})
})
})
}
// 授权码登录
export
async
function
authorizedLogin
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
code
=
getUrlParam
(
'code'
)
const
url
=
`
${
$config
.
baseURL
}
/oauth/token?client_id=a765ff3f-8d33-49b4-a9c9-48e991544242&client_secret=ec2a9a5d-8b21-40fb-b20b-fa846b944e7b&grant_type=authorization_code&code=
${
encodeURIComponent
(
code
)}
`
const
res
=
await
axios
.
post
(
url
)
return
{
token
:
res
.
data
.
access_token
,
tokenType
:
res
.
data
.
token_type
,
expires
:
res
.
data
.
expires_in
,
userId
:
res
.
data
.
userId
,
organizationId
:
res
.
data
.
organizationId
,
}
const
url
=
`
${
$config
.
hmapUrl
}
/oauth/token?client_id=18f58010-2831-11e8-b467-0ed5f89f718b&client_secret=2fe58f36-2831-11e8-b467-0ed5f89f718b&grant_type=authorization_code&code=
${
encodeURIComponent
(
code
)}
`
axios
.
post
(
url
).
then
(
res
=>
{
window
.
localStorage
.
setItem
(
'token'
,
res
.
access_token
)
resolve
({
token
:
res
.
access_token
,
tokenType
:
res
.
token_type
,
expires
:
res
.
expires_in
,
userId
:
res
.
userId
,
organizationId
:
res
.
organizationId
,
account
:
res
.
account
,
mobile
:
res
.
phoneNumber
,
})
})
})
}
// 桥登录
...
...
@@ -43,15 +49,16 @@ export function bridgeLogin () {
// 登录成功回调
window
.
bridgeLoginSuccess
=
function
(
str
)
{
const
res
=
JSON
.
parse
(
str
)
window
.
localStorage
.
setItem
(
'token'
,
res
.
token
)
const
data
=
{
token
:
res
.
token
,
tokenType
:
res
.
tokenType
,
expires
:
res
.
expiresIn
,
userId
:
res
.
userId
,
organizationId
:
res
.
organizationId
,
account
:
res
.
account
,
mobile
:
res
.
phoneNumber
,
}
resolve
(
data
)
}
// 登录失败回调
...
...
@@ -59,21 +66,19 @@ export function bridgeLogin () {
console
.
error
(
res
)
reject
(
res
)
}
const
dict
=
{
'className'
:
'BaseBridge'
,
'function'
:
'getBaseInfo'
,
'successCallBack'
:
'bridgeLoginSuccess'
,
'failureCallBack'
:
'bridgeLoginFailure'
,
}
HandBridge
.
postMessage
(
JSON
.
stringify
(
dict
))
})
}
// 获取用户详细信息
export
async
function
getUserInfo
(
userId
)
{
const
url
=
`
${
$config
.
baseURL
}
/i/api/staff/customDetail`
export
function
getUserInfo
(
userId
)
{
const
url
=
`
${
$config
.
hmapUrl
}
/i/api/staff/customDetail`
const
data
=
{
userId
,
}
...
...
@@ -82,9 +87,53 @@ export async function getUserInfo (userId) {
Authorization
:
`Bearer
${
window
.
localStorage
.
token
}
`
,
},
}
const
res
=
await
axios
.
post
(
url
,
data
,
options
)
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
url
,
data
,
options
).
then
(
res
=>
{
resolve
({
account
:
res
.
accountNumber
,
mobile
:
res
.
mobile
,
userId
:
res
.
userId
,
organizationId
:
res
.
organizationId
,
email
:
res
.
email
,
})
})
})
}
return
res
.
data
/**
* 获取中台的token
* @returns {Promise<*>}
*/
export
async
function
getSupportToken
()
{
const
url
=
`
${
$config
.
loginPath
}
appadmin`
const
res
=
await
axios
.
post
(
url
)
return
res
}
/**
* 获取业务系统个人信息
* @returns {Promise<*>}
*/
export
async
function
getLeasingUserInfo
(
account
,
mobile
)
{
window
.
localStorage
.
setItem
(
'account'
,
account
)
const
url
=
`
${
$config
.
basePath
}
hmap_app_login`
const
data
=
{
'user_name'
:
account
,
'mobile'
:
mobile
,
}
const
options
=
{
headers
:
{
Authorization
:
`Bearer
${
window
.
localStorage
.
access_token
}
`
,
},
}
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
url
,
data
,
options
).
then
(
res
=>
{
// console.log('leasingInfo:' + JSON.stringify(res))
if
(
res
.
result
===
'S'
)
{
resolve
(
res
.
user_info
[
0
])
}
})
})
}
/**
...
...
@@ -93,26 +142,85 @@ export async function getUserInfo (userId) {
* @param {Boolean} [needInfo] 是否需要获取用户详细信息
* @return {Object.Promise} 若登录成功PromiseValue为数据对象/登录失败PromiseValue 为 false
*/
export
default
async
function
login
(
type
=
'online'
,
needInfo
=
true
)
{
// 登录
export
async
function
login
(
type
=
'online'
,
needInfo
=
true
)
{
// 登录
const
env
=
process
.
env
.
CONFIG_ENV
// 环境
try
{
let
result
=
{}
let
tokenInfo
=
{}
tokenInfo
=
await
getSupportToken
()
window
.
localStorage
.
setItem
(
'access_token'
,
tokenInfo
.
access_token
)
if
(
env
===
'prod'
||
env
===
'uat'
)
{
// 真机
if
(
type
===
'online'
)
result
=
await
authorizedLogin
()
// 在线子应用
if
(
type
===
'local'
)
result
=
await
bridgeLogin
()
// 本地子应用
window
.
localStorage
.
setItem
(
'mobile'
,
result
.
mobile
)
result
.
userInfo
=
await
getLeasingUserInfo
(
result
.
account
,
result
.
mobile
)
}
else
{
result
=
await
analogLogin
()
result
.
hmapUserInfo
=
await
getUserInfo
(
result
.
userId
)
window
.
localStorage
.
setItem
(
'mobile'
,
result
.
hmapUserInfo
.
mobile
)
result
.
userInfo
=
await
getLeasingUserInfo
(
result
.
hmapUserInfo
.
account
,
result
.
hmapUserInfo
.
mobile
)
}
window
.
localStorage
.
token
=
result
.
token
if
(
needInfo
)
result
.
userInfo
=
await
getUserInfo
(
result
.
userId
)
window
.
localStorage
.
setItem
(
'user_id'
,
result
.
userInfo
.
user_id
)
return
result
}
catch
(
e
)
{
console
.
error
(
e
)
//
console.error(e)
return
false
}
}
/**
* 海马汇业务系统集成登录
* @param type
* @param needInfo
* @returns {Promise<any>}
*/
export
default
function
hmapLogin
(
type
=
'local'
,
needInfo
=
true
)
{
const
env
=
process
.
env
.
CONFIG_ENV
// 环境
return
new
Promise
((
resolve
,
reject
)
=>
{
try
{
let
result
=
{}
if
(
env
===
'prod'
||
env
===
'uat'
)
{
// 真机
if
(
type
===
'online'
)
{
authorizedLogin
().
then
(
res
=>
{
result
=
res
window
.
localStorage
.
setItem
(
'mobile'
,
res
.
mobile
)
})
}
// 在线子应用
if
(
type
===
'local'
)
{
result
=
bridgeLogin
().
then
(
res
=>
{
result
=
res
window
.
localStorage
.
setItem
(
'mobile'
,
res
.
mobile
)
})
}
getSupportToken
().
then
(
res
=>
{
window
.
localStorage
.
setItem
(
'access_token'
,
res
.
access_token
)
getLeasingUserInfo
(
result
.
account
,
result
.
mobile
).
then
(
res
=>
{
result
.
userInfo
=
res
window
.
localStorage
.
setItem
(
'user_id'
,
res
.
user_id
)
resolve
(
result
)
})
})
}
else
{
analogLogin
().
then
(
res
=>
{
result
=
res
getUserInfo
(
res
.
userId
).
then
(
info
=>
{
result
.
hmapUserInfo
=
info
window
.
localStorage
.
setItem
(
'mobile'
,
info
.
mobile
)
getSupportToken
().
then
(
support
=>
{
window
.
localStorage
.
setItem
(
'access_token'
,
support
.
access_token
)
getLeasingUserInfo
(
info
.
account
,
info
.
mobile
).
then
(
res
=>
{
result
.
userInfo
=
res
window
.
localStorage
.
setItem
(
'user_id'
,
res
.
user_id
)
resolve
(
result
)
})
})
})
})
}
}
catch
(
e
)
{
reject
(
e
)
}
})
}
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