浏览代码

加前缀

zhaoyun 5 月之前
父节点
当前提交
79cc91cbdd
共有 6 个文件被更改,包括 94 次插入200 次删除
  1. 1 1
      .env.development
  2. 3 1
      .env.production
  3. 1 1
      src/layout/components/Navbar.vue
  4. 1 0
      src/router/index.js
  5. 78 188
      src/views/login.vue
  6. 10 9
      vue.config.js

+ 1 - 1
.env.development

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 配网应用管理平台
 ENV = 'development'
 
 # 若依管理系统/开发环境
-VUE_APP_BASE_API = '/prod-api'
+VUE_APP_BASE_API = '/pdm/backend'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 3 - 1
.env.production

@@ -5,4 +5,6 @@ VUE_APP_TITLE = 配网应用管理平台
 ENV = 'production'
 
 # 若依管理系统/生产环境
-VUE_APP_BASE_API = '/prod-api'
+# VUE_APP_BASE_API = '/prod-api'
+
+VUE_APP_BASE_API = '/pdm/backend'

+ 1 - 1
src/layout/components/Navbar.vue

@@ -105,7 +105,7 @@ export default {
           //启用isc登陆前
           // location.href = '/index';
           //启用isc登陆后
-          window.location.replace("http://10.223.57.127:17089/isc_sso/logout?service=http://25.212.177.102:19888?token=isc");
+          window.location.replace("http://10.223.57.127:17089/isc_sso/logout?service=http://25.212.177.102:19888/pdm?token=isc");
         })
       }).catch(() => {});
     }

+ 1 - 0
src/router/index.js

