|
@@ -1,53 +1,128 @@
|
|
<template>
|
|
<template>
|
|
- <!-- 全屏包裹容器 -->
|
|
|
|
- <div class="loginBg">
|
|
|
|
- <div class="loginBox" v-loading="loading">
|
|
|
|
- <div class="login_top">
|
|
|
|
- <img src="../../assets/school.png" alt="" />
|
|
|
|
- <div class="top_title">深圳市荔园教育集团</div>
|
|
|
|
- <div>AI智慧校园平台</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="login_content">
|
|
|
|
- 账户
|
|
|
|
- <div class="input-container">
|
|
|
|
- <input
|
|
|
|
- type="text"
|
|
|
|
- placeholder="请输入账户"
|
|
|
|
- class="input"
|
|
|
|
- @change="getOrgData"
|
|
|
|
- @keyup.enter="loginFn"
|
|
|
|
- v-model="account"
|
|
|
|
- />
|
|
|
|
|
|
+ <div class="loginPage">
|
|
|
|
+ <div class="lp_left">
|
|
|
|
+ <img
|
|
|
|
+ v-if="form.basics && form.basics.loginBanner"
|
|
|
|
+ :src="form.basics.loginBanner"
|
|
|
|
+ />
|
|
|
|
+ <img
|
|
|
|
+ v-else
|
|
|
|
+ src="@/assets/login.png"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="lp_right">
|
|
|
|
+ <div class="lp_r_box">
|
|
|
|
+ <div class="lp_r_b_logo" v-if="form.basics">
|
|
|
|
+ <div>
|
|
|
|
+ <el-image
|
|
|
|
+ v-if="form.basics.loginLogo"
|
|
|
|
+ style="width: 35px; height: 35px; border-radius: 50%"
|
|
|
|
+ :src="form.basics.loginLogo"
|
|
|
|
+ ></el-image>
|
|
|
|
+ </div>
|
|
|
|
+ <span>{{ showName }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <span v-if="['default', 'weChat'].includes(loginType)">登录</span>
|
|
|
|
+ <span v-if="['bind'].includes(loginType)">绑定账号</span>
|
|
|
|
+ <div class="lp_r_b_formArea" v-loading="loading">
|
|
|
|
+ <div class="fa_input" v-if="['default', 'bind'].includes(loginType)">
|
|
|
|
+ <div class="fa_i_item">
|
|
|
|
+ <span>账号</span>
|
|
|
|
+ <div>
|
|
|
|
+ <input
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="请输入账号"
|
|
|
|
+ v-model="account"
|
|
|
|
+ @change="getOrgData"
|
|
|
|
+ @keyup.enter="loginFn"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="fa_i_item">
|
|
|
|
+ <span>组织</span>
|
|
|
|
+ <div>
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="org"
|
|
|
|
+ :popper-append-to-body="false"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ :disabled="
|
|
|
|
+ (OrgOptions.length == 1 && org) || OrgOptions.length == 0
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in OrgOptions"
|
|
|
|
+ :key="item.Uorg"
|
|
|
|
+ :label="item.name"
|
|
|
|
+ :value="item.Uorg"
|
|
|
|
+ >
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <!-- <input
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="请输入组织号"
|
|
|
|
+ v-model="org"
|
|
|
|
+ @keyup.enter="loginFn"
|
|
|
|
+ /> -->
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="fa_i_item">
|
|
|
|
+ <span>密码</span>
|
|
|
|
+ <div>
|
|
|
|
+ <input
|
|
|
|
+ type="password"
|
|
|
|
+ placeholder="请输入密码"
|
|
|
|
+ v-model="password"
|
|
|
|
+ @keyup.enter="loginFn"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fa_weChat" v-if="['weChat'].includes(loginType)">
|
|
|
|
+ <div id="QRcode" @click="loginType = 'bind'" class="QRcode"></div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div
|
|
|
|
+ class="lp_r_b_btn"
|
|
|
|
+ v-if="loginType == 'default'"
|
|
|
|
+ @click="loginFn"
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ >
|
|
|
|
+ 登录
|
|
</div>
|
|
</div>
|
|
- 组织
|
|
|
|
- <div class="input-container">
|
|
|
|
- <!-- <input
|
|
|
|
- type="text"
|
|
|
|
- placeholder="请输入组织"
|
|
|
|
- class="input"
|
|
|
|
- @keyup.enter="loginFn"
|
|
|
|
- v-model="org"
|
|
|
|
- /> -->
|
|
|
|
- <el-select class="input" :popper-append-to-body="false" v-model="org" placeholder="请选择">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in OrgOptions"
|
|
|
|
- :key="item.Uorg"
|
|
|
|
- :label="item.name"
|
|
|
|
- :value="item.Uorg">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <div
|
|
|
|
+ class="lp_r_b_btn"
|
|
|
|
+ v-if="loginType == 'weChat'"
|
|
|
|
+ @click="loginType = 'default'"
|
|
|
|
+ >
|
|
|
|
+ 账号密码登录
|
|
</div>
|
|
</div>
|
|
- 密码
|
|
|
|
- <div class="input-container">
|
|
|
|
- <input
|
|
|
|
- type="password"
|
|
|
|
- placeholder="请输入密码"
|
|
|
|
- class="input"
|
|
|
|
- @keyup.enter="loginFn"
|
|
|
|
- v-model="password"
|
|
|
|
- />
|
|
|
|
|
|
+ <div
|
|
|
|
+ class="lp_r_b_btn"
|
|
|
|
+ v-if="loginType == 'bind'"
|
|
|
|
+ @click="loginFn"
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ >
|
|
|
|
+ 确认绑定
|
|
|
|
+ </div>
|
|
|
|
+ <div class="lp_r_b_line">
|
|
|
|
+ <template v-if="['default', 'weChat'].includes(loginType) && false">
|
|
|
|
+ <div></div>
|
|
|
|
+ <span>其他登录方式</span>
|
|
|
|
+ <div></div>
|
|
|
|
+ </template>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="lp_r_b_iconBtn">
|
|
|
|
+ <div
|
|
|
|
+ @click="loginType = 'weChat'"
|
|
|
|
+ v-show="false"
|
|
|
|
+ v-if="['default', 'weChat'].includes(loginType)"
|
|
|
|
+ >
|
|
|
|
+ <img src="@/assets/login/wechat.svg" />
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <button class="confirm" @click="loginFn()">登录</button>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -55,7 +130,7 @@
|
|
<script>
|
|
<script>
|
|
import { mapActions } from "vuex";
|
|
import { mapActions } from "vuex";
|
|
import axios from "axios";
|
|
import axios from "axios";
|
|
-import qs from 'qs'
|
|
|
|
|
|
+import qs from "qs";
|
|
import { API_CONFIG } from "@/common/apiConfig";
|
|
import { API_CONFIG } from "@/common/apiConfig";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -66,9 +141,14 @@ export default {
|
|
account: "",
|
|
account: "",
|
|
password: "",
|
|
password: "",
|
|
loading: false,
|
|
loading: false,
|
|
|
|
+ loginType: "default",
|
|
redirect: this.$route.query["redirect"],
|
|
redirect: this.$route.query["redirect"],
|
|
|
|
+ org2: this.$route.query["org"],
|
|
|
|
+ oid: this.$route.query["oid"],
|
|
// 组织列表
|
|
// 组织列表
|
|
- OrgOptions:[]
|
|
|
|
|
|
+ OrgOptions: [],
|
|
|
|
+ form: {},
|
|
|
|
+ showName:"",
|
|
};
|
|
};
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -90,7 +170,9 @@ export default {
|
|
|
|
|
|
let orgValue = this.org ? "@" + this.org : "@cocorobo.cc";
|
|
let orgValue = this.org ? "@" + this.org : "@cocorobo.cc";
|
|
let email = "";
|
|
let email = "";
|
|
- const regEmail = new RegExp("^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
|
|
|
|
|
|
+ const regEmail = new RegExp(
|
|
|
|
+ "^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"
|
|
|
|
+ );
|
|
let str = this.account.replace(/(^\s*)|(\s*$)/g, "");
|
|
let str = this.account.replace(/(^\s*)|(\s*$)/g, "");
|
|
|
|
|
|
// 判断用户输入账户带不带后缀
|
|
// 判断用户输入账户带不带后缀
|
|
@@ -99,39 +181,43 @@ export default {
|
|
} else {
|
|
} else {
|
|
email = str;
|
|
email = str;
|
|
}
|
|
}
|
|
- let params = {
|
|
|
|
- geetest_challenge: "",
|
|
|
|
- geetest_validate: "",
|
|
|
|
- geetest_seccode: "",
|
|
|
|
- loginUsername: email.trim(),
|
|
|
|
- loginPassword: window.btoa(this.password.trim()),
|
|
|
|
- };
|
|
|
|
- this.loading = true;
|
|
|
|
- axios.defaults.withCredentials = true;
|
|
|
|
- console.log("👇")
|
|
|
|
- axios
|
|
|
|
- .post("https://beta.api.cocorobo.cn/api/user", qs.stringify(params))
|
|
|
|
- .then(async (res) => {
|
|
|
|
- console.log("res", res);
|
|
|
|
- let _data = res.data[0][0];
|
|
|
|
- if (_data.active === 1) {
|
|
|
|
- window.localStorage["identity"] = JSON.stringify(_data.identity);
|
|
|
|
- this.$message.success("登录成功");
|
|
|
|
- await this.login();
|
|
|
|
- this.$router.push({ path: this.redirect || "/" });
|
|
|
|
- } else {
|
|
|
|
- this.$message.error("登录失败");
|
|
|
|
- }
|
|
|
|
- this.loading = false;
|
|
|
|
- })
|
|
|
|
- .catch((e) => {
|
|
|
|
- if (e.response && e.response.data == "Wrong email or password") {
|
|
|
|
- this.$message.error("账号或密码错误");
|
|
|
|
- } else {
|
|
|
|
- this.$message.error("登录失败");
|
|
|
|
- }
|
|
|
|
- this.loading = false;
|
|
|
|
- });
|
|
|
|
|
|
+ if (this.loginType == "default") {
|
|
|
|
+ let params = {
|
|
|
|
+ geetest_challenge: "",
|
|
|
|
+ geetest_validate: "",
|
|
|
|
+ geetest_seccode: "",
|
|
|
|
+ loginUsername: email.trim(),
|
|
|
|
+ loginPassword: window.btoa(this.password.trim()),
|
|
|
|
+ };
|
|
|
|
+ this.loading = true;
|
|
|
|
+ axios.defaults.withCredentials = true;
|
|
|
|
+ console.log("👇");
|
|
|
|
+ axios
|
|
|
|
+ .post("https://beta.api.cocorobo.cn/api/user", qs.stringify(params))
|
|
|
|
+ .then(async (res) => {
|
|
|
|
+ console.log("res", res);
|
|
|
|
+ let _data = res.data[0][0];
|
|
|
|
+ if (_data.active === 1) {
|
|
|
|
+ window.localStorage["identity"] = JSON.stringify(_data.identity);
|
|
|
|
+ this.$message.success("登录成功");
|
|
|
|
+ await this.login();
|
|
|
|
+ this.$router.push({ path: this.redirect || "/" });
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error("登录失败");
|
|
|
|
+ }
|
|
|
|
+ this.loading = false;
|
|
|
|
+ })
|
|
|
|
+ .catch((e) => {
|
|
|
|
+ if (e.response && e.response.data == "Wrong email or password") {
|
|
|
|
+ this.$message.error("账号或密码错误");
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error("登录失败");
|
|
|
|
+ }
|
|
|
|
+ this.loading = false;
|
|
|
|
+ });
|
|
|
|
+ } else if (this.loginType == "bind") {
|
|
|
|
+ this.$message.info("绑定账号");
|
|
|
|
+ }
|
|
},
|
|
},
|
|
async getLoading() {
|
|
async getLoading() {
|
|
// 检查用户是否已登录
|
|
// 检查用户是否已登录
|
|
@@ -147,176 +233,274 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 输入账号获取组织
|
|
// 输入账号获取组织
|
|
- getOrgData(){
|
|
|
|
- // console.log('111');
|
|
|
|
-
|
|
|
|
|
|
+ getOrgData() {
|
|
let params = [
|
|
let params = [
|
|
- {
|
|
|
|
- functionName: API_CONFIG.ajax_liYuanOrg.functionName,
|
|
|
|
- uname: this.account,
|
|
|
|
- },
|
|
|
|
- ];
|
|
|
|
-
|
|
|
|
- this.$ajax
|
|
|
|
- .post(API_CONFIG.baseUrl, params)
|
|
|
|
- .then((res) => {
|
|
|
|
- console.log('res',res);
|
|
|
|
- this.org = ''
|
|
|
|
- this.OrgOptions = ''
|
|
|
|
-
|
|
|
|
- this.OrgOptions = res.data[0]
|
|
|
|
- if (this.OrgOptions.length == 1) {
|
|
|
|
- this.org = this.OrgOptions[0].Uorg
|
|
|
|
- }
|
|
|
|
|
|
+ {
|
|
|
|
+ functionName: API_CONFIG.ajax_liYuanOrg.functionName,
|
|
|
|
+ uname: this.account,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ this.$ajax
|
|
|
|
+ .post(API_CONFIG.baseUrl, params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ console.log("res", res);
|
|
|
|
+ this.org = "";
|
|
|
|
+ this.OrgOptions = "";
|
|
|
|
|
|
- })
|
|
|
|
- .catch((err) => {
|
|
|
|
- console.log(err);
|
|
|
|
- this.$message.error("获取组织失败");
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+ this.OrgOptions = res.data[0];
|
|
|
|
+ if (this.OrgOptions.length == 1) {
|
|
|
|
+ this.org = this.OrgOptions[0].Uorg;
|
|
|
|
+ this.$forceUpdate();
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ console.log(err);
|
|
|
|
+ this.$message.error("获取组织失败");
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ //获取组织或学校的数据
|
|
|
|
+ getOrdOidData() {
|
|
|
|
+ let params = [
|
|
|
|
+ {
|
|
|
|
+ functionName: API_CONFIG.ajax_schoolPermission.functionName, // 调用存储过程的名称
|
|
|
|
+ org: this.org2, //组织id
|
|
|
|
+ oid: this.oid, //学校id
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ // 发起请求
|
|
|
|
+ this.$ajax
|
|
|
|
+ .post(API_CONFIG.baseUrl, params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ let data = res.data[0];
|
|
|
|
+ console.log('data', data)
|
|
|
|
+ this.form = JSON.parse(data[0].json);
|
|
|
|
+ this.showName = data[0].name
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ console.error("请求失败,错误信息:", err);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- this.getLoading();
|
|
|
|
|
|
+ // this.getLoading();
|
|
|
|
+ this.getOrdOidData();
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
<style scoped>
|
|
<style scoped>
|
|
- .el-select-dropdown.customDropdown {
|
|
|
|
- width: 200px;
|
|
|
|
- position: relative;
|
|
|
|
- margin-left: -65px;
|
|
|
|
- margin-top: -55px;
|
|
|
|
- background-color: #fff;
|
|
|
|
|
|
+.loginPage {
|
|
|
|
+ width: 100vw;
|
|
|
|
+ height: 100vh;
|
|
|
|
+ background-color: white;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
}
|
|
}
|
|
-.el-select-dropdown.customDropdown .el-select-dropdown__item {
|
|
|
|
- display: inline-block;
|
|
|
|
- width: 100%;
|
|
|
|
- padding: 0;
|
|
|
|
- overflow: initial;/* 允许内容溢出 */
|
|
|
|
|
|
+
|
|
|
|
+.lp_left {
|
|
|
|
+ max-width: 50%;
|
|
|
|
+ width: 50%;
|
|
|
|
+ max-height: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ box-sizing: border-box;
|
|
}
|
|
}
|
|
-.input >>> .el-select-dropdown{
|
|
|
|
- min-width: 330px !important;
|
|
|
|
|
|
+
|
|
|
|
+.lp_left > img {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ object-fit: cover;
|
|
|
|
+ border-radius: 0 150px 0 0;
|
|
}
|
|
}
|
|
-.loginBg {
|
|
|
|
- width: 100vw;
|
|
|
|
- height: 100vh;
|
|
|
|
- background-image: url("../../assets/login.png");
|
|
|
|
- background-size: cover;
|
|
|
|
- background-position: center;
|
|
|
|
|
|
+
|
|
|
|
+.lp_right {
|
|
|
|
+ width: 50%;
|
|
|
|
+ min-width: 520px;
|
|
|
|
+ height: 100%;
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
align-items: center;
|
|
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
|
|
|
|
- "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-.loginBox {
|
|
|
|
- height: 533px;
|
|
|
|
- background-color: #fff;
|
|
|
|
- border-radius: 10px;
|
|
|
|
- /* 添加投影提升层次感 */
|
|
|
|
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
|
|
|
|
|
+.lp_r_box {
|
|
|
|
+ width: 500px;
|
|
|
|
+ height: auto;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ padding: 20px;
|
|
}
|
|
}
|
|
|
|
|
|
-.loginBox img {
|
|
|
|
- width: 45px;
|
|
|
|
- height: 37px;
|
|
|
|
|
|
+.lp_r_b_logo {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
}
|
|
}
|
|
|
|
|
|
-.login_top {
|
|
|
|
- margin-top: 36px;
|
|
|
|
- text-align: center;
|
|
|
|
|
|
+.lp_r_b_logo > span {
|
|
|
|
+ margin-left: 15px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ font-size: 18px;
|
|
}
|
|
}
|
|
|
|
|
|
-.top_title {
|
|
|
|
- font-size: 25px;
|
|
|
|
- font-weight: 700;
|
|
|
|
|
|
+.lp_r_box > span {
|
|
|
|
+ font-size: 48px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ margin: 40px 0;
|
|
|
|
+ display: block;
|
|
}
|
|
}
|
|
|
|
|
|
-.login_top div {
|
|
|
|
- margin-top: 12px;
|
|
|
|
- color: #69727d;
|
|
|
|
|
|
+.lp_r_b_formArea {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 300px;
|
|
|
|
+ margin-bottom: 40px;
|
|
}
|
|
}
|
|
-.login_content {
|
|
|
|
- margin: 33px;
|
|
|
|
- font-size: 14px;
|
|
|
|
- color: #59616f;
|
|
|
|
|
|
+
|
|
|
|
+.fa_input {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ justify-content: space-around;
|
|
}
|
|
}
|
|
-.input {
|
|
|
|
|
|
+
|
|
|
|
+.fa_i_item {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 70px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.fa_i_item > span {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
|
+ font-weight: 600;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.fa_i_item > div {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ border: solid 1px rgba(213, 213, 213, 1);
|
|
|
|
+ margin-top: 15px;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ transition: 0.5s;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.fa_i_item > div > input {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ border: none;
|
|
outline: none;
|
|
outline: none;
|
|
- width: 344px;
|
|
|
|
- height: 42px;
|
|
|
|
- border-radius: 10px;
|
|
|
|
- border: 1px solid #d1d5db;
|
|
|
|
- padding-left: 40px;
|
|
|
|
|
|
+ text-indent: 1em;
|
|
|
|
+
|
|
|
|
+ color: #000;
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
- margin-top: 5px;
|
|
|
|
- margin-bottom: 14px;
|
|
|
|
- color: #a3a9b4;
|
|
|
|
- line-height: 42px;
|
|
|
|
|
|
+ background: none;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.fa_i_item > div >>> .el-select {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
-.input >>> .el-input__inner{
|
|
|
|
|
|
+.fa_i_item > div >>> .el-select input {
|
|
border: none;
|
|
border: none;
|
|
- padding: 0;
|
|
|
|
- border-radius: 15px;
|
|
|
|
|
|
+ outline: none;
|
|
|
|
+ background: none;
|
|
|
|
+ text-indent: 1em;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ height: 45px;
|
|
|
|
+ padding-left: 0;
|
|
|
|
+ color: #000;
|
|
}
|
|
}
|
|
-/* 设置占位符文字颜色 */
|
|
|
|
-.input::placeholder {
|
|
|
|
- color: #a3a9b4; /* 替换为您想要的占位符颜色 */
|
|
|
|
- opacity: 1; /* 确保占位符不透明 */
|
|
|
|
|
|
+
|
|
|
|
+/* .fa_i_item > input {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 45px;
|
|
|
|
+ border: solid 1px rgba(213, 213, 213, 1);
|
|
|
|
+ outline: none;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ margin-top: 15px;
|
|
|
|
+ text-indent: 1em;
|
|
|
|
+ transition: 0.5s;
|
|
|
|
+ color: #000;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+} */
|
|
|
|
+
|
|
|
|
+.fa_i_item > div >>> input::placeholder {
|
|
|
|
+ color: rgba(142, 142, 147, 1);
|
|
}
|
|
}
|
|
|
|
|
|
-.input-container {
|
|
|
|
- position: relative;
|
|
|
|
|
|
+.fa_i_item > div:focus-within {
|
|
|
|
+ border-color: #006afe;
|
|
}
|
|
}
|
|
-.input-container:nth-child(2)::before {
|
|
|
|
- content: "";
|
|
|
|
- background-image: url("../../assets/organzation.png"); /* 组织号图片 */
|
|
|
|
- background-size: 20px 20px; /* 设置图片大小 */
|
|
|
|
- background-repeat: no-repeat;
|
|
|
|
- position: absolute;
|
|
|
|
- left: 10px; /* 图片距离输入框左边的距离 */
|
|
|
|
- top: 39%; /* 垂直居中 */
|
|
|
|
- transform: translateY(-50%); /* 垂直居中 */
|
|
|
|
- width: 20px; /* 图片宽度 */
|
|
|
|
- height: 20px; /* 图片高度 */
|
|
|
|
|
|
+
|
|
|
|
+.fa_weChat {
|
|
|
|
+ width: 300px;
|
|
|
|
+ height: 300px;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
}
|
|
}
|
|
|
|
|
|
-.input-container:nth-child(1)::before {
|
|
|
|
- content: "";
|
|
|
|
- background-image: url("../../assets/personal.png"); /* 账户图片 */
|
|
|
|
- background-size: 20px 20px; /* 设置图片大小 */
|
|
|
|
- background-repeat: no-repeat;
|
|
|
|
- position: absolute;
|
|
|
|
- left: 10px; /* 图片距离输入框左边的距离 */
|
|
|
|
- top: 41%; /* 垂直居中 */
|
|
|
|
- transform: translateY(-50%); /* 垂直居中 */
|
|
|
|
- width: 20px; /* 图片宽度 */
|
|
|
|
- height: 20px; /* 图片高度 */
|
|
|
|
|
|
+.fa_weChat > .QRcode {
|
|
|
|
+ width: 80%;
|
|
|
|
+ height: 80%;
|
|
|
|
+ background-color: black;
|
|
}
|
|
}
|
|
|
|
|
|
-.input-container:nth-child(3)::before {
|
|
|
|
- content: "";
|
|
|
|
- background-image: url("../../assets/password.png"); /* 密码图片 */
|
|
|
|
- background-size: 20px 20px; /* 设置图片大小 */
|
|
|
|
- background-repeat: no-repeat;
|
|
|
|
- position: absolute;
|
|
|
|
- left: 10px; /* 图片距离输入框左边的距离 */
|
|
|
|
- top: 41%; /* 垂直居中 */
|
|
|
|
- transform: translateY(-50%); /* 垂直居中 */
|
|
|
|
- width: 20px; /* 图片宽度 */
|
|
|
|
- height: 20px; /* 图片高度 */
|
|
|
|
|
|
+.lp_r_b_btn {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 50px;
|
|
|
|
+ background-color: rgba(0, 106, 254, 1);
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+ color: #fff;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ transition: 0.3s;
|
|
}
|
|
}
|
|
-.confirm {
|
|
|
|
- width: 384px;
|
|
|
|
|
|
+
|
|
|
|
+.lp_r_b_btn:hover {
|
|
|
|
+ background-color: rgb(3, 87, 206);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.backBtn {
|
|
|
|
+ background-color: #d9d9d9;
|
|
|
|
+ color: #000;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.backBtn:hover {
|
|
|
|
+ background-color: #adadad;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lp_r_b_line {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 20px;
|
|
|
|
+ margin: 40px 0;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lp_r_b_line > div {
|
|
|
|
+ width: calc(100% / 2 - 70px);
|
|
|
|
+ height: 1px;
|
|
|
|
+ background-color: rgba(0, 0, 0, 0.3);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lp_r_b_line > span {
|
|
|
|
+ display: flex;
|
|
|
|
+ margin: 0 20px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lp_r_b_iconBtn {
|
|
|
|
+ width: 100%;
|
|
height: 40px;
|
|
height: 40px;
|
|
- background: #0354d7;
|
|
|
|
- border: none;
|
|
|
|
- border-radius: 9px;
|
|
|
|
- color: #fff;
|
|
|
|
- font-size: 16px;
|
|
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.lp_r_b_iconBtn > div {
|
|
|
|
+ width: 32px;
|
|
|
|
+ height: 32px;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|