Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fns_front_2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenqikuai
fns_front_2
Commits
855b8371
Commit
855b8371
authored
Nov 22, 2021
by
chenqikuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修复鉴权两次的问题
parent
953e29f0
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
294 additions
and
259 deletions
+294
-259
App.vue
src/App.vue
+122
-87
index.ts
src/service/UserManagementService/index.ts
+47
-53
index.ts
src/service/UserService/index.ts
+27
-21
userMsg.ts
src/types/userMsg.ts
+7
-10
userMsg.ts
src/utils/userMsg.ts
+19
-20
index.vue
src/views/Auth/index.vue
+70
-62
index.vue
src/views/withMenu/Loan/index.vue
+2
-6
No files found.
src/App.vue
View file @
855b8371
<
template
>
<
template
>
<van-config-provider>
<van-config-provider>
<div
id=
"nav"
class=
"min-h-screen"
style=
"background:
#F7F7FA
"
>
<div
id=
"nav"
class=
"min-h-screen"
style=
"background:
#f7f7fa
"
>
<router-view
/>
<router-view
/>
</div>
</div>
<!-- Target -->
<!-- Target -->
...
@@ -24,32 +24,44 @@ import { ref } from "@vue/reactivity";
...
@@ -24,32 +24,44 @@ import { ref } from "@vue/reactivity";
import
{
connectionState
}
from
"./store/connectionStore"
;
import
{
connectionState
}
from
"./store/connectionStore"
;
import
FzmMessageProtocol
from
"@/utils/fzm-message-protocol"
;
import
FzmMessageProtocol
from
"@/utils/fzm-message-protocol"
;
import
{
generateToken
}
from
"./utils/generateToken/generate-token"
;
import
{
generateToken
}
from
"./utils/generateToken/generate-token"
;
import
{
defineComponent
,
nextTick
,
onBeforeMount
,
onBeforeUnmount
,
onMounted
,
onUnmounted
,
watch
}
from
"vue"
;
import
{
defineComponent
,
nextTick
,
onBeforeMount
,
onBeforeUnmount
,
onMounted
,
onUnmounted
,
watch
,
}
from
"vue"
;
import
decodeChatMessage
from
"./utils/fzm-message-protocol-chat/decodeChatMessage"
;
import
decodeChatMessage
from
"./utils/fzm-message-protocol-chat/decodeChatMessage"
;
import
ChatDBService
from
"@/db/ChatDBService"
import
ChatDBService
from
"@/db/ChatDBService"
;
import
{
checkPendingMsgAndSendIt
,
getMasterIdFromDisplayMsg
,
getTargetIdFromDisplayMsg
}
from
"./utils/chatutils"
;
import
{
checkPendingMsgAndSendIt
,
getMasterIdFromDisplayMsg
,
getTargetIdFromDisplayMsg
,
}
from
"./utils/chatutils"
;
import
isChattingWith
from
"./utils/isChattingWith"
;
import
isChattingWith
from
"./utils/isChattingWith"
;
import
{
ChatMessageTypes
}
from
"@/types/chatMessageTypes"
import
{
ChatMessageTypes
}
from
"@/types/chatMessageTypes"
;
import
{
chatCardTimeStamp
}
from
"./store/chatCardStore"
;
import
{
chatCardTimeStamp
}
from
"./store/chatCardStore"
;
import
{
getUserMsg
}
from
"./utils/userMsg"
;
import
{
getUserMsg
,
setUserMsg
}
from
"./utils/userMsg"
;
import
{
chatLoginActionMark
,
eLoginType
}
from
"./store/chatStore"
;
import
{
chatLoginActionMark
,
eLoginType
}
from
"./store/chatStore"
;
import
{
Toast
}
from
"vant"
;
import
{
Toast
}
from
"vant"
;
import
router
from
"./router"
;
import
router
from
"./router"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useRoute
}
from
"vue-router"
;
import
Bridge
from
'@/utils/jsBridge2'
import
Bridge
from
"@/utils/jsBridge2"
;
import
{
chatAuthCheck
}
from
"./utils/authCheck"
;
import
{
chatAuthCheck
}
from
"./utils/authCheck"
;
import
{
clipboardValue
,
notchHeight
}
from
"./store/AppStore"
;
import
{
clipboardValue
,
notchHeight
}
from
"./store/AppStore"
;
import
ClipboardJS
from
"clipboard"
import
ClipboardJS
from
"clipboard"
;
import
{
judgeClient
}
from
"./utils/env"
;
import
{
judgeClient
}
from
"./utils/env"
;
import
{
getLatestVersion
}
from
"./service/VersionService"
;
import
{
getLatestVersion
}
from
"./service/VersionService"
;
import
UserService
from
"./service/UserService"
;
export
default
defineComponent
({
export
default
defineComponent
({
setup
()
{
setup
()
{
const
btn
=
ref
<
HTMLButtonElement
|
null
>
(
null
)
const
btn
=
ref
<
HTMLButtonElement
|
null
>
(
null
)
;
const
getNewestApp
=
async
()
=>
{
const
getNewestApp
=
async
()
=>
{
const
client
=
judgeClient
()
const
client
=
judgeClient
()
;
function
formatUpdateType
(
t
:
number
)
{
function
formatUpdateType
(
t
:
number
)
{
if
(
t
===
1
)
{
if
(
t
===
1
)
{
...
@@ -59,19 +71,19 @@ export default defineComponent({
...
@@ -59,19 +71,19 @@ export default defineComponent({
}
}
}
}
if
(
client
===
'iOS'
)
{
if
(
client
===
"iOS"
)
{
const
ret
=
await
getLatestVersion
({
os
:
'ios'
})
const
ret
=
await
getLatestVersion
({
os
:
"ios"
});
if
(
ret
.
code
===
200
)
{
if
(
ret
.
code
===
200
)
{
new
Bridge
().
bridge_getNewestApp
({
new
Bridge
().
bridge_getNewestApp
({
status
:
formatUpdateType
(
ret
.
data
.
update_type
),
// 0代表强制更新 1代表普通更新
status
:
formatUpdateType
(
ret
.
data
.
update_type
),
// 0代表强制更新 1代表普通更新
modifyContent
:
ret
.
data
.
content
,
// 代表本次更新的修改内容
modifyContent
:
ret
.
data
.
content
,
// 代表本次更新的修改内容
versionCode
:
ret
.
data
.
version_num
,
// 版本号
versionCode
:
ret
.
data
.
version_num
,
// 版本号
versionName
:
ret
.
data
.
version_name
,
//版本名称
versionName
:
ret
.
data
.
version_name
,
//版本名称
downloadUrl_ios
:
ret
.
data
.
url
// 下载链接
downloadUrl_ios
:
ret
.
data
.
url
,
// 下载链接
})
})
;
}
}
}
else
if
(
client
===
'Android'
)
{
}
else
if
(
client
===
"Android"
)
{
const
ret
=
await
getLatestVersion
({
os
:
'android'
})
const
ret
=
await
getLatestVersion
({
os
:
"android"
});
if
(
ret
.
code
===
200
)
{
if
(
ret
.
code
===
200
)
{
new
Bridge
().
bridge_getNewestApp
({
new
Bridge
().
bridge_getNewestApp
({
status
:
formatUpdateType
(
ret
.
data
.
update_type
),
// 0代表强制更新 1代表普通更新
status
:
formatUpdateType
(
ret
.
data
.
update_type
),
// 0代表强制更新 1代表普通更新
...
@@ -79,77 +91,82 @@ export default defineComponent({
...
@@ -79,77 +91,82 @@ export default defineComponent({
versionCode
:
ret
.
data
.
version_num
,
// 版本号
versionCode
:
ret
.
data
.
version_num
,
// 版本号
versionName
:
ret
.
data
.
version_name
,
//版本名称
versionName
:
ret
.
data
.
version_name
,
//版本名称
downloadUrl
:
ret
.
data
.
url
,
downloadUrl
:
ret
.
data
.
url
,
})
});
}
}
}
}
}
};
onMounted
(()
=>
{
onMounted
(()
=>
{
getNewestApp
();
getNewestApp
();
const
clipboard
=
new
ClipboardJS
(
'.clipboardBtn'
);
const
clipboard
=
new
ClipboardJS
(
".clipboardBtn"
);
clipboard
.
on
(
'success'
,
function
(
e
)
{
clipboard
.
on
(
"success"
,
function
(
e
)
{
Toast
.
success
(
'复制成功'
)
Toast
.
success
(
"复制成功"
);
});
});
clipboard
.
on
(
'error'
,
function
(
e
)
{
clipboard
.
on
(
"error"
,
function
(
e
)
{
Toast
.
fail
(
"复制失败"
)
Toast
.
fail
(
"复制失败"
);
});
});
});
})
watch
(
clipboardValue
,
(
newValue
)
=>
{
watch
(
clipboardValue
,
(
newValue
)
=>
{
if
(
newValue
!==
''
)
{
if
(
newValue
!==
""
)
{
nextTick
(()
=>
{
nextTick
(()
=>
{
btn
.
value
?.
click
();
btn
.
value
?.
click
();
clipboardValue
.
value
=
''
;
clipboardValue
.
value
=
""
;
})
})
;
}
}
})
});
onBeforeMount
(()
=>
{
onBeforeMount
(()
=>
{
setTimeout
(()
=>
{
setTimeout
(()
=>
{
new
Bridge
().
getNotchHeight
(
null
,
(
height
:
any
)
=>
{
new
Bridge
().
getNotchHeight
(
null
,
(
height
:
any
)
=>
{
console
.
log
(
'getNotchHeight'
,
height
);
console
.
log
(
"getNotchHeight"
,
height
);
})
})
;
},
3000
);
},
3000
);
new
Bridge
().
getNotchHeight
(
null
,
(
height
:
any
)
=>
{
new
Bridge
().
getNotchHeight
(
null
,
(
height
:
any
)
=>
{
height
=
Number
(
height
)
height
=
Number
(
height
)
;
notchHeight
.
value
=
height
;
notchHeight
.
value
=
height
;
})
})
;
})
})
;
const
route
=
useRoute
();
const
route
=
useRoute
();
const
initError
=
ref
(
false
);
const
initError
=
ref
(
false
);
const
connect
=
()
=>
{
const
connect
=
async
()
=>
{
connectionState
.
error
=
false
;
connectionState
.
error
=
false
;
initError
.
value
=
false
;
initError
.
value
=
false
;
let
prefix
=
'ws://'
;
let
prefix
=
"ws://"
;
if
(
window
.
location
.
protocol
===
'https:'
)
{
if
(
window
.
location
.
protocol
===
"https:"
)
{
prefix
=
'wss://'
prefix
=
"wss://"
;
}
}
const
fmp
=
new
FzmMessageProtocol
(
`
${
prefix
}${
window
.
location
.
host
}
/proxyWs/sub`
);
const
fmp
=
new
FzmMessageProtocol
(
`
${
prefix
}${
window
.
location
.
host
}
/proxyWs/sub`
);
const
UserMsg
=
getUserMsg
();
const
UserMsg
=
getUserMsg
();
if
(
!
UserMsg
)
{
if
(
!
UserMsg
)
{
Toast
(
'未登录'
)
Toast
(
"未登录"
);
router
.
push
({
router
.
push
({
name
:
'Login'
name
:
"Login"
,
})
})
;
return
;
return
;
}
}
const
chatTokenRet
=
await
UserService
.
getInstance
().
getChatToken
();
if
(
chatTokenRet
.
code
!==
200
)
{
return
;
}
UserMsg
.
userInfo
.
addr
=
chatTokenRet
.
data
.
addr
;
setUserMsg
(
UserMsg
);
fmp
fmp
.
authorize
({
.
authorize
({
appId
:
"dtalk"
,
appId
:
"dtalk"
,
token
:
generateToken
({
token
:
chatTokenRet
.
data
.
token
,
address
:
UserMsg
.
userInfo
.
addr
,
privateKeyHex
:
UserMsg
.
userInfo
.
pri_key
,
publicKeyHex
:
UserMsg
.
userInfo
.
pub_key
,
}),
})
})
.
then
((
conn
)
=>
{
.
then
((
conn
)
=>
{
connectionState
.
connection
=
conn
;
connectionState
.
connection
=
conn
;
...
@@ -163,69 +180,88 @@ export default defineComponent({
...
@@ -163,69 +180,88 @@ export default defineComponent({
watch
(
chatLoginActionMark
,
(
newMark
)
=>
{
watch
(
chatLoginActionMark
,
(
newMark
)
=>
{
if
(
newMark
===
eLoginType
.
login
)
{
if
(
newMark
===
eLoginType
.
login
)
{
chatAuthCheck
(
connect
)
chatAuthCheck
(
connect
)
;
}
else
if
(
newMark
===
eLoginType
.
logout
)
{
}
else
if
(
newMark
===
eLoginType
.
logout
)
{
connectionState
.
connection
?.
disconnect
();
connectionState
.
connection
?.
disconnect
();
}
}
})
})
;
const
checkRoute
=
(
n
:
string
)
=>
{
const
checkRoute
=
(
n
:
string
)
=>
{
switch
(
n
)
{
switch
(
n
)
{
case
'/home'
:
case
"/home"
:
return
true
return
true
;
case
'/chatList'
:
case
"/chatList"
:
return
true
return
true
;
case
'/loan'
:
case
"/loan"
:
return
true
return
true
;
case
'/mine'
:
case
"/mine"
:
return
true
return
true
;
default
:
default
:
return
false
return
false
;
}
}
}
};
watch
(()
=>
route
.
path
,
(
n
)
=>
{
watch
(
console
.
log
(
n
)
()
=>
route
.
path
,
const
result
=
checkRoute
(
n
)
(
n
)
=>
{
console
.
log
(
result
,
' result'
)
console
.
log
(
n
);
new
Bridge
().
bridge_quitApp
(
result
)
const
result
=
checkRoute
(
n
);
console
.
log
(
result
,
" result"
);
new
Bridge
().
bridge_quitApp
(
result
);
}
}
)
)
;
onMounted
(()
=>
{
onMounted
(()
=>
{
if
(
getUserMsg
())
{
if
(
getUserMsg
())
{
chatAuthCheck
(
connect
)
chatAuthCheck
(
connect
)
;
}
}
})
})
;
watch
(()
=>
connectionState
.
error
,
()
=>
{
watch
(
()
=>
connectionState
.
error
,
()
=>
{
if
(
connectionState
.
error
)
{
if
(
connectionState
.
error
)
{
chatAuthCheck
(
connect
);
chatAuthCheck
(
connect
);
}
}
})
}
);
watch
(()
=>
connectionState
.
connection
,
()
=>
{
watch
(
()
=>
connectionState
.
connection
,
()
=>
{
if
(
!
connectionState
.
connection
)
return
;
if
(
!
connectionState
.
connection
)
return
;
// 连接后,指定每次收到消息要做的事
// 连接后,指定每次收到消息要做的事
connectionState
.
connection
.
onReceiveMessage
=
(
msgData
)
=>
{
connectionState
.
connection
.
onReceiveMessage
=
(
msgData
)
=>
{
const
msg
=
decodeChatMessage
(
msgData
);
const
msg
=
decodeChatMessage
(
msgData
);
const
displayMsg
=
msg
&&
{
const
displayMsg
=
msg
&&
{
target
:
msg
.
target
,
content
:
msg
.
content
,
from
:
msg
.
from
,
target
:
msg
.
target
,
uuid
:
msg
.
uuid
,
state
:
null
,
type
:
((
msg
.
type
as
unknown
)
as
ChatMessageTypes
),
content
:
msg
.
content
,
datetime
:
msg
.
datetime
from
:
msg
.
from
,
uuid
:
msg
.
uuid
,
state
:
null
,
type
:
msg
.
type
as
unknown
as
ChatMessageTypes
,
datetime
:
msg
.
datetime
,
};
};
console
.
log
(
displayMsg
,
'in receive'
);
console
.
log
(
displayMsg
,
"in receive"
);
msg
&&
displayMsg
&&
(
ChatDBService
.
getInstance
().
handleEveryReceive
({
msg
&&
displayMsg
&&
ChatDBService
.
getInstance
()
.
handleEveryReceive
({
msg
:
displayMsg
,
msg
:
displayMsg
,
masterId
:
getMasterIdFromDisplayMsg
(
displayMsg
),
masterId
:
getMasterIdFromDisplayMsg
(
displayMsg
),
isChattingWithTargetId
:
isChattingWith
(
getMasterIdFromDisplayMsg
(
displayMsg
),
getTargetIdFromDisplayMsg
(
displayMsg
),
route
.
query
.
targetId
as
string
)
isChattingWithTargetId
:
isChattingWith
(
})).
then
(()
=>
{
getMasterIdFromDisplayMsg
(
displayMsg
),
getTargetIdFromDisplayMsg
(
displayMsg
),
route
.
query
.
targetId
as
string
),
})
.
then
(()
=>
{
console
.
log
(
displayMsg
);
console
.
log
(
displayMsg
);
chatCardTimeStamp
.
value
=
new
Date
().
getTime
()
+
(
Math
.
ceil
(
Math
.
random
()
*
1000
))
chatCardTimeStamp
.
value
=
new
Date
().
getTime
()
+
Math
.
ceil
(
Math
.
random
()
*
1000
);
});
});
};
};
...
@@ -234,21 +270,20 @@ export default defineComponent({
...
@@ -234,21 +270,20 @@ export default defineComponent({
connectionState
.
connection
=
undefined
;
connectionState
.
connection
=
undefined
;
connectionState
.
error
=
true
;
connectionState
.
error
=
true
;
};
};
})
}
);
onBeforeUnmount
(()
=>
{
onBeforeUnmount
(()
=>
{
connectionState
.
connection
?.
disconnect
();
connectionState
.
connection
?.
disconnect
();
});
});
return
{
return
{
btn
,
btn
,
clipboardValue
clipboardValue
,
}
};
}
},
})
});
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.fade-enter-active,
.fade-enter-active,
.fade-leave-active {
.fade-leave-active {
...
...
src/service/UserManagementService/index.ts
View file @
855b8371
import
{
eLevel
,
eNewRoleRelatedToBackEnd
,
eRole
}
from
'@/types/roleType'
import
{
eLevel
,
eNewRoleRelatedToBackEnd
,
eRole
}
from
"@/types/roleType"
;
import
baseAxios
from
'../index'
import
baseAxios
from
"../index"
;
import
{
eCheckPhoneStatus
}
from
'./types'
import
{
eCheckPhoneStatus
}
from
"./types"
;
const
prefix
=
'/user'
const
prefix
=
"/user"
;
/* 成功修改后会退出登录 */
/* 成功修改后会退出登录 */
export
function
userChangePhone
(
data
:
{
export
function
userChangePhone
(
data
:
{
newPhone
:
string
newPhone
:
string
;
newVerifyCode
:
string
newVerifyCode
:
string
;
phone
:
string
phone
:
string
;
verifyCode
:
string
verifyCode
:
string
;
})
{
})
{
return
baseAxios
({
return
baseAxios
({
method
:
'post'
,
method
:
"post"
,
url
:
prefix
+
'/change/phone'
,
url
:
prefix
+
"/change/phone"
,
data
,
data
,
})
})
;
}
}
/* 成功修改后会退出登录 */
/* 成功修改后会退出登录 */
export
function
userChangePwd
(
data
:
{
export
function
userChangePwd
(
data
:
{
new_pwd
:
string
new_pwd
:
string
;
phone
:
string
phone
:
string
;
verify_code
:
string
verify_code
:
string
;
})
{
})
{
return
baseAxios
({
return
baseAxios
({
method
:
'post'
,
method
:
"post"
,
url
:
'/change/pwd'
,
url
:
"/change/pwd"
,
data
,
data
,
})
})
;
}
}
export
function
userCheckPhone
(
phone
:
string
)
{
export
function
userCheckPhone
(
phone
:
string
)
{
return
baseAxios
<
eCheckPhoneStatus
>
({
return
baseAxios
<
eCheckPhoneStatus
>
({
url
:
prefix
+
'/check/phone'
,
url
:
prefix
+
"/check/phone"
,
method
:
'get'
,
method
:
"get"
,
params
:
{
params
:
{
phone
,
phone
,
},
},
})
})
;
}
}
export
function
userCreate
(
data
:
{
export
function
userCreate
(
data
:
{
phone
:
string
phone
:
string
;
staffID
?:
string
staffID
?:
string
;
verifyCode
:
string
verifyCode
:
string
;
})
{
})
{
return
baseAxios
({
return
baseAxios
({
url
:
prefix
+
'/create'
,
url
:
prefix
+
"/create"
,
method
:
'POST'
,
method
:
"POST"
,
data
,
data
,
})
})
;
}
}
/* 用户可通过验证码或密码登录 */
/* 用户可通过验证码或密码登录 */
export
function
userLogin
(
data
:
{
export
function
userLogin
(
data
:
{
is_admin
:
boolean
is_admin
:
boolean
;
phone
:
string
phone
:
string
;
use_pwd
:
boolean
use_pwd
:
boolean
;
pwd
?:
string
pwd
?:
string
;
verify_code
?:
string
verify_code
?:
string
;
})
{
})
{
return
baseAxios
<
{
return
baseAxios
<
{
accessToken
:
string
accessToken
:
string
;
level
:
eLevel
level
:
eLevel
;
phone
:
string
phone
:
string
;
role
:
eNewRoleRelatedToBackEnd
role
:
eNewRoleRelatedToBackEnd
;
pri_key
:
string
pub_key
:
string
addr
:
string
}
>
({
}
>
({
url
:
'/login'
,
url
:
"/login"
,
method
:
'POST'
,
method
:
"POST"
,
data
,
data
,
})
})
;
}
}
export
function
userLogout
()
{
export
function
userLogout
()
{
return
baseAxios
({
return
baseAxios
({
url
:
'/logout'
,
url
:
"/logout"
,
method
:
'GET'
,
method
:
"GET"
,
})
})
;
}
}
export
function
userRegister
(
data
:
{
phone
:
string
;
verify_code
:
string
})
{
export
function
userRegister
(
data
:
{
phone
:
string
;
verify_code
:
string
})
{
return
baseAxios
<
{
return
baseAxios
<
{
accessToken
:
string
accessToken
:
string
;
phone
:
string
phone
:
string
;
role
:
eNewRoleRelatedToBackEnd
role
:
eNewRoleRelatedToBackEnd
;
pri_key
:
string
pub_key
:
string
addr
:
string
}
>
({
}
>
({
url
:
'/user/register'
,
url
:
"/user/register"
,
method
:
'post'
,
method
:
"post"
,
data
,
data
,
})
})
;
}
}
// function padding(all: number): any;
// function padding(all: number): any;
...
...
src/service/UserService/index.ts
View file @
855b8371
import
baseAxios
from
'../index'
import
baseAxios
from
"../index"
;
import
{
iContact
,
iUserinfo
}
from
'./types'
import
{
iContact
,
iUserinfo
}
from
"./types"
;
class
UserService
{
class
UserService
{
static
instance
:
UserService
static
instance
:
UserService
;
static
getInstance
()
{
static
getInstance
()
{
if
(
!
UserService
.
instance
)
{
if
(
!
UserService
.
instance
)
{
UserService
.
instance
=
new
UserService
()
UserService
.
instance
=
new
UserService
()
;
}
}
return
UserService
.
instance
return
UserService
.
instance
;
}
}
contact_custom_service
(
data
:
{
outLetID
:
number
})
{
contact_custom_service
(
data
:
{
outLetID
:
number
})
{
return
baseAxios
<
iContact
>
({
return
baseAxios
<
iContact
>
({
url
:
'/user/contact_custom_service'
,
url
:
"/user/contact_custom_service"
,
method
:
'post'
,
method
:
"post"
,
data
,
data
,
})
})
;
}
}
staffInfo
(
data
:
{
addrs
:
string
[]
})
{
staffInfo
(
data
:
{
addrs
:
string
[]
})
{
return
baseAxios
<
{
return
baseAxios
<
{
total
:
number
total
:
number
;
item
:
(
iContact
&
{
out_let_name
:
string
})[]
item
:
(
iContact
&
{
out_let_name
:
string
})[]
;
}
>
({
}
>
({
url
:
'/user/staff_info'
,
url
:
"/user/staff_info"
,
method
:
'get'
,
method
:
"get"
,
params
:
data
,
params
:
data
,
paramsSerializer
:
(
data
:
{
addrs
:
string
[]
})
=>
{
paramsSerializer
:
(
data
:
{
addrs
:
string
[]
})
=>
{
console
.
log
(
data
)
console
.
log
(
data
)
;
return
`addrs=
${
data
.
addrs
.
toString
()}
`
return
`addrs=
${
data
.
addrs
.
toString
()}
`
;
},
},
})
})
;
}
}
userInfo
(
data
:
{
addrs
:
string
[]
})
{
userInfo
(
data
:
{
addrs
:
string
[]
})
{
return
baseAxios
<
iUserinfo
[]
>
({
return
baseAxios
<
iUserinfo
[]
>
({
url
:
'/user/user_info'
,
url
:
"/user/user_info"
,
method
:
'get'
,
method
:
"get"
,
params
:
data
,
params
:
data
,
paramsSerializer
:
(
data
:
{
addrs
:
string
[]
})
=>
{
paramsSerializer
:
(
data
:
{
addrs
:
string
[]
})
=>
{
console
.
log
(
data
)
console
.
log
(
data
)
;
return
`addrs=
${
data
.
addrs
.
toString
()}
`
return
`addrs=
${
data
.
addrs
.
toString
()}
`
;
},
},
})
});
}
getChatToken
()
{
return
baseAxios
<
{
addr
:
string
;
token
:
string
}
>
({
url
:
"/chat_info"
,
});
}
}
}
}
export
default
UserService
export
default
UserService
;
src/types/userMsg.ts
View file @
855b8371
import
{
eRole
}
from
'./roleType'
import
{
eRole
}
from
"./roleType"
;
export
interface
iUserMsg
{
export
interface
iUserMsg
{
token
:
string
token
:
string
;
role
:
eRole
role
:
eRole
;
role2
:
eRole
role2
:
eRole
;
userInfo
:
{
userInfo
:
{
phone
?:
string
phone
?:
string
;
addr
:
string
addr
?:
string
;
pri_key
:
string
};
pub_key
:
string
[
key
:
string
]:
any
}
}
}
src/utils/userMsg.ts
View file @
855b8371
import
{
dispatchLoginAction
}
from
'@/store/chatStore'
import
{
dispatchLoginAction
}
from
"@/store/chatStore"
;
import
{
iUserMsg
}
from
'@/types/userMsg'
import
{
iUserMsg
}
from
"@/types/userMsg"
;
import
Bridge
from
'@/utils/jsBridge2'
import
Bridge
from
"@/utils/jsBridge2"
;
import
userAvatarUrl
from
'@/assets/icons/avatar.png'
import
userAvatarUrl
from
"@/assets/icons/avatar.png"
;
import
staffAvatarUrl
from
'@/assets/icons/staff.png'
import
staffAvatarUrl
from
"@/assets/icons/staff.png"
;
import
{
eRole
}
from
'@/types/roleType'
import
{
eRole
}
from
"@/types/roleType"
;
const
USER_MSG
=
'USER_MSG'
const
USER_MSG
=
"USER_MSG"
;
export
function
setUserMsg
(
msg
:
iUserMsg
)
{
export
function
setUserMsg
(
msg
:
iUserMsg
)
{
dispatchLoginAction
(
'login'
)
const
{
token
}
=
msg
;
const
{
token
}
=
msg
new
Bridge
().
bridge_sendToken
({
new
Bridge
().
bridge_sendToken
({
msg
,
msg
,
url
:
url
:
window
.
location
.
protocol
+
window
.
location
.
protocol
+
'//'
+
"//"
+
window
.
location
.
host
+
window
.
location
.
host
+
'/proxyApi/api/v1'
,
"/proxyApi/api/v1"
,
})
})
;
localStorage
.
setItem
(
USER_MSG
,
JSON
.
stringify
(
msg
))
localStorage
.
setItem
(
USER_MSG
,
JSON
.
stringify
(
msg
))
;
}
}
export
function
getUserMsg
():
iUserMsg
|
undefined
{
export
function
getUserMsg
():
iUserMsg
|
undefined
{
const
value
=
localStorage
.
getItem
(
USER_MSG
)
const
value
=
localStorage
.
getItem
(
USER_MSG
)
;
return
(
value
&&
JSON
.
parse
(
value
))
||
undefined
return
(
value
&&
JSON
.
parse
(
value
))
||
undefined
;
}
}
export
function
deleteUserMsg
()
{
export
function
deleteUserMsg
()
{
dispatchLoginAction
(
'logout'
)
dispatchLoginAction
(
"logout"
);
localStorage
.
removeItem
(
USER_MSG
)
localStorage
.
removeItem
(
USER_MSG
)
;
}
}
export
function
getCurrentUserAvatarUrl
()
{
export
function
getCurrentUserAvatarUrl
()
{
if
(
getUserMsg
()?.
role
===
eRole
.
staff
)
{
if
(
getUserMsg
()?.
role
===
eRole
.
staff
)
{
return
staffAvatarUrl
return
staffAvatarUrl
;
}
else
if
(
getUserMsg
()?.
role
===
eRole
.
user
)
{
}
else
if
(
getUserMsg
()?.
role
===
eRole
.
user
)
{
return
userAvatarUrl
return
userAvatarUrl
;
}
else
{
}
else
{
return
userAvatarUrl
return
userAvatarUrl
;
}
}
}
}
src/views/Auth/index.vue
View file @
855b8371
...
@@ -9,15 +9,22 @@
...
@@ -9,15 +9,22 @@
</
template
>
</
template
>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
userChangePwd
,
userCheckPhone
,
userCreate
,
userLogin
,
userRegister
}
from
'@/service/UserManagementService'
import
{
import
{
eCheckPhoneStatus
}
from
'@/service/UserManagementService/types'
userChangePwd
,
import
{
eSmsType
,
sendVerifyCode
}
from
'@/service/VerificationService'
userCheckPhone
,
import
{
eNewRoleRelatedToBackEnd
,
eRole
}
from
'@/types/roleType'
userCreate
,
import
transformRole
from
'@/utils/transformRole'
userLogin
,
import
{
setUserMsg
}
from
'@/utils/userMsg'
userRegister
,
import
{
defineComponent
}
from
'vue'
}
from
"@/service/UserManagementService"
;
import
LoginService
from
'./Login/LoginService'
import
{
eCheckPhoneStatus
}
from
"@/service/UserManagementService/types"
;
import
{
eAccountType
}
from
'./Login/types'
import
{
eSmsType
,
sendVerifyCode
}
from
"@/service/VerificationService"
;
import
{
dispatchLoginAction
}
from
"@/store/chatStore"
;
import
{
eNewRoleRelatedToBackEnd
,
eRole
}
from
"@/types/roleType"
;
import
transformRole
from
"@/utils/transformRole"
;
import
{
setUserMsg
}
from
"@/utils/userMsg"
;
import
{
defineComponent
}
from
"vue"
;
import
LoginService
from
"./Login/LoginService"
;
import
{
eAccountType
}
from
"./Login/types"
;
export
default
defineComponent
({
export
default
defineComponent
({
provide
():
object
{
provide
():
object
{
...
@@ -29,48 +36,50 @@ export default defineComponent({
...
@@ -29,48 +36,50 @@ export default defineComponent({
loginByPwdFunc
:
this
.
loginByPwdFunc
,
loginByPwdFunc
:
this
.
loginByPwdFunc
,
setPwdFunc
:
this
.
setPwdFunc
,
setPwdFunc
:
this
.
setPwdFunc
,
modifyPwdFunc
:
this
.
modifyPwdFunc
,
modifyPwdFunc
:
this
.
modifyPwdFunc
,
}
}
;
},
},
methods
:
{
methods
:
{
async
sendSmsFunc
(
phone
:
string
,
smsType
?:
eSmsType
)
{
async
sendSmsFunc
(
phone
:
string
,
smsType
?:
eSmsType
)
{
return
sendVerifyCode
({
return
sendVerifyCode
({
phone
:
phone
,
phone
:
phone
,
smsType
:
smsType
!==
undefined
?
smsType
:
eSmsType
.
registerOrLogin
,
smsType
:
smsType
!==
undefined
?
smsType
:
eSmsType
.
registerOrLogin
,
})
})
;
},
},
async
accountStatusCheckFunc
(
phone
:
string
)
{
async
accountStatusCheckFunc
(
phone
:
string
)
{
const
ret
=
await
userCheckPhone
(
phone
)
const
ret
=
await
userCheckPhone
(
phone
)
;
if
(
ret
&&
ret
.
code
===
200
)
{
if
(
ret
&&
ret
.
code
===
200
)
{
if
(
ret
.
data
===
eCheckPhoneStatus
.
staff
||
ret
.
data
===
eCheckPhoneStatus
.
user
)
{
if
(
return
eAccountType
.
REG_PDSET
ret
.
data
===
eCheckPhoneStatus
.
staff
||
ret
.
data
===
eCheckPhoneStatus
.
user
)
{
return
eAccountType
.
REG_PDSET
;
}
else
if
(
ret
.
data
===
eCheckPhoneStatus
.
no_reg
)
{
}
else
if
(
ret
.
data
===
eCheckPhoneStatus
.
no_reg
)
{
return
eAccountType
.
NO_REG
return
eAccountType
.
NO_REG
;
}
}
}
}
},
},
async
registerFunc
(
phone
:
string
,
code
:
string
)
{
async
registerFunc
(
phone
:
string
,
code
:
string
)
{
const
ret
=
await
userRegister
({
const
ret
=
await
userRegister
({
phone
,
phone
,
verify_code
:
code
verify_code
:
code
,
})
})
;
if
(
ret
.
code
===
200
)
{
if
(
ret
.
code
===
200
)
{
const
{
accessToken
,
role
,
phone
,
addr
,
pri_key
,
pub_key
}
=
ret
.
data
const
{
accessToken
,
role
,
phone
}
=
ret
.
data
;
setUserMsg
({
setUserMsg
({
token
:
accessToken
,
token
:
accessToken
,
role
:
role
===
eNewRoleRelatedToBackEnd
.
ACM
?
eRole
.
staff
:
eRole
.
user
,
role
:
role
===
eNewRoleRelatedToBackEnd
.
ACM
?
eRole
.
staff
:
eRole
.
user
,
role2
:
transformRole
(
role
),
role2
:
transformRole
(
role
),
userInfo
:
{
userInfo
:
{
phone
:
phone
,
phone
:
phone
,
addr
,
pri_key
,
pub_key
},
},
})
});
dispatchLoginAction
(
"login"
);
this
.
$router
.
push
({
this
.
$router
.
push
({
name
:
'Home'
,
name
:
"Home"
,
})
})
;
}
else
{
}
else
{
throw
new
Error
(
ret
.
msg
)
throw
new
Error
(
ret
.
msg
)
;
}
}
},
},
async
loginByCodeFunc
(
phone
:
string
,
code
:
string
)
{
async
loginByCodeFunc
(
phone
:
string
,
code
:
string
)
{
...
@@ -78,73 +87,72 @@ export default defineComponent({
...
@@ -78,73 +87,72 @@ export default defineComponent({
is_admin
:
false
,
is_admin
:
false
,
use_pwd
:
false
,
use_pwd
:
false
,
verify_code
:
code
,
verify_code
:
code
,
phone
:
phone
phone
:
phone
,
})
})
;
if
(
ret
.
code
===
200
)
{
if
(
ret
.
code
===
200
)
{
const
{
accessToken
,
phone
,
role
,
pri_key
,
pub_key
,
addr
}
=
ret
.
data
const
{
accessToken
,
phone
,
role
}
=
ret
.
data
;
setUserMsg
({
setUserMsg
({
token
:
accessToken
,
token
:
accessToken
,
role2
:
transformRole
(
role
),
role2
:
transformRole
(
role
),
role
:
eNewRoleRelatedToBackEnd
.
ACM
===
role
?
eRole
.
staff
:
eRole
.
user
,
role
:
eNewRoleRelatedToBackEnd
.
ACM
===
role
?
eRole
.
staff
:
eRole
.
user
,
userInfo
:
{
userInfo
:
{
phone
,
phone
,
addr
,
},
pri_key
,
});
pub_key
dispatchLoginAction
(
"login"
);
}
})
this
.
$router
.
push
({
this
.
$router
.
push
({
name
:
'Home'
name
:
"Home"
,
})
})
;
}
}
},
},
async
loginByPwdFunc
(
phone
:
string
,
pwd
:
string
,
config
=
{
gohome
:
true
})
{
async
loginByPwdFunc
(
phone
:
string
,
pwd
:
string
,
config
=
{
gohome
:
true
}
)
{
const
ret
=
await
userLogin
({
const
ret
=
await
userLogin
({
is_admin
:
false
,
is_admin
:
false
,
use_pwd
:
true
,
use_pwd
:
true
,
pwd
,
pwd
,
phone
:
phone
phone
:
phone
,
})
})
;
if
(
ret
.
code
===
200
)
{
if
(
ret
.
code
===
200
)
{
const
{
accessToken
,
phone
,
role
,
addr
,
pub_key
,
pri_key
}
=
ret
.
data
const
{
accessToken
,
phone
,
role
}
=
ret
.
data
;
setUserMsg
({
setUserMsg
({
token
:
accessToken
,
token
:
accessToken
,
role2
:
transformRole
(
role
),
role2
:
transformRole
(
role
),
role
:
eNewRoleRelatedToBackEnd
.
ACM
===
role
?
eRole
.
staff
:
eRole
.
user
,
role
:
eNewRoleRelatedToBackEnd
.
ACM
===
role
?
eRole
.
staff
:
eRole
.
user
,
userInfo
:
{
userInfo
:
{
phone
,
phone
,
addr
,
},
pub_key
,
});
pri_key
dispatchLoginAction
(
"login"
);
}
config
.
gohome
&&
})
this
.
$router
.
push
({
config
.
gohome
&&
this
.
$router
.
push
({
name
:
"Home"
,
name
:
'Home'
});
})
}
else
{
}
else
{
throw
new
Error
(
ret
.
msg
)
throw
new
Error
(
ret
.
msg
)
;
}
}
},
},
async
setPwdFunc
(
phone
:
string
,
code
:
string
,
pwd
:
string
)
{
async
setPwdFunc
(
phone
:
string
,
code
:
string
,
pwd
:
string
)
{
const
ret
=
await
userChangePwd
({
const
ret
=
await
userChangePwd
({
new_pwd
:
pwd
,
new_pwd
:
pwd
,
phone
,
phone
,
verify_code
:
code
verify_code
:
code
,
})
})
;
if
(
ret
.
code
!==
200
)
{
if
(
ret
.
code
!==
200
)
{
throw
new
Error
(
ret
.
msg
)
throw
new
Error
(
ret
.
msg
)
;
}
}
await
this
.
loginByPwdFunc
(
phone
,
pwd
,
{
gohome
:
true
})
await
this
.
loginByPwdFunc
(
phone
,
pwd
,
{
gohome
:
true
})
;
},
},
async
modifyPwdFunc
(
phone
:
string
,
originalPwd
:
string
,
newPwd
:
string
)
{
async
modifyPwdFunc
(
phone
:
string
,
originalPwd
:
string
,
newPwd
:
string
)
{
console
.
log
(
phone
,
originalPwd
,
newPwd
)
console
.
log
(
phone
,
originalPwd
,
newPwd
)
;
},
},
},
},
})
})
;
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
></
style
>
</
style
>
src/views/withMenu/Loan/index.vue
View file @
855b8371
...
@@ -74,12 +74,8 @@
...
@@ -74,12 +74,8 @@
class=
"mt-24"
class=
"mt-24"
@
seeMore=
"$router.push(
{ name: 'LoanList', params: { mode: mode } })"
@
seeMore=
"$router.push(
{ name: 'LoanList', params: { mode: mode } })"
/>
/>
<Skeleton
<div
style=
"margin-top: 20px"
v-if=
"state.allProductList"
></div>
:row=
"3"
<Skeleton
:row=
"3"
:loading=
"skeLoading"
v-if=
"state.allProductList"
>
:loading=
"skeLoading"
style=
"margin-top: 20px"
v-if=
"state.allProductList"
>
<LoanCard
<LoanCard
v-for=
"item in state.allProductList"
v-for=
"item in state.allProductList"
:key=
"item.uuid"
:key=
"item.uuid"
...
...
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