|
@@ -3,248 +3,49 @@
|
|
|
<div class="leftBox">
|
|
|
<div class="topBox">
|
|
|
<div>
|
|
|
- <div class="header">
|
|
|
- <ul>
|
|
|
- <li class="active">公司动态<i class="corner">4</i></li>
|
|
|
- <li>通知公告</li>
|
|
|
- <li>学习中心</li>
|
|
|
- </ul>
|
|
|
- <span class="subTitle">
|
|
|
- <span>更多</span>
|
|
|
- <i class="arrowRight"><ArrowRightBold /> </i>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <ul>
|
|
|
- <li>
|
|
|
- <img src="" />
|
|
|
- <p class="title">万维空间17个项目获土地利用优秀成...</p>
|
|
|
- <p class="time">2023-10-30</p>
|
|
|
- <p class="desc">
|
|
|
- 近日,浙江省土地学会发布《关于开展2023年土地利用优秀成果奖评选的通知》...
|
|
|
- </p>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <img src="" />
|
|
|
- <p class="title">万维空间17个项目获土地利用优秀成...</p>
|
|
|
- <p class="time">2023-10-30</p>
|
|
|
- <p class="desc">
|
|
|
- 近日,浙江省土地学会发布《关于开展2023年土地利用优秀成果奖评选的通知》...
|
|
|
- </p>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
+ <CardItemOne />
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="header">
|
|
|
- <span class="title">常用功能</span>
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <ul>
|
|
|
- <li v-for="(item, index) in functions" :key="index">
|
|
|
- <img src="" />
|
|
|
- <p class="title">{{ item['title'] }}</p>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
+ <CardItemTwo />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottomBox">
|
|
|
<div>
|
|
|
- <ul>
|
|
|
- <li v-for="(item, index) in signs" :key="index">
|
|
|
- <span class="circle">{{ item['icon'] }}</span>
|
|
|
- <div>
|
|
|
- <p class="title">{{ item['title'] }}</p>
|
|
|
- <div class="numberBox">
|
|
|
- <span class="number">{{ item['value'] }}</span>
|
|
|
- <span class="unit">{{ item['unit'] }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <CardItemThree />
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="header">
|
|
|
- <span class="title" style="font-size: 17px">近五年签约历史趋势</span>
|
|
|
- </div>
|
|
|
- <div class="content" ref="echartRef"></div>
|
|
|
+ <CardItemFour />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="rightBox">
|
|
|
<div class="calendarBox">
|
|
|
- <el-calendar ref="calendar">
|
|
|
- <template #header="{ date }">
|
|
|
- <div class="calendarHeader">
|
|
|
- <el-icon class="icon1" @click="selectDate('prev-month')"><ArrowLeftBold /></el-icon>
|
|
|
- <span class="title">{{ date }}</span>
|
|
|
- <el-icon class="icon1" @click="selectDate('next-month')"><ArrowRightBold /></el-icon>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-calendar>
|
|
|
+ <CardItemFive />
|
|
|
</div>
|
|
|
<div>
|
|
|
- <ul>
|
|
|
- <li>
|
|
|
- <p class="number" style="color: #f83535">8</p>
|
|
|
- <p class="title">待办</p>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <p class="number">8</p>
|
|
|
- <p class="title">已办</p>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <p class="number">8</p>
|
|
|
- <p class="title">草稿</p>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <CardItemSix />
|
|
|
</div>
|
|
|
<div>
|
|
|
- <div class="header">
|
|
|
- <span class="title">回款信息</span>
|
|
|
- <span class="subTitle">
|
|
|
- <span>更多</span>
|
|
|
- <i class="arrowRight"><ArrowRightBold /> </i>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <ul>
|
|
|
- <li v-for="(v, i) in 20" :key="i">
|
|
|
- <div>
|
|
|
- <span>已回款:</span>
|
|
|
- <span>¥6200</span>
|
|
|
- <span>生态修复行动方案</span>
|
|
|
- </div>
|
|
|
- <span>10/28</span>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div></div
|
|
|
- >
|
|
|
+ <CardItemSeven />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
-import * as echarts from 'echarts'
|
|
|
-import type { CalendarDateType, CalendarInstance } from 'element-plus'
|
|
|
-
|
|
|
-const calendar = ref<CalendarInstance>()
|
|
|
-const selectDate = (val: CalendarDateType) => {
|
|
|
- if (!calendar.value) return
|
|
|
- calendar.value.selectDate(val)
|
|
|
-}
|
|
|
+import CardItemOne from './components/CardItemOne.vue'
|
|
|
+import CardItemTwo from './components/CardItemThree.vue'
|
|
|
+import CardItemThree from './components/CardItemThree.vue'
|
|
|
+import CardItemFour from './components/CardItemFour.vue'
|
|
|
+import CardItemFive from './components/CardItemFive.vue'
|
|
|
+import CardItemSix from './components/CardItemSix.vue'
|
|
|
+import CardItemSeven from './components/CardItemSeven.vue'
|
|
|
|
|
|
defineOptions({ name: 'Home' })
|
|
|
-onMounted(() => {})
|
|
|
-
|
|
|
-const functions = ref<
|
|
|
- {
|
|
|
- title: string
|
|
|
- icon: any
|
|
|
- key: string
|
|
|
- }[]
|
|
|
->([
|
|
|
- { title: '驾驶舱', icon: '', key: '' },
|
|
|
- { title: '差旅报销', icon: '', key: '' },
|
|
|
- { title: '普通报销', icon: '', key: '' },
|
|
|
- { title: '用款申请', icon: '', key: '' },
|
|
|
- { title: '合同签订', icon: '', key: '' },
|
|
|
- { title: '开票申请', icon: '', key: '' },
|
|
|
- { title: '添加功能', icon: '', key: '' }
|
|
|
-])
|
|
|
-const signs = ref<
|
|
|
- {
|
|
|
- icon: string
|
|
|
- title: string
|
|
|
- value: number
|
|
|
- unit: string
|
|
|
- }[]
|
|
|
->([
|
|
|
- { icon: '签', title: '2023年度签约', value: 15005.65, unit: '万元' },
|
|
|
- { icon: '回', title: '2023年度回款', value: 15005.65, unit: '万元' },
|
|
|
- { icon: '净', title: '2023年度净合同额', value: 15005.65, unit: '万元' },
|
|
|
- { icon: '拓', title: '2023年度新开拓', value: 15005.65, unit: '万元' },
|
|
|
- { icon: '应', title: '总应收款', value: 15005.65, unit: '万元' },
|
|
|
- { icon: '余', title: '总合同余额', value: 15005.65, unit: '万元' }
|
|
|
-])
|
|
|
-
|
|
|
-const category: number[] = []
|
|
|
-const barData: number[] = []
|
|
|
-const dottedBase: Date = new Date()
|
|
|
-
|
|
|
-for (var i = 0; i < 10; i++) {
|
|
|
- category.push(dottedBase.getFullYear() - 1)
|
|
|
- var b = Math.random() * 200
|
|
|
- barData.push(b)
|
|
|
-}
|
|
|
-
|
|
|
-// option
|
|
|
-const echartOption: echarts.EChartsOption = {
|
|
|
- title: [
|
|
|
- {
|
|
|
- show: true,
|
|
|
- subtext: '单位:万元',
|
|
|
- subtextStyle: {
|
|
|
- color: '#8B969C',
|
|
|
- lineHeight: 20
|
|
|
- },
|
|
|
- right: 20,
|
|
|
- top: 5
|
|
|
- }
|
|
|
- ],
|
|
|
- grid: {
|
|
|
- left: '10%',
|
|
|
- right: '5%',
|
|
|
- bottom: '16%'
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- data: category,
|
|
|
- axisLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- }
|
|
|
- },
|
|
|
- yAxis: {
|
|
|
- splitLine: {
|
|
|
- show: true,
|
|
|
- lineStyle: {
|
|
|
- type: 'dashed',
|
|
|
- color: '#E3E3E3'
|
|
|
- }
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- lineStyle: {
|
|
|
- color: '#666'
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: 'bar',
|
|
|
- type: 'bar',
|
|
|
- barWidth: 20,
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- barBorderRadius: 10,
|
|
|
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
- { offset: 0, color: '#7BB5FA' },
|
|
|
- { offset: 1, color: '#448ADC' }
|
|
|
- ])
|
|
|
- }
|
|
|
- },
|
|
|
- data: barData
|
|
|
- }
|
|
|
- ]
|
|
|
-}
|
|
|
-const echartRef = ref(null)
|
|
|
-onMounted(() => {
|
|
|
- const myChart = echarts.init(echartRef.value)
|
|
|
- myChart.setOption(echartOption)
|
|
|
-})
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@import './index.scss';
|
|
|
+.homeBox {
|
|
|
+ --margin-r: 20px;
|
|
|
+}
|
|
|
</style>
|