From 632e006756d00391252d32e2ebaed6664e8e466f Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 23 Dec 2023 18:10:37 +0800
Subject: [PATCH] icon加载异常的问题

---
 src/config/env.js            |   16 +
 src/main.js                  |   81 ++++----
 src/page/login/userlogin.vue |  420 ++++++++++++++++++++++------------------------
 3 files changed, 252 insertions(+), 265 deletions(-)

diff --git a/src/config/env.js b/src/config/env.js
index 054158d..3c32b98 100644
--- a/src/config/env.js
+++ b/src/config/env.js
@@ -2,15 +2,23 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2023-12-14 17:10:00
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-12-19 16:55:56
+ * @LastEditTime: 2023-12-23 18:03:39
  * @FilePath: \jczz_web\src\config\env.js
  * @Description:
  *
  * Copyright (c) 2023 by shuishen, All Rights Reserved.
  */
 // 阿里矢量图标库配置
-let iconfontVersion = ["567566_pwc3oottzol", "4380189_e93ccwuqira"];
-let iconfontUrl = `//at.alicdn.com/t/c/font_$key.css`;
+let iconData = [
+  {
+    icon: "567566_pwc3oottzol",
+    url: `//at.alicdn.com/t/font_$key.css`,
+  },
+  {
+    icon: "4380189_e93ccwuqira",
+    url: `//at.alicdn.com/t/c/font_$key.css`,
+  },
+];
 
 let baseUrl = "";
 let codeUrl = `${baseUrl}/code`;
@@ -22,4 +30,4 @@
 } else if (env.NODE_ENV === "test") {
   baseUrl = ``; //测试环境地址
 }
-export { baseUrl, iconfontUrl, iconfontVersion, codeUrl, env };
+export { baseUrl, iconData, codeUrl, env };
diff --git a/src/main.js b/src/main.js
index 5daa98c..625f2b0 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,30 +1,27 @@
-import Vue from 'vue';
-import axios from './router/axios';
-import VueAxios from 'vue-axios';
-import App from './App';
-import router from './router/router';
-import './permission'; // 权限
-import './error'; // 日志
-import './cache';//页面缓存
-import store from './store';
-import {loadStyle} from './util/util'
-import * as urls from '@/config/env';
-import Element from 'element-ui';
-import {
-  iconfontUrl,
-  iconfontVersion
-} from '@/config/env';
-import i18n from './lang'; // Internationalization
-import './styles/common.scss';
-import basicBlock from './components/basic-block/main';
-import basicContainer from './components/basic-container/main';
-import thirdRegister from './components/third-register/main';
-import flowDesign from './components/flow-design/main';
-import avueUeditor from 'avue-plugin-ueditor';
-import website from '@/config/website';
-import crudCommon from '@/mixins/crud';
+import Vue from "vue";
+import axios from "./router/axios";
+import VueAxios from "vue-axios";
+import App from "./App";
+import router from "./router/router";
+import "./permission"; // 权限
+import "./error"; // 日志
+import "./cache"; //页面缓存
+import store from "./store";
+import { loadStyle } from "./util/util";
+import * as urls from "@/config/env";
+import Element from "element-ui";
+import { iconData } from "@/config/env";
+import i18n from "./lang"; // Internationalization
+import "./styles/common.scss";
+import basicBlock from "./components/basic-block/main";
+import basicContainer from "./components/basic-container/main";
+import thirdRegister from "./components/third-register/main";
+import flowDesign from "./components/flow-design/main";
+import avueUeditor from "avue-plugin-ueditor";
+import website from "@/config/website";
+import crudCommon from "@/mixins/crud";
 // 业务组件
-import tenantPackage from './views/system/tenantpackage';
+import tenantPackage from "./views/system/tenantpackage";
 
 // 注册全局crud驱动
 window.$crudCommon = crudCommon;
