删除安全修改逻辑

This commit is contained in:
18500206848
2024-04-25 17:10:55 +08:00
parent 359755e966
commit 0096dc20ba
5 changed files with 6 additions and 594 deletions

View File

@@ -1,81 +1,4 @@
import request from '@/router/axios'; import request from '@/router/axios';
/*
**忘记密码
/
/*图形验证码*/
export const getCaptcha = () => request({
url: '/api/jobslink-api/system/front/account/captcha',
method: 'get'
});
/*发送短信验证码*/
export const sendCodeFgt = (form) => {
return request({
url: '/api/jobslink-api/system/front/account/sendValidate',
method: 'get',
headers: {
'Captcha-Key': form.key,
'Captcha-Code': form.imgCode
},
params: {
mobile: form.phone
}
})
}
/*提交忘记密码*/
export const forgetPwd = (phone, code, password, authType) => {
return request({
headers: {
'SCaptcha-Key': phone,
'SCaptcha-Code': code
},
url: '/api/jobslink-api/system/front/account/password',
method: 'post',
params: {
mobile: phone,
password,
authType
}
})
}
/*
**账户安全
/
/*变更负责人*/
export const changeLeader = (form, id) => {
return request({
headers: {
'SCaptcha-Key': form.phone,
'SCaptcha-Code': form.code
},
url: '/api/jobslink-api/system/tuser/updateAdmin',
method: 'post',
data: {
realName: form.realName,
idNumber: form.idNumber,
account: form.phone,
id: id
}
})
}
/*修改密码*/
export const changePwd = (oldPassword, newPassword, newPassword1) => {
return request({
url: '/api/jobslink-api/system/tuser/update-password',
method: 'post',
params: {
oldPassword,
newPassword,
newPassword1,
}
})
}
/*获取账户信息*/ /*获取账户信息*/
export const getAccount = () => { export const getAccount = () => {
@@ -84,39 +7,3 @@ export const getAccount = () => {
method: 'get' method: 'get'
}) })
} }
/*获取是否是管理员*/
export const getIsAdmin = () => {
return request({
url: '/api/jobslink-api/system/tuser/isAdmin',
method: 'get'
})
}
/*发送验证码*/
export const sendCode = (mobile) => {
return request({
url: '/api/jobslink-api/system/tuser/sendValidate',
method: 'get',
params: {
mobile
}
})
}
/*换绑手机号*/
export const changePhone = (form, id) => {
return request({
headers: {
'SCaptcha-Key': form.newPhone,
'SCaptcha-Code': form.code
},
url: '/api/jobslink-api/system/tuser/updateAccount',
method: 'post',
data: {
account: form.newPhone,
id: id
}
})
}

View File

@@ -100,7 +100,7 @@ export default {
notice: 'notice', notice: 'notice',
theme: 'theme', theme: 'theme',
color: 'color', color: 'color',
accountsafe: "账户安全", accountsafe: "账户信息",
set: '设置', set: '设置',
companyindex: '公司主页' companyindex: '公司主页'
}, },

View File

@@ -64,7 +64,7 @@ export default {
permission: '权限', permission: '权限',
error: '异常页面', error: '异常页面',
test: '测试页面', test: '测试页面',
accountsafe: "账户安全", accountsafe: "账户信息",
set: '设置', set: '设置',
companyindex: '公司主页' companyindex: '公司主页'
}, },
@@ -102,7 +102,7 @@ export default {
notice: '消息通知', notice: '消息通知',
theme: '主题', theme: '主题',
color: '换色', color: '换色',
accountsafe: "账户安全", accountsafe: "账户信息",
set: '设置', set: '设置',
companyindex: '公司主页' companyindex: '公司主页'
}, },

View File

