Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
tobiras-h5
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
zhanhai
tobiras-h5
Commits
69c16940
Commit
69c16940
authored
May 25, 2024
by
ly
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口调试完毕
parent
ac408d28
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
200 additions
and
223 deletions
+200
-223
.env.development
.env.development
+2
-2
.env.production
.env.production
+3
-3
.env.staging
.env.staging
+2
-2
README.md
README.md
+6
-0
index.html
public/index.html
+2
-2
App.vue
src/App.vue
+7
-1
api.js
src/api/api.js
+5
-1
Ajax.js
src/utils/Ajax.js
+5
-5
index.css
src/views/bill/index.css
+1
-1
index.less
src/views/bill/index.less
+2
-1
index.vue
src/views/bill/index.vue
+35
-132
index.css
src/views/login/index.css
+2
-3
index.less
src/views/login/index.less
+3
-3
index.vue
src/views/login/index.vue
+5
-5
index.css
src/views/myLoan/index.css
+23
-8
index.less
src/views/myLoan/index.less
+41
-18
index.vue
src/views/myLoan/index.vue
+56
-36
No files found.
.env.development
View file @
69c16940
NODE_ENV=development
VUE_APP_API=https://bifrost.billionsat.net
VUE_APP_API_PUBLIC_URL=http://
192.168.0.118:8080
/
VUE_APP_ROUTE=http://
192.168.0.118:8080
/index.html#/
VUE_APP_API_PUBLIC_URL=http://
ht.billionsat.net
/
VUE_APP_ROUTE=http://
ht.billionsat.net
/index.html#/
.env.production
View file @
69c16940
NODE_ENV=production
VUE_APP_API=https://great.rockstect.
net
VUE_APP_API_PUBLIC_URL=https://
blmx.jqtianxia
.com/
VUE_APP_ROUTE=https://
blmx.jqtianxia
.com/index.html#/
VUE_APP_API=https://great.rockstect.
com
VUE_APP_API_PUBLIC_URL=https://
ht.billionsat
.com/
VUE_APP_ROUTE=https://
ht.billionsat
.com/index.html#/
.env.staging
View file @
69c16940
NODE_ENV=staging
VUE_APP_API=https://bifrost.billionsat.net
VUE_APP_API_PUBLIC_URL=http://
192.168.0.118:8080
/
VUE_APP_ROUTE=http://
192.168.0.118:8080
/index.html#/
VUE_APP_API_PUBLIC_URL=http://
ht.billionsat.net
/
VUE_APP_ROUTE=http://
ht.billionsat.net
/index.html#/
README.md
View file @
69c16940
# tobiras-h5
海桐公众号h5
亿升
测试bucket:haitong-h5-test
地址:http://ht.billionsat.net
线上bucket:haitong-h5-prod
地址:https://ht.billionsat.com
## Project setup
```
npm install
...
...
public/index.html
View file @
69c16940
...
...
@@ -4,11 +4,11 @@
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,viewport-fit=cover"
name=
"viewport"
>
<script
src=
"https://
m.jqtianxia.com/public/libs
/flexible.js"
></script>
<script
src=
"https://
ht.billionsat.com
/flexible.js"
></script>
<link
rel=
"icon"
href=
"<%= BASE_URL %>favicon.ico"
>
<title><
%=
htmlWebpackPlugin
.
options
.
title
%
></title>
<!-- 调试 -->
<script
src=
"https:/
/m.rockstect.com/public
/vconsole.min.js"
></script>
<script
src=
"https:/
ht.billionsat.com
/vconsole.min.js"
></script>
<script>
window
.
vConsole
=
new
window
.
VConsole
();
</script>
...
...
src/App.vue
View file @
69c16940
...
...
@@ -17,10 +17,16 @@ export default {
})
const
init
=
async
()
=>
{
const
token
=
localStorage
.
getItem
(
'token'
)
console
.
log
(
token
,
'token'
)
console
.
log
(
token
,
'token1'
)
if
(
token
==
null
){
router
.
push
(
'/login'
)
return
false
}
const
res
=
await
API
.
checkLogins
({
"tsToken"
:
token
})
console
.
log
(
res
,
'4444'
)
if
(
res
.
result
){
const
{
idCard
,
mobile
}
=
res
.
result
localStorage
.
setItem
(
'idCard'
,
idCard
)
...
...
src/api/api.js
View file @
69c16940
import
request
from
'../utils/Ajax'
export
default
{
/*登录发送验证码 */
/*登录发送验证码 */
async
loginSend
(
data
)
{
return
request
.
post
(
'authority/anon/captcha/sendByHtH5'
,
data
)
},
...
...
@@ -19,5 +19,9 @@ export default{
// 预约还款
async
applyC
(
data
)
{
return
request
.
post
(
'blackhole/custm/xiaChengMiniProgram/applyTs'
,
data
)
},
// 账单详情
async
billDetails
(
data
)
{
return
request
.
post
(
'blackhole/custm/xiaChengMiniProgram/caseInfoDetail'
,
data
)
}
}
\ No newline at end of file
src/utils/Ajax.js
View file @
69c16940
import
axios
from
'axios'
import
{
showToast
}
from
'vant'
const
API
=
process
.
env
.
VUE_APP_API
console
.
log
(
process
.
env
,
'8766'
)
// axios 拦截器
axios
.
interceptors
.
request
.
use
(
function
(
config
)
{
// 在发送请求之前做些什么
const
token
=
localStorage
.
getItem
(
'token'
)
console
.
log
(
token
,
'token'
)
if
(
!
config
.
data
)
config
.
data
=
{}
if
(
token
)
config
.
data
.
tsToken
=
token
...
...
@@ -22,7 +22,7 @@ axios.interceptors.request.use(function (config) {
const
Fetch
=
async
options
=>
{
let
fetch
const
{
url
,
data
,
method
}
=
options
console
.
log
(
options
,
'options'
)
const
baseUrl
=
`
${
API
}
/
${
url
}
`
switch
(
method
.
toLowerCase
())
{
case
'get'
:
...
...
@@ -59,9 +59,9 @@ const Fetch = async options => {
// 对返回结果和错误信息进行处理
const
request
=
function
(
options
)
{
console
.
log
(
options
,
'options9999'
)
return
Fetch
(
options
).
then
(
res
=>
{
console
.
log
(
res
,
'resssss'
)
if
(
res
.
status
===
200
)
{
const
{
message
,
code
,
success
}
=
res
.
data
if
(
code
==
500
&&
success
==
false
){
...
...
src/views/bill/index.css
View file @
69c16940
...
...
@@ -125,7 +125,7 @@
font-weight
:
400
;
font-size
:
28px
;
color
:
#2F87FF
;
line-height
:
26
px
;
line-height
:
40
px
;
font-style
:
normal
;
}
.bill-page
.bill-mians
.bill-card
.card-bill
.bill-mian
.main-line
{
...
...
src/views/bill/index.less
View file @
69c16940
...
...
@@ -54,6 +54,7 @@
padding-left: 8px;
}
}
.main-text{
padding-top:28px;
font-family: PingFangSC, PingFang SC;
...
...
@@ -123,7 +124,7 @@
font-weight: 400;
font-size: 28px;
color: #2F87FF;
line-height:
26
px;
line-height:
40
px;
// text-align: left;
font-style: normal;
}
...
...
src/views/bill/index.vue
View file @
69c16940
This diff is collapsed.
Click to expand it.
src/views/login/index.css
View file @
69c16940
...
...
@@ -67,13 +67,12 @@
font-style
:
normal
;
}
.login-page
.login-main
.mian-box
.box-id
.id-sendcodes
{
width
:
2
4
0px
;
width
:
2
6
0px
;
font-family
:
PingFangSC
,
PingFang
SC
;
font-weight
:
400
;
font-size
:
2
4
px
;
font-size
:
2
6
px
;
color
:
#3877F8
;
line-height
:
28px
;
text-align
:
left
;
}
.login-page
.login-main
.mian-box
.box-btn
{
margin-top
:
54px
;
...
...
src/views/login/index.less
View file @
69c16940
...
...
@@ -64,13 +64,13 @@
font-style: normal;
}
.id-sendcodes{
width: 2
4
0px;
width: 2
6
0px;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 2
4
px;
font-size: 2
6
px;
color: #3877F8;
line-height: 28px;
text-align: left;
}
}
.box-btn{
...
...
src/views/login/index.vue
View file @
69c16940
...
...
@@ -32,7 +32,8 @@
:value=
"sendcode"
type=
"number"
@
input=
"changecode($event)"
/>
<div
class=
'id-sendcode'
@
click=
'loginSendCode'
v-if=
"canSendCode"
>
获取验证码
</div>
<div
class=
'id-sendcode'
@
click=
'loginSendCode'
v-if=
"canSendCode"
>
获取验证码
</div>
<div
class=
'id-sendcodes'
v-else
>
重新获取(
{{
count
}}
秒)
</div>
</div>
...
...
@@ -49,11 +50,10 @@
<
script
>
import
{
onMounted
,
toRefs
,
reactive
}
from
"vue"
;
import
API
from
"../../api/api"
;
import
{
Toast
}
from
'vant'
;
import
{
useRouter
}
from
'vue-router'
;
export
default
{
setup
(){
const
route
r
=
useRouter
()
const
route
=
useRouter
()
const
state
=
reactive
({
titleDes
:
""
,
idCardNumber
:
''
,
...
...
@@ -63,7 +63,7 @@ export default {
passWord
:
''
,
accountVal
:
''
,
timer
:
null
,
//倒计时
count
:
''
,
//倒计时
count
:
'
58
'
,
//倒计时
})
// const onClickLeft = () => history.back()
const
IDChange
=
(
e
)
=>
{
...
...
@@ -99,7 +99,7 @@ export default {
const
{
tsToken
}
=
res
.
result
if
(
tsToken
){
localStorage
.
setItem
(
'token'
,
tsToken
)
route
r
.
push
(
'/'
)
route
.
push
(
'/'
)
}
}
// 获取验证码倒计时
...
...
src/views/myLoan/index.css
View file @
69c16940
...
...
@@ -7,7 +7,7 @@
}
.loan-page
.loan-contant
{
box-sizing
:
border-box
;
padding-top
:
9
0px
;
padding-top
:
1
0px
;
}
.loan-page
.loan-contant
.loan-main
{
margin
:
32px
;
...
...
@@ -17,15 +17,13 @@
box-shadow
:
0px
0px
20px
0px
rgba
(
220
,
220
,
220
,
0.5
);
border-radius
:
12px
;
}
.loan-page
.loan-contant
.loan-main
.main-box
{
padding
:
40px
24px
;
}
.loan-page
.loan-contant
.loan-main
.main-box
.box-top
{
padding
:
40px
24px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding-bottom
:
24px
;
border-bottom
:
2
px
solid
#ccc
;
border-bottom
:
1
px
solid
#ccc
;
}
.loan-page
.loan-contant
.loan-main
.main-box
.box-top
.top-l
{
display
:
flex
;
...
...
@@ -129,15 +127,32 @@
color
:
#2F87FF
;
text-align
:
center
;
}
.loan-page
.popup-btn
{
margin
:
46px
auto
0
;
.loan-page
.page-popup
.popup-main
{
padding
:
46px
;
}
.loan-page
.page-popup
.popup-main
.popup-text
{
padding-bottom
:
8px
;
font-family
:
PingFangSC
,
PingFang
SC
;
font-weight
:
400
;
font-size
:
32px
;
color
:
#333333
;
line-height
:
48px
;
text-align
:
center
;
font-style
:
normal
;
}
.loan-page
.page-popup
.popup-footer
{
padding
:
40px
;
border-top
:
2px
solid
#EBEBEB
;
}
.loan-page
.page-popup
.popup-footer
.popup-btn
{
margin
:
24px
auto
;
width
:
526px
;
height
:
72px
;
background
:
#2F87FF
;
border-radius
:
36px
;
font-family
:
PingFangSC
,
PingFang
SC
;
font-weight
:
500
;
font-size
:
3
2
px
;
font-size
:
3
6
px
;
color
:
#FFFFFF
;
line-height
:
72px
;
text-align
:
center
;
...
...
src/views/myLoan/index.less
View file @
69c16940
...
...
@@ -6,7 +6,7 @@
padding-bottom:140px;
.loan-contant{
box-sizing: border-box;
padding-top:
9
0px;
padding-top:
1
0px;
.loan-main{
margin:32px;
...
...
@@ -16,13 +16,14 @@
box-shadow: 0px 0px 20px 0px rgba(220,220,220,0.5);
border-radius: 12px;
.main-box{
padding: 40px 24px;
.box-top{
padding: 40px 24px;
display: flex;
align-items: center;
justify-content:space-between;
padding-bottom: 24px;
border-bottom:
2
px solid #ccc;
border-bottom:
1
px solid #ccc;
.top-l{
display: flex;
align-items: center;
...
...
@@ -141,21 +142,43 @@
color:#2F87FF;
text-align: center;
}
.popup-btn{
margin: 46px auto 0;
width: 526px;
height: 72px;
background: #2F87FF;
border-radius: 36px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 32px;
color: #FFFFFF;
line-height: 72px;
text-align: center;
font-style: normal;
.page-popup{
.popup-main{
padding:46px;
.popup-text{
padding-bottom: 8px;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 32px;
color: #333333;
line-height: 48px;
text-align: center;
font-style: normal;
}
}
.popup-footer{
padding:40px;
border-top:2px solid #EBEBEB;
.popup-btn{
margin:24px auto;
width: 526px;
height: 72px;
background: #2F87FF;
border-radius: 36px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 36px;
color: #FFFFFF;
line-height: 72px;
text-align: center;
font-style: normal;
}
}
}
}
\ No newline at end of file
src/views/myLoan/index.vue
View file @
69c16940
<
template
>
<div
class=
'loan-page'
>
<van-nav-bar
<
!--
<
van-nav-bar
:title=
"titleDes"
left-text=
""
fixed
left-arrow
@
click-left=
"onClickLeft"
/>
/>
-->
<div
class=
'loan-contant'
>
<div
class=
'loan-main'
>
<div
class=
'loan-main'
v-for=
"item in loanList"
:key=
'item.id'
>
<div
class=
'main-box'
>
<div
class=
'box-top'
>
<div
class=
'top-l'
>
<img
class=
'l-img'
src=
'
'
/>
<span>
一时代
</span>
<img
class=
'l-img'
:src=
'item.logoUrl
'
/>
<span>
{{
item
.
loanName
}}
</span>
</div>
<div
class=
'top-r'
@
click=
"goPopup"
>
<div
class=
'top-r'
@
click=
"goPopup
(item.customerId,item.loanNo)
"
>
<i
class=
'r-icon'
></i>
<span>
咨询
</span>
</div>
</div>
<div
class=
'box-con'
>
<div
class=
'con-l'
>
<div
class=
'l-num'
>
5500.00
</div>
<div
class=
'l-num'
>
{{
item
.
shouldRepayTotal
}}
</div>
<div
class=
'l-tex'
>
待还款金额(元)
</div>
</div>
<div
class=
'con-r'
>
<div
class=
'r-loan-num'
>
借款金额:
5000.00
(元)
</div>
<div
class=
'r-back-num'
>
已还金额:
1000.00
(元)
</div>
<div
class=
'r-back-num'
>
逾期期数:
28
期
</div>
<div
class=
'r-back-nums'
>
逾期天数:
12360
天
</div>
<div
class=
'r-loan-num'
>
借款金额:
{{
item
.
loanTotalAmt
}}
(元)
</div>
<div
class=
'r-back-num'
>
已还金额:
{{
item
.
repayAmount
}}
(元)
</div>
<div
class=
'r-back-num'
>
逾期期数:
{{
item
.
overdueTotalPeriod
}}
期
</div>
<div
class=
'r-back-nums'
>
逾期天数:
{{
item
.
overdueDay
}}
天
</div>
</div>
</div>
<div
class=
'box-btn'
@
click=
"goBill"
>
还 款
</div>
<div
class=
'box-btn'
@
click=
"goBill
(item.customerId,item.loanNo,item.loanId)
"
>
还 款
</div>
</div>
</div>
</div>
</div>
<div
class=
"myloan-footer"
@
click=
"gophone"
>
<div
>
客服热线
</div>
<div>
4006063123
</div>
<div>
{{
callMobile
}}
</div>
</div>
<van-popup
v-model:show=
"showCenter"
round
:style=
"
{ padding: '24px' , fontSize:'18px' }" >
<div>
咨询申请已提交,
</div>
<div>
工作人员会在24小时内电话联系你,
</div>
<div>
请注意接听
</div>
<div
class=
"popup-btn"
@
click=
'showCancel'
>
确 定
</div>
<van-popup
v-model:show=
"showCenter"
round
class=
'page-popup'
>
<div
class=
'popup-main'
>
<div
class=
'popup-text'
>
咨询申请已提交,
</div>
<div
class=
'popup-text'
>
工作人员会在24小时内电话联系你,
</div>
<div
class=
'popup-text'
>
请注意接听
</div>
</div>
<div
class=
'popup-footer'
>
<div
class=
"popup-btn"
@
click=
'showCancel'
>
确 定
</div>
</div>
</van-popup>
</div>
</
template
>
...
...
@@ -64,30 +60,54 @@ import { useRouter } from 'vue-router';
import
API
from
"../../api/api"
;
export
default
{
setup
(){
const
route
r
=
useRouter
()
const
route
=
useRouter
()
const
state
=
reactive
({
titleDes
:
""
,
showCenter
:
false
showCenter
:
false
,
loanList
:[],
callMobile
:
''
})
const
onClickLeft
=
()
=>
history
.
back
()
const
goPopup
=
()
=>
{
// const onClickLeft = () => history.back()
const
goPopup
=
(
valF
,
valS
)
=>
{
notifyCustomer
(
valF
,
valS
)
state
.
showCenter
=
true
}
const
showCancel
=
()
=>
{
state
.
showCenter
=
false
}
const
goBill
=
()
=>
{
router
.
push
(
'/bill'
)
const
goBill
=
(
valF
,
valS
,
valT
)
=>
{
notifyCustomer
(
valF
,
valS
)
route
.
push
({
path
:
'bill'
,
query
:{
id
:
valT
}
})
}
const
init
=
async
()
=>
{
const
res
=
await
API
.
loanDetails
({
"idCard"
:
""
,
"mobile"
:
""
})
console
.
log
(
res
,
'reess'
)
if
(
res
.
result
){
const
{
caseCustmViews
,
hotPhone
}
=
res
.
result
state
.
loanList
=
caseCustmViews
state
.
callMobile
=
hotPhone
}
// console.log(res,'reess')
}
const
notifyCustomer
=
async
(
valF
,
valS
)
=>
{
console
.
log
(
valF
,
valS
)
const
res
=
await
API
.
applyC
({
"customerId"
:
valF
,
"idCard"
:
"string"
,
"loanNo"
:
valS
,
"mobile"
:
"string"
})
}
const
gophone
=
()
=>
{
window
.
location
.
href
=
'tel://4006672319'
const
telNum
=
'tel://'
window
.
location
.
href
=
`
${
telNum
}${
state
.
callMobile
}
`
}
onMounted
(()
=>
{
state
.
titleDes
=
'我的借款'
...
...
@@ -95,7 +115,7 @@ export default {
})
return
{
...
toRefs
(
state
),
onClickLeft
,
//
onClickLeft,
goPopup
,
showCancel
,
goBill
,
...
...
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