体育中心营业端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

205 lines
7.3 KiB

<template>
<el-container class="w-screen h-screen relative">
<div class="w-screen h-screen absolute left-0 top-0 bg"/>
<el-header class="z-10">
<div class="flex justify-between items-center bg-white w-full px-4 rounded-full mt-2">
<el-space>
<div class="flex flex-col justify-start items-start z-10 text-sm">
<span>欢迎您, {{ username }}</span>
<span class="mt-2">{{ time }}</span>
</div>
<div class="ml-4 flex justify-start items-center" v-if="activeIndex !== 'Index'">
<div
class="cursor-pointer flex flex-col justify-center items-center p-1 rounded my-0.5 mx-2 bg-emerald-400 text-white"
style="width: 100px" @click="showNewCard = true">
<el-icon size="32">
<CreditCard></CreditCard>
</el-icon>
<span class="text-sm">开卡</span>
</div>
<div
class="cursor-pointer flex flex-col justify-center items-center p-1 rounded my-0.5 mx-2 bg-emerald-400 text-white"
style="width: 100px" @click="showReNewCard = true">
<el-icon size="32">
<Money></Money>
</el-icon>
<span class="text-sm">续卡</span>
</div>
<div
class="cursor-pointer flex flex-col justify-center items-center p-1 rounded my-0.5 mx-2 bg-emerald-400 text-white"
style="width: 100px" @click="showSiteList = true">
<el-icon size="32">
<Football></Football>
</el-icon>
<span class="text-sm">预定场地</span>
</div>
<div
class="cursor-pointer flex flex-col justify-center items-center p-1 rounded my-0.5 mx-2 bg-emerald-400 text-white"
style="width: 100px" @click="showDeposit = true">
<el-icon size="32">
<Sell></Sell>
</el-icon>
<span class="text-sm">收取押金</span>
</div>
<!-- <el-button round plain type="primary" @click="showNewCard = true">开卡</el-button>-->
<!-- <el-button round plain type="primary" @click="showReNewCard = true">续卡</el-button>-->
<!-- <el-button round plain type="primary" @click="showSiteList = true">预定场地</el-button>-->
<!-- <el-button round plain type="success" @click="showDeposit = true">收取押金</el-button>-->
<!-- <el-button round plain type="success">我的报表</el-button>-->
<!-- <el-button round plain type="success">转卡服务</el-button>-->
</div>
</el-space>
<div class="rounded-full pr-10">
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
:ellipsis="false"
@select="selectMenu"
active-text-color="#27AB49"
>
<el-menu-item index="Index">主页</el-menu-item>
<el-menu-item index="IcCard">卡号列表</el-menu-item>
<el-menu-item index="ReNewIcCard">续卡列表</el-menu-item>
<el-menu-item index="Order">订单列表</el-menu-item>
<el-menu-item index="UsersVip">VIP购卡记录列表</el-menu-item>
<!-- <el-sub-menu index="4">-->
<!-- <template #title>电子卡列表</template>-->
<!-- <el-menu-item index="UsersVip">VIP购卡记录列表</el-menu-item>-->
<!-- <el-menu-item index="VipCardLog">VIP卡消费流水</el-menu-item>-->
<!-- </el-sub-menu>-->
<el-menu-item index="Deposit">押金列表</el-menu-item>
<el-menu-item index="ChangePwd">修改密码</el-menu-item>
<el-menu-item index="Logout">
<el-button type="danger" size="large" round>退出登录</el-button>
</el-menu-item>
<el-menu-item>
<span class="text-sm">当前版本:{{ version }}</span>
</el-menu-item>
</el-menu>
</div>
</div>
</el-header>
<el-main class="flex flex-col z-20" style="padding: 0">
<keep-alive>
<component ref="ComponentRef" :is="activeIndex" :keep-alive="true" class="w-full"/>
</keep-alive>
</el-main>
</el-container>
<NewCard v-model="showNewCard" v-if="showNewCard"></NewCard>
<ReNewCard v-model="showReNewCard" v-if="showReNewCard"></ReNewCard>
<SelectSite v-model="showSiteList" v-if="showSiteList"></SelectSite>
<ChangePwd v-model="showChangePwd" v-if="showChangePwd"></ChangePwd>
<Deposite v-model="showDeposit" v-if="showDeposit"></Deposite>
</template>
<script>
import Index from '@/pages/index/Index.vue'
import Order from '@/pages/Order.vue'
import IcCard from '@/pages/IcCard.vue'
import ReNewIcCard from '@/pages/ReNewIcCard.vue'
import Deposit from '@/pages/Deposit.vue'
import UsersVip from '@/pages/UsersVip.vue'
import VipCardLog from '@/pages/VipCardLog.vue'
export default {
components: {
Index,
Order,
IcCard,
ReNewIcCard,
Deposit,
UsersVip,
VipCardLog,
}
}
</script>
<script setup>
import {ref, watch, onMounted, nextTick, reactive} from 'vue'
import {clearUserInfo, getUserInfo} from '@/api/common.js'
import {useRoute, useRouter} from 'vue-router'
import {ElMessageBox} from "element-plus";
import dayjs from "dayjs";
import NewCard from "@/components/NewCard.vue";
import ReNewCard from "@/components/ReNewCard.vue";
import SelectSite from "@/components/SelectSite.vue";
import ChangePwd from "@/components/ChangePwd.vue";
import Deposite from "@/components/Deposite.vue";
const version = ref('250119')
const route = useRoute()
const router = useRouter()
const currentView = ref(null)
const activeIndex = ref('Index')
const username = getUserInfo().username
const time = ref()
const setCurrentTime = () => {
time.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
setTimeout(() => {
setCurrentTime()
}, 1000)
}
setCurrentTime()
watch(route, (path) => {
currentView.value = path.path
activeIndex.value = currentView.value.split('/')[1]
console.log(activeIndex.value)
// getDotData()
})
const showChangePwd = ref(false)
const selectMenu = menu => {
switch (menu) {
case 'Logout' : {
ElMessageBox.confirm('您确定要退出登录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
clearUserInfo()
router.push(`/Login`)
}).catch(() => {
// console.log('取消');
});
}
break;
case 'ChangePwd' : {
showChangePwd.value = true
}
break;
default : {
router.push(`/${menu}`)
}
}
}
const showNewCard = ref(false)
const showReNewCard = ref(false)
const showSiteList = ref(false)
const showDeposit = ref(false)
onMounted(async () => {
if (!getUserInfo().token) {
await clearUserInfo()
await router.push(`/Login`)
}
const urlArr = window.location.href.split('/')
activeIndex.value = urlArr[urlArr.length - 1]
if (!activeIndex.value) await router.push(`/Index`)
})
</script>
<style scoped>
.bg {
z-index: 0;
background: linear-gradient(to bottom, #27ABAB44, #27AB4944), url("@/assets/bg.jpg") no-repeat 100% 100%;
opacity: .9;
}
</style>