Commit 5df31795 authored by 赵伟庚's avatar 赵伟庚

[fix]: 部分代码格式化;修复控制台出现的warning;替换::v-deep为:deep()

parent 5bcb7b08
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<div class="container" :class="menuShow ? '' : 'full_screen'" v-if="pageShow"> <div class="container" :class="menuShow ? '' : 'full_screen'" v-if="pageShow">
<!-- <bg-nav :highlightParentRule="highlightParentRule" :title="nowParent.menuName" width="208px" :list="nowParent.children" v-show="navShow" class="con-nav" /> --> <!-- <bg-nav :highlightParentRule="highlightParentRule" :title="nowParent.menuName" width="208px" :list="nowParent.children" v-show="navShow" class="con-nav" /> -->
<bg-nav <bg-nav
v-if="nowParent.children"
:highlightParentRule="highlightParentRule" :highlightParentRule="highlightParentRule"
width="208px" width="208px"
:list="nowParent.children" :list="nowParent.children"
......
<template> <template>
<div class="login-by-account"> <div class="login-by-account">
<el-form <el-form ref="loginFormRef" label-position="top" :model="loginForm" :rules="steploginFormRules">
ref="loginFormRef"
label-position="top"
:model="loginForm"
:rules="steploginFormRules"
>
<el-form-item prop="userid"> <el-form-item prop="userid">
<el-input <el-input v-model="loginForm.userid" placeholder="请输入账号" @keyup.enter.native="loginAction()" />
v-model="loginForm.userid"
placeholder="请输入账号"
@keyup.enter.native="loginAction()"
/>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input <el-input
:type="hidePassword ? 'password' : 'text'" :type="hidePassword ? 'password' : 'text'"
v-model="loginForm.password" v-model="loginForm.password"
placeholder="请输入密码" placeholder="请输入密码"
@keyup.enter.native="loginAction()" @keyup.enter.native="loginAction()">
>
<span <span
slot="suffix" slot="suffix"
:title="hidePassword ? '显示密码' : '隐藏密码'" :title="hidePassword ? '显示密码' : '隐藏密码'"
:class="hidePassword ? 'hide-password' : 'show-password'" :class="hidePassword ? 'hide-password' : 'show-password'"
@click="hidePassword = !hidePassword" @click="hidePassword = !hidePassword"
style="cursor: pointer" style="cursor: pointer"></span>
></span>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="yzm"> <el-form-item prop="yzm">
...@@ -35,32 +24,24 @@ ...@@ -35,32 +24,24 @@
v-model="loginForm.yzm" v-model="loginForm.yzm"
placeholder="请输入验证码" placeholder="请输入验证码"
@keyup.enter.native="loginAction()" @keyup.enter.native="loginAction()"
style="width: 240px" style="width: 240px" />
/>
<div class="yzm_img"> <div class="yzm_img">
<img <img title="看不清?换一张" :src="imgSrc" @click="getImg()" style="width: 100%" />
title="看不清?换一张"
:src="imgSrc"
@click="getImg()"
style="width: 100%"
/>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="loginAction()" style="width: 100%"> <el-button type="primary" @click="loginAction()" style="width: 100%"> 登 录 </el-button>
登 录 </el-form-item>
<el-form-item style="margin-top: 24px">
<el-button class="register_btn" @click.prevent="$emit('register')" style="width: 100%">
还没有账号?前往注册&emsp;
<bg-icon style="font-size: 12px; margin-right: 8px" icon="#bg-ic-arrow-right"></bg-icon>
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item style="margin-top: 24px;">
<el-button class="register_btn" @click.prevent="$emit('register')" style="width: 100%">
还没有账号?前往注册&emsp; <bg-icon style="font-size: 12px;margin-right: 8px" icon="#bg-ic-arrow-right"></bg-icon>
</el-button>
</el-form-item>
<div class="regist_bottom"> <div class="regist_bottom">
<el-checkbox v-model="rememberPassword">记住密码</el-checkbox> <el-checkbox v-model="rememberPassword">记住密码</el-checkbox>
<span class="fr forget_psd" @click.prevent="$emit('password')">忘记密码?</span> <span class="fr forget_psd" @click.prevent="$emit('password')">忘记密码?</span>
</div> </div>
</el-form> </el-form>
</div> </div>
...@@ -74,8 +55,8 @@ import { generateRoutes } from "../router/index"; ...@@ -74,8 +55,8 @@ import { generateRoutes } from "../router/index";
import { reactive, toRefs, ref, onBeforeMount, nextTick } from "vue"; import { reactive, toRefs, ref, onBeforeMount, nextTick } from "vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { Encrypt } from "@/services/secret.js" import { Encrypt } from "@/services/secret.js";
import { useStore } from "vuex" import { useStore } from "vuex";
const state = reactive({ const state = reactive({
loginForm: { loginForm: {
...@@ -93,127 +74,121 @@ const state = reactive({ ...@@ -93,127 +74,121 @@ const state = reactive({
identifyCode: "", identifyCode: "",
hidePassword: true, hidePassword: true,
rememberPassword: false, rememberPassword: false,
}) });
const store = useStore() const store = useStore();
const loginFormRef = ref(null) const loginFormRef = ref(null);
const loginAction = () => { const loginAction = () => {
if (state.rememberPassword) { if (state.rememberPassword) {
let userinfo = window.btoa( let userinfo = window.btoa(encodeURI(`${state.loginForm.userid},${state.loginForm.password}`));
encodeURI(`${state.loginForm.userid},${state.loginForm.password}`) setCookie("userinfo", userinfo);
); } else {
setCookie("userinfo", userinfo); clearCookie("userinfo");
} else { }
clearCookie("userinfo");
}
loginFormRef.value.validate((valid) => { loginFormRef.value.validate((valid) => {
if (valid) { if (valid) {
axios.get( axios.get(`/apaas/system/v5/user/verifyCaptcha?id=${state.imgId}&value=${state.loginForm.yzm}`).then((res) => {
`/apaas/system/v5/user/verifyCaptcha?id=${state.imgId}&value=${state.loginForm.yzm}` if (res.data.code == 200) {
) login();
.then((res) => { } else {
if (res.data.code == 200) { ElMessage.error(res.data.data);
login();
} else {
ElMessage.error(res.data.data);
}
});
} }
}); });
} }
});
};
const login = () => { const login = () => {
axios.post(`/apaas/system/v5/user/login`, { axios
system_account: state.loginForm.userid, .post(`/apaas/system/v5/user/login`, {
password: Encrypt(state.loginForm.password) system_account: state.loginForm.userid,
}) password: Encrypt(state.loginForm.password),
.then(({ data }) => { })
if (data.code == 200) { .then(({ data }) => {
getUser(); if (data.code == 200) {
} else { getUser();
getImg(true); } else {
ElMessage.error(data.data); getImg(true);
} ElMessage.error(data.data);
}) }
.catch((error) => { })
console.log(error); .catch((error) => {
}); console.log(error);
} });
};
const getUserInfo = () => { const getUserInfo = () => {
return axios.get(`/apaas/system/v5/user/getUserInfo`); return axios.get(`/apaas/system/v5/user/getUserInfo`);
} };
const getMenu = (search) => { const getMenu = (search) => {
return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`); return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`);
} };
const getUser = () => { const getUser = () => {
Promise.all([getUserInfo(), getMenu('dadb2d3f-e263-48d1-9389-42acb9ea49f8')]).then((res) => { Promise.all([getUserInfo(), getMenu("dadb2d3f-e263-48d1-9389-42acb9ea49f8")]).then((res) => {
if (res[0].data.code == 200 && res[1].data.code == 200) { if (res[0].data.code == 200 && res[1].data.code == 200) {
let data = res[1].data.data&&res[1].data.data[0].children || []; let data = (res[1].data.data && res[1].data.data[0].children) || [];
store.commit("setUserInfo", res[0].data.data); store.commit("setUserInfo", res[0].data.data);
// if (res.data.data.userType == 1) { // if (res.data.data.userType == 1) {
//超管 //超管
store.commit("setMenu", data); store.commit("setMenu", data);
menu.menuToRouter(data); menu.menuToRouter(data);
store.commit("setRoute", data); store.commit("setRoute", data);
//存储菜单对象信息 //存储菜单对象信息
let menuObj = {}; let menuObj = {};
getMenuObj(data, "", menuObj); getMenuObj(data, "", menuObj);
store.commit("setMenuObj", menuObj); store.commit("setMenuObj", menuObj);
// } // }
generateRoutes(); generateRoutes();
// this.$router.push("/"); // this.$router.push("/");
//跳转到工作台页面 //跳转到工作台页面
window.location.href = "/apaas/portal/ui/#/"; window.location.href = "/apaas/portal/ui/#/";
}
});
} }
});
};
const getMenuObj = (menu, parentRowPath, menuObj) => { const getMenuObj = (menu, parentRowPath, menuObj) => {
menu.forEach((e, idx) => { menu.forEach((e, idx) => {
e.rowPath = parentRowPath + "." + idx; e.rowPath = parentRowPath + "." + idx;
menuObj[e.path] = e; menuObj[e.path] = e;
if (e.children && e.children.length) { if (e.children && e.children.length) {
getMenuObj(e.children, e.rowPath, menuObj); getMenuObj(e.children, e.rowPath, menuObj);
}
});
} }
});
};
const getImg = (clearInput = false) => { const getImg = (clearInput = false) => {
axios.get(`/apaas/system/v5/user/getCaptcha??width=240&height=32`) axios.get(`/apaas/system/v5/user/getCaptcha??width=240&height=32`).then((res) => {
.then((res) => { if (res.data.code == 200) {
if (res.data.code == 200) { state.imgId = res.data.data.id;
state.imgId = res.data.data.id; state.imgSrc = res.data.data.captcha;
state.imgSrc = res.data.data.captcha;
}
});
if (clearInput) {
state.loginForm.yzm = "";
}
} }
});
if (clearInput) {
state.loginForm.yzm = "";
}
};
onBeforeMount(() => { onBeforeMount(() => {
getImg(); getImg();
if (getCookie("userinfo")) { if (getCookie("userinfo")) {
let userinfo = window.atob(decodeURI(getCookie("userinfo"))).split(","); let userinfo = window.atob(decodeURI(getCookie("userinfo"))).split(",");
state.loginForm.userid = userinfo[0]; state.loginForm.userid = userinfo[0];
state.loginForm.password = userinfo[1]; state.loginForm.password = userinfo[1];
state.checked = true; state.checked = true;
state.rememberPassword = true; state.rememberPassword = true;
} else { } else {
state.checked = false; state.checked = false;
} }
}) });
const {loginForm, steploginFormRules, imgId, imgSrc, identifyCode, hidePassword, rememberPassword} = toRefs(state) const { loginForm, steploginFormRules, imgId, imgSrc, identifyCode, hidePassword, rememberPassword } = toRefs(state);
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.login-by-account { .login-by-account {
.msg-code {
.msg-code {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
...@@ -233,5 +208,4 @@ const {loginForm, steploginFormRules, imgId, imgSrc, identifyCode, hidePassword, ...@@ -233,5 +208,4 @@ const {loginForm, steploginFormRules, imgId, imgSrc, identifyCode, hidePassword,
line-height: 34px; line-height: 34px;
} }
} }
</style> </style>
<template> <template>
<div class="login-by-code"> <div class="login-by-code">
<el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules"> <el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules">
<el-form-item prop="mobile"> <el-form-item prop="mobile">
<el-input
v-model="loginForm.mobile"
autofocus="autofocus"
placeholder="请输入手机号码"
@keyup.enter.native="loginAction()" />
</el-form-item>
<el-form-item prop="code">
<div class="msg-code">
<el-input <el-input
v-model="loginForm.mobile" v-model="loginForm.code"
autofocus="autofocus" placeholder="请输入验证码"
placeholder="请输入手机号码"
@keyup.enter.native="loginAction()" @keyup.enter.native="loginAction()"
/> style="width: 280px">
</el-form-item> </el-input>
<el-form-item prop="code"> <div class="yzm_img">
<div class="msg-code"> <el-button
<el-input type="primary"
v-model="loginForm.code" :disabled="countDown > 0"
placeholder="请输入验证码" @click.prevent="getMsgCode()"
@keyup.enter.native="loginAction()" style="width: 100%; height: 34px">
style="width: 280px" {{ countDown > 0 ? countDown + "秒后再次获取" : "发送验证码" }}
> </el-button>
<!-- <a class="input-append disabled" v-if="false && countDown > 0">
</el-input>
<div class="yzm_img">
<el-button type="primary" @click.prevent="getMsgCode()" style="width: 100%;height: 34px;">
{{countDown > 0 ? countDown + '秒后再次获取' : '发送验证码'}}
</el-button>
<!-- <a class="input-append disabled" v-if="false && countDown > 0">
{{ countDown }}秒后再次获取 {{ countDown }}秒后再次获取
</a> </a>
<a class="input-append" @click="getMsgCode" v-else> <a class="input-append" @click="getMsgCode" v-else>
获取验证码 获取验证码
</a> --> </a> -->
</div> </div>
</div> </div>
</el-form-item>
</el-form-item> <el-form-item style="margin-top: 54px">
<el-form-item style="margin-top: 54px;"> <el-button type="primary" @click.prevent="loginAction()" style="width: 100%"> 登 录 </el-button>
<el-button type="primary" @click.prevent="loginAction()" style="width: 100%"> </el-form-item>
登 录 <el-form-item style="margin-top: 24px">
</el-button> <el-button class="register_btn" @click.prevent="$emit('register')" style="width: 100%">
</el-form-item> 还没有账号?前往注册&emsp;
<el-form-item style="margin-top: 24px;"> <bg-icon style="font-size: 12px; margin-right: 8px" icon="#bg-ic-arrow-right"></bg-icon>
<el-button class="register_btn" @click.prevent="$emit('register')" style="width: 100%"> </el-button>
还没有账号?前往注册&emsp; <bg-icon style="font-size: 12px; margin-right: 8px" icon="#bg-ic-arrow-right"></bg-icon> </el-form-item>
</el-button> <div>
</el-form-item> <span class="fr forget_psd" @click.prevent="$emit('password')">忘记密码?</span>
<div>
<span class="fr forget_psd" @click.prevent="$emit('password')">忘记密码?</span>
</div> </div>
</el-form> </el-form>
</div> </div>
</template> </template>
<script setup>
import { reactive, toRefs, ref, onBeforeMount, nextTick } from "vue";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
const validatePhone = (rule, value, callback) => { <script setup>
const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/; import { reactive, toRefs, ref, onBeforeMount, nextTick } from "vue";
import { ElMessage } from "element-plus";
setTimeout(() => { import axios from "@/request/http.js";
if (!reg.test(value)) {
callback(new Error("请输入正确的手机号码")); const validatePhone = (rule, value, callback) => {
} else { const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
callback();
}
});
};
const state = reactive({ setTimeout(() => {
loginForm: { if (!reg.test(value)) {
mobile: "", callback(new Error("请输入正确的手机号码"));
code: "", } else {
}, callback();
loginFormRules: { }
mobile: [ });
{ required: true, message: "请输入手机号码", trigger: "blur" }, };
{ validator: validatePhone, trigger: "blur" },
],
code: [{ required: true, message: "请输入验证码", trigger: "blur" }],
},
countDown: 0,
countDownTimer: null,
})
const loginFormRef = ref(null) const state = reactive({
loginForm: {
mobile: "",
code: "",
},
loginFormRules: {
mobile: [
{ required: true, message: "请输入手机号码", trigger: "blur" },
{ validator: validatePhone, trigger: "blur" },
],
code: [{ required: true, message: "请输入验证码", trigger: "blur" }],
},
countDown: 0,
countDownTimer: null,
});
const getMsgCode = () => { const loginFormRef = ref(null);
loginFormRef.value.validateField("mobile", (valid) => {
if (valid) { const getMsgCode = () => {
axios.post('/apaas/system/v5/sms/verifyCode',{phone: state.loginForm.mobile}).then(({ data }) => { loginFormRef.value.validateField("mobile", (valid) => {
if (data.code == 200) { if (valid) {
countDownAction(); axios.post("/apaas/system/v5/sms/verifyCode", { phone: state.loginForm.mobile }).then(({ data }) => {
}else { if (data.code == 200) {
ElMessage.error(data.data); countDownAction();
} } else {
}); ElMessage.error(data.data);
}
});
};// 获取验证码
const countDownAction = () => {
state.countDown = 60;
if (state.countDownTimer) {
clearInterval(state.countDownTimer);
} }
});
state.countDownTimer = setInterval(() => { }
if (state.countDown > 0) { });
state.countDown--; }; // 获取验证码
const countDownAction = () => {
state.countDown = 60;
if (state.countDownTimer) {
clearInterval(state.countDownTimer);
}
state.countDownTimer = setInterval(() => {
if (state.countDown > 0) {
state.countDown--;
} else {
clearInterval(state.countDownTimer);
}
}, 1000);
};
const loginAction = () => {
loginFormRef.value.validate((valid) => {
if (valid) {
axios
.post(`/apaas/system/v5/user/phone/login`, {
phone: state.loginForm.mobile,
code: state.loginForm.code,
})
.then(({ data }) => {
if (data.code == 200) {
getUser();
} else { } else {
clearInterval(state.countDownTimer); ElMessage.error(data.data);
}
}, 1000);
}
const loginAction = () => {
loginFormRef.value.validate((valid) => {
if (valid) {
axios.post(`/apaas/system/v5/user/phone/login`, {
phone: state.loginForm.mobile,
code: state.loginForm.code,
})
.then(({ data }) => {
if (data.code == 200) {
getUser();
} else {
ElMessage.error(data.data);
}
})
.catch((error) => {
console.log(error);
});
} }
})
.catch((error) => {
console.log(error);
}); });
} // 短信验证码登录
const getUserInfo = () => {
return axios.get(`/apaas/system/v5/user/getUserInfo`);
} }
const getMenu = (search) => { });
return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`); }; // 短信验证码登录
}
const getUser = () => {
Promise.all([getUserInfo(), getMenu('dadb2d3f-e263-48d1-9389-42acb9ea49f8')]).then((res) => {
if (res[0].data.code == 200 && res[1].data.code == 200) {
let data = res[1].data.data&&res[1].data.data[0].children || [];
store.commit("setUserInfo", res[0].data.data);
// if (res.data.data.userType == 1) {
//超管
store.commit("setMenu", data);
menu.menuToRouter(data); const getUserInfo = () => {
return axios.get(`/apaas/system/v5/user/getUserInfo`);
};
const getMenu = (search) => {
return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`);
};
const getUser = () => {
Promise.all([getUserInfo(), getMenu("dadb2d3f-e263-48d1-9389-42acb9ea49f8")]).then((res) => {
if (res[0].data.code == 200 && res[1].data.code == 200) {
let data = (res[1].data.data && res[1].data.data[0].children) || [];
store.commit("setUserInfo", res[0].data.data);
// if (res.data.data.userType == 1) {
//超管
store.commit("setMenu", data);
store.commit("setRoute", data); menu.menuToRouter(data);
//存储菜单对象信息 store.commit("setRoute", data);
let menuObj = {};
getMenuObj(data, "", menuObj); //存储菜单对象信息
store.commit("setMenuObj", menuObj); let menuObj = {};
// } getMenuObj(data, "", menuObj);
generateRoutes(); store.commit("setMenuObj", menuObj);
// this.$router.push("/"); // }
//跳转到工作台页面 generateRoutes();
window.location.href = "/apaas/portal/ui/#/"; // this.$router.push("/");
} //跳转到工作台页面
}); window.location.href = "/apaas/portal/ui/#/";
} }
});
const { loginForm, loginFormRules, countDown, countDownTimer } = toRefs(state); };
</script>
const { loginForm, loginFormRules, countDown, countDownTimer } = toRefs(state);
<style lang="scss" scoped> </script>
.login-by-code {
.msg-code { <style lang="scss" scoped>
.login-by-code {
.msg-code {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
.yzm_img {
flex: 1;
margin-left: 20px;
}
}
.el-form {
.form-title {
display: flex; display: flex;
justify-content: space-between; justify-content: flex-start;
align-items: center; align-items: center;
width: 100%; line-height: 20px;
.yzm_img { margin-bottom: 5px;
flex: 1;
margin-left: 20px; > img {
} margin-left: 5px;
}
.el-form {
.form-title {
display: flex;
justify-content: flex-start;
align-items: center;
line-height: 20px;
margin-bottom: 5px;
> img {
margin-left: 5px;
}
} }
} }
} }
</style> }
</style>
\ No newline at end of file
import {createI18n} from 'vue-i18n' import {createI18n} from 'vue-i18n/index'
import lang from './index' import lang from './index'
const i18n = createI18n({ const i18n = createI18n({
......
...@@ -27,7 +27,7 @@ import i18n from "./i18n/i18n.js"; ...@@ -27,7 +27,7 @@ import i18n from "./i18n/i18n.js";
import axios from "./request/http.js"; import axios from "./request/http.js";
const createVue = createApp(App); const createVue = createApp(App);
createVue.use(ElementPlus, { locale }); // createVue.use(ElementPlus, { locale });
function getMsgAppid() { function getMsgAppid() {
axios.get(`/apaas/system/v5/message/account`).then((res) => { axios.get(`/apaas/system/v5/message/account`).then((res) => {
...@@ -96,12 +96,11 @@ Promise.all([getUser(), getMenu("dadb2d3f-e263-48d1-9389-42acb9ea49f8")]) ...@@ -96,12 +96,11 @@ Promise.all([getUser(), getMenu("dadb2d3f-e263-48d1-9389-42acb9ea49f8")])
// } // }
} }
generateRoutes(); generateRoutes();
createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui);
createVue.mount("#app");
}) })
.catch(() => { .catch((e) => {
createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui); console.error(e)
}).finally(() => {
createVue.use(ElementPlus, { locale }).use(store).use(router).use(i18n).use(bgui);
createVue.mount("#app"); createVue.mount("#app");
}); });
......
<template> <template>
<div class="login-container"> <div class="login-container">
<div class="bg-warning">系统有效期剩余345 天,请管理员及时更换license!</div> <div class="bg-warning">系统有效期剩余345 天,请管理员及时更换license!</div>
<div class="bg-main"> <div class="bg-main">
<!-- <div class="bg-logo"> <!-- <div class="bg-logo">
<img class="logo" src="../../assets/imgs/login_img_logo.png" /> <img class="logo" src="../../assets/imgs/login_img_logo.png" />
</div> --> </div> -->
<div class="bg-content"> <div class="bg-content">
<bg-tabs <bg-tabs
class="login-tab" class="login-tab"
v-model="loginTab" v-model="loginTab"
style="min-height: 450px;width: 480px" style="min-height: 450px; width: 480px"
v-if="pageType === 'login'" v-if="pageType === 'login'">
> <bg-tab label="账号密码登录" name="account">
<bg-tab label="账号密码登录" name="account"> <LoginByAccount @register="switchPageType('account')" @password="password" />
<LoginByAccount @register="switchPageType('account')" @password="password"/> </bg-tab>
</bg-tab> <bg-tab label="验证码登录" name="register">
<bg-tab label="验证码登录" name="register"> <LoginByCode @register="switchPageType('register')" @password="password" />
<LoginByCode @register="switchPageType('register')" @password="password"/> </bg-tab>
</bg-tab> </bg-tabs>
</bg-tabs>
</div>
</div> </div>
<!-- v-if="pageType !== 'register'" -->
<div class="bg-msg">
<p>
Copyright © 比格大数据, All Rights Reserved.
</p>
<p>
ICP备案序号:晋ICP备12000773号 | 晋公网安备 14010602060307号
</p>
<p>
法律声明 | 隐私政策
</p>
</div>
</div> </div>
</template> <!-- v-if="pageType !== 'register'" -->
<div class="bg-msg">
<script setup> <p>Copyright © 比格大数据, All Rights Reserved.</p>
import LoginByAccount from "@/components/login-by-account.vue"; <p>ICP备案序号:晋ICP备12000773号 | 晋公网安备 14010602060307号</p>
import LoginByCode from "@/components/login-by-code.vue"; <p>法律声明 | 隐私政策</p>
// import RegisterPersonalUser from "@/components/register-personal-user.vue"; </div>
// import RegisterFrimUser from "@/components/register-firm-user.vue"; </div>
// import RegisterOrgUser from "@/components/register-org-user.vue"; </template>
// import RegisterSuccess from "@/components/register-success.vue";
import { ref, computed, onMounted } from "vue";
import { useRouter } from "vue-router";
const router = useRouter();
const pageType = ref('login')
const loginTab = ref('account')
const registerTab = ref('registerTab')
const switchPageType = (type) => { <script setup>
// pageType.value = type import LoginByAccount from "@/components/login-by-account.vue";
router.push('/registe') import LoginByCode from "@/components/login-by-code.vue";
// import RegisterPersonalUser from "@/components/register-personal-user.vue";
// import RegisterFrimUser from "@/components/register-firm-user.vue";
// import RegisterOrgUser from "@/components/register-org-user.vue";
// import RegisterSuccess from "@/components/register-success.vue";
import { ref, computed, onMounted } from "vue";
import { useRouter } from "vue-router";
const router = useRouter();
} const pageType = ref("login");
const password = () => { const loginTab = ref("account");
router.push('/password') const registerTab = ref("registerTab");
}
const switchPageType = (type) => {
</script> // pageType.value = type
router.push("/registe");
<style lang="scss" scoped> };
.login-container { const password = () => {
width: 100vw; router.push("/password");
height: calc(100vh - 56px); };
background-image: url("@/assets/imgs/bg_zhuce.png"); </script>
background-size: 100% 100%;
background-position: center center; <style lang="scss" scoped>
position: relative; .login-container {
width: 100vw;
.bg-main { height: calc(100vh - 56px);
position: absolute; background-image: url("@/assets/imgs/bg_zhuce.png");
top: 50%; background-size: 100% 100%;
right: 0; background-position: center center;
margin-right: 16vw; position: relative;
margin-bottom: 80px;
transform: translateY(calc(-50%)); .bg-main {
width: 500px; position: absolute;
max-height: calc(100vh - 100px); top: 50%;
overflow: hidden auto; right: 0;
margin-right: 16vw;
&::-webkit-scrollbar { margin-bottom: 80px;
width: 16px; transform: translateY(calc(-50%));
height: 1px; width: 500px;
} max-height: calc(100vh - 100px);
overflow: hidden auto;
/* &::-webkit-scrollbar-track {
&::-webkit-scrollbar {
width: 16px;
height: 1px;
}
/* &::-webkit-scrollbar-track {
border-radius: 8px; border-radius: 8px;
box-shadow: 8px 0 0 #f4f4f4 inset; box-shadow: 8px 0 0 #f4f4f4 inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} */ } */
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border-radius: 8px; border-radius: 8px;
box-shadow: 8px 0 0 #a5adb7 inset; box-shadow: 8px 0 0 #a5adb7 inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} }
> .bg-logo { > .bg-logo {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.logo{ .logo {
width: 450px; width: 450px;
}
> span {
font-size: 36px;
color: #ffffff;
margin-left: 25px;
}
} }
> .bg-content { > span {
font-size: 36px;
color: #ffffff;
margin-left: 25px;
} }
} }
> .bg-warning {
text-align: center; > .bg-content {
background-color: #fdf4e2;
color: #e56600;
font-size: 14px;
height: 32px;
line-height: 32px;
} }
}
> .bg-msg { > .bg-warning {
position: absolute; text-align: center;
bottom: 10px; background-color: #fdf4e2;
left: 0; color: #e56600;
width: 100%; font-size: 14px;
font-size: 14px; height: 32px;
line-height: 20px; line-height: 32px;
color: #616f94; }
text-align: center;
> p { > .bg-msg {
padding: 8px 0; position: absolute;
} bottom: 10px;
left: 0;
width: 100%;
font-size: 14px;
line-height: 20px;
color: #616f94;
text-align: center;
> p {
padding: 8px 0;
} }
} }
</style> }
</style>
\ No newline at end of file
...@@ -445,10 +445,10 @@ onBeforeMount(() => { ...@@ -445,10 +445,10 @@ onBeforeMount(() => {
border-radius: 3px; border-radius: 3px;
border: solid 1px #b0bee8; border: solid 1px #b0bee8;
} }
::v-deep td { :deep() td {
padding: 9px 0 !important; padding: 9px 0 !important;
} }
::v-deep .el-switch { :deep() .el-switch {
height: 20px; height: 20px;
width: 44px; width: 44px;
.el-switch__core { .el-switch__core {
...@@ -460,7 +460,7 @@ onBeforeMount(() => { ...@@ -460,7 +460,7 @@ onBeforeMount(() => {
} }
} }
::v-deep .dialog_box_detail { :deep() .dialog_box_detail {
.el-dialog__body { .el-dialog__body {
padding: 0 0 18px 0; padding: 0 0 18px 0;
height: 580px; height: 580px;
......
...@@ -97,7 +97,7 @@ const rules = reactive({}); ...@@ -97,7 +97,7 @@ const rules = reactive({});
padding-left: 24px; padding-left: 24px;
.el-form { .el-form {
width: 60%; width: 60%;
::v-deep .el-form-item { :deep() .el-form-item {
&:nth-of-type(1) { &:nth-of-type(1) {
.el-upload--picture-card { .el-upload--picture-card {
width: 120px; width: 120px;
...@@ -112,7 +112,7 @@ const rules = reactive({}); ...@@ -112,7 +112,7 @@ const rules = reactive({});
} }
} }
} }
::v-deep .gap-title { :deep() .gap-title {
font-size: 16px; font-size: 16px;
color: #202531; color: #202531;
} }
......
...@@ -254,7 +254,7 @@ const save = () => {}; ...@@ -254,7 +254,7 @@ const save = () => {};
.authorizeForm, .authorizeForm,
.secureForm, .secureForm,
.registerForm { .registerForm {
::v-deep .el-form-item { :deep() .el-form-item {
margin-bottom: 24px; margin-bottom: 24px;
width: 750px; width: 750px;
font-size: 14px; font-size: 14px;
......
...@@ -248,11 +248,11 @@ const save = () => { ...@@ -248,11 +248,11 @@ const save = () => {
} }
.approveForm { .approveForm {
padding: 24px 24px 0 24px; padding: 24px 24px 0 24px;
::v-deep .el-form-item { :deep() .el-form-item {
margin-bottom: 24px; margin-bottom: 24px;
} }
::v-deep .el-form-item__label, :deep() .el-form-item__label,
::v-deep .el-radio__label { :deep() .el-radio__label {
color: var(--el-text-color-primary); color: var(--el-text-color-primary);
} }
} }
......
...@@ -482,10 +482,10 @@ onBeforeMount(() => { ...@@ -482,10 +482,10 @@ onBeforeMount(() => {
border-radius: 3px; border-radius: 3px;
border: solid 1px #b0bee8; border: solid 1px #b0bee8;
} }
::v-deep td { :deep() td {
padding: 9px 0 !important; padding: 9px 0 !important;
} }
::v-deep .el-switch { :deep() .el-switch {
height: 20px; height: 20px;
width: 44px; width: 44px;
.el-switch__core { .el-switch__core {
...@@ -497,7 +497,7 @@ onBeforeMount(() => { ...@@ -497,7 +497,7 @@ onBeforeMount(() => {
} }
} }
::v-deep .dialog_box_detail { :deep() .dialog_box_detail {
.el-dialog__body { .el-dialog__body {
padding: 0 0 18px 0; padding: 0 0 18px 0;
height: 580px; height: 580px;
......
...@@ -482,10 +482,10 @@ onBeforeMount(() => { ...@@ -482,10 +482,10 @@ onBeforeMount(() => {
border-radius: 3px; border-radius: 3px;
border: solid 1px #b0bee8; border: solid 1px #b0bee8;
} }
::v-deep td { :deep() td {
padding: 9px 0 !important; padding: 9px 0 !important;
} }
::v-deep .el-switch { :deep() .el-switch {
height: 20px; height: 20px;
width: 44px; width: 44px;
.el-switch__core { .el-switch__core {
...@@ -497,7 +497,7 @@ onBeforeMount(() => { ...@@ -497,7 +497,7 @@ onBeforeMount(() => {
} }
} }
::v-deep .dialog_box_detail { :deep() .dialog_box_detail {
.el-dialog__body { .el-dialog__body {
padding: 0 0 18px 0; padding: 0 0 18px 0;
height: 580px; height: 580px;
......
...@@ -3,22 +3,16 @@ ...@@ -3,22 +3,16 @@
<div class="bg-breadcrumb"> <div class="bg-breadcrumb">
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/login' }"> 登录 </el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/login' }"> 登录 </el-breadcrumb-item>
<el-breadcrumb-item > 注册 </el-breadcrumb-item> <el-breadcrumb-item> 注册 </el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="registe-content"> <div class="registe-content">
<div class="registe-header"> <div class="registe-header">
<div>业务系统注册</div> <div>业务系统注册</div>
<div class="registe-heade-sub">注册信息提示审批后即可登录</div> <div class="registe-heade-sub">注册信息提示审批后即可登录</div>
</div> </div>
<div class="registe-form"> <div class="registe-form">
<el-form <el-form ref="infoFormRef" :model="infoForm" label-width="120px" :rules="infoFormRules" style="width: 90%">
ref="infoFormRef"
:model="infoForm"
label-width="120px"
:rules="infoFormRules"
style="width: 90%"
>
<div class="registe-info"> <div class="registe-info">
<div class="title"> <div class="title">
<div><span class="icon_box"></span> 基础信息</div> <div><span class="icon_box"></span> 基础信息</div>
...@@ -35,73 +29,44 @@ ...@@ -35,73 +29,44 @@
style="width: 100%" /> style="width: 100%" />
</el-form-item> </el-form-item>
<el-form-item prop="business_name" label="业务系统名称"> <el-form-item prop="business_name" label="业务系统名称">
<el-input <el-input v-model="infoForm.business_name" placeholder="请输入" maxlength="20" show-word-limit />
v-model="infoForm.business_name"
placeholder="请输入"
maxlength="20"
show-word-limit
/>
</el-form-item> </el-form-item>
<el-form-item prop="develop_id" label="开发厂商名称"> <el-form-item prop="develop_id" label="开发厂商名称">
<el-select <el-select v-model="infoForm.develop_id" placeholder="请选择" filterable style="width: 100%">
v-model="infoForm.develop_id"
placeholder="请选择"
filterable
style="width: 100%">
<el-option <el-option
v-for="item in developList" v-for="item in developList"
:key="'develop_'+item.id" :key="'develop_' + item.id"
:label="item.dict_name" :label="item.dict_name"
:value="item.id" :value="item.id" />
/>
<template #empty> <template #empty>
<div class="select-empty"> <div class="select-empty">
<div>无匹配数据</div> <div>无匹配数据</div>
<el-button style="height: 32px;margin-top: 10px;" @click="addDevelop"> 新增</el-button> <el-button style="height: 32px; margin-top: 10px" @click="addDevelop"> 新增</el-button>
</div> </div>
</template> </template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="system_account" label="账号"> <el-form-item prop="system_account" label="账号">
<el-input <el-input v-model="infoForm.system_account" placeholder="请输入" />
v-model="infoForm.system_account"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
<el-form-item prop="password" label="密码"> <el-form-item prop="password" label="密码">
<el-input <el-input type="password" v-model="infoForm.password" placeholder="请输入" />
type="password"
v-model="infoForm.password"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
<el-form-item prop="confirm_password" label="确认密码"> <el-form-item prop="confirm_password" label="确认密码">
<el-input <el-input type="password" v-model="infoForm.confirm_password" placeholder="请输入" />
type="password"
v-model="infoForm.confirm_password"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
<el-form-item prop="phone" label="手机号"> <el-form-item prop="phone" label="手机号">
<el-input <el-input v-model="infoForm.phone" placeholder="请输入" />
v-model="infoForm.phone"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
<el-form-item prop="code" label="验证码"> <el-form-item prop="code" label="验证码">
<div class="msg-code"> <div class="msg-code">
<el-input <el-input v-model="infoForm.code" placeholder="请输入" style="860px"> </el-input>
v-model="infoForm.code"
placeholder="请输入"
style="860px"
>
</el-input>
<div class="yzm_img"> <div class="yzm_img">
<el-button type="primary" style="width: 100%;height: 34px;" @click="sendSms" :disabled="countDown"> <el-button type="primary" style="width: 100%; height: 34px" @click="sendSms" :disabled="countDown">
{{countDown > 0 ? countDown + '秒后再次获取' : '发送验证码'}} {{ countDown > 0 ? countDown + "秒后再次获取" : "发送验证码" }}
</el-button> </el-button>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item prop="business_desc" label="业务系统概述"> <el-form-item prop="business_desc" label="业务系统概述">
<el-input <el-input
...@@ -110,8 +75,7 @@ ...@@ -110,8 +75,7 @@
v-model="infoForm.business_desc" v-model="infoForm.business_desc"
placeholder="请输入" placeholder="请输入"
maxlength="200" maxlength="200"
show-word-limit show-word-limit />
/>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
...@@ -122,41 +86,31 @@ ...@@ -122,41 +86,31 @@
</div> </div>
<div class="info-form"> <div class="info-form">
<el-form-item prop="contact_name" label="联系人"> <el-form-item prop="contact_name" label="联系人">
<el-input <el-input v-model="infoForm.contact_name" placeholder="请输入" />
v-model="infoForm.contact_name"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
<el-form-item prop="contact_phone" label="联系电话"> <el-form-item prop="contact_phone" label="联系电话">
<el-input <el-input v-model="infoForm.contact_phone" placeholder="请输入" />
v-model="infoForm.contact_phone"
placeholder="请输入"
/>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="registe-footer"> <div class="registe-footer">
<el-button @click="router.go(-1)">返回登录页</el-button> <el-button @click="router.go(-1)">返回登录页</el-button>
<el-button type="primary" @click="submit">注册</el-button> <el-button type="primary" @click="submit">注册</el-button>
</div> </div>
</div> </div>
<el-dialog v-model="dialogVisit" title="新增" width="520px" :before-close="handleCloseDialog" destroy-on-close> <el-dialog v-model="dialogVisit" title="新增" width="520px" :before-close="handleCloseDialog" destroy-on-close>
<div class="dialog_form"> <div class="dialog_form">
<el-form <el-form
ref="developFormRef" ref="developFormRef"
:model="developForm" :model="developForm"
label-width="120px" label-width="120px"
:rules="developFormRules" :rules="developFormRules"
style="width: 90%" style="width: 90%">
> <el-form-item prop="develop" label="开发厂商名称">
<el-form-item prop="develop" label="开发厂商名称"> <el-input v-model="developForm.develop" placeholder="请输入" />
<el-input </el-form-item>
v-model="developForm.develop"
placeholder="请输入"
/>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
...@@ -170,12 +124,12 @@ ...@@ -170,12 +124,12 @@
</template> </template>
<script setup> <script setup>
import { ref, computed, onMounted, reactive, toRefs } from "vue"; import { ref, computed, onMounted, reactive, toRefs } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { Encrypt } from "@/services/secret.js" import { Encrypt } from "@/services/secret.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { validatePhone } from "@/services/rules.js" import { validatePhone } from "@/services/rules.js";
const validateBusinessName = (rule, value, callback) => { const validateBusinessName = (rule, value, callback) => {
let reg = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/; let reg = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/;
...@@ -212,16 +166,15 @@ const validateSystemAccount = (rule, value, callback) => { ...@@ -212,16 +166,15 @@ const validateSystemAccount = (rule, value, callback) => {
}; };
const checkPhoneRepet = (rule, value, callback) => { const checkPhoneRepet = (rule, value, callback) => {
let params = {phone: value}; let params = { phone: value };
axios.post(`/apaas/system/v5/user/checkPhone`,params) axios.post(`/apaas/system/v5/user/checkPhone`, params).then((res) => {
.then((res) => { if (res.data.code == 200) {
if (res.data.code == 200) { callback();
callback() } else {
}else { callback(new Error(res.data.data));
callback(new Error(res.data.data)) }
} });
}) };
}
const validatePass = (rule, value, callback) => { const validatePass = (rule, value, callback) => {
if (value !== state.infoForm.password) { if (value !== state.infoForm.password) {
...@@ -244,13 +197,14 @@ const state = reactive({ ...@@ -244,13 +197,14 @@ const state = reactive({
code: "", code: "",
business_desc: "", business_desc: "",
contact_name: "", contact_name: "",
contact_phone: "" contact_phone: "",
}, },
infoFormRules: { infoFormRules: {
organization_id: [{ required: true, message: "请选择开发厂商", trigger: "blur" }], organization_id: [{ required: true, message: "请选择开发厂商", trigger: "blur" }],
business_name: [ business_name: [
{ required: true, message: "请输入业务系统名称", trigger: "blur" }, { required: true, message: "请输入业务系统名称", trigger: "blur" },
{ validator: validateBusinessName, trigger: "blur" },], { validator: validateBusinessName, trigger: "blur" },
],
develop_id: [{ required: true, message: "请选择开发厂商", trigger: "blur" }], develop_id: [{ required: true, message: "请选择开发厂商", trigger: "blur" }],
system_account: [ system_account: [
{ required: true, message: "请输入账号", trigger: "blur" }, { required: true, message: "请输入账号", trigger: "blur" },
...@@ -261,40 +215,44 @@ const state = reactive({ ...@@ -261,40 +215,44 @@ const state = reactive({
password: [ password: [
{ required: true, message: "请输入密码", trigger: "blur" }, { required: true, message: "请输入密码", trigger: "blur" },
{ min: 8, message: "密码长度不得低于8位", trigger: "blur" }, { min: 8, message: "密码长度不得低于8位", trigger: "blur" },
], ],
confirm_password: [ confirm_password: [
{ required: true, message: "请确认密码", trigger: "blur" }, { required: true, message: "请确认密码", trigger: "blur" },
{ validator: validatePass, trigger: "blur" }, { validator: validatePass, trigger: "blur" },
], ],
phone: [{ required: true, message: "请输入手机号", trigger: "blur" }, phone: [
{ validator: validatePhone, trigger: "blur" }, { required: true, message: "请输入手机号", trigger: "blur" },
{ validator: checkPhoneRepet, trigger: "blur" },], { validator: validatePhone, trigger: "blur" },
{ validator: checkPhoneRepet, trigger: "blur" },
],
code: [{ required: true, message: "请输入验证码", trigger: "blur" }], code: [{ required: true, message: "请输入验证码", trigger: "blur" }],
contact_name: [{ required: true, message: "请输入联系人", trigger: "blur" }], contact_name: [{ required: true, message: "请输入联系人", trigger: "blur" }],
contact_phone: [{ required: true, message: "请输入联系电话", trigger: "blur" }, contact_phone: [
{ validator: validatePhone, trigger: "blur" }], { required: true, message: "请输入联系电话", trigger: "blur" },
{ validator: validatePhone, trigger: "blur" },
],
}, },
developForm: { developForm: {
develop: "" develop: "",
}, },
developFormRules: { developFormRules: {
develop: [{ required: true, message: "请输入开发厂商名称", trigger: "blur" }], develop: [{ required: true, message: "请输入开发厂商名称", trigger: "blur" }],
}, },
dialogVisit: false, dialogVisit: false,
countDown: 0, countDown: 0,
countDownTimer: null, countDownTimer: null,
orgData: [], orgData: [],
developList: [] developList: [],
}) });
const treeProps = { const treeProps = {
label: "name", label: "name",
children: "Child", children: "Child",
value: "organization_id", value: "organization_id",
}; };
// const loading = ref(false) // const loading = ref(false)
const list = ref([]) const list = ref([]);
const infoFormRef = ref(null) const infoFormRef = ref(null);
const developFormRef = ref(null) const developFormRef = ref(null);
// const remoteMethod = (query) => { // const remoteMethod = (query) => {
// if (query) { // if (query) {
...@@ -312,7 +270,7 @@ const developFormRef = ref(null) ...@@ -312,7 +270,7 @@ const developFormRef = ref(null)
const submit = () => { const submit = () => {
infoFormRef.value.validate((valid) => { infoFormRef.value.validate((valid) => {
if(valid) { if (valid) {
const params = { const params = {
organization_id: state.infoForm.organization_id, organization_id: state.infoForm.organization_id,
business_name: state.infoForm.business_name, business_name: state.infoForm.business_name,
...@@ -323,174 +281,174 @@ const submit = () => { ...@@ -323,174 +281,174 @@ const submit = () => {
contact_name: state.infoForm.contact_name, contact_name: state.infoForm.contact_name,
contact_phone: state.infoForm.contact_phone, contact_phone: state.infoForm.contact_phone,
phone: state.infoForm.phone, phone: state.infoForm.phone,
code: state.infoForm.code code: state.infoForm.code,
} };
axios.post('/apaas/system/v5/user/register',params).then(({ data }) => { axios.post("/apaas/system/v5/user/register", params).then(({ data }) => {
if (data.code == 200) { if (data.code == 200) {
ElMessage.success("注册信息已提交!");
ElMessage.success('注册信息已提交!'); router.go(-1);
router.go(-1) } else {
}else { ElMessage.error(data.data);
ElMessage.error(data.data); }
} });
});
} }
}) });
} };
const sendSms = () => { const sendSms = () => {
infoFormRef.value.validateField("phone", (valid) => { infoFormRef.value.validateField("phone", (valid) => {
if (valid) { if (valid) {
axios.post('/apaas/system/v5/sms/verifyCode',{phone: state.infoForm.phone}).then(({ data }) => { axios.post("/apaas/system/v5/sms/verifyCode", { phone: state.infoForm.phone }).then(({ data }) => {
if (data.code == 200) { if (data.code == 200) {
countDownAction(); countDownAction();
} }
}); });
} }
}); });
} };
const countDownAction = () => { const countDownAction = () => {
state.countDown = 60; state.countDown = 60;
if (state.countDownTimer) { if (state.countDownTimer) {
clearInterval(state.countDownTimer); clearInterval(state.countDownTimer);
} }
state.countDownTimer = setInterval(() => { state.countDownTimer = setInterval(() => {
if (state.countDown > 0) { if (state.countDown > 0) {
state.countDown--; state.countDown--;
} else { } else {
clearInterval(state.countDownTimer); clearInterval(state.countDownTimer);
} }
}, 1000); }, 1000);
} };
const addDevelop = () => { const addDevelop = () => {
state.dialogVisit = true; state.dialogVisit = true;
} };
const handleCloseDialog = () => { const handleCloseDialog = () => {
state.dialogVisit = false; state.dialogVisit = false;
} };
const confirmAdd = () => { const confirmAdd = () => {
developFormRef.value.validate((valid) => { developFormRef.value.validate((valid) => {
if(valid) { if (valid) {
axios.post('/apaas/system/v5/user/dict/develop/add',{dict_name: state.developForm.develop}).then(({ data }) => { axios
if (data.code == 200) { .post("/apaas/system/v5/user/dict/develop/add", { dict_name: state.developForm.develop })
state.infoForm.develop_id = data.data; .then(({ data }) => {
getDevelopList() if (data.code == 200) {
}else { state.infoForm.develop_id = data.data;
ElMessage.error(data.data); getDevelopList();
} } else {
handleCloseDialog() ElMessage.error(data.data);
}); }
handleCloseDialog();
});
} }
}) });
} };
const getOrgData = () => { const getOrgData = () => {
axios.get('/apaas/system/v5/user/org/tree').then(({ data }) => { axios.get("/apaas/system/v5/user/org/tree").then(({ data }) => {
if (data.code == 200) { if (data.code == 200) {
state.orgData = data.data || [] state.orgData = data.data || [];
} }
}); });
} };
const getDevelopList = () => { const getDevelopList = () => {
axios.get('/apaas/system/v5/user/dict/develop').then(({ data }) => { axios.get("/apaas/system/v5/user/dict/develop").then(({ data }) => {
if (data.code == 200) { if (data.code == 200) {
state.developList = data.data || [] state.developList = data.data || [];
} }
}); });
} };
onMounted(() => { onMounted(() => {
getOrgData() getOrgData();
getDevelopList() getDevelopList();
}) });
const { infoForm, const {
infoFormRules, infoForm,
dialogVisit, infoFormRules,
developForm, dialogVisit,
developFormRules, developForm,
countDown, developFormRules,
countDownTimer, countDown,
orgData, countDownTimer,
developList } = toRefs(state) orgData,
developList,
} = toRefs(state);
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.registe-container { .registe-container {
margin: 0 auto; margin: 0 auto;
width: 1200px; width: 1200px;
height: 100%; height: 100%;
.registe-content { .registe-content {
background-color: #ffffff; background-color: #ffffff;
box-shadow: 0px 1px 4px 0px box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
rgba(0, 7, 101, 0.15); border-radius: 6px;
border-radius: 6px; // height: calc(100% - 100px);
// height: calc(100% - 100px); .registe-header {
.registe-header { padding: 20px 0;
padding: 20px 0; text-align: center;
text-align: center; font-size: 22px;
font-size: 22px; color: #1a1a1a;
color: #1a1a1a; font-weight: bold;
font-weight: bold; .registe-heade-sub {
.registe-heade-sub { font-size: 14px;
font-size: 14px; font-weight: 400;
font-weight: 400; color: #404a62;
color: #404a62; padding: 10px 0;
padding: 10px 0;
}
} }
.registe-form { }
padding: 0 24px; .registe-form {
.title { padding: 0 24px;
font-size: 18px; .title {
color: #1a1a1a; font-size: 18px;
font-weight: 600; color: #1a1a1a;
margin-bottom: 10px; font-weight: 600;
display: flex; margin-bottom: 10px;
align-items: center; display: flex;
.icon_box { align-items: center;
display: inline-block; .icon_box {
width: 4px; display: inline-block;
height: 14px; width: 4px;
background-color: #3759be; height: 14px;
border-radius: 2px; background-color: #3759be;
margin-right: 5px; border-radius: 2px;
} margin-right: 5px;
.dashed_line {
flex: 1;
height: 1px;
margin: 0 10px;
border-bottom: dashed 1px #dadee7;
}
} }
.msg-code { .dashed_line {
display: flex; flex: 1;
justify-content: space-between; height: 1px;
align-items: center; margin: 0 10px;
width: 100%; border-bottom: dashed 1px #dadee7;
.yzm_img {
flex: 1;
margin-left: 20px;
}
} }
} }
.registe-footer { .msg-code {
border-top: solid 1px #e6e9ef; display: flex;
text-align: right; justify-content: space-between;
padding: 24px; align-items: center;
width: 100%;
.yzm_img {
flex: 1;
margin-left: 20px;
}
} }
} }
.dialog_form { .registe-footer {
margin: 20px 0; border-top: solid 1px #e6e9ef;
text-align: right;
padding: 24px;
} }
} }
.dialog_form {
margin: 20px 0;
}
}
</style> </style>
\ No newline at end of file
...@@ -69,7 +69,7 @@ router.beforeEach((to, from, next) => { ...@@ -69,7 +69,7 @@ router.beforeEach((to, from, next) => {
// 检查to.path是否存在于免登陆白名单 // 检查to.path是否存在于免登陆白名单
if (inWhiteList(to.path)) { if (inWhiteList(to.path)) {
next(); return next();
} else { } else {
// 判断是否已经登录,未登录则重定向到首页或其他页面(通过query传参记录原来的路径) // 判断是否已经登录,未登录则重定向到首页或其他页面(通过query传参记录原来的路径)
// 根据配置判断是否跳转第三方登录,跳转第三方登录则不跳login // 根据配置判断是否跳转第三方登录,跳转第三方登录则不跳login
......
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