@@ -32,32 +29,32 @@
 Vue.use(router);
 Vue.use(VueAxios, axios);
 Vue.use(Element, {
-  i18n: (key, value) => i18n.t(key, value)
+  i18n: (key, value) => i18n.t(key, value),
 });
 Vue.use(window.AVUE, {
-  size: 'small',
-  tableSize: 'small',
+  size: "small",
+  tableSize: "small",
   calcHeight: 65,
-  i18n: (key, value) => i18n.t(key, value)
+  i18n: (key, value) => i18n.t(key, value),
 });
 // 注册全局容器
-Vue.component('basicContainer', basicContainer);
-Vue.component('basicBlock', basicBlock);
-Vue.component('thirdRegister', thirdRegister);
-Vue.component('avueUeditor', avueUeditor);
-Vue.component('flowDesign', flowDesign);
-Vue.component('tenantPackage', tenantPackage);
+Vue.component("basicContainer", basicContainer);
+Vue.component("basicBlock", basicBlock);
+Vue.component("thirdRegister", thirdRegister);
+Vue.component("avueUeditor", avueUeditor);
+Vue.component("flowDesign", flowDesign);
+Vue.component("tenantPackage", tenantPackage);
 // 加载相关url地址
-Object.keys(urls).forEach(key => {
+Object.keys(urls).forEach((key) => {
   Vue.prototype[key] = urls[key];
 });
 // 加载NutFlow
 Vue.use(window.WfDesignBase);
 // 加载website
 Vue.prototype.website = website;
-// 动态加载阿里云字体库
-iconfontVersion.forEach(ele => {
-  loadStyle(iconfontUrl.replace('$key', ele));
+
+iconData.forEach((item) => {
+  loadStyle(item.url.replace("$key", item.icon));
 });
 
 Vue.config.productionTip = false;
@@ -66,5 +63,5 @@
   router,
   store,
   i18n,
-  render: h => h(App)
-}).$mount('#app');
+  render: (h) => h(App),
+}).$mount("#app");
diff --git a/src/page/login/userlogin.vue b/src/page/login/userlogin.vue
index ce32449..57f8a2d 100644
--- a/src/page/login/userlogin.vue
+++ b/src/page/login/userlogin.vue
@@ -1,11 +1,6 @@
 <template>
-  <el-form class="login-form"
-           status-icon
-           :rules="loginRules"
-           ref="loginForm"
-           :model="loginForm"
-           label-width="0">
-    <!-- <el-form-item v-if="tenantMode" prop="tenantId">
+    <el-form class="login-form" status-icon :rules="loginRules" ref="loginForm" :model="loginForm" label-width="0">
+        <!-- <el-form-item v-if="tenantMode" prop="tenantId">
       <el-input size="small"
                 @keyup.enter.native="handleLogin"
                 v-model="loginForm.tenantId"
@@ -14,27 +9,20 @@
         <i slot="prefix" class="icon-quanxian"/>
       </el-input>
     </el-form-item> -->
-    <el-form-item prop="username">
-      <el-input size="small"
-                @keyup.enter.native="handleLogin"
-                v-model="loginForm.username"
-                auto-complete="off"
+        <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="password">
-      <el-input size="small"
-                @keyup.enter.native="handleLogin"
-                :type="passwordType"
-                v-model="loginForm.password"
-                auto-complete="off"
-                :placeholder="$t('login.password')">
-        <i class="el-icon-view el-input__icon" slot="suffix" @click="showPassword"/>
-        <i slot="prefix" class="icon-mima"/>
-      </el-input>
-    </el-form-item>
-    <!-- <el-form-item v-if="this.website.captchaMode" prop="code">
+                <i slot="prefix" class="icon-yonghu" />
+            </el-input>
+        </el-form-item>
+        <el-form-item prop="password">
+            <el-input size="small" @keyup.enter.native="handleLogin" :type="passwordType" v-model="loginForm.password"
+                auto-complete="off" :placeholder="$t('login.password')">
+                <i class="el-icon-view el-input__icon" slot="suffix" @click="showPassword" />
+                <i slot="prefix" class="icon-mima" />
+            </el-input>
+        </el-form-item>
+        <!-- <el-form-item v-if="this.website.captchaMode" prop="code">
       <el-row :span="24">
         <el-col :span="16">
           <el-input size="small"
