默认密码登录修改密码,首页
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 747 B |
|
After Width: | Height: | Size: 949 B |
|
After Width: | Height: | Size: 822 B |
@@ -1,5 +1,59 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div style="min-width: 1100px">
|
||||||
|
<div class="page-top">
|
||||||
|
<!-- 工作区-->
|
||||||
|
<a-card :bordered="false" class="workspace">
|
||||||
|
<!-- 标题-->
|
||||||
|
<div class="home-part-title"><img src="@/assets/imgs/icon/icon_workspace.png"/>工作区</div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
|
||||||
|
<div class="workspace-container">
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/user-management.png"/>
|
||||||
|
<span>个人设置</span>
|
||||||
|
</div>
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/company-management.png"/>
|
||||||
|
<span>企业管理</span>
|
||||||
|
</div>
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/general-project.png"/>
|
||||||
|
<span>普通项目</span>
|
||||||
|
</div>
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/working-group-project.png"/>
|
||||||
|
<span>工作组项目</span>
|
||||||
|
</div>
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/member-project.png"/>
|
||||||
|
<span>会员项目</span>
|
||||||
|
</div>
|
||||||
|
<div class="workspace-item">
|
||||||
|
<img src="@/assets/imgs/homePage/data-statistics.png"/>
|
||||||
|
<span>数据统计</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a-card>
|
||||||
|
|
||||||
|
<!-- 数据统计-->
|
||||||
|
<a-card :bordered="false" class="data-statistics">
|
||||||
|
<!-- 标题-->
|
||||||
|
<div class="home-part-title"><img src="@/assets/imgs/icon/icon_data_statistics.png"/>数据统计</div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<!-- 统计报表-->
|
||||||
|
<a-card :bordered="false" class="statistical-reports">
|
||||||
|
<!-- 标题-->
|
||||||
|
<div class="home-part-title"><img src="@/assets/imgs/icon/icon_home_report.png"/>统计报表</div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -20,3 +74,68 @@ export default {
|
|||||||
methods: {}
|
methods: {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.page-top {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-part-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: PingFang SC, PingFang SC-Medium;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
& > img {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
height: 2px;
|
||||||
|
background-color: #F0F2F5;
|
||||||
|
margin: 20px -24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspace {
|
||||||
|
margin-right: 10px;
|
||||||
|
width: calc(50% - 10px);
|
||||||
|
|
||||||
|
&-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-item {
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
& > img {
|
||||||
|
height: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > span {
|
||||||
|
margin-top: 15px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: PingFang SC, PingFang SC-Regular;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-statistics {
|
||||||
|
margin-left: 10px;
|
||||||
|
width: calc(50% - 10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.statistical-reports {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
:labelCol="{span: 5}"
|
:labelCol="{span: 5}"
|
||||||
:wrapperCol="{span: 19}">
|
:wrapperCol="{span: 19}">
|
||||||
<a-input
|
<a-input
|
||||||
v-decorator="['captcha', { rules: validatorRules.captcha.rules}]"
|
v-decorator="['verifyCode', { rules: validatorRules.verifyCode.rules}]"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="请输入验证码">
|
placeholder="请输入验证码">
|
||||||
</a-input>
|
</a-input>
|
||||||
@@ -113,6 +113,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getAction, postAction } from '@/api/manage'
|
import { getAction, postAction } from '@/api/manage'
|
||||||
|
import { getRSAPublicKey } from '@api/login'
|
||||||
|
import { JSEncrypt } from 'jsencrypt'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Alteration',
|
name: 'Alteration',
|
||||||
@@ -132,7 +134,7 @@ export default {
|
|||||||
{ required: true, message: '请输入手机号码!' }, { validator: this.validatePhone }],
|
{ required: true, message: '请输入手机号码!' }, { validator: this.validatePhone }],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
captcha: {
|
verifyCode: {
|
||||||
rules: [{ required: true, message: '请输入短信验证码!' }],
|
rules: [{ required: true, message: '请输入短信验证码!' }],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
},
|
||||||
@@ -158,7 +160,8 @@ export default {
|
|||||||
time: 60,
|
time: 60,
|
||||||
smsSendBtn: false
|
smsSendBtn: false
|
||||||
},
|
},
|
||||||
userList: {}
|
userList: {},
|
||||||
|
rsaPublicKey: null // 公钥
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -169,11 +172,16 @@ export default {
|
|||||||
if (!err) {
|
if (!err) {
|
||||||
let params = {}
|
let params = {}
|
||||||
console.log(values, '======values')
|
console.log(values, '======values')
|
||||||
|
params.rsaPublicKey = this.rsaPublicKey
|
||||||
|
let encrypt = new JSEncrypt()
|
||||||
|
encrypt.setPublicKey(params.rsaPublicKey)
|
||||||
|
params.username = values.username
|
||||||
params.phone = values.phone
|
params.phone = values.phone
|
||||||
params.password = values.password
|
params.password = encrypt.encrypt(values.password)
|
||||||
params.captcha = values.captcha
|
// params.password = values.password
|
||||||
params.confirmPassword = values.confirmPassword
|
params.verifyCode = values.verifyCode
|
||||||
getAction('/sys/user/passwordChange', params).then((res) => {
|
params.verifyPassword = encrypt.encrypt(values.confirmPassword)
|
||||||
|
postAction('/sys/verificationChangePassword', params).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.loading = false
|
that.loading = false
|
||||||
that.$router.go(-1)
|
that.$router.go(-1)
|
||||||
@@ -235,16 +243,16 @@ export default {
|
|||||||
|
|
||||||
const hide = this.$message.loading('验证码发送中..', 0)
|
const hide = this.$message.loading('验证码发送中..', 0)
|
||||||
let smsParams = {
|
let smsParams = {
|
||||||
mobile: phone,
|
phone: phone,
|
||||||
smsmode: '2'
|
|
||||||
}
|
}
|
||||||
postAction('/sys/sms', smsParams).then(res => {
|
getAction('/sys/sendVerificationCode', smsParams).then(res => {
|
||||||
if (!res.success) {
|
if (!res.success) {
|
||||||
setTimeout(hide, 1)
|
setTimeout(hide, 1)
|
||||||
this.cmsFailed(res.message)
|
this.cmsFailed(res.message)
|
||||||
}
|
}
|
||||||
setTimeout(hide, 500)
|
setTimeout(hide, 500)
|
||||||
})
|
})
|
||||||
|
this.getPublicKey()
|
||||||
},
|
},
|
||||||
cmsFailed(err) {
|
cmsFailed(err) {
|
||||||
this.$notification['error']({
|
this.$notification['error']({
|
||||||
@@ -252,6 +260,11 @@ export default {
|
|||||||
description: err,
|
description: err,
|
||||||
duration: 4
|
duration: 4
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
getPublicKey() {
|
||||||
|
getRSAPublicKey().then(res => {
|
||||||
|
this.rsaPublicKey = res.result
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||