| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- <template>
- <div class="box-item">
- <el-menu
- class="el-menu-vertical-demo"
- text-color="#fff"
- active-color="#000"
- :default-active="activeIndex"
- :collapse="menuClose"
- @select="handleSelect"
- >
- <!-- <div class="logo">logo</div> -->
- <div class="logo el-menu-item">
- <el-icon :size="20"
- ><img src="@/assets/logo.png" style="width: 30px; height: 24px"
- /></el-icon>
- </div>
- <el-menu-item :index="9">
- <img
- v-if="activeIndex == 9"
- src="@/assets/busqueryA.png"
- alt=""
- style="width: 22px; height: 22px; margin: 0 18px"
- />
- <img
- v-else
- src="@/assets/busquery.png "
- alt=""
- style="width: 22px; height: 22px; margin: 0 18px"
- />
- <span>车辆调度</span>
- </el-menu-item>
- <el-menu-item :index="1">
- <img v-if="activeIndex == 1" src="@/assets/statementA.png" alt="" />
- <img v-else src="@/assets/statement.png " alt="" />
- <span>报表统计</span>
- </el-menu-item>
- <el-menu-item :index="2">
- <img v-if="activeIndex == 2" src="@/assets/staffA.png" alt="" />
- <img v-else src="@/assets/staff.png" alt="" />
- <span>驾驶员管理</span>
- </el-menu-item>
- <el-menu-item :index="11">
- <img
- v-if="activeIndex == 11"
- style="width: 22px; height: 22px; margin: 0 20px 0 18px"
- src="@/assets/reportA.png"
- alt=""
- />
- <img
- v-else
- style="width: 22px; height: 22px; margin: 0 20px 0 18px"
- src="@/assets/report.png"
- alt=""
- />
- <span>报备管理</span>
- </el-menu-item>
- <el-menu-item :index="3">
- <img v-if="activeIndex == 3" src="@/assets/accountA.png" alt="" />
- <img v-else src="@/assets/account.png" alt="" />
- <span>账号管理</span>
- </el-menu-item>
- <el-menu-item :index="4">
- <img v-if="activeIndex == 4" src="@/assets/carA.png" alt="" />
- <img v-else src="@/assets/car.png" alt="" />
- <span>车辆管理</span>
- </el-menu-item>
- <el-menu-item :index="5">
- <img v-if="activeIndex == 5" src="@/assets/pathA.png" alt="" />
- <img v-else src="@/assets/path.png" alt="" />
- <span>路线管理</span>
- </el-menu-item>
- <el-menu-item :index="6">
- <img v-if="activeIndex == 6" src="@/assets/classesA.png" alt="" />
- <img v-else src="@/assets/classes.png" alt="" />
- <span>班次管理</span>
- </el-menu-item>
- <el-menu-item :index="7">
- <img v-if="activeIndex == 7" src="@/assets/blacklistA.png" alt="" />
- <img v-else src="@/assets/blacklist.png" alt="" />
- <span>黑名单管理</span>
- </el-menu-item>
- <el-menu-item :index="10">
- <img
- v-if="activeIndex == 10"
- src="@/assets/logA.png"
- alt=""
- style="width: 21px; height: 21px; margin: 0 20px"
- />
- <img
- v-else
- src="@/assets/log.png"
- alt=""
- style="width: 21px; height: 21px; margin: 0 20px"
- />
- <span>操作日志</span>
- </el-menu-item>
- <el-sub-menu index="1">
- <template #title>
- <el-icon style="font-size: 28px;"><location /></el-icon>
- <span>顺风车模块</span>
- </template>
- <el-sub-menu index="1-4">
- <template #title>顺风车司机</template>
- <el-menu-item index="1-4-1">司机思考</el-menu-item>
- <el-menu-item index="1-3">司机管理</el-menu-item>
- </el-sub-menu>
- <el-menu-item index="1-3">路线管理</el-menu-item>
- </el-sub-menu>
- <el-menu-item :index="8">
- <img
- v-if="activeIndex == 8"
- src="@/assets/systemA.png"
- alt=""
- style="width: 20px; height: 20px"
- />
- <img
- v-else
- src="@/assets/system.png"
- alt=""
- style="width: 20px; height: 20px"
- />
- <span>系统设置</span>
- </el-menu-item>
- </el-menu>
- </div>
- </template>
- <script setup>
- import { ref, onBeforeMount, onMounted, watch, reactive } from "vue";
- import { useStore } from "vuex";
- import { useRouter } from "vue-router";
- const store = useStore();
- const router = useRouter();
- const menuClose = ref(false);
- const activeIndex = ref(9);
- const acitveItems = reactive({ list: [] });
- watch(
- () => store.state.user.collapse,
- (newValue, oldValue) => {
- menuClose.value = newValue;
- }
- );
- watch(
- () => store.state.user.activeIndex,
- (newValue, oldValue) => {
- console.log(newValue);
- activeIndex.value = newValue;
- }
- );
- const handleSelect = (key) => {
- store.commit("indexUp", key);
- activeIndex.value = key;
- sessionStorage.setItem("sidevarItem", key);
- if (activeIndex.value == 1) {
- router.push({
- path: `/schoolBus/statement`,
- });
- }
- if (activeIndex.value == 2) {
- router.push({
- path: `/schoolBus/staff`,
- });
- }
- if (activeIndex.value == 3) {
- router.push({
- path: `/schoolBus/account`,
- });
- }
- if (activeIndex.value == 4) {
- router.push({
- path: `/schoolBus/bus`,
- });
- }
- if (activeIndex.value == 6) {
- router.push({
- path: `/schoolBus/classes`,
- });
- }
- if (activeIndex.value == 5) {
- router.push({
- path: `/schoolBus/buspath`,
- });
- }
- if (activeIndex.value == 8) {
- router.push({
- path: `/schoolBus/system`,
- });
- }
- if (activeIndex.value == 7) {
- router.push({
- path: `/schoolBus/blacklist`,
- });
- }
- if (activeIndex.value == 9) {
- router.push({
- path: `/schoolBus/busquery`,
- });
- }
- if (activeIndex.value == 10) {
- router.push({
- path: `/schoolBus/log`,
- });
- }
- if (activeIndex.value == 11) {
- router.push({
- path: `/schoolBus/report`,
- });
- }
- if (activeIndex.value == 0) {
- router.push({
- path: `/schoolBus/news`,
- });
- }
- };
- onBeforeMount(() => {
- activeIndex.value = Number(sessionStorage.getItem("sidevarItem"));
- store.commit("indexUp", Number(sessionStorage.getItem("sidevarItem")));
- });
- </script>
- <style lang="scss" scoped>
- .el-menu-vertical-demo:not(.el-menu--collapse) {
- width: 220px;
- // min-height: 400px;
- }
- .box-item {
- // width: 220px !important;
- height: calc(100vh);
- }
- .el-menu {
- width: 100%;
- height: 100%;
- overflow: auto;
- background: linear-gradient(
- 0deg,
- rgba(134, 132, 255, 1) 0%,
- rgba(60, 80, 232, 1) 100%
- );
- box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.16);
- .logo {
- height: 65px;
- color: rgb(255, 255, 255);
- cursor: default;
- display: flex;
- justify-content: space-around;
- align-items: center;
- }
- .logo:hover {
- background-color: transparent !important;
- }
- .el-menu-item {
- // border-left: 3px solid rgba(248, 220, 38);
- padding: 0 10px;
- }
- .el-menu-item:hover {
- background-color: rgba(255, 255, 255, 0.4);
- }
- .el-menu-item.is-active:hover {
- background-color: #fff;
- }
- .el-menu-item img {
- width: 18px;
- height: 18px;
- margin: 0 20px;
- }
- :deep(.el-sub-menu) {
- .el-sub-menu__title:hover{
- background-color: rgba(255, 255, 255, 0.4);
- }
- .el-sub-menu__title{
- display: flex;
- align-items: center;
- .el-icon{
- margin: 0 18px;
- }
- .el-sub-menu__icon-arrow{
- margin: 0 0 0 0px;
- top: 40%;
- }
- }
- .el-menu {
- background-color: transparent;
- }
- .el-menu--inline{
- .el-sub-menu{
- .el-sub-menu__title{
- padding-left: 40px;
- }
- }
- .el-menu-item{
- padding-left: 40px;
- }
- }
- }
- .el-sub-menu.is-active:hover {
- background-color: #fff;
- }
- }
- .el-menu--collapse{
- :deep(.el-sub-menu){
- display: flex;
- align-items: center;
- justify-content: center;
- .el-sub-menu__title{
- padding: 0;
- }
- }
- }
- .el-menu-item.is-active {
- box-sizing: border-box;
- background-color: #fff;
- color: #000;
- }
- </style>
|