From ae6d20ec4a30b7e796feb05958bcfc80e55f247b Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 20 七月 2023 15:21:45 +0800 Subject: [PATCH] 整合代码部署 --- Source/UBCS-WEB/dist/src/page/index/top/index.vue | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 256 insertions(+), 0 deletions(-) diff --git a/Source/UBCS-WEB/dist/src/page/index/top/index.vue b/Source/UBCS-WEB/dist/src/page/index/top/index.vue new file mode 100644 index 0000000..5b10db3 --- /dev/null +++ b/Source/UBCS-WEB/dist/src/page/index/top/index.vue @@ -0,0 +1,256 @@ +<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> + <span class="top-bar__item" + v-if="showSearch"> + <top-search></top-search> + </span> + </div> + <div class="top-bar__right"> + <el-tooltip v-if="showColor" + effect="dark" + :content="$t('navbar.color')" + placement="bottom"> + <div class="top-bar__item"> + <top-color></top-color> + </div> + </el-tooltip> + <el-tooltip v-if="showDebug" + effect="dark" + :content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')" + placement="bottom"> + <div class="top-bar__item"> + <top-logs></top-logs> + </div> + </el-tooltip> + <el-tooltip v-if="showLock" + effect="dark" + :content="$t('navbar.lock')" + placement="bottom"> + <div class="top-bar__item"> + <top-lock></top-lock> + </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> + <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="userInfo.avatar"> + <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 {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 { + components: { + topLock, + topMenu, + topSearch, + topTheme, + topLogs, + topColor, + topNotice, + topLang + }, + name: "top", + data() { + return { + 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/ubcs-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/ubcs-system/role/select', + span: 24, + display: false, + rules: [{ + required: true, + message: "璇烽�夋嫨瑙掕壊", + trigger: "blur" + }], + }, + ] + } + }; + }, + filters: {}, + created() { + }, + 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, + showMenu: state => state.common.showMenu, + showColor: state => state.common.showColor + }), + ...mapGetters([ + "userInfo", + "isFullScren", + "tagWel", + "tagList", + "isCollapse", + "tag", + "logsLen", + "logsFlag" + ]) + }, + 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/ubcs-system/dept/select?userId=${userId}`; + deptColumn.display = true; + const roleColumn = this.findObject(this.userOption.column, "roleId"); + roleColumn.dicUrl = `/api/ubcs-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(); + this.$router.push({path: "/login"}); + }); + }); + } + } + }; +</script> + +<style lang="scss" scoped> +</style> -- Gitblit v1.9.3