11 changed files with 1003 additions and 599 deletions
-
8.env.development
-
10README.md
-
5src/api/login.js
-
5src/router/index.js
-
69src/router/routers.js
-
2src/store/modules/user.js
-
223src/views/forgetPassword.vue
-
72src/views/login.vue
-
428src/views/system/role/index.vue
-
265src/views/system/role/role.json
-
481src/views/system/user/index.vue
@ -1,12 +1,16 @@ |
|||
ENV = 'development' |
|||
|
|||
# 本地接口地址 |
|||
VUE_APP_BASE_API = '/dev-api' |
|||
#VUE_APP_BASE_API = 'http://192.168.99.103:7000' |
|||
#VUE_APP_WS_API = 'ws://192.168.99.103:7000' |
|||
|
|||
#VUE_APP_BASE_API = 'http://192.168.99.207:7000' |
|||
#VUE_APP_WS_API = 'ws://192.168.99.207:7000' |
|||
|
|||
# 外网接口地址 |
|||
VUE_APP_BASE_API = 'https://yxkadmin.aiyxlib.com' |
|||
VUE_APP_WS_API = 'wss://yxkadmin.aiyxlib.com' |
|||
#VUE_APP_BASE_API = 'https://yxkadmin.aiyxlib.com' |
|||
#VUE_APP_WS_API = 'wss://yxkadmin.aiyxlib.com' |
|||
|
|||
# 是否启用 babel-plugin-dynamic-import-node插件 |
|||
VUE_CLI_BABEL_TRANSPILE_MODULES = true |
@ -1 +1,11 @@ |
|||
多媒体信息发布平台 |
|||
|
|||
## Getting started |
|||
|
|||
```bash |
|||
# install dependency |
|||
yarn install |
|||
|
|||
# develop |
|||
yarn run dev |
|||
``` |
@ -0,0 +1,223 @@ |
|||
<template> |
|||
<div class="login" :style="'background-image:url('+ Background +');'"> |
|||
<el-form ref="modifyForm" :model="modifyForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form"> |
|||
<h3 class="title"> |
|||
多媒体信息发布平台-忘记密码 |
|||
</h3> |
|||
<el-form-item prop="phone"> |
|||
<el-input v-model="modifyForm.phone" type="text" auto-complete="off" placeholder="手机号"> |
|||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item prop="code"> |
|||
<el-input v-model="modifyForm.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter.native="handleModify"> |
|||
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> |
|||
</el-input> |
|||
<div class="login-code"> |
|||
<el-button :disable="disabledSendCode" :type="disabledSendCode==false?'primary':'info'" size="medium" style="width:100%;" @click="countdown()"> |
|||
{{ verification }} |
|||
</el-button> |
|||
</div> |
|||
</el-form-item> |
|||
<el-form-item prop="password"> |
|||
<el-input v-model="modifyForm.password" type="password" auto-complete="off" placeholder="新密码" @keyup.enter.native="handleModify"> |
|||
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item prop="confirmPassword"> |
|||
<el-input v-model="modifyForm.confirmPassword" type="password" auto-complete="off" placeholder="确认密码" @keyup.enter.native="handleModify"> |
|||
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item style="width:100%;"> |
|||
<el-button :loading="loading" size="medium" type="primary" style="width:100%;" @click.native.prevent="handleModify"> |
|||
<span v-if="!loading">确定修改</span> |
|||
<span v-else>修改密码中...</span> |
|||
</el-button> |
|||
</el-form-item> |
|||
<el-form-item style="width:100%;"> |
|||
<el-button :loading="loading" size="medium" style="width:100%;"> |
|||
<span @click="toLogin()">登 录</span> |
|||
</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- 底部 --> |
|||
<div v-if="$store.state.settings.showFooter" id="el-login-footer"> |
|||
<span v-html="$store.state.settings.footerTxt" /> |
|||
<span> ⋅ </span> |
|||
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">{{ $store.state.settings.caseNumber }}</a> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
// import { encrypt } from '@/utils/rsaEncrypt' |
|||
import { isvalidPhone } from '@/utils/validate' |
|||
// import { getCodeImg } from '@/api/login' |
|||
import Background from '@/assets/images/background.jpg' |
|||
export default { |
|||
name: 'ForgetPassword', |
|||
data() { |
|||
// 自定义验证 |
|||
const validPhone = (rule, value, callback) => { |
|||
if (!value) { |
|||
callback(new Error('请输入手机号码')) |
|||
} else if (!isvalidPhone(value)) { |
|||
callback(new Error('请输入正确的11位手机号码')) |
|||
} else { |
|||
callback() |
|||
} |
|||
} |
|||
const validatePass = (rule, value, callback) => { |
|||
if (!value) { |
|||
callback(new Error('请输入新密码')) |
|||
} else if (value.toString().length < 6 || value.toString().length > 18) { |
|||
callback(new Error('密码长度为6-18位')) |
|||
} else { |
|||
callback() |
|||
} |
|||
} |
|||
const validatePass2 = (rule, value, callback) => { |
|||
if (value === '') { |
|||
callback(new Error('请再次输入密码')) |
|||
} else if (value !== this.modifyForm.password) { |
|||
callback(new Error('两次输入密码不一致!')) |
|||
} else { |
|||
callback() |
|||
} |
|||
} |
|||
return { |
|||
Background: Background, |
|||
disabledSendCode: false, |
|||
verification: '获取验证码', |
|||
countNum: 60, |
|||
modifyForm: { |
|||
phone: '', |
|||
password: '', |
|||
confirmPassword: '', |
|||
code: '', |
|||
uuid: '' |
|||
}, |
|||
loginRules: { |
|||
phone: [{ required: true, trigger: 'blur', validator: validPhone }], |
|||
password: [{ required: true, trigger: 'blur', validator: validatePass }], |
|||
confirmPassword: [{ required: true, trigger: 'blur', validator: validatePass2 }], |
|||
code: [{ required: true, trigger: 'change', message: '验证码不能为空' }] |
|||
}, |
|||
loading: false, |
|||
redirect: undefined |
|||
} |
|||
}, |
|||
watch: { |
|||
$route: { |
|||
handler: function(route) { |
|||
this.redirect = route.query && route.query.redirect |
|||
}, |
|||
immediate: true |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
methods: { |
|||
getAuthCode() { |
|||
}, |
|||
countdown() { |
|||
if (this.disabledSendCode) { |
|||
return |
|||
} |
|||
if (!/^1\d{10}$/.test(this.modifyForm.phone)) { |
|||
this.$message.error('手机号错误,请重新输入') |
|||
return |
|||
} |
|||
this.getAuthCode() |
|||
this.disabledSendCode = true |
|||
this.countNum = 60 |
|||
const timer = setInterval(() => { |
|||
this.verification = this.countNum + 's后重新获取' |
|||
this.countNum -= 1 |
|||
if (this.countNum < 1) { |
|||
clearInterval(timer) |
|||
this.verification = '重新获取' |
|||
this.disabledSendCode = false |
|||
console.log('倒计时结束') |
|||
} |
|||
}, 1000) |
|||
}, |
|||
toLogin() { |
|||
this.$router.push(`/login`) |
|||
}, |
|||
handleModify() { |
|||
this.$refs.modifyForm.validate(valid => { |
|||
const params = { |
|||
phone: this.modifyForm.phone, |
|||
password: this.modifyForm.password, |
|||
confirmPassword: this.modifyForm.confirmPassword, |
|||
code: this.modifyForm.code, |
|||
uuid: this.modifyForm.uuid |
|||
} |
|||
// if (user.password !== this.cookiePass) { |
|||
// user.password = encrypt(user.password) |
|||
// } |
|||
if (valid) { |
|||
this.loading = true |
|||
this.$store.dispatch('Login', params).then(() => { |
|||
this.loading = false |
|||
this.$router.push({ path: this.redirect || '/' }) |
|||
}).catch(() => { |
|||
this.loading = false |
|||
this.getCode() |
|||
}) |
|||
} else { |
|||
console.log('error submit!!') |
|||
return false |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style rel="stylesheet/scss" lang="scss"> |
|||
.login { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
height: 100%; |
|||
background-size: cover; |
|||
} |
|||
.title { |
|||
margin: 0 auto 30px auto; |
|||
text-align: center; |
|||
color: #707070; |
|||
} |
|||
|
|||
.login-form { |
|||
border-radius: 6px; |
|||
background: #ffffff; |
|||
width: 385px; |
|||
padding: 25px 25px 5px 25px; |
|||
.el-input { |
|||
height: 38px; |
|||
input { |
|||
height: 38px; |
|||
} |
|||
} |
|||
.input-icon{ |
|||
height: 39px;width: 14px;margin-left: 2px; |
|||
} |
|||
} |
|||
.login-code { |
|||
width: 33%; |
|||
display: inline-block; |
|||
height: 38px; |
|||
float: right; |
|||
.el-button--medium{ |
|||
font-size: 12px; |
|||
padding: 10px; |
|||
} |
|||
img{ |
|||
cursor: pointer; |
|||
vertical-align:middle |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,265 @@ |
|||
[{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "权限", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1-1", |
|||
"Title": "全部" |
|||
}] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "素材库", |
|||
"children": [{ |
|||
"IsCheck": "true", |
|||
"Key": "2-1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2-2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "true", |
|||
"Key": "2-3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2-4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2-5", |
|||
"Title": "上传" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2-6", |
|||
"Title": "下载" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "内容发布", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "3-1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3-2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3-3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3-4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3-5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "紧急通知", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "播放列表", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "查看" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "6", |
|||
"Title": "主题模板", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "查看" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "7", |
|||
"Title": "设备列表", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "8", |
|||
"Title": "开关机", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "9", |
|||
"Title": "权限管理", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "10", |
|||
"Title": "角色管理", |
|||
"children": [{ |
|||
"IsCheck": "False", |
|||
"Key": "1", |
|||
"Title": "全部" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "2", |
|||
"Title": "编辑" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "3", |
|||
"Title": "查看" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "4", |
|||
"Title": "删除" |
|||
}, |
|||
{ |
|||
"IsCheck": "False", |
|||
"Key": "5", |
|||
"Title": "添加" |
|||
} |
|||
] |
|||
} |
|||
] |
Write
Preview
Loading…
Cancel
Save
Reference in new issue