@@ -281,6 +281,7 @@ Router.prototype.replace = function push(location) {
 };
 
 export default new Router({
+  base: "/pdm",     //加前缀
   mode: "history", // 去掉url中的#
   scrollBehavior: () => ({ y: 0 }),
   routes: constantRoutes,

+ 78 - 188
src/views/login.vue

@@ -1,120 +1,13 @@
 <template>
-  <div class="login">
-    <el-form
-      ref="loginForm"
-      :model="loginForm"
-      :rules="loginRules"
-      class="login-form"
-    >
-      <h3 class="title">智能配网应用平台</h3>
-      <el-form-item prop="username">
-        <el-input
-          v-model="loginForm.username"
-          type="text"
-          auto-complete="off"
-          placeholder="账号"
-        >
-          <svg-icon
-            slot="prefix"
-            icon-class="user"
-            class="el-input__icon input-icon"
-          />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="password">
-        <el-input
-          v-model="loginForm.password"
-          type="password"
-          auto-complete="off"
-          placeholder="密码"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon
-            slot="prefix"
-            icon-class="password"
-            class="el-input__icon input-icon"
-          />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input
-          v-model="loginForm.code"
-          auto-complete="off"
-          placeholder="验证码"
-          style="width: 63%"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon
-            slot="prefix"
-            icon-class="validCode"
-            class="el-input__icon input-icon"
-          />
-        </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"
-        style="margin: 0px 0px 25px 0px"
-        >记住密码</el-checkbox
-      >
-      <el-form-item style="width: 100%">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width: 100%"
-          @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 © 2024-2026 hnyysoftware All Rights Reserved.</span>
-    </div>
-  </div>
+  <div>isc登录中.....</div>
 </template>
 
 <script>
-import { getCodeImg, getPublicKey } from "@/api/login";
-import Cookies from "js-cookie";
-import { encrypt, decrypt } from "@/utils/jsencrypt";
 export default {
-  name: "Login",
+  name: "Login2",
   data() {
     return {
-      codeUrl: "",
-      loginForm: {
-        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: "change", message: "请输入验证码" }],
-      },
-      loading: false,
-      // 验证码开关
-      captchaEnabled: true,
-      // 注册开关
-      register: false,
-      redirect: undefined,
+      redirect: undefined
     };
   },
   watch: {
@@ -126,92 +19,89 @@ export default {
     },
   },
   created() {
-    this.getCode();
-    this.getCookie();
+    //获取isc信息 isc=0则进入正常登录 无则isc登录
+    let isc=this.$route.query.isc;
+    // isc='0';
+    console.log(isc)
+    if(isc==='0'){
+      this.$router.push("/adminLogin");
+      return;
+    }else{
+      this.getLoginByNameAndToken();
+    }
   },
   methods: {
-    getCode() {
-      getCodeImg().then((res) => {
-        this.captchaEnabled =
-          res.captchaEnabled === undefined ? true : res.captchaEnabled;
-        if (this.captchaEnabled) {
-          this.codeUrl = "data:image/gif;base64," + res.img;
-          //alert(this.codeUrl+"122323")
-          this.loginForm.uuid = res.uuid;
-        }
-      });
+    getLoginByNameAndToken(){
+      //获取地址栏中的token
+      var token = this.$route.query.token;
+      var ticket = this.$route.query.ticket;
+      console.log(this.$route.query)
+      console.log(ticket)
+      //调用登录的接口
+      if(ticket==''||ticket==undefined||ticket==null){
+        window.location.replace("http://10.223.57.127:17089/isc_sso/login?service=http://25.212.177.102:19888/pdm?token=isc");
+      }else{
+        this.iscLogin(ticket);
+      }
     },
-    getPublicKey() {
-      return new Promise((resolve, reject) => {
-        getPublicKey()
-          .then((res) => {
-            resolve(res);
-          })
-          .catch((error) => {
-            reject(error);
-          });
-      });
-    },
-    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");
-          }
-          Cookies.set("username", this.loginForm.username, { expires: 30 });
-          //     this.$store.dispatch("Login", this.loginForm).then(() => {
-          //       this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          //     }).catch(() => {
-          //       this.loading = false;
-          //       if (this.captchaEnabled) {
-          //         this.getCode();
-          //       }
-          //     });
-          this.getPublicKey().then((res) => {
-            let publicKey = res.publicKey;
-            this.loginForm.password = encrypt(
-              this.loginForm.password,
-              publicKey
-            );
-            this.$store
-              .dispatch("Login", this.loginForm)
+    // handlIscLogin() {
+    //   let url = window.location.href;
+    //   if (url.endsWith("admin")) {
+    //     this.$router.push("/adminLogin");
+    //     return;
+    //   }
+    //   let urls = url.split("?");
+    //   if (urls.length > 1) {
+    //     var ticket = this.$route.query.ticket;
+    //     if(ticket==''||ticket==undefined||ticket==null){
+    //       let params = urls[1].split("=");
+    //       let args = params[1];
+    //       if (ticket == "out") {
+    //         //生产 10.223.1.127:8098
+    //         //测试 10.223.57.127:17089
+    //         console.log("重定向ISC--------3");
+    //         window.location.href =
+    //           "http://10.223.57.127:17089/isc_sso/login?service=http://25.212.177.102:19888";
+    //       } else {
+    //         this.iscLogin(args);
+    //       }
+    //     } else {
+    //       console.log("重定向ISC--------1");
+    //       //生产 10.223.1.127:8098
+    //       window.location.href =
+    //         "http://10.223.57.127:17089/isc_sso/login?service=http://25.212.177.102:19888";
+    //     }
+    //   } else {
+    //     if (!url.endsWith("admin/")) {
+    //       console.log("重定向ISC--------2");
+    //       //生产 10.223.1.127:8098
+    //       window.location.href =
+    //         "http://10.223.57.127:17089/isc_sso/login?service=http://25.212.177.102:19888";
+    //     }
+    //   }
+    // },
+    iscLogin(ticket) {
+      // login2(ticket).then((res) => {
+      //   console.log(res)
+      //   if (res == 503) {
+      //     this.$message.warning("当前账号未开通权限!");
+      //   } else {
+      //     this.$router.push({ path: "/index" }).catch(()=>{});
+      //   }
+      // });
+      this.$store
+              .dispatch("Login2", ticket)
               .then(() => {
                 this.$router
-                  .push({ path: this.redirect || "/home/index" })
+                  .push({ path: this.redirect || "/" })
                   .catch((error) => {});
               })
-              .catch(() => {
-                this.loginForm.password = null;
-                this.loading = false;
-                if (this.captchaEnabled) {
-                  this.getCode();
-                }
+              .catch((error) => {
+                throw error;
               });
-          });
-        }
-      });
+    },
+    getUrlParam(href) {
+      return href.substring(1); // 去除开头的"?"
     },
   },
 };

+ 10 - 9
vue.config.js

@@ -18,7 +18,8 @@ module.exports = {
   // 部署生产环境和开发环境下的URL。
   // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
   // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
-  publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
+  //publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
+  publicPath: "/pdm",
   // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
   outputDir: "dist",
   // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
@@ -36,7 +37,7 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         target: `http://39.105.58.247:18081`, //生产
-        // target: `http://127.0.0.1:8095`,//本地
+        //target: `http://127.0.0.1:18081`,//本地
         changeOrigin: true,
         pathRewrite: {
           ["^" + process.env.VUE_APP_BASE_API]: "",
@@ -62,13 +63,13 @@ module.exports = {
     },
     plugins: [
       // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
-      new CompressionPlugin({
-        cache: false, // 不启用文件缓存
-        test: /\.(js|css|html)?$/i, // 压缩文件格式
-        filename: "[path].gz[query]", // 压缩后的文件名
-        algorithm: "gzip", // 使用gzip压缩
-        minRatio: 0.8, // 压缩率小于1才会压缩
-      }),
+      // new CompressionPlugin({
+      //   cache: false, // 不启用文件缓存
+      //   test: /\.(js|css|html)?$/i, // 压缩文件格式
+      //   filename: "[path].gz[query]", // 压缩后的文件名
+      //   algorithm: "gzip", // 使用gzip压缩
+      //   minRatio: 0.8, // 压缩率小于1才会压缩
+      // }),
     ],
   },
   chainWebpack(config) {