Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
Support
提交反馈
为 GitLab 提交贡献
登录/注册
切换导航
M
mcep-h5
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
jiangzaicheng
mcep-h5
提交
babaf030
提交
babaf030
编写于
8月 12, 2022
作者:
“grape”
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
验证码解密
上级
af13cd67
变更
9
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
239 行增加
和
29 行删除
+239
-29
PicketAcced.vue
src/components/common/PicketAcced.vue
+7
-1
login-mgt.api.ts
src/constants/api/login/login-mgt.api.ts
+4
-3
SMEncryt.ts
src/public/ts/SMEncryt.ts
+3
-1
workbench.routing.ts
src/router/workbench.routing.ts
+7
-0
api.service.ts
src/services/api.service.ts
+18
-15
MyPage.vue
src/views/MyView/MyPage.vue
+3
-3
LoginView.vue
src/views/authentication/LoginView.vue
+7
-6
Register.vue
src/views/login/Register.vue
+3
-0
AccommodMain.vue
src/views/workbench/AccommodMain.vue
+187
-0
未找到文件。
src/components/common/PicketAcced.vue
浏览文件 @
babaf030
...
...
@@ -13,7 +13,13 @@
<div
@
click=
"onClickDetails()"
>
<van-row>
<van-col
span=
"16"
>
<van-col
span=
"24"
class=
"priductName"
>
{{
item
.
productname
}}
</van-col>
<van-col
span=
"12"
class=
"lable"
><span>
合同编号:
</span></van-col>
<van-col
span=
"24"
class=
"priductName"
>
{{
item
.
productname
}}
</van-col>
<van-col
style=
" width: 100%; margin-left: 8%; line-height: 2;"
>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
申请金额:万元
</span></van-col>
...
...
src/constants/api/login/login-mgt.api.ts
浏览文件 @
babaf030
...
...
@@ -9,15 +9,16 @@
import
{
MethodType
}
from
"
@/constants/enum/general/method-type.enum
"
;
import
{
HeaderType
}
from
"
@/constants/enum/general/header-type.enum
"
;
const
prefix
=
"
http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint
"
const
prefix
=
"
http://10.0.0.118:9130/ms-system/api/v1/sysCustInfo/permit_endpoint
"
const
loginApi
=
{
updatePicCode
:
{
url
:
prefix
+
"
/
kaptcha
"
,
url
:
prefix
+
"
/
getVerifyCode
"
,
method
:
MethodType
.
POST
.
code
,
header
:
HeaderType
.
AUTH
.
code
,
},
loginSystem
:
{
url
:
prefix
+
"
/
l
ogin
"
,
url
:
prefix
+
"
/
onlineL
ogin
"
,
method
:
MethodType
.
POST
.
code
,
header
:
HeaderType
.
AUTH
.
code
,
},
...
...
src/public/ts/SMEncryt.ts
浏览文件 @
babaf030
...
...
@@ -11,6 +11,7 @@ export default {
* @return {Object} jsonstr 返回加密后的json数据
*/
encryptData
(
jsonstr
:
any
)
{
debugger
let
encryData
=
{};
try
{
// SM2 加密秘钥
...
...
@@ -56,10 +57,11 @@ export default {
jsonData
=
JSON
.
parse
(
jsonData
);
}
try
{
debugger
let
sm2
=
require
(
'
sm-crypto
'
).
sm2
,
sm3
=
require
(
'
sm-crypto
'
).
sm3
,
sm4
=
require
(
'
sm-crypto
'
).
sm4
,
privateKey
=
'
7666A8CA12A27CF6C440A1CFECB4B1BB7055F2FB3435E957EB35142FAB881EFB
'
,
//SM2公钥
privateKey
=
'
0494FEF4897CF4E9C9CB994B66B29E9B3EAF2C5C59EBEDB703B0F980199CEA7BDBF177AB3E65A17F3E96227977C55423929975CE535B715AC21E0AB23B9858AB4F
'
,
//SM2公钥
sm4Key
=
''
,
orSm4Key
=
jsonData
.
sm4key
;
orSm4Key
=
orSm4Key
.
substr
(
2
,
orSm4Key
.
length
-
2
);
...
...
src/router/workbench.routing.ts
浏览文件 @
babaf030
...
...
@@ -18,6 +18,13 @@ const workbenchRoutes = [
props
:
propsConvert
,
meta
:
{
keepAlive
:
false
,
requiresAuth
:
true
,
name
:
"
主页
"
},
},
{
path
:
`/AccommodMain`
,
name
:
'
AccommodMain
'
,
component
:
()
=>
import
(
/* webpackChunkName: "customer-mgt" */
"
@/views/workbench/AccommodMain.vue
"
),
props
:
propsConvert
,
meta
:
{
keepAlive
:
false
,
requiresAuth
:
true
,
name
:
"
贷款主页
"
},
},
{
path
:
`/Accommodation`
,
name
:
'
Accommodation
'
,
...
...
src/services/api.service.ts
浏览文件 @
babaf030
...
...
@@ -172,12 +172,10 @@ class ApiService {
}
post
(
path
:
string
,
params
:
any
,
query
:
Query
|
undefined
,
requestConfig
:
AxiosRequestConfig
):
any
{
path
=
query
!=
null
?
this
.
urlQueryConvert
(
path
,
query
)
:
path
;
console
.
log
(
"
服务调用--
"
+
path
);
return
Vue
.
axios
.
post
(
`
${
path
}
`
,
params
,
requestConfig
).
then
(
res
=>
{
//TODO
return
res
.
data
});
return
Vue
.
axios
.
post
(
`
${
path
}
`
,
params
,
requestConfig
).
then
(
this
.
createBusCodeHandler
(
query
)).
catch
(
this
.
createErrorHandler
())
}
/**
* POST请求 文件上传
...
...
@@ -211,7 +209,7 @@ class ApiService {
general
(
api
:
any
,
query
?:
Query
|
undefined
,
params
?:
any
|
undefined
,
requestConfig
?:
AxiosRequestConfig
|
any
):
any
{
if
(
!!
api
.
url
&&
!!
api
.
method
)
{
if
(
requestConfig
==
null
)
{
switch
(
api
.
header
)
{
case
HeaderType
.
BASE
.
code
:
requestConfig
=
this
.
createBasicHeaders
();
...
...
@@ -268,27 +266,31 @@ class ApiService {
* 服务返回统一解密处理
*/
createBusCodeHandler
(
params
?:
any
)
{
return
function
(
response
:
any
)
{
if
(
response
.
status
===
200
)
{
let
data
=
response
.
data
;
console
.
log
(
"
返回统一解密处理
"
,
params
)
if
(
params
.
tc
===
'
MCEP
'
)
{
let
encryData
=
data
.
data
||
{};
console
.
log
(
'
返回原数据:
'
,
data
);
//移动后台
if
(
typeof
encryData
!=
'
object
'
)
{
encryData
=
JSON
.
parse
(
encryData
);
}
//三方数据
encryData
.
sm4key
?
(
data
.
data
=
SMUtil
.
decodeData
(
encryData
))
:
data
;
if
(
data
.
data
&&
typeof
data
.
data
!=
'
object
'
)
{
if
(
data
.
data
.
indexOf
(
'
{
'
)
>
-
1
)
{
data
.
data
=
JSON
.
parse
(
data
.
data
);
}
}
// if (['local', 'production'].indexOf(process.env.NODE_ENV) == -1) {
console
.
log
(
'
返回数据:
'
,
data
);
// //三方数据
// encryData.sm4key ? (data.data = SMUtil.decodeData(encryData)) : data;
// if (data.data && typeof data.data != 'object') {
// if (data.data.indexOf('{') > -1) {
// data.data = JSON.parse(data.data);
// }
// }
if
([
'
local
'
,
'
production
'
].
indexOf
(
process
.
env
.
NODE_ENV
)
==
-
1
)
{
}
console
.
log
(
'
返回数据:
'
,
data
);
if
(
data
.
code
==
'
40902
'
)
{
//token 失效,退出登录
NativeUI
.
confirm
(
''
,
"
登录超时,请退出重新登录
"
).
then
(()
=>
{
...
...
@@ -316,6 +318,7 @@ class ApiService {
console
.
log
(
data
);
//成功
// data = data.data;
debugger
if
(
typeof
data
!=
'
object
'
)
data
=
JSON
.
parse
(
data
);
data
=
data
.
sm4key
?
SMUtil
.
decodeData
(
data
)
:
data
;
if
(
typeof
data
!=
'
object
'
)
{
...
...
src/views/MyView/MyPage.vue
浏览文件 @
babaf030
...
...
@@ -61,7 +61,7 @@ export default class MyPage extends Vue {
productname
:
"
我的贷款
"
,
//图片信息
img
:
"
#icon-a-wodedaikuan16x16px
"
,
flag
:
"
Accommod
atio
n
"
flag
:
"
Accommod
Mai
n
"
},
{
productname
:
"
兑换记录
"
,
...
...
@@ -84,9 +84,9 @@ export default class MyPage extends Vue {
name
:
"
PersonLod
"
//参数
})
}
else
if
(
item
.
flag
===
"
Accommod
atio
n
"
)
{
}
else
if
(
item
.
flag
===
"
Accommod
Mai
n
"
)
{
this
.
$router
.
push
({
name
:
"
Accommod
atio
n
"
name
:
"
Accommod
Mai
n
"
//参数
})
}
else
if
(
item
.
flag
===
"
ExchangeRecord
"
)
{
...
...
src/views/authentication/LoginView.vue
浏览文件 @
babaf030
...
...
@@ -84,6 +84,7 @@ import { Code } from "@/constants/enum/general/code.enum";
import
{
RestfulResponse
}
from
"
@/model/domain/RestfulResponse
"
;
import
commonApi
from
"
@/constants/api/login/common.api
"
;
import
{
sys
}
from
"
typescript
"
;
import
{
log
}
from
"
mathjs
"
;
@
Component
({
...
...
@@ -104,8 +105,10 @@ export default class LoginView extends Vue {
//获取图形验证码
_updatePicCode
()
{
//请求图形验证码
debugger
apiService
.
general
(
loginApi
.
updatePicCode
,
undefined
,
undefined
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
//console.log(response);
if
(
response
.
code
==
Code
.
SUCCESS
.
code
)
{
this
.
imageSrc
=
'
data:image/png;base64,
'
+
response
.
data
.
imageVerifyCodeStr
.
replace
(
/
[\r\n]
/g
,
""
);
this
.
imageVerifyKey
=
response
.
data
.
imageVerifyKey
...
...
@@ -147,16 +150,14 @@ export default class LoginView extends Vue {
//this._updatePicCode();
let
param
=
{
phone
:
this
.
phone
,
//图形Key
imageVerifyKey
:
this
.
imageVerifyKey
,
//图形验证码
im
gVerifyCode
:
this
.
imageSrcValue
,
im
ageVerifyKey
:
this
.
imageSrcValue
,
//渠道
loginType
:
"
3
"
,
//手机验证码
phoneVerify
Code
:
this
.
sms
,
mess
Code
:
this
.
sms
,
//密码
credential
:
this
.
password
passWord
:
this
.
password
}
apiService
.
general
(
loginApi
.
loginSystem
,
undefined
,
param
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
console
.
log
(
response
);
...
...
src/views/login/Register.vue
浏览文件 @
babaf030
...
...
@@ -25,6 +25,9 @@
<span
class=
"sopan"
>
手机号码
</span>
<van-field
v-model=
"phone"
label=
"+86 |"
:border=
"true"
placeholder=
"请输入手机号"
/>
<van-divider
/>
<span
class=
"sopan"
>
身份证号
</span>
<van-field
v-model=
"idCard"
:border=
"true"
placeholder=
"请输入身份证号"
/>
<van-divider
/>
</div>
<span
class=
"sopan"
>
短信验证码
</span>
<div>
...
...
src/views/workbench/AccommodMain.vue
0 → 100644
浏览文件 @
babaf030
<!--
* @ Author: zhaowei
* @ Create Time: 2022-08-11 11:02:17
* @ Modified by: zhaowei
* @ Modified time: 2022-08-11 16:04:39
* @ Description:
-->
<
template
>
<div
class=
"body"
>
<div
class=
"rarle"
>
<tatle-bar
:tatle=
"tatleName"
></tatle-bar>
</div>
<div>
<div
class=
"card"
v-for=
"(item, index) in productParam"
:key=
"index"
>
<div
@
click=
"onClickDetails()"
>
<van-row>
<van-col
span=
"16"
>
<van-col
span=
"24"
class=
"contractNo"
><span>
合同编号:
</span>
{{
item
.
contractNo
}}
</van-col>
<van-col
style=
" width: 100%; margin-left: 8%; line-height: 2;"
>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同类型:
</span></van-col>
<van-col
span=
"12"
class=
"contractType"
>
{{
item
.
contractType
}}
</van-col>
</van-row>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同金额:
</span></van-col>
<van-col
span=
"12"
class=
"contractAmount"
style=
"color:rgb(255, 204, 0);"
>
{{
item
.
contractAmount
}}
</van-col>
</van-row>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同利率:
</span></van-col>
<van-col
span=
"12"
class=
"contractRate"
>
{{
item
.
contractRate
}}
</van-col>
</van-row>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
还款方式:
</span></van-col>
<van-col
span=
"12"
class=
"paymentMethod"
>
{{
item
.
paymentMethod
}}
</van-col>
</van-row>
</van-col>
</van-col>
<van-col
span=
"8"
>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 1"
>
<use
xlink:href=
"#icon-a-yifafang60x60px"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 2"
>
<use
xlink:href=
"#icon-a-yifafang60x60px"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 3"
>
<use
xlink:href=
"#icon-a-yijieqing60x60px"
></use>
</svg>
</van-col>
</van-row>
</div>
<van-row
v-if=
"item.status === 2"
type=
"flex"
class=
"bottom"
@
click=
"onClickPicket()"
>
<van-col
span=
"24"
class=
"lablel"
><span>
查看借据
</span>
<svg
class=
"iconl"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-a-xiayiye24x24px"
></use>
</svg>
</van-col>
</van-row>
</div>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Watch
,
Emit
}
from
"
vue-property-decorator
"
;
/*
* title
*/
@
Component
({
name
:
"
AccommodMain
"
})
export
default
class
AccommodMain
extends
Vue
{
tatleName
=
"
我的贷款
"
//未结清贷款计划
productParam
=
[{
contractNo
:
"
117647289092
"
,
contractType
:
"
一般借款合同
"
,
contractAmount
:
"
30,000.00
"
,
contractRate
:
"
4.13%
"
,
paymentMethod
:
"
等额本金
"
,
status
:
2
},
{
contractNo
:
"
117647289092
"
,
contractType
:
"
一般借款合同
"
,
contractAmount
:
"
30,000.00
"
,
contractRate
:
"
1.13%
"
,
paymentMethod
:
"
等额本金
"
,
status
:
3
}]
//已结清
productParamlist
=
[{
productname
:
"
'llll'流动之星贷款
"
,
money
:
"
30
"
,
guarantee
:
"
担保
"
,
status
:
3
,
month
:
"
12
"
,
time
:
"
2022-02-18
"
}]
//点击还款计划事件
onClickDetails
()
{
this
.
$router
.
push
({
name
:
"
Accommodation
"
})
}
//点击body事件
onClickPicket
()
{
this
.
$router
.
push
({
name
:
"
Accommodation
"
})
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.body
{
height
:
100%
;
width
:
100%
;
background-color
:
rgba
(
241
,
241
,
241
,
1
);
}
.acced
{
width
:
100%
;
height
:
20%
;
}
.icon
{
width
:
80px
;
height
:
80px
;
margin-top
:
10%
;
}
.card
{
border-radius
:
2%
;
height
:
28vh
;
margin
:
3%
3%
3%
3%
;
background
:
#ffffff
;
}
.contractNo
{
margin
:
5%
7%
;
font-family
:
'Arial Negreta'
,
'Arial Normal'
,
'Arial'
;
font-weight
:
700
;
font-style
:
normal
;
font-size
:
16px
;
color
:
#333333
;
}
.lable
{
text-align
:
left
;
color
:
#7F7F7F
;
font-size
:
14px
;
font-family
:
'Arial Negreta'
,
'Arial Normal'
,
'Arial'
;
font-weight
:
400
;
font-style
:
normal
;
}
.iconl
{
width
:
20px
;
height
:
20px
;
}
.bottom
[
data-v-d306f034
]
{
background-color
:
#3672f1
;
border
:
none
;
border-radius
:
5px
;
border-top-left-radius
:
0px
;
border-top-right-radius
:
0px
;
text-align
:
center
;
margin-top
:
15px
;
}
.lablel
{
text-align
:
center
;
font-size
:
12px
;
color
:
#FFFFFF
;
font-family
:
'Arial Negreta'
,
'Arial Normal'
,
'Arial'
;
font-weight
:
400
;
font-style
:
normal
;
}
</
style
>
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录