Explorar o código

同步登录页面渲染数据功能

lph hai 1 ano
pai
achega
ddf02cb1dc

+ 52 - 0
zkqy-ui/src/api/system/configuration.js

@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询登录页面配置信息列表
+export function listConfiguration(query) {
+  return request({
+    url: '/system/configuration/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询登录页面配置信息详细
+export function getConfiguration(id) {
+  return request({
+    url: '/system/configuration/' + id,
+    method: 'get'
+  })
+}
+
+// 新增登录页面配置信息
+export function addConfiguration(data) {
+  return request({
+    url: '/system/configuration',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改登录页面配置信息
+export function updateConfiguration(data) {
+  return request({
+    url: '/system/configuration',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除登录页面配置信息
+export function delConfiguration(id) {
+  return request({
+    url: '/system/configuration/' + id,
+    method: 'delete'
+  })
+}
+
+// 登录页查询配置接口
+export function getLoginPageConfigurationInfo(params) {
+  return request({
+    url: `/system/configuration/queryLoginPageConfigurationInfo/${params}`,
+    method: 'get'
+  })
+}

+ 83 - 0
zkqy-ui/src/assets/images/mec-logo-login.svg

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="194px" height="64px" viewBox="0 0 194 64" enable-background="new 0 0 194 64" xml:space="preserve">  <image id="image0" width="194" height="64" x="0" y="0"
+    href="data:image/png;base64,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
+OjI0KzAxOjAwMxmY5AAAAABJRU5ErkJggg==" />
+</svg>

+ 851 - 0
zkqy-ui/src/assets/images/mec-logo1.svg

@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1480px" height="188px" viewBox="0 0 1480 188" enable-background="new 0 0 1480 188" xml:space="preserve">  <image id="image0" width="1480" height="188" x="0" y="0"
+    href="data:image/png;base64,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
+kxRHmVSgihAnTgL4kh0R7ByysR2IjS9p17Is67SOlXZ3rn75Y3aUVm+/V3fPsbPfT2lrpntmut/3
+nZ5Z7a+feSeK/77heeeixirq5mas/1j8jtlrJt60/fLFO6+f6VPz0EfNiv6A5Pu+q88v7Nyyb9Dt
+L6p+z+bd42+84XbRyve12vVt42+48Yfr93zgtkH3oSzjxybfJTk+1R+19S2DbvtqNSoBeda0K6ZA
+fFk43r184k8/8ES8cPrT8bVvmX/hFZf+4OS5ky+JhnXmq2EJyftofCJeGKscvTd+5p5/OvSpX3lI
+GqeSYW3eKSpcH6t3heWZ+2m1WqfiOL5FKfWQdILJdHWzbb7jM5da6z31en1fon/pNnaPhG44Gi0u
+Lj6tlPrXarX6cHKfWmvbvs9sNxHIi9Z6odVqPSadMK3bhuRYJ8fozFi1Wq0DSqnPVyqVJxL79O27
+Xup7M45j0ycEbNXUWRXVyeUzty8sLBxZWFg4WqvVHhkbG9tYrVZfEkXRi5RSG6TzMUktIhJF0WvF
+8n6ptW6IyEGt9V4RaSuljmut92itj7Tb7dmFhYXHm83mnGEM48RP1m2uqvmznn+xh+RnnoNms3mq
+2Ww+OjY29mQURQ/UarWLq9XqV0TkXKXUy0SkGkXRtHS+iXyNo+8zWuujS23Zr7U+pLXeHcfxkWaz
+uXthYaF7W5GTArYg1nRb+hjNepypgtw1J3lISB5LJyh/QDpTmjwonalUvlk6c4ZfJp1q6rJC4jkR
+eVo6QfTXpVPJ/pSIPGppY9Y4msLxvCcCu/udWfp5UDpT0XyriLxMRF4qxarFG9KZ7/yxpe1+WTon
+A5qW/tj6FnJSDsAKFyv1Uzle6acXdmz+qsiWQTd/BKnrgt96NdOrjLJW3Hy7Eu+5dXfO37Vlf7/a
+durO6w+Nb9p2j/hO0xTH7xTJUVmK4XbNTeu0ar07z0NVpEK/3HJ4xerPRUloQC6i9IelMw3kyrfp
+j9dqUVtzVF0+uXDPli9L3u94RSGjEpB3ZVUEWivH05dPfez3d9ePHvls881vO3HBt175I1Pr11xd
+qRSb5H4gWfYgvqizhx0dn2ifGI+O3Nt+5u5/ef7WX39QGqfaYg8W81SnmphOwBjf7+r1+ql6vf45
+6fwnLvnTDWeztte9TPYlq0/ptiWPY2k2myeazebtInKnLA/ns6YhEcl+ndgus0KlM9ucn58/JJ1p
+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
+gg==" />
+</svg>

+ 49 - 11
zkqy-ui/src/layout/index.vue

@@ -4,10 +4,11 @@
       <div class="bar"></div>
       <el-row>
         <el-col :span="12">
-          <span>
-            <img src="../assets/images/mec_logo1.png" alt="" class="imgg" />
+          <div class="logo-title">
+            <img :src="logo" alt="" class="imgg" />
+            <span class="title">{{ title }}</span>
             <!-- <img src="../assets/images/comlo.png" alt="" class="imgg" /> -->
-          </span>
+          </div>
         </el-col>
         <el-col :span="4" :offset="8">
           <el-dropdown
@@ -77,7 +78,8 @@ import { AppMain, Navbar, Settings, Sidebar, TagsView } from "./components";
 import ResizeMixin from "./mixin/ResizeHandler";
 import { mapState } from "vuex";
 import variables from "@/assets/styles/variables.scss";
-
+import meclogo1 from "@/assets/images/mec-logo1.svg";
+import mecLogoLogin from "@/assets/images/mec-logo-login.svg";
 export default {
   name: "Layout",
   components: {
@@ -145,13 +147,21 @@ export default {
     handleClickOutside() {
       this.$store.dispatch("app/closeSideBar", { withoutAnimation: false });
     },
+    getlogo() {
+      let logo = sessionStorage.getItem("logo");
+      this.title = sessionStorage.getItem("title") || "工业应用操作系统";
+      if (logo) {
+        this.logo = process.env.VUE_APP_BASE_API + logo;
+      } else {
+        this.logo = mecLogoLogin;
+      }
+    },
   },
   mounted() {
-    if (user) {
-      var user = sessionStorage.getItem("sessionObj");
-      var user = JSON.parse(user);
-      this.userName = JSON.parse(user.data).username;
-    }
+    var user = sessionStorage.getItem("sessionObj");
+    var user = JSON.parse(user);
+    this.userName = JSON.parse(user.data).username;
+    this.getlogo();
   },
 };
 </script>
@@ -239,12 +249,40 @@ export default {
   z-index: 1000000;
 }
 .imgg {
-  width: 553px;
+  // width: 553px;
+  width: 270px;
   height: 80px;
   float: left;
-  margin-top: 15px;
+  margin-top: 7px;
+  margin-bottom: 8px;
   /* margin-left: 50px; */
 }
+.logo-title {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  .title {
+    flex: 1;
+    margin-left: 5px;
+    display: block;
+
+    font-size: 32px;
+    font-weight: 700;
+    letter-spacing: 0px;
+    line-height: 38.4px;
+    color: rgba(7, 68, 138, 1);
+    text-align: left;
+    vertical-align: top;
+    float: left;
+
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+
+    // max-width: ;
+  }
+}
+
 .spann {
   text-align: center;
   line-height: 100px;

+ 12 - 1
zkqy-ui/src/router/index.js

@@ -133,7 +133,18 @@ export const constantRoutes = [
   },
   {
     path: '/login',
-    component: () => import('@/views/login'),
+    component: () => {
+      var url = new URL(window.location.href);
+      var params = new URLSearchParams(url.search);
+      let temp = params.get('tenantId')
+      console.log(temp);
+      if (temp) {
+        return import('@/views/login')
+      } else {
+        return import('@/views/adminLogin')
+      }
+
+    },
     hidden: true
   },
   {

+ 405 - 0
zkqy-ui/src/views/adminLogin.vue

@@ -0,0 +1,405 @@
+<template>
+  <div class="login">
+    <el-form
+      ref="loginForm"
+      :model="loginForm"
+      :rules="loginRules"
+      class="login-form"
+    >
+      <el-row>
+        <el-col :span="12" class="comlogo"></el-col>
+        <el-col :span="12">
+          <div class="grid-content bg-purple-dark title">
+            工业应用操作系统
+            <!-- 智能制造平台 -->
+          </div></el-col
+        >
+      </el-row>
+      <el-row class="rowww">
+        <el-col :span="12" class="text" prop="username">用户名</el-col>
+        <el-input
+          v-model="loginForm.username"
+          type="text"
+          auto-complete="off"
+          placeholder="账号"
+          class="inputt"
+        />
+      </el-row>
+      <el-row class="roww">
+        <el-col :span="12" class="text" prop="password">密码</el-col>
+        <el-input
+          v-model="loginForm.password"
+          type="password"
+          auto-complete="off"
+          placeholder="密码"
+          @keyup.enter.native="handleLogin"
+          show-password
+          class="inputt"
+        >
+        </el-input>
+      </el-row>
+      <el-row class="roww">
+        <el-row>
+          <el-col class="text" prop="code">验证码</el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="18">
+            <el-input
+              v-model="loginForm.code"
+              auto-complete="off"
+              placeholder="验证码"
+              @keyup.enter.native="handleLogin"
+              class="inputt"
+            >
+            </el-input>
+          </el-col>
+          <el-col :span="4" :offset="1">
+            <div class="login-code">
+              <img :src="codeUrl" @click="getCode" class="login-code-img" />
+            </div>
+          </el-col>
+        </el-row>
+      </el-row>
+
+      <el-row class="bottomtext">
+        <!-- <div class="login-code">
+          <img :src="codeUrl" @click="getCode" class="login-code-img" />
+        </div> -->
+        <el-checkbox v-model="loginForm.rememberMe" class="aaa"
+          >在这个设备上记住我</el-checkbox
+        >
+      </el-row>
+
+      <el-row>
+        <el-col
+          class="logg"
+          :loading="loading"
+          @click.native.prevent="handleLogin"
+          >登录</el-col
+        >
+      </el-row>
+    </el-form>
+
+    <!-- <el-form
+      ref="loginForm"
+      :model="loginForm"
+      :rules="loginRules"
+      class="login-form"
+    >
+      <img src="../assets/images/comp.png" class="comlogo" />
+      <span class="title">智能制造平台</span>
+      <el-form-item prop="username">
+        <p style="line-height: 12px">用户名</p>
+        <el-input
+          v-model="loginForm.username"
+          type="text"
+          auto-complete="off"
+          placeholder="账号"
+          show-password
+        >
+          
+        </el-input>
+      </el-form-item>
+      <el-form-item prop="password">
+        <p style="line-height: 12px">密码</p>
+        <el-input
+          v-model="loginForm.password"
+          type="password"
+          auto-complete="off"
+          placeholder="密码"
+          @keyup.enter.native="handleLogin"
+          show-password
+        >
+         
+        </el-input>
+      </el-form-item>
+
+      <el-form-item prop="code" v-if="captchaEnabled">
+        <div style="line-height: 12px">验证码</div>
+        <el-input
+          v-model="loginForm.code"
+          auto-complete="off"
+          placeholder="验证码"
+          style="width: 63%"
+          @keyup.enter.native="handleLogin"
+          show-password
+        >
+        </el-input>
+        <div class="login-code">
+          <img :src="codeUrl" @click="getCode" class="login-code-img" />
+        </div>
+      </el-form-item>
+      <el-checkbox
+        v-model="loginForm.rememberMe"
+        class="a"
+        >在这个设备上记住我</el-checkbox
+      >
+
+      <el-form-item >
+        <el-button
+          :loading="loading"
+          size="medium"
+          type="primary"
+          @click.native.prevent="handleLogin"
+        >
+          <span v-if="!loading">登 录</span>
+          <span v-else>登 录 中...</span>
+        </el-button>
+        <div style="float: right" v-if="register">
+          <router-link class="link-type" :to="'/register'"
+            >立即注册</router-link
+          >
+        </div>
+      </el-form-item>
+    </el-form>
+  
+    <div class="el-login-footer">
+      <span>Copyright © 2018-2023 zkqy.vip All Rights Reserved.</span>
+    </div> -->
+  </div>
+</template>
+
+<script>
+import { getCodeImg } from "@/api/login";
+import { changeDatasource } from "@/api/dataEngine";
+import Cookies from "js-cookie";
+import { encrypt, decrypt } from "@/utils/jsencrypt";
+
+export default {
+  name: "Login",
+  data() {
+    return {
+      codeUrl: "",
+      loginForm: {
+        username: "",
+        password: "",
+        // username: "admin",
+        // password: "admin123",
+        rememberMe: false,
+        code: "",
+        uuid: "",
+      },
+      loginRules: {
+        username: [
+          { required: true, trigger: "blur", message: "请输入您的账号" },
+        ],
+        password: [
+          { required: true, trigger: "blur", message: "请输入您的密码" },
+        ],
+        code: [{ required: true, trigger: "blur", message: "请输入验证码" }],
+      },
+      loading: true,
+      // 验证码开关
+      captchaEnabled: true,
+      // 注册开关
+      register: false,
+      redirect: undefined,
+    };
+  },
+  watch: {
+    $route: {
+      handler: function (route) {
+        this.redirect = route.query && route.query.redirect;
+      },
+      immediate: true,
+    },
+  },
+  created() {
+    this.getCode();
+    this.getCookie();
+  },
+  methods: {
+    forgetEvent() {},
+    getCode() {
+      getCodeImg().then((res) => {
+        this.captchaEnabled =
+          res.captchaEnabled === undefined ? true : res.captchaEnabled;
+        if (this.captchaEnabled) {
+          this.codeUrl = "data:image/gif;base64," + res.img;
+          this.loginForm.uuid = res.uuid;
+        }
+      });
+    },
+    getCookie() {
+      const username = Cookies.get("username");
+      const password = Cookies.get("password");
+      const rememberMe = Cookies.get("rememberMe");
+      this.loginForm = {
+        username: username === undefined ? this.loginForm.username : username,
+        password:
+          password === undefined ? this.loginForm.password : decrypt(password),
+        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
+      };
+    },
+    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(() => {
+              changeDatasource(); //切换数据源
+              this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+            })
+            .catch(() => {
+              this.loading = false;
+              if (this.captchaEnabled) {
+                this.getCode();
+              }
+            });
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+::v-deep.el-input--medium .el-input__inner {
+  height: 54px;
+  line-height: 54px;
+}
+.logg {
+  margin-top: 42px;
+  margin-left: 196px;
+  width: 240px;
+  height: 54px;
+  line-height: 54px;
+  text-align: center;
+  opacity: 1;
+  border-radius: 27px;
+  background: linear-gradient(
+    135deg,
+    rgba(79, 138, 255, 1) 0%,
+    rgba(75, 94, 255, 1) 100%
+  );
+  box-shadow: 0px 4px 16px rgba(179, 192, 231, 1);
+  color: #fff;
+  font-size: 20px;
+  font-weight: 500;
+  cursor: pointer;
+}
+.aaa {
+  width: 248px;
+  height: 24px;
+  font-size: 16px !important;
+  font-weight: 400;
+  letter-spacing: 0px;
+  line-height: 24px;
+  color: rgba(58, 63, 99, 1);
+  text-align: left;
+  vertical-align: top;
+  margin-top: 16px;
+}
+.bottomtext {
+  margin-top: -5px !important;
+  margin-left: 58px !important;
+}
+.rowww {
+  width: 522px;
+  height: 80px;
+  margin-top: 25px;
+  margin-left: 55px;
+}
+.roww {
+  width: 522px;
+  height: 80px;
+  margin-top: 16px;
+  margin-left: 55px;
+}
+.ppp {
+  width: 522px;
+  height: 24px;
+  opacity: 1;
+  /** 文本1 */
+  font-size: 16px;
+  font-weight: 400;
+  letter-spacing: 0px;
+  line-height: 24px;
+  color: rgba(58, 63, 99, 1);
+  text-align: left;
+  vertical-align: top;
+}
+.el-input__inner {
+  width: 522px;
+  /* height: 54px  !important; */
+}
+
+.inputt {
+  /* height: 54px !important; */
+  border-radius: 4px;
+  background: rgba(255, 255, 255, 1);
+  border: 1px solid rgba(218, 224, 242, 1);
+  margin-top: 2px;
+}
+.inputt input {
+  width: 100%;
+}
+
+.comlogo {
+  margin-left: 28px;
+  margin-top: 57px;
+  width: 194px;
+  height: 64px;
+  background: url(../assets/images/mec_logo_login.png);
+  // background: url(../assets/images/comp.png);
+  /* box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25); */
+  opacity: 1;
+}
+.login {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  background-image: url("../assets/images/background.jpg");
+  background-size: cover;
+}
+
+.title {
+  width: 258px;
+  height: 35px;
+  margin-top: 69px;
+  margin-left: 17px;
+  font-size: 32px;
+  font-weight: 400;
+  letter-spacing: 0px;
+  line-height: 38.4px;
+  color: rgba(7, 68, 138, 1);
+  text-align: left;
+  vertical-align: top;
+  float: left;
+}
+
+.login-form {
+  margin-left: 44%;
+  margin-top: 48px;
+  width: 621px;
+  height: 624px;
+  opacity: 1;
+  border-radius: 39px;
+  background: rgba(255, 255, 255, 1);
+  float: left;
+}
+
+.login-code {
+  width: 40px;
+  height: 54px;
+  opacity: 1;
+}
+.el-col-18 {
+  width: 66%;
+}
+</style>

+ 124 - 1
zkqy-ui/src/views/login.vue

@@ -1,5 +1,9 @@
 <template>
   <div class="login">
+    <div class="page-description" v-if="config.pageDescription">
+      <span class="description" v-html="config.pageDescription"> </span>
+      <span class="sub-description"> 登录并开始管理您的智能引擎账户 </span>
+    </div>
     <el-form
       ref="loginForm"
       :model="loginForm"
@@ -11,6 +15,7 @@
         <el-col :span="12">
           <div class="grid-content bg-purple-dark title">
             工业应用操作系统
+            <!-- 智能制造平台 -->
           </div></el-col
         >
       </el-row>
@@ -163,11 +168,14 @@ import { getCodeImg } from "@/api/login";
 import { changeDatasource } from "@/api/dataEngine";
 import Cookies from "js-cookie";
 import { encrypt, decrypt } from "@/utils/jsencrypt";
+import { getLoginPageConfigurationInfo } from "@/api/system/configuration";
 
 export default {
   name: "Login",
   data() {
     return {
+      // 页面配置信息
+      config: {},
       codeUrl: "",
       loginForm: {
         username: "",
@@ -185,7 +193,7 @@ export default {
         password: [
           { required: true, trigger: "blur", message: "请输入您的密码" },
         ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }],
+        code: [{ required: true, trigger: "blur", message: "请输入验证码" }],
       },
       loading: true,
       // 验证码开关
@@ -193,6 +201,8 @@ export default {
       // 注册开关
       register: false,
       redirect: undefined,
+      // 页面配置数据
+      config: {},
     };
   },
   watch: {
@@ -206,8 +216,86 @@ export default {
   created() {
     this.getCode();
     this.getCookie();
+    this.getConfig();
   },
   methods: {
+    setConfig() {
+      let {
+        loginPageTitle,
+        loginPageDescription,
+        loginPageLogo,
+        loginPageBackgroundImage,
+        windowTitle,
+        windowLogo,
+      } = this.config;
+      // 设置背景图
+      if (loginPageBackgroundImage) {
+        let loginBgDom = document.getElementsByClassName("login");
+        if (loginBgDom.length > 0) {
+          loginBgDom[0].style.backgroundImage = `url(${
+            process.env.VUE_APP_BASE_API + loginPageBackgroundImage
+          })`;
+        }
+      }
+      // 设置logo
+      if (loginPageLogo) {
+        let loginLogoDom = document.getElementsByClassName("comlogo");
+        if (loginLogoDom.length > 0) {
+          loginLogoDom[0].style.backgroundImage = `url(${
+            process.env.VUE_APP_BASE_API + loginPageLogo
+          })`;
+        }
+        window.sessionStorage.setItem("logo", loginPageLogo);
+      }
+      // 设置title
+      if (loginPageTitle) {
+        let titleDom = document.getElementsByClassName("title");
+        console.log(titleDom);
+        if (titleDom.length > 0) {
+          titleDom[0].innerHTML = loginPageTitle;
+        }
+        window.sessionStorage.setItem("title", loginPageTitle);
+      }
+      // 设置meta信息
+      if (windowTitle) {
+        document.title = windowTitle;
+        console.dir(document);
+      }
+      // 设置页面描述
+      if (loginPageDescription) {
+        this.config.pageDescription = loginPageDescription;
+      }
+      // 更换favicon.ico
+      // if (windowLogo) {
+      //   // let url = process.env.VUE_APP_BASE_API + windowLogo;
+      //   let url = "@/assets/images/favicon1.ico";
+      //   console.log(url);
+      //   var link = document.createElement("link"),
+      //     oldLink = document.getElementById("dynamic-favicon");
+      //   link.id = "dynamic-favicon";
+      //   link.rel = "shortcut icon";
+      //   link.href = url;
+      //   if (oldLink) {
+      //     document.head.removeChild(oldLink);
+      //   }
+      //   document.head.appendChild(link);
+      // }
+    },
+    // 获取登录页配置信息
+    async getConfig() {
+      let query = this.$route.query.tenantId;
+      try {
+        let res = await getLoginPageConfigurationInfo(query);
+        if (res.code === 200) {
+          this.config = res.data;
+          this.setConfig();
+        } else {
+          this.$message.error("获取页面信息失败,请检查tenantId");
+        }
+      } catch (error) {
+        this.$message.error("获取页面信息失败,请检查tenantId");
+      }
+    },
     forgetEvent() {},
     getCode() {
       getCodeImg().then((res) => {
@@ -271,6 +359,36 @@ export default {
   height: 54px;
   line-height: 54px;
 }
+.login {
+  position: relative;
+  .page-description {
+    position: absolute;
+    left: 10%;
+    top: 50%;
+    transform: translateY(-100%);
+    display: flex;
+    flex-direction: column;
+    .description {
+      display: block;
+      font-size: 38px;
+      font-weight: 800;
+      color: #fff;
+      width: 200px;
+      display: -webkit-box;
+      -webkit-box-orient: vertical;
+      overflow: hidden;
+      height: 120px;
+      max-height: 120px;
+      -webkit-line-clamp: 2;
+      text-overflow: ellipsis;
+    }
+    .sub-description {
+      font-size: 20px;
+      color: #fff;
+      font-weight: 400;
+    }
+  }
+}
 .logg {
   margin-top: 42px;
   margin-left: 196px;
@@ -357,6 +475,7 @@ export default {
   // background: url(../assets/images/comp.png);
   /* box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25); */
   opacity: 1;
+  background-size: cover;
 }
 .login {
   display: flex;
@@ -380,6 +499,10 @@ export default {
   text-align: left;
   vertical-align: top;
   float: left;
+
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 
 .login-form {

+ 187 - 0
zkqy-ui/src/views/system/tenant/index.vue

@@ -197,6 +197,16 @@
                   >激活租户
                 </el-button>
               </el-dropdown-item>
+              <el-dropdown-item>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-s-custom"
+                  @click="openLoginConfig(scope.row)"
+                  v-hasPermi="['system:tenant:remove']"
+                  >配置登录页
+                </el-button>
+              </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -362,6 +372,110 @@
         </el-form-item>
       </el-form>
     </el-dialog>
+    <!-- 登录页面配置信息列表 -->
+    <el-dialog
+      title="配置登录页"
+      width="800px"
+      :visible.sync="loginOpen"
+      append-to-body
+    >
+      <el-form
+        ref="loginFormRef"
+        :model="loginForm"
+        :inline="true"
+        :rules="rules"
+        label-width="80px"
+      >
+        <el-form-item prop="loginPageNumber">
+          <span slot="label">
+            <el-tooltip
+              content="请在登录时的url后拼接参数:tenantId={编号}"
+              placement="top"
+            >
+              <i class="el-icon-question"></i>
+            </el-tooltip>
+            编号:
+          </span>
+          <el-input
+            v-model="loginForm.loginPageNumber"
+            placeholder="请输入登录页面编号"
+          />
+        </el-form-item>
+        <!-- <el-col :span="8"> -->
+        <el-form-item label="标题:" prop="loginPageTitle">
+          <el-input
+            v-model="loginForm.loginPageTitle"
+            placeholder="请输入登录页面标题"
+          />
+        </el-form-item>
+        <!-- </el-col> -->
+        <!-- <el-col :span="8"> -->
+        <el-form-item label="描述:" prop="loginPageDescription">
+          <span slot="label">
+            <el-tooltip
+              content="推荐长度为8个汉字,可使用<br/>换行"
+              placement="top"
+            >
+              <i class="el-icon-question"></i>
+            </el-tooltip>
+            描述:
+          </span>
+          <el-input
+            v-model="loginForm.loginPageDescription"
+            type="textarea"
+            placeholder="请输入内容"
+          />
+        </el-form-item>
+        <!-- </el-col>
+        <el-col :span="8"> -->
+        <el-form-item label="窗口标题:" prop="windowTitle">
+          <el-input
+            v-model="loginForm.windowTitle"
+            placeholder="请输入窗口标题"
+          />
+        </el-form-item>
+        <!-- </el-col> -->
+        <!-- <el-col :span="8"> -->
+        <el-form-item prop="loginPageLogo">
+          <span slot="label">
+            <el-tooltip content="推荐图片大小为194*64px" placement="top">
+              <i class="el-icon-question"></i>
+            </el-tooltip>
+            logo:
+          </span>
+          <image-upload :limit="1" v-model="loginForm.loginPageLogo" />
+        </el-form-item>
+        <!-- </el-col> -->
+        <!-- <el-col :span="8"> -->
+        <el-form-item prop="loginPageBackgroundImage">
+          <span slot="label">
+            <el-tooltip content="推荐图片大小为1400*900px" placement="top">
+              <i class="el-icon-question"></i>
+            </el-tooltip>
+            背景图:
+          </span>
+          <image-upload
+            :limit="1"
+            v-model="loginForm.loginPageBackgroundImage"
+          />
+        </el-form-item>
+        <!-- </el-col> -->
+        <!-- <el-col :span="8"> -->
+        <!-- <el-form-item label="窗口logo:" prop="windowLogo">
+          <image-upload
+            :fileType="['png']"
+            :limit="1"
+            :uploadUrl="'/common/uploadAndConvert'"
+            v-model="loginForm.windowLogo"
+          />
+        </el-form-item> -->
+        <!-- </el-col> -->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitLoginForm">确 定</el-button>
+        <el-button @click="cancelLoginForm">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -382,6 +496,13 @@ import { getDataSourceInfo, insertDataSource } from "@/api/system/data";
 import { servicesLoading } from "@/utils/zkqy";
 import { getIsExistUser } from "@/api/system/user";
 import ExcelDownLoad from "@/components/ExcelDownLoad/index.vue";
+import {
+  listConfiguration,
+  getConfiguration,
+  delConfiguration,
+  addConfiguration,
+  updateConfiguration,
+} from "@/api/system/configuration";
 
 export default {
   name: "Tenant",
@@ -397,6 +518,19 @@ export default {
   },
   data() {
     return {
+      // 登录页面数据
+      isEdit: false,
+      loginOpen: false,
+      loginForm: {
+        loginPageNumber: "",
+        loginPageTitle: "",
+        loginPageDescription: "",
+        loginPageLogo: "",
+        loginPageBackgroundImage: "",
+        windowTitle: "",
+        windowLogo: "",
+        tenantId: "",
+      },
       // 前端导出数据
       selection: [],
       headerList: {
@@ -524,6 +658,59 @@ export default {
     this.selectAllUser();
   },
   methods: {
+    // 提交登录页配置数据
+    submitLoginForm() {
+      this.$refs.loginFormRef?.validate(async (valid) => {
+        if (valid) {
+          console.log(this.loginForm);
+          let res = {},
+            msg = "";
+          if (this.isEdit) {
+            res = await updateConfiguration(this.loginForm);
+            msg = "修改";
+          } else {
+            res = await addConfiguration(this.loginForm);
+            msg = "保存";
+          }
+          if (res.code == 200) {
+            this.$message.success(`${msg}成功`);
+            this.loginOpen = false;
+          } else {
+            this.$message.error(`${msg}失败,请检查网络`);
+          }
+        } else {
+          console.log(`${msg}失败,请检查网络`);
+          return false;
+        }
+      });
+    },
+    // 取消登录页配置
+    cancelLoginForm() {
+      this.loginOpen = false;
+    },
+    // 编辑租户登录页配置
+    async openLoginConfig(row) {
+      console.log(row);
+      try {
+        let res = await getConfiguration(row.tenantId);
+        console.log(res);
+        if (res.code == 200) {
+          // this.loginForm = res.data;
+          if (res.data) {
+            this.loginForm = res.data;
+            this.isEdit = true;
+          } else {
+            this.resetloginForm();
+            this.isEdit = false;
+          }
+          this.loginForm.tenantId = row.tenantId;
+          this.loginOpen = true;
+        } else {
+          console.log(res.msg);
+          this.$message.error("网络异常,请稍后再试");
+        }
+      } catch (error) {}
+    },
     // 获取所用用户名,作校验用
     async selectAllUser() {
       let res = await selectAllUser();