WXL (wul)
昨天 3d41233538c06622686fec3e613f61411f320b2b
src/views/login.vue
@@ -6,7 +6,7 @@
      :rules="loginRules"
      class="login-form"
    >
      <h3 class="title">智慧随访管理系统</h3>
      <h3 class="title">智慧随访系统</h3>
      <el-form-item prop="username">
        <el-input
          v-model="loginForm.username"
@@ -36,7 +36,23 @@
          />
        </el-input>
      </el-form-item>
      <el-form-item prop="code" v-if="captchaEnabled">
      <!-- 丽===================水 -->
      <el-form-item prop="orgid">
        <el-select
          style="width: 100%"
          v-model="loginForm.orgid"
          placeholder="请选择院区"
        >
          <el-option
            v-for="item in options"
            :label="item.label"
            :value="item.value"
          >
          </el-option>
          <i slot="prefix" class="el-icon-mobile"></i>
        </el-select>
      </el-form-item>
      <!-- <el-form-item prop="code" v-if="captchaEnabled">
        <el-input
          v-model="loginForm.code"
          auto-complete="off"
@@ -53,7 +69,7 @@
        <div class="login-code">
          <img :src="codeUrl" @click="getCode" class="login-code-img" />
        </div>
      </el-form-item>
      </el-form-item> -->
      <el-checkbox
        v-model="loginForm.rememberMe"
        style="margin: 0px 0px 25px 0px"
@@ -78,9 +94,9 @@
      </el-form-item>
    </el-form>
    <!--  底部  -->
    <div class="el-login-footer">
      <span>Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
    </div>
    <!-- <div class="el-login-footer">
      <span style="color: #568FBD; font-size: 25px;">Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
    </div> -->
  </div>
</template>
@@ -88,6 +104,7 @@
import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt";
import { getorganization } from "@/api/AiCentre/index";
export default {
  name: "Login",
@@ -95,12 +112,14 @@
    return {
      codeUrl: "",
      loginForm: {
        username: "admin",
        password: "admin123",
        username: "",
        password: "",
        rememberMe: false,
        code: "",
        uuid: "",
        orgid: "H41010500003",
      },
      options: [
      ],
      loginRules: {
        username: [
          { required: true, trigger: "blur", message: "请输入您的账号" },
@@ -108,7 +127,7 @@
        password: [
          { required: true, trigger: "blur", message: "请输入您的密码" },
        ],
        code: [{ required: true, trigger: "change", message: "请输入验证码" }],
        orgid: [{ required: true, trigger: "blur", message: "请选择院区" }],
      },
      loading: false,
      // 验证码开关
@@ -127,8 +146,12 @@
    },
  },
  created() {
    this.getorganization();
    this.getCode();
    this.getCookie();
    // if (localStorage.getItem('orgid')) {
    //   this.loginForm.orgid = localStorage.getItem('orgid');
    // }
  },
  methods: {
    getCode() {
@@ -138,6 +161,16 @@
        if (this.captchaEnabled) {
          this.codeUrl = "data:image/gif;base64," + res.img;
          this.loginForm.uuid = res.uuid;
        }
      });
    },
    getorganization() {
      getorganization().then((res) => {
        if (res.code == 200) {
          this.options = res.rows.map((item) => ({
            value: item.orgid,
            label: item.organizationName,
          }));
        }
      });
    },
@@ -153,36 +186,56 @@
      };
    },
    handleLogin() {
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          this.loading = true;
          if (this.loginForm.rememberMe) {
            Cookies.set("username", this.loginForm.username, { expires: 30 });
            Cookies.set("password", encrypt(this.loginForm.password), {
              expires: 30,
            });
            Cookies.set("rememberMe", this.loginForm.rememberMe, {
              expires: 30,
            });
          } else {
            Cookies.remove("username");
            Cookies.remove("password");
            Cookies.remove("rememberMe");
          }
          this.$store
            .dispatch("Login", this.loginForm)
            .then(() => {
              this.$router.push({ path: this.redirect || "/" }).catch(() => {});
            })
            .catch(() => {
              this.loading = false;
              if (this.captchaEnabled) {
                this.getCode();
              }
            });
  this.$refs.loginForm.validate((valid) => {
    if (valid) {
      this.loading = true;
      if (this.loginForm.rememberMe) {
        Cookies.set("username", this.loginForm.username, { expires: 30 });
        Cookies.set("password", encrypt(this.loginForm.password), {
          expires: 30,
        });
        Cookies.set("rememberMe", this.loginForm.rememberMe, {
          expires: 30,
        });
      } else {
        Cookies.remove("username");
        Cookies.remove("password");
        Cookies.remove("rememberMe");
      }
      // 动态设置 campusid 参数
      const selectedOrg = this.options.find(item => item.value === this.loginForm.orgid);
      if (selectedOrg) {
        if (selectedOrg.label.includes('湖滨')) {
          this.loginForm.campusid = 1;
        } else if (selectedOrg.label.includes('吴山')) {
          this.loginForm.campusid = 2;
        } else {
          this.loginForm.campusid = 1; // 默认值或其他处理
        }
      });
    },
      }
      this.$store
        .dispatch("Login", this.loginForm)
        .then((res) => {
          if (this.loginForm.username == "admin") {
            this.$router.push({ path: "/index" }).catch(() => {});
          } else {
            this.$router
              .push({ path: "/followvisit/discharge" })
              .catch(() => {});
          }
        })
        .catch(() => {
          this.loading = false;
          if (this.captchaEnabled) {
            this.getCode();
          }
        });
    }
  });
}
  },
};
</script>
@@ -193,6 +246,17 @@
  justify-content: center;
  align-items: center;
  height: 100%;
  overflow: hidden !important;
  background-position: center center;
  /* 背景图不平铺 */
  background-repeat: no-repeat;
  /* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */
  background-attachment: fixed;
  /* 让背景图基于容器大小伸缩 */
  background-size: cover;
  /* 设置背景颜色,背景图加载过程中会显示背景色 */
  background-color: #464646;
  background-image: url("../assets/images/login-background.jpg");
  background-size: cover;
}
@@ -245,6 +309,7 @@
  font-size: 12px;
  letter-spacing: 1px;
}
.login-code-img {
  height: 38px;
}