|
@@ -1,48 +1,5 @@
|
|
|
<template>
|
|
|
<div class="bg">
|
|
|
- <!-- <div>
|
|
|
- <el-card shadow="never">
|
|
|
- <el-skeleton :loading="loading" animated>
|
|
|
- <el-row :gutter="16" justify="space-between">
|
|
|
- <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
|
|
|
- <div class="flex items-center">
|
|
|
- <el-avatar :src="avatar" :size="70" class="mr-16px">
|
|
|
- <img src="@/assets/imgs/avatar.gif" alt="" />
|
|
|
- </el-avatar>
|
|
|
- <div>
|
|
|
- <div class="text-20px">
|
|
|
- {{ t('workplace.welcome') }} {{ username }} {{ t('workplace.happyDay') }}
|
|
|
- </div>
|
|
|
- <div class="mt-10px text-14px text-gray-500">
|
|
|
- {{ t('workplace.toady') }},20℃ - 32℃!
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :xl="12" :lg="12" :md="12" :sm="24" :xs="24">
|
|
|
- <div class="h-70px flex items-center justify-end lt-sm:mt-10px">
|
|
|
- <div class="px-8px text-right">
|
|
|
- <div class="mb-16px text-14px text-gray-400">{{ t('workplace.project') }}</div>
|
|
|
- <CountTo class="text-20px" :start-val="0" :end-val="totalSate.project" :duration="2600" />
|
|
|
- </div>
|
|
|
- <el-divider direction="vertical" />
|
|
|
- <div class="px-8px text-right">
|
|
|
- <div class="mb-16px text-14px text-gray-400">{{ t('workplace.toDo') }}</div>
|
|
|
- <CountTo class="text-20px" :start-val="0" :end-val="totalSate.todo" :duration="2600" />
|
|
|
- </div>
|
|
|
- <el-divider direction="vertical" border-style="dashed" />
|
|
|
- <div class="px-8px text-right">
|
|
|
- <div class="mb-16px text-14px text-gray-400">{{ t('workplace.access') }}</div>
|
|
|
- <CountTo class="text-20px" :start-val="0" :end-val="totalSate.access" :duration="2600" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-skeleton>
|
|
|
- </el-card>
|
|
|
- </div> -->
|
|
|
-
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col>
|
|
@@ -71,7 +28,7 @@
|
|
|
</div>
|
|
|
<div class="introduce-text">
|
|
|
<div>岩石矿石</div>
|
|
|
- <div>{{ fossilCount }}</div>
|
|
|
+ <div>{{ rockOreCount }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="introduce-num">
|
|
@@ -80,7 +37,7 @@
|
|
|
</div>
|
|
|
<div class="introduce-text">
|
|
|
<div>化石</div>
|
|
|
- <div>{{ meteoriteCount }}</div>
|
|
|
+ <div>{{ fossilCount }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="introduce-num">
|
|
@@ -89,7 +46,7 @@
|
|
|
</div>
|
|
|
<div class="introduce-text">
|
|
|
<div>陨石</div>
|
|
|
- <div>{{ rockOreCount }}</div>
|
|
|
+ <div>{{ meteoriteCount }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -98,70 +55,75 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-skeleton>
|
|
|
+
|
|
|
<!-- 本年标本出入回库情况new -->
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
<el-row>
|
|
|
<!-- 本年标本出库 -->
|
|
|
- <el-col :xl="5" :lg="5" :md="5" :sm="24" :xs="24">
|
|
|
- <el-card shadow="hover" class="mr-5px mt-5px">
|
|
|
- <div class="title"><img style="width: 25px;height: 25px;" src="/@/assets/imgs/ck5.png" alt="" /><span>本月出库数</span></div>
|
|
|
+ <el-col :xl="5" :lg="5" :md="12" :sm="24" :xs="24">
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 400px;">
|
|
|
+ <div class="title"><img style="width: 25px;height: 25px;" src="/@/assets/imgs/ck5.png"
|
|
|
+ alt="" /><span>本月出库数</span></div>
|
|
|
<div class="specimen-month">
|
|
|
<div class="month">
|
|
|
<div class="month-bottom">
|
|
|
- <div>{{outNumber}}</div>
|
|
|
- <div>月环比 <span>{{outRatio.toFixed(0)}}%</span></div>
|
|
|
+ <div>{{ outNumber }}</div>
|
|
|
+ <div>月环比 <span>{{ outRatio.toFixed(0) }}%</span></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="month1">
|
|
|
- <Echart :options="outRatioOptionsData" :height="280" :width="'140%'" />
|
|
|
+ <Echart :options="outRatioOptionsData" :height="300" :width="'140%'" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
+
|
|
|
</el-col>
|
|
|
<!-- 本年标本入库 -->
|
|
|
- <el-col :xl="5" :lg="5" :md="5" :sm="24" :xs="24">
|
|
|
+ <el-col :xl="5" :lg="5" :md="12" :sm="24" :xs="24">
|
|
|
|
|
|
- <el-card shadow="hover" class="mr-5px mt-5px">
|
|
|
- <div class="title"><img style="width: 30px;height: 30px;" src="/@/assets/imgs/rk3.png" alt="" /><span>本月入库数</span></div>
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 400px;">
|
|
|
+ <div class="title"><img style="width: 30px;height: 30px;" src="/@/assets/imgs/rk3.png"
|
|
|
+ alt="" /><span>本月入库数</span></div>
|
|
|
<div class="specimen-month">
|
|
|
<div class="month">
|
|
|
<div class="month-bottom">
|
|
|
- <div>{{enterNumber}}</div>
|
|
|
- <div>月环比 <span>{{enterRatio.toFixed(0)}}%</span></div>
|
|
|
+ <div>{{ enterNumber }}</div>
|
|
|
+ <div>月环比 <span>{{ enterRatio.toFixed(0) }}%</span></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="month1">
|
|
|
- <Echart :options="enterRatioOptionsData" :height="280" :width="'140%'" />
|
|
|
+ <Echart :options="enterRatioOptionsData" :height="300" :width="'140%'" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
|
|
|
<!-- 本年标本回库 -->
|
|
|
- <el-col :xl="5" :lg="5" :md="5" :sm="24" :xs="24">
|
|
|
+ <el-col :xl="5" :lg="5" :md="12" :sm="24" :xs="24">
|
|
|
|
|
|
- <el-card shadow="hover" class="mr-5px mt-5px">
|
|
|
- <div class="title"><img style="width: 25px;height: 25px;" src="/@/assets/imgs/hk2.png" alt="" /><span>本月回库数</span></div>
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 400px;">
|
|
|
+ <div class="title"><img style="width: 25px;height: 25px;" src="/@/assets/imgs/hk2.png"
|
|
|
+ alt="" /><span>本月回库数</span></div>
|
|
|
<div class="specimen-month">
|
|
|
<div class="month">
|
|
|
<div class="month-bottom">
|
|
|
- <div>{{returnNumber}}</div>
|
|
|
- <div>月环比 <span>{{returnRatio.toFixed(0)}}%</span></div>
|
|
|
+ <div>{{ returnNumber }}</div>
|
|
|
+ <div>月环比 <span>{{ returnRatio.toFixed(0) }}%</span></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="month1">
|
|
|
- <Echart :options="returnRatioOptionsData" :height="280" :width="'140%'" />
|
|
|
+ <Echart :options="returnRatioOptionsData" :height="300" :width="'140%'" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
- <el-col :xl="9" :lg="9" :md="9" :sm="24" :xs="24">
|
|
|
- <el-card shadow="hover">
|
|
|
- <template #header>
|
|
|
- <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>本年标本数量统计</span></div>
|
|
|
- </template>
|
|
|
+ <el-col :xl="9" :lg="9" :md="12" :sm="24" :xs="24">
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 400px;">
|
|
|
+
|
|
|
+ <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>本年标本数量统计</span></div>
|
|
|
+
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
- <Echart :options="mouthOptionsData" :height="250" />
|
|
|
+ <Echart :options="mouthOptionsData" :height="300" />
|
|
|
</el-skeleton>
|
|
|
</el-card>
|
|
|
<!-- 历年标本来源增减统计 -->
|
|
@@ -169,40 +131,39 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-skeleton>
|
|
|
-
|
|
|
<!-- 本年标本出入回库情况2 -->
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
<el-row>
|
|
|
- <el-col :xl="9" :lg="9" :md="9" :sm="24" :xs="24">
|
|
|
- <el-card shadow="hover">
|
|
|
- <template #header>
|
|
|
- <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>历年标本数量统计</span></div>
|
|
|
- </template>
|
|
|
+ <el-col :xl="9" :lg="9" :md="12" :sm="24" :xs="24">
|
|
|
+
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 430px;">
|
|
|
+ <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>历年标本数量统计</span></div>
|
|
|
+
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
- <Echart :options="yearOptionsData" :height="310" />
|
|
|
+ <Echart :options="yearOptionsData" :height="340" />
|
|
|
</el-skeleton>
|
|
|
</el-card>
|
|
|
<!-- 历年标本来源增减统计 -->
|
|
|
|
|
|
</el-col>
|
|
|
- <el-col :xl="9" :lg="9" :md="9" :sm="24" :xs="24">
|
|
|
- <el-card shadow="hover">
|
|
|
- <template #header>
|
|
|
- <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>历年标本来源增减统计</span></div>
|
|
|
- </template>
|
|
|
+ <el-col :xl="9" :lg="9" :md="12" :sm="24" :xs="24">
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 430px;">
|
|
|
+
|
|
|
+ <div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>历年标本来源增减统计</span></div>
|
|
|
+
|
|
|
<el-skeleton :loading="loading" animated>
|
|
|
- <Echart :options="originOptions111Data" :height="310" />
|
|
|
+ <Echart :options="originOptions111Data" :height="340" />
|
|
|
</el-skeleton>
|
|
|
</el-card>
|
|
|
<!-- 历年标本来源增减统计 -->
|
|
|
|
|
|
</el-col>
|
|
|
<!-- 本年标本回库 -->
|
|
|
- <el-col :xl="6" :lg="6" :md="6" :sm="24" :xs="24">
|
|
|
+ <el-col :xl="6" :lg="6" :md="24" :sm="24" :xs="24">
|
|
|
|
|
|
- <el-card shadow="hover" class="mr-5px mt-5px">
|
|
|
+ <el-card shadow="hover" class="mr-5px mt-5px" style="height: 430px;">
|
|
|
<div class="title"><img src="/@/assets/imgs/tj3.png" alt="" /><span>按标本类型统计</span></div>
|
|
|
- <Echart :options="pieOptionsData" :height="335" />
|
|
|
+ <Echart :options="pieOptionsData" :height="340" />
|
|
|
|
|
|
</el-card>
|
|
|
</el-col>
|
|
@@ -222,7 +183,7 @@ import Echarts from '/@/components/Echarts/index.vue';
|
|
|
import { useUserStore } from '@/store/modules/user'
|
|
|
import { useWatermark } from '@/hooks/web/useWatermark'
|
|
|
import type { WorkplaceTotal, Project, Shortcut } from './types'
|
|
|
-import { pieOptions, barOptions, barOptions1, outOptions, enterOptions, backOptions, yearOptions, originOptions, enterRatioOptions, originOptions111, mouthOptions,outRatioOptions,returnRatioOptions } from './echarts-data'
|
|
|
+import { pieOptions, barOptions, barOptions1, outOptions, enterOptions, backOptions, yearOptions, originOptions, enterRatioOptions, originOptions111, mouthOptions, outRatioOptions, returnRatioOptions } from './echarts-data'
|
|
|
// import MyChart from '/@/components/Echarts/echarts.vue';
|
|
|
defineOptions({ name: 'Home' })
|
|
|
|
|
@@ -275,10 +236,9 @@ onMounted(async () => {
|
|
|
enterNumber1.value = enter[enter.length - 2].number;
|
|
|
outNumber1.value = out[out.length - 2].number;
|
|
|
returnNumber1.value = return1[return1.length - 2].number;
|
|
|
- console.log(enterNumber.value,outNumber,returnNumber);
|
|
|
- enterRatio.value = (enterNumber.value-enterNumber1.value)/enterNumber.value*100;
|
|
|
- outRatio.value = (outNumber.value-outNumber1.value)/outNumber.value*100;
|
|
|
- returnRatio.value = (returnNumber.value-returnNumber1.value)/returnNumber.value*100;
|
|
|
+ enterRatio.value = (enterNumber.value - enterNumber1.value) / enterNumber.value * 100;
|
|
|
+ outRatio.value = (outNumber.value - outNumber1.value) / outNumber.value * 100;
|
|
|
+ returnRatio.value = (returnNumber.value - returnNumber1.value) / returnNumber.value * 100;
|
|
|
})
|
|
|
|
|
|
|
|
@@ -399,27 +359,6 @@ const getShortcut = async () => {
|
|
|
shortcut = Object.assign(shortcut, data)
|
|
|
}
|
|
|
|
|
|
-// 用户来源
|
|
|
-// const getUserAccessSource = async () => {
|
|
|
-// const data = [
|
|
|
-// { value: 335, name: 'analysis.directAccess' },
|
|
|
-// { value: 310, name: 'analysis.mailMarketing' },
|
|
|
-// { value: 234, name: 'analysis.allianceAdvertising' },
|
|
|
-// { value: 135, name: 'analysis.videoAdvertising' },
|
|
|
-// { value: 1548, name: 'analysis.searchEngines' }
|
|
|
-// ]
|
|
|
-// set(
|
|
|
-// pieOptionsData,
|
|
|
-// 'legend.data',
|
|
|
-// data.map((v) => t(v.name))
|
|
|
-// )
|
|
|
-// pieOptionsData!.series![0].data = data.map((v) => {
|
|
|
-// return {
|
|
|
-// name: t(v.name),
|
|
|
-// value: v.value
|
|
|
-// }
|
|
|
-// })
|
|
|
-// }
|
|
|
const barOptionsData = reactive<EChartsOption>(barOptions) as EChartsOption
|
|
|
|
|
|
// 周活跃量
|
|
@@ -500,11 +439,11 @@ const backOptionsData = reactive<EChartsOption>(backOptions) as EChartsOption
|
|
|
const yearOptionsData = reactive<EChartsOption>(yearOptions) as EChartsOption
|
|
|
//历年标本来源统计originOptions
|
|
|
const originOptionsData = reactive<EChartsOption>(originOptions) as EChartsOption
|
|
|
-//水位waterOptions
|
|
|
+//本月入库数
|
|
|
const enterRatioOptionsData = reactive<EChartsOption>(enterRatioOptions) as EChartsOption
|
|
|
-//水位waterOptions
|
|
|
+//本月出库数
|
|
|
const outRatioOptionsData = reactive<EChartsOption>(outRatioOptions) as EChartsOption
|
|
|
-//水位waterOptions
|
|
|
+//本月回库数
|
|
|
const returnRatioOptionsData = reactive<EChartsOption>(returnRatioOptions) as EChartsOption
|
|
|
//历年来源originOptions111
|
|
|
const originOptions111Data = reactive<EChartsOption>(originOptions111) as EChartsOption
|
|
@@ -564,11 +503,6 @@ getAllApi()
|
|
|
padding: 0 10px;
|
|
|
}
|
|
|
|
|
|
-.month-bottom {
|
|
|
- /* display: flex;
|
|
|
- justify-content: space-between; */
|
|
|
- /* margin-top: 24%; */
|
|
|
-}
|
|
|
|
|
|
.month-bottom div:nth-child(1) {
|
|
|
|
|
@@ -605,21 +539,6 @@ getAllApi()
|
|
|
/* background-image:url("/@/assets/imgs/introduce.jpg"); */
|
|
|
}
|
|
|
|
|
|
-/* .introduce-num:nth-child(1) {
|
|
|
- background-color: rgba(152,83,74,0.3);
|
|
|
-}
|
|
|
-.introduce-num:nth-child(2) {
|
|
|
- background-color: rgba(199,89,51,0.3);
|
|
|
-}
|
|
|
-.introduce-num:nth-child(3) {
|
|
|
- background-color: rgba(217,133,102,0.3);
|
|
|
-}
|
|
|
-.introduce-num:nth-child(4) {
|
|
|
- background-color: rgba(238,204,147,0.3);
|
|
|
-}
|
|
|
-.introduce-num:nth-child(5) {
|
|
|
- background-color: rgba(159,180,207,0.3);
|
|
|
-} */
|
|
|
.introduce-img img {
|
|
|
width: 80px;
|
|
|
height: 80px;
|
|
@@ -645,22 +564,24 @@ getAllApi()
|
|
|
.introduce {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
- .introduce-num{
|
|
|
+
|
|
|
+ .introduce-num {
|
|
|
width: 100%;
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@media (min-width: 400px) {
|
|
|
.introduce {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
- .introduce-num{
|
|
|
+
|
|
|
+ .introduce-num {
|
|
|
width: 100%;
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -668,10 +589,12 @@ getAllApi()
|
|
|
.introduce {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
- .introduce-num{
|
|
|
+
|
|
|
+ .introduce-num {
|
|
|
width: 100%;
|
|
|
}
|
|
|
- .introduce-num:nth-child(5){
|
|
|
+
|
|
|
+ .introduce-num:nth-child(5) {
|
|
|
width: 100%;
|
|
|
margin-bottom: 0px;
|
|
|
}
|
|
@@ -681,11 +604,13 @@ getAllApi()
|
|
|
.introduce {
|
|
|
flex-direction: row;
|
|
|
}
|
|
|
- .introduce-num{
|
|
|
+
|
|
|
+ .introduce-num {
|
|
|
width: 19%;
|
|
|
margin-bottom: 0px;
|
|
|
}
|
|
|
- .introduce-num:nth-child(5){
|
|
|
+
|
|
|
+ .introduce-num:nth-child(5) {
|
|
|
width: 19%;
|
|
|
margin-bottom: 0px;
|
|
|
}
|
|
@@ -696,11 +621,13 @@ getAllApi()
|
|
|
.introduce {
|
|
|
flex-direction: row;
|
|
|
}
|
|
|
- .introduce-num{
|
|
|
+
|
|
|
+ .introduce-num {
|
|
|
width: 19%;
|
|
|
margin-bottom: 0px;
|
|
|
}
|
|
|
- .introduce-num:nth-child(5){
|
|
|
+
|
|
|
+ .introduce-num:nth-child(5) {
|
|
|
width: 19%;
|
|
|
margin-bottom: 0px;
|
|
|
}
|