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