Bladeren bron

服务器地址

dusenyao 1 jaar geleden
bovenliggende
commit
d0a6ec390d
6 gewijzigde bestanden met toevoegingen van 80 en 11 verwijderingen
  1. 4 4
      package-lock.json
  2. 1 1
      package.json
  3. 3 1
      src/store/modules/app.js
  4. 22 0
      src/utils/auth.js
  5. 7 2
      src/utils/http.js
  6. 43 3
      src/views/login/index.vue

+ 4 - 4
package-lock.json

@@ -36,7 +36,7 @@
         "@vue/eslint-config-prettier": "^9.0.0",
         "@vue/preload-webpack-plugin": "^2.0.0",
         "compression-webpack-plugin": "^6.1.2",
-        "electron": "^29.3.2",
+        "electron": "29.3.2",
         "electron-builder": "^24.13.3",
         "eslint": "^8.57.0",
         "eslint-plugin-prettier": "^5.1.3",
@@ -7234,9 +7234,9 @@
       }
     },
     "node_modules/electron": {
-      "version": "29.4.2",
-      "resolved": "https://registry.npmmirror.com/electron/-/electron-29.4.2.tgz",
-      "integrity": "sha512-XyIkuWQguwY8hGtLg0j5Q4Fqphdbh0ctBsKCSVzJ/R7Z2+2WN/oQ1M+zYwchmfiDgiuL3EKkrBrfPdxXYdMr+A==",
+      "version": "29.3.2",
+      "resolved": "https://registry.npmmirror.com/electron/-/electron-29.3.2.tgz",
+      "integrity": "sha512-pRWsaFtbd78kEHR0lg5aMhZDY6b5JykIEhZRtyTCaJpGFObB2NFIJDzR7mTia0cZp3pPq60n/SS4gRxvSM5WFQ==",
       "dev": true,
       "hasInstallScript": true,
       "dependencies": {

+ 1 - 1
package.json

@@ -42,7 +42,7 @@
     "@vue/eslint-config-prettier": "^9.0.0",
     "@vue/preload-webpack-plugin": "^2.0.0",
     "compression-webpack-plugin": "^6.1.2",
-    "electron": "^29.3.2",
+    "electron": "29.3.2",
     "electron-builder": "^24.13.3",
     "eslint": "^8.57.0",
     "eslint-plugin-prettier": "^5.1.3",

+ 3 - 1
src/store/modules/app.js

@@ -1,5 +1,5 @@
 import { app } from '@/store/mutation-types';
-import { getConfig } from '@/utils/auth';
+import { getConfig, getBaseUrl, getFileUrl } from '@/utils/auth';
 import { conversionSize } from '@/utils/common';
 
 const getDefaultSate = () => {
@@ -7,6 +7,8 @@ const getDefaultSate = () => {
   return {
     showProgress: false,
     uploadController: null,
+    APP_BASE_API: getBaseUrl(),
+    APP_FILE_API: getFileUrl(),
     uploadInfo: {
       loaded: 0,
       progress: 0,

+ 22 - 0
src/utils/auth.js

@@ -35,3 +35,25 @@ export function setConfig(value) {
 export function removeConfig() {
   localStorage.removeItem(ConfigKey);
 }
+
+// 基础请求路径
+const BaseUrl = 'APP_BASE_API';
+export function getBaseUrl() {
+  const defaultUrl = process.env.NODE_ENV === 'development' ? '/api' : 'https://gcls.helxsoft.cn/';
+  return localStorage.getItem(BaseUrl) ?? defaultUrl;
+}
+
+export function setBaseUrl(value) {
+  console.log(value);
+  localStorage.setItem(BaseUrl, value);
+}
+
+const FileUrl = 'APP_FILE_API';
+export function getFileUrl() {
+  const defaultUrl = process.env.NODE_ENV === 'development' ? '/file' : 'https://file-kf.helxsoft.cn/';
+  return localStorage.getItem(FileUrl) ?? defaultUrl;
+}
+
+export function setFileUrl(value) {
+  localStorage.setItem(FileUrl, value);
+}

+ 7 - 2
src/utils/http.js

@@ -2,14 +2,19 @@ import axios from 'axios';
 import store from '@/store';
 import router from '@/router';
 
-import { getToken } from '@/utils/auth';
+import { getToken, getBaseUrl } from '@/utils/auth';
 import { Message } from 'element-ui';
 
 const service = axios.create({
-  baseURL: process.env.VUE_APP_BASE_API,
+  baseURL: getBaseUrl(),
   timeout: 30000,
 });
 
+// 重置请求地址
+export function resetBaseUrl() {
+  service.defaults.baseURL = getBaseUrl();
+}
+
 // 请求拦截器
 service.interceptors.request.use(
   (config) => {

+ 43 - 3
src/views/login/index.vue

@@ -17,10 +17,22 @@
             @click="updateVerificationCode"
           />
         </el-form-item>
+        <el-form-item v-if="!isDev" label="服务器地址">
+          <el-input v-model="base_url" placeholder="请输入服务器地址" @change="changeBaseUrl" />
+        </el-form-item>
         <el-form-item>
           <el-button class="submit" type="primary" @click="signIn">登录</el-button>
         </el-form-item>
+        <el-form-item>
+          <div class="protocol">
+            <span>
+              <el-checkbox v-model="isAgree" /> 我已阅读并同意<span style="color: #4d78ff">《用户协议》</span>
+            </span>
+            <span style="color: #4d78ff">忘记密码?</span>
+          </div>
+        </el-form-item>
       </el-form>
+      <div class="not-tips">没有账号</div>
     </main>
   </div>
 </template>
@@ -28,12 +40,16 @@
 <script>
 import md5 from 'md5';
 import { GetVerificationCodeImage, GetLogo } from '@/api/app';
-import { setConfig } from '@/utils/auth';
+import { setConfig, getBaseUrl, setBaseUrl } from '@/utils/auth';
+import { resetBaseUrl } from '@/utils/http';
 
 export default {
   name: 'LoginPage',
   data() {
     return {
+      base_url: getBaseUrl(),
+      isDev: process.env.NODE_ENV === 'development',
+      isAgree: true, // 是否同意用户协议
       form: {
         user_type: 'TEACHER',
         user_name: '',
@@ -74,6 +90,11 @@ export default {
       });
     },
 
+    changeBaseUrl() {
+      setBaseUrl(this.base_url);
+      resetBaseUrl();
+    },
+
     getLogo() {
       GetLogo().then((res) => {
         setConfig(res);
@@ -163,10 +184,29 @@ export default {
           cursor: pointer;
         }
       }
+
+      .submit {
+        width: 100%;
+      }
+
+      .protocol {
+        display: flex;
+        justify-content: space-between;
+        font-size: 12px;
+        color: #000;
+      }
+
+      .el-form-item--small.el-form-item:last-child {
+        margin-bottom: 0;
+      }
     }
 
-    .submit {
-      width: 100%;
+    .not-tips {
+      margin-top: 20px;
+      font-size: 12px;
+      color: #fff;
+      text-align: center;
+      cursor: pointer;
     }
   }
 }