@@ -98,7 +98,7 @@ export default [
redirect: 'tenant/account/index', redirect: 'tenant/account/index',
children: [{ children: [{
path: 'index', path: 'index',
name: '账户安全', name: '账户信息',
meta: {i18n: 'accountsafe', code: 'accountsafe'}, meta: {i18n: 'accountsafe', code: 'accountsafe'},
component: () => component: () =>
import(/* webpackChunkName: "views" */ '@/views/tenant/account/index') import(/* webpackChunkName: "views" */ '@/views/tenant/account/index')

View File

@@ -1,12 +1,12 @@
<template> <template>
<basic-container> <basic-container>
<el-tabs v-model="activeName" class="tabs"> <el-tabs v-model="activeName" class="tabs">
<el-tab-pane label="账户安全" name="accountSafe"> <el-tab-pane label="账户信息" name="accountSafe">
<el-row class="content"> <el-row class="content">
<el-col :span="24"> <el-col :span="24">
<el-row> <el-row>
<el-col :span="24" class="title"> <el-col :span="24" class="title">
<b>户信息</b> <b>户信息</b>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@@ -17,245 +17,15 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="21">手机号码{{userInfo.account}}</el-col> <el-col :span="21">手机号码{{userInfo.account}}</el-col>
<el-col :sm="24" :lg="3">
<el-button type="text" @click="leaderBox = true" v-show="isAdmin">变更负责人</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row class="content">
<el-col :span="24">
<el-row>
<el-col :span="24" class="title">
<b>账户安全</b>
</el-col>
</el-row>
<el-row>
<el-col :sm="24" :lg="6">登录密码已设置</el-col>
<el-col :sm="24" :lg="15">安全性高的密码可以使账号更安全</el-col>
<el-col :sm="24" :lg="3">
<el-button type="text" @click="passwordBox = true">修改密码</el-button>
</el-col>
</el-row>
<el-row>
<el-col :sm="24" :lg="6">绑定手机号码已绑定</el-col>
<el-col :sm="24" :lg="15">绑定手机后您即可享受丰富的手机服务如手机找回密码等</el-col>
<el-col :sm="24" :lg="3">
<el-button type="text" @click="phoneBox = true">换绑手机号码</el-button>
</el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!--修改负责人-->
<el-dialog
title="变更负责人"
append-to-body
:visible.sync="leaderBox"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="30%"
@closed="closed"
:loading="leaderLoading"
>
<el-form
ref="leaderForm"
label-position="left"
label-width="110px"
size="small"
:rules="rules"
:model="leaderForm"
>
<el-form-item label="用户姓名" prop="realName">
<el-input v-model="leaderForm.realName" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="身份证号码" prop="idNumber">
<el-input v-model="leaderForm.idNumber" placeholder="请输入身份证号码"></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="leaderForm.phone" placeholder="请输入手机号码"></el-input>
</el-form-item>
<el-form-item label="短信验证码" prop="code">
<el-input v-model="leaderForm.code" placeholder="请输入短信验证码">
<template slot="append">
<el-button
type="text"
@click="handleSend('leaderForm','phone')"
class="msg-text"
:loading="sending"
:disabled="msgKey"
>{{msgText}}</el-button>
</template>
</el-input>
</el-form-item>
<el-alert title="注:变更后初始密码为手机号后六位" type="warning" :closable="false"></el-alert>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button
icon="el-icon-check"
type="primary"
@click="submitLeader"
size="mini"
:loading="leaderLoading"
> </el-button>
<el-button
icon="el-icon-circle-close"
@click="leaderBox = false"
size="mini"
:loading="leaderLoading"
> </el-button>
</span>
</el-dialog>
<!--/修改负责人-->
<!--修改密码-->
<el-dialog
title="修改密码"
append-to-body
:visible.sync="passwordBox"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="30%"
@closed="passwordClosed"
>
<el-form
ref="passwordForm"
label-position="left"
label-width="110px"
size="small"
:rules="rules"
:model="passwordForm"
>
<el-form-item label="原密码" prop="oldPassword">
<el-input
v-model="passwordForm.oldPassword"
auto-complete="off"
placeholder="请输入原登录密码"
:type="passwordType"
>
<i
class="el-icon-view el-input__icon"
slot="suffix"
@mouseenter="passwordType='input'"
@mouseleave="passwordType='password'"
></i>
</el-input>
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input
v-model="passwordForm.newPassword"
placeholder="6-20位包含数字和字母"
:type="passwordType1"
>
<i
class="el-icon-view el-input__icon"
slot="suffix"
@mouseenter="passwordType1='input'"
@mouseleave="passwordType1='password'"
></i>
</el-input>
</el-form-item>
<el-form-item label="确认密码" prop="newPassword1">
<el-input
v-model="passwordForm.newPassword1"
placeholder="6-20位包含数字和字母"
:type="passwordType2"
>
<i
class="el-icon-view el-input__icon"
slot="suffix"
@mouseenter="passwordType2='input'"
@mouseleave="passwordType2='password'"
></i>
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button
icon="el-icon-check"
type="primary"
@click="submitPwd"
size="mini"
:loading="passwordLoading"
> </el-button>
<el-button
icon="el-icon-circle-close"
@click="passwordBox = false"
size="mini"
:loading="passwordLoading"
> </el-button>
</span>
</el-dialog>
<!--/修改密码-->
<!--修改手机号-->
<el-dialog
title="换绑手机号码"
append-to-body
:visible.sync="phoneBox"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="30%"
@closed="phoneClosed"
>
<el-form
ref="phoneForm"
label-position="left"
label-width="110px"
size="small"
:rules="rules"
:model="phoneForm"
>
<el-form-item label="原手机号码" prop="oldPhone">
<el-input v-model="phoneForm.oldPhone" placeholder="请输入原手机号码" readonly></el-input>
</el-form-item>
<el-form-item label="新手机号码" prop="newPhone">
<el-input v-model="phoneForm.newPhone" placeholder="请输入要更换的手机号"></el-input>
</el-form-item>
<el-form-item label="短信验证码" prop="code">
<el-input v-model="phoneForm.code" placeholder="请输入短信验证码">
<template slot="append">
<el-button
type="text"
@click.prevent="handleSend('phoneForm','newPhone')"
class="msg-text"
:loading="sending"
:disabled="msgKey"
>{{msgText}}</el-button>
</template>
</el-input>
</el-form-item>
<el-alert title="注:变更后初始密码为手机号后六位" type="warning" :closable="false"></el-alert>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button
icon="el-icon-check"
type="primary"
@click="submitPhone"
size="mini"
:loading="phoneLoading"
> </el-button>
<el-button
icon="el-icon-circle-close"
@click="phoneBox = false"
size="mini"
:loading="phoneLoading"
> </el-button>
</span>
</el-dialog>
<!--/修改手机号-->
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { isvalidatemobile, check18IdCardNo, password } from "@/util/validate"; import { isvalidatemobile, check18IdCardNo, password } from "@/util/validate";
import {
changeLeader,
changePwd,
sendCode,
changePhone,
} from "@/api/tenant/account";
import { resetRouter } from "@/router/router"; import { resetRouter } from "@/router/router";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import md5 from "js-md5"; import md5 from "js-md5";
@@ -264,58 +34,6 @@ const wait = 120;
export default { export default {
data() { data() {
const IdCardNo = (rule, value, callback) => {
if (check18IdCardNo(value)) {
callback();
} else {
callback(new Error("身份证格式不正确"));
}
};
const validatePhone = (rule, value, callback) => {
if (isvalidatemobile(value)[0]) {
callback(new Error(isvalidatemobile(value)[1]));
} else {
callback();
}
};
const validateCode = (rule, value, callback) => {
if (value && value.length !== 4) {
callback(new Error("验证码错误"));
} else {
callback();
}
};
const validatePassDef = (rule, value, callback) => {
if (
this.passwordForm.oldPassword &&
value === this.passwordForm.oldPassword
) {
callback(new Error("新密码不能与原密码相同"));
} else if (password(value)) {
callback(new Error("密码需要包含数字和字母并且长度为6-20位"));
} else {
callback();
}
};
const validatePassDef2 = (rule, value, callback) => {
if (value !== this.passwordForm.newPassword) {
callback(new Error("两次密码不一致"));
} else if (password(value)) {
callback(new Error("密码需要包含数字和字母并且长度为6-20位"));
} else {
callback();
}
};
const validatePhoneDef = (rule, value, callback) => {
if (value === this.phoneForm.oldPhone) {
callback(new Error("新手机号码与原手机号码不能相同"));
} else {
callback();
}
};
return { return {
passwordLoading: false, passwordLoading: false,
leaderLoading: false, leaderLoading: false,
@@ -345,205 +63,12 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
idNumber: [
{ required: true, message: "请输入身份证号", trigger: "blur" },
{ validator: IdCardNo, trigger: "blur" },
],
phone: [{ required: true, trigger: "blur", validator: validatePhone }],
code: [
{ required: true, message: "请输入短信验证码", trigger: "blur" },
{ validator: validateCode, trigger: "blur" },
],
oldPassword: [
{
required: true,
whitespace: true,
message: "请输入原来登录密码",
trigger: "blur",
},
],
newPassword: [
{
required: true,
whitespace: true,
message: "请输入新密码",
trigger: "blur",
},
{
validator: validatePassDef,
trigger: "blur",
},
],
newPassword1: [
{
required: true,
whitespace: true,
message: "请再次输入密码",
trigger: "blur",
},
{
validator: validatePassDef2,
trigger: "blur",
},
],
oldPhone: [
{ required: true, validator: validatePhone, trigger: "blur" },
],
newPhone: [
{
required: true,
message: "请输入要更换的手机号码",
trigger: "blur",
},
{
validator: validatePhoneDef,
trigger: "blur",
},
],
}, },
}; };
}, },
created() { created() {
this.phoneForm = { oldPhone: this.userInfo.account }; this.phoneForm = { oldPhone: this.userInfo.account };
}, },
components: {},
methods: {
/*发送验证码 */
handleSend(form, field) {
if (this.msgKey) return;
this.$refs[form].validateField(field, (error) => {
if (!error) {
this.sending = true;
sendCode(this[form][field]).then(
() => {
let time = wait;
this.msgText = `剩余${time--}s`;
this.msgKey = true;
this.time = setInterval(() => {
this.msgText = `剩余${time--}s`;
if (time <= 0) {
this.clearTime(); //清除定时器
}
}, 1000);
this.sending = false;
},
() => {
this.sending = false;
this.$message.error("发送失败!");
}
);
}
});
},
/*提交变更负责人*/
submitLeader() {
this.$refs.leaderForm.validate((valid) => {
if (valid) {
this.leaderLoading = true;
changeLeader(this.leaderForm).then(
() => {
this.leaderBox = false;
this.leaderLoading = false;
this.$store.dispatch("LogOut").then(() => {
resetRouter();
this.$router.push({ path: "/login" });
this.$message({
type: "success",
message: "操作成功,请重新登录!",
});
});
},
(error) => {
window.console.log(error);
this.leaderLoading = false;
}
);
}
});
},
/*提交修改密码 */
submitPwd() {
this.$refs.passwordForm.validate((valid) => {
if (valid) {
this.passwordLoading = true;
changePwd(
md5(this.passwordForm.oldPassword),
md5(this.passwordForm.newPassword),
md5(this.passwordForm.newPassword1)
).then(
() => {
this.passwordBox = false;
this.passwordLoading = false;
this.$store.dispatch("LogOut").then(() => {
resetRouter();
this.$router.push({ path: "/login" });
this.$message({
type: "success",
message: "操作成功,请重新登录!",
});
});
},
(error) => {
window.console.log(error);
this.passwordLoading = false;
}
);
}
});
},
/*提交修改手机号 */
submitPhone() {
this.$refs.phoneForm.validate((valid) => {
if (valid) {
this.phoneLoading = true;
changePhone(this.phoneForm).then(
() => {
this.phoneBox = false;
this.phoneLoading = false;
this.$store.dispatch("LogOut").then(() => {
resetRouter();
this.$router.push({ path: "/login" });
this.$message({
type: "success",
message: "操作成功,请重新登录!",
});
});
},
(error) => {
window.console.log(error);
this.phoneLoading = false;
}
);
}
});
},
closed() {
this.clearTime();
this.leaderForm = {};
if (this.$refs.leaderForm) {
this.$refs.leaderForm.resetFields();
}
},
passwordClosed() {
this.passwordForm = {};
if (this.$refs.passwordForm) {
this.$refs.passwordForm.resetFields();
}
},
phoneClosed() {
this.clearTime();
if (this.$refs.phoneForm) {
this.$refs.phoneForm.resetFields();
}
this.phoneForm = { oldPhone: this.userInfo.account };
},
/*清除code定时器 */
clearTime() {
this.msgText = "获取验证码";
this.msgKey = false;
clearInterval(this.time);
},
},
computed: { computed: {
...mapGetters(["userInfo"]), ...mapGetters(["userInfo"]),
isAdmin() { isAdmin() {