From 9f59b404ac029e4679df6eb75d3edf84f4e39129 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 30 May 2024 19:31:29 +0800
Subject: [PATCH] E呼即办优化

---
 src/page/index/top/index.vue |  458 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 243 insertions(+), 215 deletions(-)

diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index 8f2a921..5d99834 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -1,17 +1,17 @@
 <template>
-    <div class="avue-top">
-        <div class="top-bar__left">
-            <div class="avue-breadcrumb" :class="[{ 'avue-breadcrumb--active': isCollapse }]" v-if="showCollapse">
-                <i class="icon-navicon" @click="setCollapse"></i>
-            </div>
-        </div>
-        <div class="top-bar__title">
-            <div class="top-bar__item top-bar__item--show" v-if="showMenu">
-                <top-menu ref="topMenu"></top-menu>
-            </div>
-        </div>
-        <div class="top-bar__right">
-            <!-- <el-tooltip v-if="showColor"
+  <div class="avue-top">
+    <div class="top-bar__left">
+      <div class="avue-breadcrumb" :class="[{ 'avue-breadcrumb--active': isCollapse }]" v-if="showCollapse">
+        <i class="icon-navicon" @click="setCollapse"></i>
+      </div>
+    </div>
+    <div class="top-bar__title">
+      <div class="top-bar__item top-bar__item--show" v-if="showMenu">
+        <top-menu ref="topMenu"></top-menu>
+      </div>
+    </div>
+    <div class="top-bar__right">
+      <!-- <el-tooltip v-if="showColor"
                   effect="dark"
                   :content="$t('navbar.color')"
                   placement="bottom">
@@ -19,7 +19,7 @@
           <top-color></top-color>
         </div>
       </el-tooltip> -->
-            <!-- <el-tooltip v-if="showDebug"
+      <!-- <el-tooltip v-if="showDebug"
                   effect="dark"
                   :content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')"
                   placement="bottom">
@@ -27,7 +27,7 @@
           <top-logs></top-logs>
         </div>
       </el-tooltip> -->
-            <!-- <el-tooltip v-if="showLock"
+      <!-- <el-tooltip v-if="showLock"
                   effect="dark"
                   :content="$t('navbar.lock')"
                   placement="bottom">
@@ -35,239 +35,267 @@
           <top-lock></top-lock>
         </div>
       </el-tooltip> -->
-            <div style="position: relative;">
-                <top-search v-show="searchShow"></top-search>
-            </div>
-            <el-tooltip v-if="showTheme" effect="dark" content="搜索" placement="bottom">
-                <div class="top-bar__item top-bar__item--show">
-                    <i style="font-size: 18px;" class="el-icon-search" @click="searchShow = !searchShow"></i>
-                </div>
-            </el-tooltip>
-            <!-- <el-tooltip v-if="showTheme" effect="dark" :content="$t('navbar.theme')" placement="bottom">
+      <div style="position: relative;">
+        <top-search v-show="searchShow"></top-search>
+      </div>
+      <el-tooltip v-if="showTheme" effect="dark" content="搜索" placement="bottom">
+        <div class="top-bar__item top-bar__item--show">
+          <i style="font-size: 18px;" class="el-icon-search" @click="searchShow = !searchShow"></i>
+        </div>
+      </el-tooltip>
+      <!-- <el-tooltip v-if="showTheme" effect="dark" :content="$t('navbar.theme')" placement="bottom">
                 <div class="top-bar__item top-bar__item--show">
                     <top-theme></top-theme>
                 </div>
             </el-tooltip> -->
-            <el-tooltip effect="dark" :content="$t('navbar.notice')" placement="bottom">
-                <div class="top-bar__item top-bar__item--show">
-                    <top-notice></top-notice>
-                </div>
+      <el-tooltip effect="dark" :content="$t('navbar.notice')" placement="bottom">
+        <div class="top-bar__item top-bar__item--show">
+          <top-notice></top-notice>
+        </div>
 
-            </el-tooltip>
-            <!-- <el-tooltip effect="dark"
+      </el-tooltip>
+      <!-- <el-tooltip effect="dark"
                   :content="$t('navbar.language')"
                   placement="bottom">
         <div class="top-bar__item top-bar__item--show">
           <top-lang></top-lang>
         </div>
       </el-tooltip> -->
