project-manager-ui/src/views/bst/index/index.vue
2025-03-07 17:40:29 +08:00

108 lines
3.3 KiB
Vue

<template>
<div class="app-container">
<el-row :gutter="12">
<el-col :xs="24" :lg="19" class="mb8">
<el-row :gutter="12" class="mb8">
<el-col :xs="24" :lg="6">
<notice-panel/>
</el-col>
<el-col :xs="24" :lg="18">
<panel-group />
</el-col>
</el-row>
<el-card>
<el-tabs >
<el-tab-pane label="项目列表" lazy v-if="checkPermi(['bst:project:list'])">
<project :hide-columns="projectHideColumns" :init-show-search="false"/>
</el-tab-pane>
<el-tab-pane label="任务列表" lazy v-if="checkPermi(['bst:task:list'])">
<task :hide-columns="taskHideColumns" :init-show-search="false"/>
</el-tab-pane>
<el-tab-pane label="今日完成任务" lazy v-if="checkPermi(['bst:task:list'])">
<task :hide-columns="taskHideColumns" :query="{passDateRange: [today, today], statusList: TaskStatus.complete()}" :init-show-search="false"/>
</el-tab-pane>
<el-tab-pane label="今日新增客户" lazy v-if="checkPermi(['bst:customer:list'])">
<customer :hide-columns="customerHideColumns" :query="{createDate: today}" :init-show-search="false"/>
</el-tab-pane>
</el-tabs>
</el-card>
<!-- <project-list-panel/> -->
</el-col>
<el-col :xs="24" :lg="5">
<el-card class="card-box">
<project-rate-chart/>
</el-card>
<el-card class="card-box">
<month-project-chart height="180px" bar-width="50%"/>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import PanelGroup from '@/views/dashboard/PanelGroup.vue';
import NoticePanel from '@/views/bst/index/components/NoticePanel.vue';
import MonthProjectChart from '@/views/dashboard/MonthProjectChart.vue';
import ProjectRateChart from '@/views/dashboard/ProjectRateChart.vue';
import ProjectListPanel from './components/ProjectListPanel.vue';
import Project from '@/views/bst/project/index.vue';
import Task from '@/views/bst/task/index.vue';
import Customer from '@/views/bst/customer/index.vue';
import { checkPermi } from '@/utils/permission';
import { parseTime } from '@/utils/ruoyi';
import { TaskStatus } from '@/utils/enums';
export default {
name: 'Index',
components: { PanelGroup, NoticePanel, MonthProjectChart, ProjectRateChart, ProjectListPanel, Project, Task, Customer },
data() {
return {
TaskStatus,
today: parseTime(new Date(), '{y}-{m}-{d}'),
projectHideColumns: [
'id',
'no',
'status',
'customerName',
'expireTime',
'expectedCompleteDate',
'maintenanceEndDate',
'ownerName',
'followName',
'amount',
'receivedAmount',
'operationAmount',
'remark',
'createTime'
],
taskHideColumns: [
'id',
'no',
'status',
'level',
'type',
'createId',
'createName',
'createTime',
'remark',
'submitCount',
'passCount',
],
customerHideColumns: [
'id',
'code',
'source',
'followName',
'remark',
'createName',
'createTime'
],
}
},
methods: {
checkPermi,
}
}
</script>