From 2a0832dc0aedfef9b7cf38329eb75f390331e7ff Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Wed, 08 May 2024 17:30:42 +0800
Subject: [PATCH] 无诈调整
---
src/page/login/codelogin.vue | 405 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 291 insertions(+), 114 deletions(-)
diff --git a/src/page/login/codelogin.vue b/src/page/login/codelogin.vue
index 79022c3..c371f85 100644
--- a/src/page/login/codelogin.vue
+++ b/src/page/login/codelogin.vue
@@ -1,133 +1,310 @@
<template>
- <el-form class="login-form"
- status-icon
- :rules="loginRules"
- ref="loginForm"
- :model="loginForm"
- label-width="0">
+ <el-form class="login-form" status-icon :rules="loginRules" ref="loginForm" :model="loginForm" label-width="0">
+ <!-- <el-form-item prop="username">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleLogin"
+ v-model="loginForm.username"
+ auto-complete="off"
+ :placeholder="$t('login.username')"
+ >
+ <i slot="prefix" class="icon-yonghu" />
+ </el-input>
+ </el-form-item> -->
<el-form-item prop="phone">
- <el-input size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.phone"
- auto-complete="off"
- :placeholder="$t('login.phone')">
- <i slot="prefix"
- class="icon-shouji"/>
+ <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.phone" auto-complete="off"
+ :placeholder="$t('login.phone')">
+ <i slot="prefix" class="el-icon-phone-outline" />
</el-input>
</el-form-item>
- <el-form-item prop="code">
- <el-input size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.code"
- auto-complete="off"
- :placeholder="$t('login.code')">
- <i slot="prefix"
- class="icon-yanzhengma"
- style="margin-top:6px;"/>
- <template slot="append">
- <span @click="handleSend"
- class="msg-text"
- :class="[{display:msgKey}]">{{msgText}}</span>
- </template>
+
+ <el-form-item prop="password">
+ <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.password" auto-complete="off"
+ show-password :placeholder="$t('login.password')">
+ <i slot="prefix" class="icon-mima" />
</el-input>
</el-form-item>
- <el-form-item>
- <el-button size="small"
- type="primary"
- @click.native.prevent="handleLogin"
- class="login-submit">{{$t('login.submit')}}</el-button>
+
+ <el-form-item prop="password2">
+ <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.password2" auto-complete="off"
+ show-password :placeholder="$t('login.password2')">
+ <i slot="prefix" class="icon-mima" />
+ </el-input>
+ </el-form-item>
+
+ <el-form-item class="z-login-submit-prv">
+ <el-button size="small" type="primary" @click.native.prevent="handleLogin"
+ class="z-login-submit">{{ $t("login.zc") }}
+ </el-button>
+ <el-button size="small" @click.native.prevent="gbs" class="z-login-submit">{{ $t("login.gb") }}
+ </el-button>
</el-form-item>
</el-form>
</template>
<script>
-import { isvalidatemobile } from "@/util/validate";
-import { mapGetters } from "vuex";
-export default {
- name: "codelogin",
- data() {
- const validatePhone = (rule, value, callback) => {
- if (isvalidatemobile(value)[0]) {
- callback(new Error(isvalidatemobile(value)[1]));
- } else {
- callback();
- }
- };
- const validateCode = (rule, value, callback) => {
- if (value.length !== 4) {
- callback(new Error("请输入4位数的验证码"));
- } else {
- callback();
- }
- };
- return {
- msgText: "",
- msgTime: "",
- msgKey: false,
- loginForm: {
- phone: "",
- code: ""
- },
- loginRules: {
- phone: [{ required: true, trigger: "blur", validator: validatePhone }],
- code: [{ required: true, trigger: "blur", validator: validateCode }]
- }
- };
- },
- created() {
- this.msgText = this.config.MSGINIT;
- this.msgTime = this.config.MSGTIME;
- },
- mounted() {},
- computed: {
- ...mapGetters(["tagWel"]),
- config() {
- return {
- MSGINIT: this.$t("login.msgText"),
- MSGSCUCCESS: this.$t("login.msgSuccess"),
- MSGTIME: 60
- };
- }
- },
- props: [],
- methods: {
- handleSend() {
- if (this.msgKey) return;
- this.msgText = this.msgTime + this.config.MSGSCUCCESS;
- this.msgKey = true;
- const time = setInterval(() => {
- this.msgTime--;
- this.msgText = this.msgTime + this.config.MSGSCUCCESS;
- if (this.msgTime === 0) {
- this.msgTime = this.config.MSGTIME;
- this.msgText = this.config.MSGINIT;
- this.msgKey = false;
- clearInterval(time);
+ import {
+ isvalidatemobile
+ } from "@/util/validate";
+ import {
+ mapGetters
+ } from "vuex";
+ import {
+ zc
+ } from "@/api/system/user";
+
+ export default {
+ name: "codelogin",
+ data() {
+ const validatePass = (rule, value, callback) => {
+ if (value === "") {
+ callback(new Error("请输入密码"));
+ } else {
+ callback();
}
- }, 1000);
+ };
+ const validatePass2 = (rule, value, callback) => {
+ if (value === "") {
+ callback(new Error("请再次输入密码"));
+ } else if (value !== this.loginForm.password) {
+ callback(new Error("两次输入密码不一致!"));
+ } else {
+ callback();
+ }
+ };
+ const validatePhone = (rule, value, callback) => {
+ if (isvalidatemobile(value)[0]) {
+ callback(new Error(isvalidatemobile(value)[1]));
+ } else {
+ callback();
+ }
+ };
+ const validateCode = (rule, value, callback) => {
+ if (value.length !== 4) {
+ callback(new Error("请输入4位数的验证码"));
+ } else {
+ callback();
+ }
+ };
+ return {
+ msgText: "",
+ msgTime: "",
+ dic: [],
+ msgKey: false,
+ loginForm: {
+ username: "",
+ account: "",
+ phone: "",
+ password: "",
+ password2: "",
+ },
+ value: "",
+ options: [],
+ loginRules: {
+ phone: [{
+ required: true,
+ trigger: "blur",
+ validator: validatePhone
+ }],
+ code: [{
+ required: true,
+ trigger: "blur",
+ validator: validateCode
+ }],
+ password: [{
+ required: true,
+ validator: validatePass,
+ trigger: "blur"
+ }, ],
+ password2: [{
+ required: true,
+ validator: validatePass2,
+ trigger: "blur"
+ }, ],
+ username: [{
+ required: true,
+ message: "请输入用户名",
+ trigger: "blur"
+ }, ],
+ },
+ passwordType: "password",
+ passwordTypes: "password2",
+ };
},
- handleLogin() {
- this.$refs.loginForm.validate(valid => {
- if (valid) {
- this.$store.dispatch("LoginByPhone", this.loginForm).then(() => {
- this.$router.push({ path: this.tagWel.value });
+ created() {
+ this.msgText = this.config.MSGINIT;
+ this.msgTime = this.config.MSGTIME;
+ },
+ computed: {
+ ...mapGetters(["tagWel"]),
+ config() {
+ return {
+ MSGINIT: this.$t("login.msgText"),
+ MSGSCUCCESS: this.$t("login.msgSuccess"),
+ MSGTIME: 60,
+ };
+ },
+ },
+ props: [],
+ methods: {
+ ergodicData(val) {
+ var arr = [];
+ arr.push({
+ label: val[0].title,
+ value: val[0].value,
+ id: val[0].id,
+ parent_id: val[0].parent_id,
+ });
+ if (val.length > 1) {
+ val.forEach((item, index) => {
+ if (index > 0) {
+ var ind = true;
+ var arrInd = 0;
+ arr.forEach((it, i) => {
+ if (item.parent_id == it.id) {
+ ind = false;
+ arrInd = i;
+ return;
+ }
+ });
+ if (ind == false) {
+ if (arr[arrInd].children && arr[arrInd].children.length > 0) {
+ arr[arrInd].children.push({
+ label: item.title,
+ value: item.value,
+ id: item.id,
+ parent_id: item.parent_id,
+ });
+ } else {
+ arr[arrInd].children = [];
+ arr[arrInd].children.push({
+ label: item.title,
+ value: item.value,
+ id: item.id,
+ parent_id: item.parent_id,
+ });
+ }
+ } else {
+ arr.push({
+ label: item.title,
+ value: item.value,
+ id: item.id,
+ parent_id: item.parent_id,
+ });
+ }
+ }
});
}
- });
- }
- }
-};
+
+ return arr;
+ },
+
+ clearValidate(formName) {
+ this.$refs[formName].clearValidate();
+ },
+ refreshCode(row) {
+ zc(row).then((res) => {
+ this.loginForm.username = "";
+ this.loginForm.phone = "";
+ this.loginForm.password = "";
+ this.loginForm.password2 = "";
+ this.$notify({
+ title: "注册成功",
+ type: "warning",
+ });
+ });
+ var z = document.querySelector(".z");
+ z.style.display = "none";
+ this.clearValidate("loginForm");
+ this.clearValidate("loginForm");
+ },
+ gb() {
+ this.loginForm.username = "";
+ this.loginForm.password = "";
+ this.loginForm.password2 = "";
+ var zs = document.querySelector(".z");
+ zs.style.display = "none";
+ this.clearValidate("loginForm");
+ },
+ handleSend() {
+ if (this.msgKey) return;
+ this.msgText = this.msgTime + this.config.MSGSCUCCESS;
+ this.msgKey = true;
+ const time = setInterval(() => {
+ this.msgTime--;
+ this.msgText = this.msgTime + this.config.MSGSCUCCESS;
+ if (this.msgTime === 0) {
+ this.msgTime = this.config.MSGTIME;
+ this.msgText = this.config.MSGINIT;
+ this.msgKey = false;
+ clearInterval(time);
+ }
+ }, 1000);
+ },
+ showPassword() {
+ this.passwordType === "" ?
+ (this.passwordType = "password") :
+ (this.passwordType = "");
+ },
+ showPasswords() {
+ this.passwordType === "" ?
+ (this.passwordType = "password2") :
+ (this.passwordType = "");
+ },
+ handleLogin() {
+ this.$refs.loginForm.validate((valid) => {
+ console.log(valid);
+ if (valid) {
+ this.loginForm.account = this.loginForm.phone
+ this.refreshCode(this.loginForm);
+ this.message("dahsiofhiusa");
+ return Promise.reject(new Error("注册成功,待审核"));
+ }
+ });
+ },
+ gbs() {
+ this.gb();
+ },
+ },
+ };
</script>
<style>
-.msg-text {
- display: block;
- width: 60px;
- font-size: 12px;
- text-align: center;
- cursor: pointer;
-}
-.msg-text.display {
- color: #ccc;
-}
+ .msg-text {
+ display: block;
+ width: 40px;
+ font-size: 12px;
+ text-align: center;
+ cursor: pointer;
+ }
+
+ .msg-text.display {
+ color: #ccc;
+ }
+
+ .z-login-submit-prv {
+ margin-top: 20px;
+ padding: 0 10%;
+ box-sizing: border-box;
+ }
+
+ .z-login-submit-prv>div {
+ width: 80%;
+ display: flex;
+ }
+
+ .z-login-submit {
+ flex: 1;
+ height: 45px;
+ border: 1px solid #409eff;
+ background: none;
+ font-size: 18px;
+ letter-spacing: 2px;
+ font-weight: 300;
+ color: #409eff;
+ cursor: pointer;
+ font-family: "neo";
+ -webkit-transition: 0.25s;
+ transition: 0.25s;
+ }
</style>
--
Gitblit v1.9.3