-            <el-tooltip v-if="showFullScren" effect="dark"
-                :content="isFullScren ? $t('navbar.screenfullF') : $t('navbar.screenfull')" placement="bottom">
-                <div class="top-bar__item">
-                    <i :class="isFullScren ? 'icon-tuichuquanping' : 'icon-quanping'" @click="handleScreen"></i>
-                </div>
-            </el-tooltip>
-            <img class="top-bar__img" :src="topBarImg">
-            <el-dropdown>
-                <span class="el-dropdown-link">
-                    {{ userInfo.userName }}
-                    <i class="el-icon-arrow-down el-icon--right"></i>
-                </span>
-                <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item>
-                        <router-link to="/">{{ $t('navbar.dashboard') }}</router-link>
-                    </el-dropdown-item>
-                    <el-dropdown-item>
-                        <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link>
-                    </el-dropdown-item>
-                    <el-dropdown-item v-if="this.website.switchMode" @click.native="switchDept">{{ $t('navbar.switchDept')
-                    }}
-                    </el-dropdown-item>
-                    <el-dropdown-item @click.native="logout" divided>{{ $t('navbar.logOut') }}
-                    </el-dropdown-item>
-                </el-dropdown-menu>
-            </el-dropdown>
-            <el-dialog title="用户信息选择" append-to-body :visible.sync="userBox" width="350px">
-                <avue-form ref="form" :option="userOption" v-model="userForm" @submit="submitSwitch" />
-            </el-dialog>
+      <el-tooltip v-if="showFullScren" effect="dark"
+        :content="isFullScren ? $t('navbar.screenfullF') : $t('navbar.screenfull')" placement="bottom">
+        <div class="top-bar__item">
+          <i :class="isFullScren ? 'icon-tuichuquanping' : 'icon-quanping'" @click="handleScreen"></i>
         </div>
+      </el-tooltip>
+      <img class="top-bar__img" :src="topBarImg">
+      <el-dropdown>
+        <span class="el-dropdown-link">
+          {{ userInfo.userName }}
+          <i class="el-icon-arrow-down el-icon--right"></i>
+        </span>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item>
+            <router-link to="/">{{ $t('navbar.dashboard') }}</router-link>
+          </el-dropdown-item>
+          <el-dropdown-item>
+            <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link>
+          </el-dropdown-item>
+          <el-dropdown-item v-if="this.website.switchMode" @click.native="switchDept">{{ $t('navbar.switchDept')
+                    }}
+          </el-dropdown-item>
+          <el-dropdown-item @click.native="logout" divided>{{ $t('navbar.logOut') }}
+          </el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+      <el-dialog title="用户信息选择" append-to-body :visible.sync="userBox" width="350px">
+        <avue-form ref="form" :option="userOption" v-model="userForm" @submit="submitSwitch" />
+      </el-dialog>
     </div>
+  </div>
 </template>
 <script>
-import { getStore } from "@/util/store"
-import { setTheme } from "@/util/util"
-import { resetRouter } from '@/router/router'
-import { mapGetters, mapState } from "vuex"
-import { fullscreenToggel, listenfullscreen } from "@/util/util"
-import topLock from "./top-lock"
-import topMenu from "./top-menu"
-import topSearch from "./top-search"
-import topTheme from "./top-theme"
-import topLogs from "./top-logs"
-import topColor from "./top-color"
-import topNotice from './top-notice'
-import topLang from "./top-lang"
+  import {
+    getStore
+  } from "@/util/store"
+  import {
+    setTheme
+  } from "@/util/util"
+  import {
+    resetRouter
+  } from '@/router/router'
+  import {
+    mapGetters,
+    mapState
+  } from "vuex"
+  import {
+    fullscreenToggel,
+    listenfullscreen
+  } from "@/util/util"
+  import topLock from "./top-lock"
+  import topMenu from "./top-menu"
+  import topSearch from "./top-search"
+  import topTheme from "./top-theme"
+  import topLogs from "./top-logs"
+  import topColor from "./top-color"
+  import topNotice from './top-notice'
+  import topLang from "./top-lang"
 
-export default {
+  export default {
     components: {
-        topLock,
-        topMenu,
-        topSearch,
-        topTheme,
-        topLogs,
-        topColor,
-        topNotice,
-        topLang
+      topLock,
+      topMenu,
+      topSearch,
+      topTheme,
+      topLogs,
+      topColor,
+      topNotice,
+      topLang
     },
     name: "top",
-    data () {
-        return {
-            webType: getStore({ name: "webType" }),
-            searchShow: false,
-            userBox: false,
-            userForm: {
-                deptId: '',
-                roleId: ''
+    data() {
+      return {
+        webType: getStore({
+          name: "webType"
+        }),
+        searchShow: false,
+        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"
+              }],
             },
-            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"
-                        }],
-                    },
-                ]
+            {
+              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"
+              }],
             },
-            showMenu: getStore({ name: "showMenu" }),
-            globalUserInfo: getStore({ name: "userInfo" }),
-        }
+          ]
+        },
+        showMenu: getStore({
+          name: "showMenu"
+        }),
+        globalUserInfo: getStore({
+          name: "userInfo"
+        }),
+      }
     },
     filters: {},
-    created () {
-        setTheme('theme-white')
+    created() {
+      setTheme('theme-white')
     },
-    mounted () {
-        listenfullscreen(this.setScreen)
+    mounted() {
+      listenfullscreen(this.setScreen)
     },
     computed: {
-        ...mapState({
-            showDebug: state => state.common.showDebug,
-            showTheme: state => state.common.showTheme,
-            showLock: state => state.common.showLock,
-            showFullScren: state => state.common.showFullScren,
-            showCollapse: state => state.common.showCollapse,
-            showSearch: state => state.common.showSearch,
-            showColor: state => state.common.showColor
-        }),
-        ...mapGetters([
-            "userInfo",
-            "isFullScren",
-            "tagWel",
-            "tagList",
-            "isCollapse",
-            "tag",
-            "logsLen",
-            "logsFlag"
-        ]),
-        topBarImg () {
-            if (this.userInfo.avatar.indexOf('upload') != -1) {
-                return this.website.minioUrl + this.userInfo.avatar
-            } else {
-                return this.userInfo.avatar
-            }
+      ...mapState({
+        showDebug: state => state.common.showDebug,
+        showTheme: state => state.common.showTheme,
+        showLock: state => state.common.showLock,
+        showFullScren: state => state.common.showFullScren,
+        showCollapse: state => state.common.showCollapse,
+        showSearch: state => state.common.showSearch,
+        showColor: state => state.common.showColor
+      }),
+      ...mapGetters([
+        "userInfo",
+        "isFullScren",
+        "tagWel",
+        "tagList",
+        "isCollapse",
+        "tag",
+        "logsLen",
+        "logsFlag"
+      ]),
+      topBarImg() {
+        // console.log("*******this.userInfo*********" + JSON.stringify(this.userInfo))
+        if (this.userInfo.avatar.indexOf('upload') != -1) {
+          return this.website.minioUrl + this.userInfo.avatar
+        } else {
+          return this.userInfo.avatar
         }
+      }
     },
     methods: {
-        handleScreen () {
-            fullscreenToggel()
-        },
-        setCollapse () {
-            this.$store.commit("SET_COLLAPSE")
-        },
-        setScreen () {
-            this.$store.commit("SET_FULLSCREN")
-        },
-        switchDept () {
-            const userId = this.userInfo.user_id
-            const deptColumn = this.findObject(this.userOption.column, "deptId")
-            deptColumn.dicUrl = `/api/blade-system/dept/select?userId=${userId}`
-            deptColumn.display = true
-            const roleColumn = this.findObject(this.userOption.column, "roleId")
-            roleColumn.dicUrl = `/api/blade-system/role/select?userId=${userId}`
-            roleColumn.display = true
-            this.userBox = true
-        },
-        submitSwitch (form, done) {
-            this.$store.dispatch("refreshToken", form).then(() => {
-                this.userBox = false
-                this.$router.push({ path: "/" })
-            })
-            done()
-        },
-        logout () {
-            this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
-                confirmButtonText: this.$t("submitText"),
-                cancelButtonText: this.$t("cancelText"),
-                type: "warning"
-            }).then(() => {
-                this.$store.dispatch("LogOut").then(() => {
-                    resetRouter()
+      handleScreen() {
+        fullscreenToggel()
+      },
+      setCollapse() {
+        this.$store.commit("SET_COLLAPSE")
+      },
+      setScreen() {
+        this.$store.commit("SET_FULLSCREN")
+      },
+      switchDept() {
+        const userId = this.userInfo.user_id
+        const deptColumn = this.findObject(this.userOption.column, "deptId")
+        deptColumn.dicUrl = `/api/blade-system/dept/select?userId=${userId}`
+        deptColumn.display = true
+        const roleColumn = this.findObject(this.userOption.column, "roleId")
+        roleColumn.dicUrl = `/api/blade-system/role/select?userId=${userId}`
+        roleColumn.display = true
+        this.userBox = true
+      },
+      submitSwitch(form, done) {
+        this.$store.dispatch("refreshToken", form).then(() => {
+          this.userBox = false
+          this.$router.push({
+            path: "/"
+          })
+        })
+        done()
+      },
+      logout() {
+        this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
+          confirmButtonText: this.$t("submitText"),
+          cancelButtonText: this.$t("cancelText"),
+          type: "warning"
+        }).then(() => {
+          this.$store.dispatch("LogOut").then(() => {
+            resetRouter()
 
-                    if (this.webType == 'default') {
-                        this.$router.push({ path: "/login" })
-                    } else if (this.webType == 'govern') {
-                        this.$router.push({ path: "/governLogin" })
-                    }  else if (this.webType == 'ecall'){
-                        this.$router.push({ path: "/ecallLogin" })
-                    } else {
-                        this.$router.push({ path: "/tenementLogin" })
-                    }
-                })
-            })
-        }
+            if (this.webType == 'default') {
+              this.$router.push({
+                path: "/login"
+              })
+            } else if (this.webType == 'govern') {
+              this.$router.push({
+                path: "/governLogin"
+              })
+            } else if (this.webType == 'ecall') {
+              this.$router.push({
+                path: "/ecallLogin"
+              })
+            } else {
+              this.$router.push({
+                path: "/tenementLogin"
+              })
+            }
+          })
+        })
+      }
     }
-}
+  }
 </script>
 
 <style lang="scss" scoped>
-.noticeBtn {
+  .noticeBtn {
     cursor: pointer;
-}
+  }
 
-.top-bar-item-search {
+  .top-bar-item-search {
     height: 100%;
     display: flex;
     align-items: center;
@@ -277,7 +305,7 @@
     width: 40px;
 
     i {
-        cursor: pointer;
+      cursor: pointer;
     }
-}
-</style>
+  }
+</style>
\ No newline at end of file

--
Gitblit v1.9.3