wangqing 5 years ago
parent
commit
2a831d70bb
  1. 2
      src/components/tinymce/index.vue
  2. 6
      src/utils/constants.js
  3. 19
      src/views/account/ForgetPwd.vue
  4. 34
      src/views/account/login.vue
  5. 124
      src/views/account/member.vue
  6. 13
      src/views/form/editor.vue

2
src/components/tinymce/index.vue

@ -35,7 +35,7 @@ export default {
let conf = {
selector: `#${this.tinymceId}`,
language: 'zh_CN',
menubar: 'file edit insert view format table',
menubar: 'false',
plugins,
toolbar,
height: 300,

6
src/utils/constants.js

@ -1,3 +1,7 @@
export default {
signSecret: '916lWh2WMcbSWiHv'
//签名秘钥
signSecret: '916lWh2WMcbSWiHv',
//密码正则
passwordReg: /^.{6,}$/,
passwordRegDesc: '密码最少为6位字符'
}

19
src/views/account/ForgetPwd.vue

@ -93,6 +93,7 @@
<script>
//
import Verify from '@/components/verifition/Verify'
import constants from '@/utils/constants'
export default {
name: 'RetrievePwd',
@ -100,16 +101,6 @@ export default {
Verify
},
data() {
let validatePassword = (rule, value, callback) => {
if (value.length < 6) {
callback(new Error('密码最少为6位数'))
} else {
if (this.resetPwdForm.rePassword !== '') {
this.$refs['resetPwdForm'].validateField('rePassword')
}
callback()
}
}
let validateRePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'))
@ -156,7 +147,13 @@ export default {
]
},
pwdRules: {
password: [{required: true, trigger: 'blur', validator: validatePassword}],
password: [
{required: true, trigger: 'blur', message: '请输入新密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
],
rePassword: [{required: true, trigger: 'blur', validator: validateRePass}]
}
}

34
src/views/account/login.vue

@ -218,6 +218,7 @@
import {getCurrentDomain} from '@/utils'
//
import Verify from '@/components/verifition/Verify'
import constants from '@/utils/constants'
export default {
name: 'Login',
@ -225,16 +226,7 @@ export default {
Verify
},
data() {
const validatePassword = (rule, value, callback) => {
// /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{10,20}$/
if (value.length < 6) {
callback(new Error('密码最少为6位数'))
} else {
callback()
}
}
const validateAccount = (rule, value, callback) => {
// /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{10,20}$/
const reg1 = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/
const reg2 = /^(?:0|86|\+86)?1[3456789]\d{9}$/
if (reg1.test(value) || reg2.test(value)) {
@ -260,7 +252,13 @@ export default {
message: '请输入正确的手机号'
}
],
password: [{required: true, trigger: 'blur', validator: validatePassword}],
password: [
{required: true, trigger: 'blur', message: '请输入新密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
],
code: {required: true, trigger: 'blur', message: '请输入验证码'}
},
emailRegRules: {
@ -271,13 +269,25 @@ export default {
message: '请输入正确的邮箱'
}
],
password: [{required: true, trigger: 'blur', validator: validatePassword}],
password: [
{required: true, trigger: 'blur', message: '请输入新密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
],
code: {required: true, trigger: 'blur', message: '请输入验证码'}
},
accountLoginRules: {
account: [
{required: true, trigger: 'blur', message: '请输入账号'}, {trigger: 'blur', validator: validateAccount}],
password: [{required: true, trigger: 'blur', validator: validatePassword}]
password: [
{required: true, trigger: 'blur', message: '请输入新密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
]
},
accountForm: {
email: '',

124
src/views/account/member.vue

@ -18,14 +18,14 @@
<td width="80" style="text-align: right;">账号邮箱</td>
<td>
{{ userInfo.email }}
<el-link type="primary">绑定</el-link>
<el-link type="primary" @click="emailDialogVisible=true">绑定</el-link>
</td>
</tr>
<tr>
<td width="80" style="text-align: right;">密码</td>
<td>
******
<el-link type="primary">修改</el-link>
<el-link type="primary" @click="pwdDialogVisible=true">修改</el-link>
</td>
</tr>
<tr>
@ -82,39 +82,66 @@
</div>
</el-card>
<el-dialog
title="提示"
:visible.sync="editDialogVisible"
title="修改用户名"
:visible.sync="editNameDialogVisible"
width="30%"
center
>
<el-form ref="form" :model="userInfo" label-width="80px">
<el-form-item label="新用户名">
<el-form ref="form" :model="userInfo" :rules="userInfoRules" label-width="80px">
<el-form-item label="新用户名" prop="name">
<el-input v-model="userInfo.name" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false"> </el-button>
<el-button type="primary"
@click="()=>{this.editDialogVisible = false;this.updateUserHandle()}"
> </el-button>
@click="()=>{this.editNameDialogVisible = false;this.updateUserHandle()}"
>保存</el-button>
</span>
</el-dialog>
<el-dialog
title="提示"
title="修改密码"
:visible.sync="pwdDialogVisible"
width="30%"
center
>
<el-form ref="form" :model="userInfo" label-width="80px">
<el-form-item label="新用户名">
<el-input v-model="userInfo.name" />
<el-form ref="form"
style="width: 80%;"
:model="userPwdForm" :rules="userPwdRules" label-width="120px"
>
<el-form-item label="输入旧密码" prop="oldPassword">
<el-input v-model="userPwdForm.oldPassword" placeholder="请输入旧密码" show-password />
</el-form-item>
<el-form-item label="输入新密码" prop="password">
<el-input v-model="userPwdForm.password" placeholder="请输入新密码" show-password />
</el-form-item>
<el-form-item label="重复输入密码" prop="repeatPassword">
<el-input v-model="userPwdForm.repeatPassword" placeholder="请重复输入密码" show-password />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="pwdDialogVisible = false"> </el-button>
<el-button type="primary"
@click="()=>{this.pwdDialogVisible = false;this.updateUserHandle()}"
> </el-button>
@click="()=>{this.pwdDialogVisible = false;this.updateUserPwdHandle()}"
> </el-button>
</span>
</el-dialog>
<el-dialog
title="修改邮箱"
:visible.sync="emailDialogVisible"
width="30%"
center
>
<el-form ref="form"
style="width: 80%;"
:model="userInfo" :rules="userInfoRules" label-width="80px"
>
<el-form-item label="邮箱" prop="email">
<el-input v-model="userInfo.email" placeholder="请输入邮箱" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary"
@click="()=>{this.pwdDialogVisible = false;this.sendUpdateEmail()}"
>发送验证邮件</el-button>
</span>
</el-dialog>
</div>
@ -122,6 +149,7 @@
<script>
import myUpload from 'vue-image-crop-upload'
import constants from '@/utils/constants'
export default {
name: 'Member',
@ -129,9 +157,56 @@ export default {
myUpload
},
data() {
let validateRePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'))
} else if (value !== this.resetPwdForm.rePassword) {
callback(new Error('两次输入密码不一致!'))
} else {
callback()
}
}
return {
editDialogVisible: false,
userInfoRules: {
name: [
{required: true, trigger: 'blur', message: '请输入昵称'}
],
email: [
{required: true, trigger: 'blur', message: '请输入邮箱'},
{
pattern: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/,
message: '请输入正确的邮箱'
}
]
},
userPwdRules: {
oldPassword: [
{required: true, trigger: 'blur', message: '请输入旧密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
],
password: [
{required: true, trigger: 'blur', message: '请输入新密码'},
{
pattern: constants.passwordReg,
message: constants.passwordRegDesc
}
],
repeatPassword: [
{required: true, trigger: 'blur', validator: validateRePass}
]
},
editNameDialogVisible: false,
pwdDialogVisible: false,
emailDialogVisible: false,
userInfo: {},
userPwdForm: {
oldPassword: '',
password: '',
repeatPassword: ''
},
showUploadAvatar: false
}
},
@ -151,6 +226,21 @@ export default {
getUploadUrl() {
return `${process.env.VUE_APP_API_ROOT}/user/file/upload`
},
updateUserPwdHandle() {
this.$api.post('/user/update/password', this.userPwdForm).then(res => {
if (res.data) {
console.log(res.data)
this.msgSuccess('修改成功')
}
})
},
sendUpdateEmail() {
this.$api.get('/update/email', {params: {email: this.userInfo.email}}).then(res => {
if (res.data) {
this.msgSuccess('发送成功')
}
})
},
updateUserHandle() {
this.$api.post('/user/update', this.userInfo).then(res => {
if (res.data) {

13
src/views/form/editor.vue

@ -48,12 +48,13 @@
</el-row>
<el-row type="flex" justify="center" align="middle">
<el-col :span="20" style="text-align: center">
<p class="form-name-text" contenteditable="true"
@blur="(event)=>{
formConf.description=event.target.innerText;
this.saveProjectInfo()}">
{{ formConf.description }}
</p>
<Tinymce v-model="formConf.description" :height="300" placeholder="请输入表单描述" />
<!-- <p class="form-name-text" contenteditable="true"-->
<!-- @blur="(event)=>{-->
<!-- formConf.description=event.target.innerText;-->
<!-- this.saveProjectInfo()}">-->
<!-- {{ formConf.description }}-->
<!-- </p>-->
</el-col>
</el-row>
<el-divider></el-divider>

Loading…
Cancel
Save