@@ -53,217 +41,211 @@
         </el-col>
       </el-row>
     </el-form-item> -->
-    <el-form-item>
-      <el-button type="primary"
-                 size="small"
-                 @click.native.prevent="handleLogin"
-                 class="login-submit">{{$t('login.submit')}}
-      </el-button>
-    </el-form-item>
-    <el-dialog title="用户信息选择"
-               append-to-body
-               :visible.sync="userBox"
-               width="350px">
-      <avue-form :option="userOption" v-model="userForm" @submit="submitLogin"/>
-    </el-dialog>
-  </el-form>
+        <el-form-item>
+            <el-button type="primary" size="small" @click.native.prevent="handleLogin" class="login-submit">{{
+                $t('login.submit') }}
+            </el-button>
+        </el-form-item>
+        <el-dialog title="用户信息选择" append-to-body :visible.sync="userBox" width="350px">
+            <avue-form :option="userOption" v-model="userForm" @submit="submitLogin" />
+        </el-dialog>
+    </el-form>
 </template>
 
 <script>
-  import {mapGetters} from "vuex";
-  import {info} from "@/api/system/tenant";
-  // import {getCaptcha} from "@/api/user";
-  import {getTopUrl} from "@/util/util";
+import { mapGetters } from "vuex"
+import { info } from "@/api/system/tenant"
+// import {getCaptcha} from "@/api/user";
+import { getTopUrl } from "@/util/util"
 
