Commit 5fbc7924 authored by xhx's avatar xhx

Merge branch 'dev' of https://gitlab.33.cn/CassiniatSaturn/fns_backend into dev

parents 3b3c3243 f7899b41
......@@ -19,7 +19,7 @@
<a-form-model-item label="用户名" prop="name">
<a-input
v-model="form.name"
placeholder="请输入用户名,"
placeholder="请输入6个字以内的用户名"
style="width: 200px;"
/>
</a-form-model-item>
......@@ -91,7 +91,7 @@ export default Vue.extend({
data() {
const addrules = {
name: [
{ required: true, message: '请输入名称', max: 6, trigger: 'blur' },
{ required: true, message: '请输入名称,6个字以内', max: 6, trigger: 'blur' },
],
tel: [
{ required: true, message: '请输入手机号', len: 11, trigger: 'blur' },
......
......@@ -155,23 +155,25 @@ export default Vue.extend({
})
},
showModal() {
const rankVal = (JSON.parse(this.$route.query.rankVal as string)) as {name: string, value: number}[];
const role = this.$route.query.role === eNewRoleRelatedToBackEnd.ACM ? eTypeOfOperatedObject.clientManager : eTypeOfOperatedObject.manager
this.$store.commit('UserManagement/save', {
modalMode: eAddManagerModalMode.create, // create表示新增
typeOfOperatedObject: role, // !!!!要改 表示管理员还是客服经理
searchLevel: this.level, // 当前搜索的层级 如果展示一级分行页面 则是 eLevel.firstLevel_branch
branchDetailMsg: { // 分支行下拉栏的值
fb: rankVal[0].name,
fb_id: rankVal[0].value,
sb: rankVal[1] && rankVal[1].name || undefined,
sb_id: rankVal[1] && rankVal[1].value || undefined,
fsb: rankVal[2] && rankVal[2].name || undefined,
fsb_id: rankVal[2] && rankVal[2].value || undefined,
ssb: rankVal[1] && rankVal[1].name || undefined,
ssb_id: rankVal[1] && rankVal[1].value || undefined,
}
} as iUserManagementState)
if(this.$route.query.rankVal){
const rankVal = (JSON.parse(this.$route.query.rankVal as string)) as {name: string, value: number}[];
const role = this.$route.query.role === eNewRoleRelatedToBackEnd.ACM ? eTypeOfOperatedObject.clientManager : eTypeOfOperatedObject.manager
this.$store.commit('UserManagement/save', {
modalMode: eAddManagerModalMode.create, // create表示新增
typeOfOperatedObject: role, // !!!!要改 表示管理员还是客服经理
searchLevel: this.level, // 当前搜索的层级 如果展示一级分行页面 则是 eLevel.firstLevel_branch
branchDetailMsg: { // 分支行下拉栏的值
fb: rankVal[0].name,
fb_id: rankVal[0].value,
sb: rankVal[1] && rankVal[1].name || undefined,
sb_id: rankVal[1] && rankVal[1].value || undefined,
fsb: rankVal[2] && rankVal[2].name || undefined,
fsb_id: rankVal[2] && rankVal[2].value || undefined,
ssb: rankVal[1] && rankVal[1].name || undefined,
ssb_id: rankVal[1] && rankVal[1].value || undefined,
}
} as iUserManagementState)
}
;(this.$refs.addrModal as any).showModal()
},
},
......
......@@ -64,11 +64,11 @@ export default class UserService {
})
}
/**
* 注册
* @param data
* @returns
*/
/**
* 注册
* @param data
* @returns
*/
register(data: { phone: string; verify_code: string }) {
return baseAxios({
method: 'POST',
......
......@@ -6,6 +6,10 @@ export function setUserMsg(msg: iUserMsg) {
localStorage.setItem(USER_MSG, JSON.stringify(msg))
}
export function setUserPhone(msg: iUserMsg) {
localStorage.setItem(USER_MSG, JSON.stringify(msg))
}
export function getUserMsg(): iUserMsg | undefined {
const value = localStorage.getItem(USER_MSG)
return (value && JSON.parse(value)) || undefined
......
<template>
<div>
<p class="text-2xl font-bold mb-5">换绑手机</p>
<a-form-model
:model="changeSecurityPhoneForm"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
ref="changeSecurityPhoneForm"
:rules="rules"
>
<a-form-model-item
label="原手机号码"
:wrapper-col="{ span: 1, offset: 0 }"
<template v-if="userPhone">
<p class="text-2xl font-bold mb-5">换绑手机</p>
<a-form-model
:model="changeSecurityPhoneForm"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
ref="changeSecurityPhoneForm"
:rules="rules"
>
<span>{{ userPhone }}</span>
</a-form-model-item>
<a-form-model-item
label="账号密码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="pwd"
<a-form-model-item
label="原手机号码"
:wrapper-col="{ span: 1, offset: 0 }"
>
<span>{{ userPhone }}</span>
</a-form-model-item>
<a-form-model-item
label="账号密码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="pwd"
>
<a-input v-model="changeSecurityPhoneForm.pwd" type="password" />
</a-form-model-item>
<a-form-model-item
label="新手机号码"
prop="newPhoneNumber"
:wrapper-col="{ span: 4, offset: 0 }"
>
<a-input v-model="changeSecurityPhoneForm.newPhoneNumber" />
</a-form-model-item>
<a-form-model-item
label="验证码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="codeToConfirmChange"
ref="changePhoneCode2"
:autoLink="false"
>
<code-input
:phone="changeSecurityPhoneForm.newPhoneNumber"
@getCode="getCode"
/>
</a-form-model-item>
<a-form-model-item :wrapper-col="{ span: 1, offset: 10 }">
<a-button type="primary" @click="handleSubmission">提交</a-button>
</a-form-model-item>
</a-form-model>
</template>
<!-- 首次登陆需绑定手机 -->
<template v-else>
<p class="text-2xl font-bold mb-5">绑定手机</p>
<a-form-model
:model="confrimPhoneForm"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
ref="confirmPhoneForm"
:rules="rule1"
>
<a-input v-model="changeSecurityPhoneForm.pwd" type="password" />
</a-form-model-item>
<a-form-model-item
label="新手机号码"
prop="newPhoneNumber"
:wrapper-col="{ span: 4, offset: 0 }"
>
<a-input v-model="changeSecurityPhoneForm.newPhoneNumber" />
</a-form-model-item>
<a-form-model-item
label="验证码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="codeToConfirmChange"
ref="changePhoneCode2"
:autoLink="false"
>
<code-input
:phone="changeSecurityPhoneForm.newPhoneNumber"
@getCode="getCode"
/>
</a-form-model-item>
<a-form-model-item :wrapper-col="{ span: 1, offset: 10 }">
<a-button type="primary" @click="handleSubmission">提交</a-button>
</a-form-model-item>
</a-form-model>
<a-form-model-item
label="手机号码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="phone"
>
<a-input v-model="confrimPhoneForm.phone" />
</a-form-model-item>
<a-form-model-item
label="账号密码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="pwd"
>
<a-input v-model="confrimPhoneForm.pwd" type="password" />
</a-form-model-item>
<a-form-model-item
label="验证码"
:wrapper-col="{ span: 4, offset: 0 }"
prop="verify_code"
ref="changePhoneCode2"
:autoLink="false"
>
<code-input :phone="confrimPhoneForm.phone" @getCode="getCode" />
</a-form-model-item>
<a-form-model-item :wrapper-col="{ span: 1, offset: 10 }">
<a-button type="primary" @click="handleSubmission">提交</a-button>
</a-form-model-item>
</a-form-model>
</template>
</div>
</template>
......@@ -53,7 +93,7 @@ import CodeInput from "@/components/CodeInput/index.vue";
import { FormModel, Modal } from "ant-design-vue";
import { phoneValid } from "./const";
import UserService from "@/service/UserManagementService";
import { deleteUserMsg } from "@/utils/userMsg/userMsg";
import { deleteUserMsg, getUserMsg, setUserMsg } from "@/utils/userMsg/userMsg";
export default Vue.extend({
components: { CodeInput },
props: {
......@@ -63,15 +103,46 @@ export default Vue.extend({
},
},
data() {
const userPhone = getUserMsg()?.phone;
return {
labelCol: { span: 10 },
wrapperCol: { span: 10 },
userPhone: "1234567890",
userPhone,
changeSecurityPhoneForm: {
pwd: "",
newPhoneNumber: "",
codeToConfirmChange: "",
},
confrimPhoneForm: {
phone: "",
pwd: "",
verify_code: "",
},
rule1: {
pwd: [
{
required: true,
message: "请输入密码",
trigger: "blur",
},
],
phone: [
{
required: true,
pattern: phoneValid,
message: "请输入正确的手机号",
trigger: "blur",
},
],
verify_code: [
{
required: true,
len: 6,
message: "请输入6位短信验证码",
trigger: "blur",
},
],
},
rules: {
pwd: [
{
......@@ -97,16 +168,27 @@ export default Vue.extend({
},
],
},
show: true,
};
},
methods: {
getCode(code: string) {
this.changeSecurityPhoneForm.codeToConfirmChange = code;
(this.$refs.changePhoneCode2 as any).onFieldBlur();
if (this.userPhone) {
this.changeSecurityPhoneForm.codeToConfirmChange = code;
} else {
this.confrimPhoneForm.verify_code = code;
}
(this.$refs.changePhoneCode2 as any).onFieldBlur();
},
isValid() {
let result;
(this.$refs.changeSecurityPhoneForm as FormModel).validate((valid) => {
let form
if(this.userPhone){
form = this.$refs.changeSecurityPhoneForm as FormModel
}else {
form = this.$refs.confirmPhoneForm as FormModel
}
form.validate((valid) => {
if (valid) {
result = true;
} else {
......@@ -118,28 +200,58 @@ export default Vue.extend({
async handleSubmission() {
const that = this;
if (this.isValid()) {
const ret = await UserService.getInstance().changePhone({
phone: this.changeSecurityPhoneForm.newPhoneNumber,
pwd: this.changeSecurityPhoneForm.pwd,
verify_code: this.changeSecurityPhoneForm.codeToConfirmChange,
});
if (ret.code == 200) {
deleteUserMsg();
Modal.info({
title: "手机号修改成功",
content: "请重新登陆",
onOk() {
that.$router.push({ name: "login" });
},
//换绑手机
if(this.userPhone){
const ret = await UserService.getInstance().changePhone({
phone: this.changeSecurityPhoneForm.newPhoneNumber,
pwd: this.changeSecurityPhoneForm.pwd,
verify_code: this.changeSecurityPhoneForm.codeToConfirmChange,
});
} else {
Modal.error({
title: "手机号修改失败",
content: ret.msg,
onOk() {},
if (ret.code == 200) {
deleteUserMsg();
Modal.info({
title: "手机号修改成功",
content: "请重新登陆",
onOk() {
that.$router.push({ name: "login" });
},
});
} else {
Modal.error({
title: "手机号修改失败",
content: ret.msg,
onOk() {},
});
}
}else {
// 绑定手机
const ret = await UserService.getInstance().adminAddPhone({
phone: this.confrimPhoneForm.phone,
pwd: this.confrimPhoneForm.pwd,
verify_code: this.confrimPhoneForm.verify_code,
});
if (ret.code == 200) {
Modal.info({
title: "手机号绑定成功",
});
// 设置localstroage
// setUserMsg({
// token: accessToken,
// newRole: this.adminLogin
// ? eNewRoleRelatedToBackEnd.PlatformAdmin
// : role,
// level: level,
// phone,
// userType,
// });
} else {
Modal.error({
title: "手机号修改失败",
content: ret.msg,
onOk() {},
});
}
}
console.log(ret);
} else return;
},
},
......
......@@ -10,7 +10,7 @@
>
<a-form-model-item
label="绑定手机号"
:wrapper-col="{ span: 1, offset: 0 }"
:wrapper-col="{ span: 8, offset: 0 }"
>
<span>{{ userPhone }}</span>
</a-form-model-item>
......@@ -19,14 +19,14 @@
prop="code"
ref="changePwdCode"
:autoLink="false"
:wrapper-col="{ span: 4, offset: 0 }"
:wrapper-col="{ span: 3, offset: 0 }"
>
<code-input :phone="userPhone" @getCode="getCode" />
</a-form-model-item>
<a-form-model-item
label="新密码"
prop="newPass"
:wrapper-col="{ span: 4, offset: 0 }"
:wrapper-col="{ span: 3, offset: 0 }"
>
<a-input
v-model="changeByCodeForm.newPass"
......@@ -38,7 +38,7 @@
<a-form-model-item
label="确认密码"
prop="verifyPass"
:wrapper-col="{ span: 4, offset: 0 }"
:wrapper-col="{ span: 3, offset: 0 }"
>
<a-input
v-model="changeByCodeForm.verifyPass"
......@@ -48,7 +48,9 @@
/>
</a-form-model-item>
</a-form-model>
<a-button type="primary" @click="handleSubmission">提交</a-button>
<a-form-model-item :wrapper-col="{ span: 1, offset: 10 }">
<a-button type="primary" @click="handleSubmission">提交</a-button>
</a-form-model-item>
</div>
</template>
......@@ -57,7 +59,7 @@ import Vue from "vue";
import { FormModel } from "ant-design-vue";
import codeInput from "@/components/CodeInput/index.vue";
import UserService from "@/service/UserManagementService";
import { deleteUserMsg } from "@/utils/userMsg/userMsg";
import { deleteUserMsg, getUserMsg } from "@/utils/userMsg/userMsg";
import { Modal } from "ant-design-vue"
export default Vue.extend({
......@@ -83,6 +85,7 @@ export default Vue.extend({
callback();
}
};
const userPhone = getUserMsg()?.phone
return {
labelCol: { span: 10 },
wrapperCol: { span: 10 },
......@@ -112,7 +115,7 @@ export default Vue.extend({
},
smsCount: 60,
smsLock: false,
userPhone: "15011111111",
userPhone,
timerId1: 0,
};
},
......@@ -136,7 +139,7 @@ export default Vue.extend({
const ret = await UserService.getInstance().changePwd({
new_pwd: this.changeByCodeForm.newPass,
verify_code: this.changeByCodeForm.code,
phone: this.userPhone,
phone: this.userPhone!,
// phone:"",
});
if (ret.code == 200) {
......
<template>
<div>
<a-layout id="components-layout-demo-fixed-sider" style="min-height: 100vh" >
<a-layout-header>
<a-layout-header :style="{ position: 'fixed', zIndex: 1, width: '100%' }" >
<div class="flex justify-between items-center h-full">
<div class="text-center text-lg my-3 flex font-semibold">
<img src="../../assets/org_logo.png" class=" w-7 h-7 mr-2">
......@@ -21,7 +21,7 @@
</div>
</a-layout-header>
<a-layout id="components-layout-demo-fixed-sider" >
<a-layout-sider width="256" style="background: white" :style="{ overflow: 'auto', height: '100vh', position: 'fixed', left: 0 }">
<a-layout-sider width="256" style="background: white;" :style="{ overflow: 'auto', height: '100vh', position: 'fixed', left: 0 ,top:'64px'}">
<a-menu
style="width: 256px"
:open-keys.sync="openKeys"
......@@ -50,7 +50,7 @@
</a-layout-sider>
<a-layout :style="{ marginLeft: '250px' }">
<a-layout-content
:style="{ margin: '24px 16px 0', overflow: 'initial' }"
:style="{ margin: '80px 16px 0', overflow: 'initial' }"
>
<div
:style="{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment