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.
173 lines
5.5 KiB
173 lines
5.5 KiB
<template>
|
|
<div class="mb-60">
|
|
<van-tabs
|
|
v-model:active="active"
|
|
shrink
|
|
line-width="60px"
|
|
color="#59B4FF"
|
|
title-active-color="#59B4FF"
|
|
>
|
|
<van-tab title="财务管理">
|
|
<!-- 财务管理页面 -->
|
|
<div class="bg-white p-4 mt-5 text-gray-500 flex-col">
|
|
<div>
|
|
<span class="font-semibold" id="finance-manage">财务管理</span>
|
|
<span class="ml-2">对项目预算、奖金进行配置</span>
|
|
</div>
|
|
<Search />
|
|
<FinanceManage />
|
|
</div>
|
|
<!-- 财务审批页面 -->
|
|
<div class="bg-white p-4 mt-5 text-gray-500 flex-col">
|
|
<div>
|
|
<span class="font-semibold" id="finance-audit">财务审批</span>
|
|
<span class="ml-2">对员工提交的申请进行审批</span>
|
|
</div>
|
|
<Search />
|
|
<FinanceExamine />
|
|
</div>
|
|
<!-- 财务统计页面 -->
|
|
<div class="bg-white p-4 mt-5 text-gray-500 flex-col">
|
|
<div>
|
|
<span class="font-semibold" id="finance-statistical">财务统计</span>
|
|
<span class="ml-2">财务明细统计查看</span>
|
|
</div>
|
|
<!-- 任务支出统计 -->
|
|
<div class="h-64 overflow-hidden">
|
|
<div class="mt-5 flex justify-between">
|
|
<div>
|
|
<span class="inline-block w-2 h-2 border-2 border-blue-400 rounded-full mr-3"></span>
|
|
<span>任务支出统计</span>
|
|
</div>
|
|
<div>
|
|
<van-button :type="taskState ? 'primary' : 'default'" size="mini" @click="taskState = true">图表</van-button>
|
|
<van-button :type="!taskState ? 'primary' : 'default'" size="mini" @click="taskState = false">表格</van-button>
|
|
</div>
|
|
</div>
|
|
<!-- 任务支出统计的图表展示 -->
|
|
<div v-show="taskState">
|
|
<!-- <van-empty description="暂无图表数据信息" /> -->
|
|
<RingEcharts class="w-full h-full" id="taskEcharts"/>
|
|
</div>
|
|
<!-- 任务支出统计的表格展示 -->
|
|
<div v-show="!taskState">
|
|
<FinanceExamine />
|
|
</div>
|
|
</div>
|
|
<!-- 名目支出统计 -->
|
|
<div class="h-64 overflow-hidden">
|
|
<div class="mt-5 flex justify-between">
|
|
<div>
|
|
<span class="inline-block w-2 h-2 border-2 border-blue-400 rounded-full mr-3"></span>
|
|
<span>名目支出统计</span>
|
|
</div>
|
|
<div>
|
|
<van-button :type="nameState ? 'primary' : 'default'" size="mini" @click="nameState = true">图表</van-button>
|
|
<van-button :type="!nameState ? 'primary' : 'default'" size="mini" @click="nameState = false">表格</van-button>
|
|
</div>
|
|
</div>
|
|
<!-- 名目支出统计的图表展示 -->
|
|
<div v-show="nameState">
|
|
<!-- <van-empty description="暂无图表数据信息" /> -->
|
|
<RingEcharts class="w-full h-full" id="nameEcharts"/>
|
|
</div>
|
|
<!-- 名目支出统计的表格展示 -->
|
|
<div v-show="!nameState">
|
|
<FinanceExamine />
|
|
</div>
|
|
</div>
|
|
<!-- 成员财务图 -->
|
|
<div class="h-64 overflow-hidden">
|
|
<div>
|
|
<span class="inline-block w-2 h-2 border-2 border-blue-400 rounded-full mr-3"></span>
|
|
<span>成员财务图</span>
|
|
</div>
|
|
<RingEcharts class="w-full h-full" id="memberEcharts"/>
|
|
</div>
|
|
<!-- 时间财务图 -->
|
|
<div class="h-72 overflow-hidden">
|
|
<div>
|
|
<span class="inline-block w-2 h-2 border-2 border-blue-400 rounded-full mr-3"></span>
|
|
<span>时间财务图</span>
|
|
</div>
|
|
<BarEcharts class="w-full h-full" />
|
|
</div>
|
|
</div>
|
|
</van-tab>
|
|
<van-tab title="角色管理">角色管理</van-tab>
|
|
<van-tab title="任务管理">任务管理</van-tab>
|
|
<van-tab title="成员管理">成员管理</van-tab>
|
|
</van-tabs>
|
|
|
|
<div class="menu">
|
|
<a href="#finance-manage">财务管理</a>
|
|
<a href="#finance-audit">财务审批</a>
|
|
<a href="#finance-statistical">财务统计</a>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
layout: 'default',
|
|
};
|
|
</script>
|
|
|
|
<script setup>
|
|
import { ref, onMounted, nextTick } from 'vue';
|
|
const active = ref(0);
|
|
const taskState = ref(true);
|
|
const nameState = ref(true);
|
|
|
|
onMounted(async () => {
|
|
scrollToElementByHash();
|
|
});
|
|
|
|
// 根据hash值跳转到指定位置
|
|
async function scrollToElementByHash() {
|
|
await nextTick();
|
|
const hash = window.location.hash;
|
|
if (!hash) return;
|
|
const scrollDom = document.querySelector(hash);
|
|
document.body.scrollTop = scrollDom.offsetTop;
|
|
document.documentElement.scrollTop = scrollDom.offsetTop;
|
|
window.pageYOffset = scrollDom.offsetTop;
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="less">
|
|
.van-nav-bar__content {
|
|
background-color: #eee;
|
|
}
|
|
.van-icon-arrow-left:before {
|
|
color: #000;
|
|
}
|
|
</style>
|
|
<style scoped lang="less">
|
|
.menu {
|
|
position: fixed;
|
|
right: 0;
|
|
bottom: 15px;
|
|
z-index: 99;
|
|
}
|
|
.menu a {
|
|
display: block;
|
|
width: 72px;
|
|
color: #fff;
|
|
background: rgba(25, 137, 250, 0.6);
|
|
padding: 8px 20px;
|
|
border-radius: 30px 0 0 30px;
|
|
margin-bottom: 15px;
|
|
}
|
|
.button{
|
|
padding: 0px;
|
|
margin:0px;
|
|
}
|
|
.van-button--mini{
|
|
padding: 0.5rem 1rem;
|
|
}
|
|
.van-button--mini+.van-button--mini{
|
|
margin-left: 0px;
|
|
}
|
|
</style>
|
|
|