-  export default {
+export default {
     name: "userlogin",
-    data() {
-      return {
-        tenantMode: this.website.tenantMode,
-        loginForm: {
-          //租户ID
-          tenantId: "000000",
-          //部门ID
-          deptId: "",
-          //角色ID
-          roleId: "",
-          //用户名
-          username: "",
-          //密码
-          password: "",
-          //账号类型
-          type: "account",
-          //验证码的值
-          code: "",
-          //验证码的索引
-          key: "",
-          //预加载白色背景
-          image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
-        },
-        loginRules: {
-          // tenantId: [
-          //   {required: false, message: "请输入租户ID", trigger: "blur"}
-          // ],
-          username: [
-            {required: true, message: "请输入用户名", trigger: "blur"}
-          ],
-          password: [
-            {required: true, message: "请输入密码", trigger: "blur"},
-            {min: 1, message: "密码长度最少为6位", trigger: "blur"}
-          ]
-        },
-        passwordType: "password",
-        userBox: false,
-        userForm: {
-          deptId: '',
-          roleId: ''
-        },
-        userOption: {
-          labelWidth: 70,
-          submitBtn: true,
-          emptyBtn: false,
-          submitText: '登录',
-          column: [
-            {
-              label: '部门',
-              prop: 'deptId',
-              type: 'select',
-              props: {
-                label: 'deptName',
-                value: 'id'
-              },
-              dicUrl: '/api/blade-system/dept/select',
-              span: 24,
-              display: false,
-              rules: [{
-                required: true,
-                message: "请选择部门",
-                trigger: "blur"
-              }],
+    data () {
+        return {
+            tenantMode: this.website.tenantMode,
+            loginForm: {
+                //租户ID
+                tenantId: "000000",
+                //部门ID
+                deptId: "",
+                //角色ID
+                roleId: "",
+                //用户名
+                username: "",
+                //密码
+                password: "",
+                //账号类型
+                type: "account",
+                //验证码的值
+                code: "",
+                //验证码的索引
+                key: "",
+                //预加载白色背景
+                image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
             },
-            {
-              label: '角色',
-              prop: 'roleId',
-              type: 'select',
-              props: {
-                label: 'roleName',
-                value: 'id'
-              },
-              dicUrl: '/api/blade-system/role/select',
-              span: 24,
-              display: false,
-              rules: [{
-                required: true,
-                message: "请选择角色",
-                trigger: "blur"
-              }],
+            loginRules: {
+                // tenantId: [
+                //   {required: false, message: "请输入租户ID", trigger: "blur"}
+                // ],
+                username: [
+                    { required: true, message: "请输入用户名", trigger: "blur" }
+                ],
+                password: [
+                    { required: true, message: "请输入密码", trigger: "blur" },
+                    { min: 1, message: "密码长度最少为6位", trigger: "blur" }
+                ]
             },
-          ]
+            passwordType: "password",
+            userBox: false,
+            userForm: {
+                deptId: '',
+                roleId: ''
+            },
+            userOption: {
+                labelWidth: 70,
+                submitBtn: true,
+                emptyBtn: false,
+                submitText: '登录',
+                column: [
+                    {
+                        label: '部门',
+                        prop: 'deptId',
+                        type: 'select',
+                        props: {
+                            label: 'deptName',
+                            value: 'id'
+                        },
+                        dicUrl: '/api/blade-system/dept/select',
+                        span: 24,
+                        display: false,
+                        rules: [{
+                            required: true,
+                            message: "请选择部门",
+                            trigger: "blur"
+                        }],
+                    },
+                    {
+                        label: '角色',
+                        prop: 'roleId',
+                        type: 'select',
+                        props: {
+                            label: 'roleName',
+                            value: 'id'
+                        },
+                        dicUrl: '/api/blade-system/role/select',
+                        span: 24,
+                        display: false,
+                        rules: [{
+                            required: true,
+                            message: "请选择角色",
+                            trigger: "blur"
+                        }],
+                    },
+                ]
+            }
         }
-      };
     },
-    created() {
-      this.getTenant();
-      this.refreshCode();
+    created () {
+        this.getTenant()
+        //   this.refreshCode();
     },
-    mounted() {
+    mounted () {
     },
     watch: {
-      'loginForm.deptId'() {
-        const column = this.findObject(this.userOption.column, "deptId");
-        if (this.loginForm.deptId.includes(",")) {
-          column.dicUrl = `/api/blade-system/dept/select?deptId=${this.loginForm.deptId}`;
-          column.display = true;
-        } else {
-          column.dicUrl = '';
+        'loginForm.deptId' () {
+            const column = this.findObject(this.userOption.column, "deptId")
+            if (this.loginForm.deptId.includes(",")) {
+                column.dicUrl = `/api/blade-system/dept/select?deptId=${this.loginForm.deptId}`
+                column.display = true
+            } else {
+                column.dicUrl = ''
+            }
+        },
+        'loginForm.roleId' () {
+            const column = this.findObject(this.userOption.column, "roleId")
+            if (this.loginForm.roleId.includes(",")) {
+                column.dicUrl = `/api/blade-system/role/select?roleId=${this.loginForm.roleId}`
+                column.display = true
+            } else {
+                column.dicUrl = ''
+            }
         }
-      },
-      'loginForm.roleId'() {
-        const column = this.findObject(this.userOption.column, "roleId");
-        if (this.loginForm.roleId.includes(",")) {
-          column.dicUrl = `/api/blade-system/role/select?roleId=${this.loginForm.roleId}`;
-          column.display = true;
-        } else {
-          column.dicUrl = '';
-        }
-      }
     },
     computed: {
-      ...mapGetters(["tagWel", "userInfo"])
+        ...mapGetters(["tagWel", "userInfo"])
     },
     props: [],
     methods: {
-      refreshCode() {
-        if (this.website.captchaMode) {
-          getCaptcha().then(res => {
-            const data = res.data;
-            this.loginForm.key = data.key;
-            this.loginForm.image = data.image;
-          })
-        }
-      },
-      showPassword() {
-        this.passwordType === ""
-          ? (this.passwordType = "password")
-          : (this.passwordType = "");
-      },
-      submitLogin (form, done) {
-        if (form.deptId !== '') {
-          this.loginForm.deptId = form.deptId;
-        }
-        if (form.roleId !== '') {
-          this.loginForm.roleId = form.roleId;
-        }
-        this.handleLogin();
-        done();
-      },
-      handleLogin() {
-        this.$refs.loginForm.validate(valid => {
-          if (valid) {
-            const loading = this.$loading({
-              lock: true,
-              text: '登录中,请稍后。。。',
-              spinner: "el-icon-loading"
-            });
-            this.$store.dispatch("LoginByUsername", this.loginForm).then(() => {
-              if (this.website.switchMode) {
-                const deptId = this.userInfo.dept_id;
-                const roleId = this.userInfo.role_id;
-                if (deptId.includes(",") || roleId.includes(",")) {
-                  this.loginForm.deptId = deptId;
-                  this.loginForm.roleId = roleId;
-                  this.userBox = true;
-                  this.$store.dispatch("LogOut").then(() => {
-                    loading.close();
-                  });
-                  return false;
+        refreshCode () {
+            if (this.website.captchaMode) {
+                getCaptcha().then(res => {
+                    const data = res.data
+                    this.loginForm.key = data.key
+                    this.loginForm.image = data.image
+                })
+            }
+        },
+        showPassword () {
+            this.passwordType === ""
+                ? (this.passwordType = "password")
+                : (this.passwordType = "")
+        },
+        submitLogin (form, done) {
+            if (form.deptId !== '') {
+                this.loginForm.deptId = form.deptId
+            }
+            if (form.roleId !== '') {
+                this.loginForm.roleId = form.roleId
+            }
+            this.handleLogin()
+            done()
+        },
+        handleLogin () {
+            this.$refs.loginForm.validate(valid => {
+                if (valid) {
+                    const loading = this.$loading({
+                        lock: true,
+                        text: '登录中,请稍后。。。',
+                        spinner: "el-icon-loading"
+                    })
+                    this.$store.dispatch("LoginByUsername", this.loginForm).then(() => {
+                        if (this.website.switchMode) {
+                            const deptId = this.userInfo.dept_id
+                            const roleId = this.userInfo.role_id
+                            if (deptId.includes(",") || roleId.includes(",")) {
+                                this.loginForm.deptId = deptId
+                                this.loginForm.roleId = roleId
+                                this.userBox = true
+                                this.$store.dispatch("LogOut").then(() => {
+                                    loading.close()
+                                })
+                                return false
+                            }
+                        }
+                        this.$router.push({ path: this.tagWel.value })
+                        loading.close()
+                    }).catch(() => {
+                        loading.close()
+                        this.refreshCode()
+                    })
                 }
-              }
-              this.$router.push({path: this.tagWel.value});
-              loading.close();
-            }).catch(() => {
-              loading.close();
-              this.refreshCode();
-            });
-          }
-        });
-      },
-      getTenant() {
-        let domain = getTopUrl();
-        // 临时指定域名,方便测试
-        //domain = "https://bladex.cn";
-        info(domain).then(res => {
-          const data = res.data;
-          if (data.success && data.data.tenantId) {
-            this.tenantMode = false;
-            this.loginForm.tenantId = data.data.tenantId;
-            this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})`;
-          }
-        })
-      }
+            })
+        },
+        getTenant () {
+            let domain = getTopUrl()
+            // 临时指定域名,方便测试
+            //domain = "https://bladex.cn";
+            info(domain).then(res => {
+                const data = res.data
+                if (data.success && data.data.tenantId) {
+                    this.tenantMode = false
+                    this.loginForm.tenantId = data.data.tenantId
+                    this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})`
+                }
+            })
+        }
     }
-  };
+}
 </script>
 
-<style>
-</style>
+<style></style>

--
Gitblit v1.9.3