From bedf7cb85a54391013abc669e7dd84a8a60b7918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Sun, 4 Feb 2024 14:28:16 +0800 Subject: [PATCH] home --- src/views/home/Index copy.vue | 381 +++++++++++++++++ src/views/home/Index2.vue | 319 ++++++++++++++ src/views/home/components/material.vue | 336 +++++++++++++++ src/views/home/components/produce.vue | 286 +++++++++++++ src/views/home/components/product.vue | 313 ++++++++++++++ src/views/home/components/supplierIndex.vue | 452 ++++++++++++++++++++ src/views/home/echarts-data.ts | 286 +++++++++++++ src/views/home/index.vue | 14 + src/views/home/types.ts | 55 +++ 9 files changed, 2442 insertions(+) create mode 100644 src/views/home/Index copy.vue create mode 100644 src/views/home/Index2.vue create mode 100644 src/views/home/components/material.vue create mode 100644 src/views/home/components/produce.vue create mode 100644 src/views/home/components/product.vue create mode 100644 src/views/home/components/supplierIndex.vue create mode 100644 src/views/home/echarts-data.ts create mode 100644 src/views/home/index.vue create mode 100644 src/views/home/types.ts diff --git a/src/views/home/Index copy.vue b/src/views/home/Index copy.vue new file mode 100644 index 000000000..121ec6a8b --- /dev/null +++ b/src/views/home/Index copy.vue @@ -0,0 +1,381 @@ + + diff --git a/src/views/home/Index2.vue b/src/views/home/Index2.vue new file mode 100644 index 000000000..c9429ab10 --- /dev/null +++ b/src/views/home/Index2.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/home/components/material.vue b/src/views/home/components/material.vue new file mode 100644 index 000000000..83aadaa35 --- /dev/null +++ b/src/views/home/components/material.vue @@ -0,0 +1,336 @@ + + + + diff --git a/src/views/home/components/produce.vue b/src/views/home/components/produce.vue new file mode 100644 index 000000000..c289ec0c0 --- /dev/null +++ b/src/views/home/components/produce.vue @@ -0,0 +1,286 @@ + + + + diff --git a/src/views/home/components/product.vue b/src/views/home/components/product.vue new file mode 100644 index 000000000..5124d9c11 --- /dev/null +++ b/src/views/home/components/product.vue @@ -0,0 +1,313 @@ + + + + diff --git a/src/views/home/components/supplierIndex.vue b/src/views/home/components/supplierIndex.vue new file mode 100644 index 000000000..c665f9867 --- /dev/null +++ b/src/views/home/components/supplierIndex.vue @@ -0,0 +1,452 @@ + + + + diff --git a/src/views/home/echarts-data.ts b/src/views/home/echarts-data.ts new file mode 100644 index 000000000..15c7b4afd --- /dev/null +++ b/src/views/home/echarts-data.ts @@ -0,0 +1,286 @@ +import { EChartsOption } from 'echarts' + +const { t } = useI18n() + +export const lineOptions: EChartsOption = { + + xAxis: { + data: [ 1, 2, 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 + ], + boundaryGap: false, + axisTick: { + show: false + } + }, + grid: { + left: 20, + right: 20, + bottom: 20, + top: 50, + containLabel: true + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross' + }, + padding: [5, 10] + }, + yAxis: { + axisTick: { + show: false + } + }, + legend: { + data: ['销售','哈哈'], + top: 20 + }, + series: [ + { + name: '销售', + smooth: true, + type: 'line', + data: [100, 120, 161, 134, 105, 160, 165, 114, 163, 185, 118, 123], + animationDuration: 2800, + animationEasing: 'cubicInOut' + }, + { + name: '哈哈', + smooth: true, + type: 'line', + itemStyle: {}, + data: [120, 82, 91, 154, 162, 140, 145, 250, 134, 56, 99, 123], + animationDuration: 2800, + animationEasing: 'quadraticOut' + } + ] +} + +export const pieOptions: EChartsOption = { + // title: { + // text: t('analysis.userAccessSource'), + // left: 'center' + // }, + tooltip: { + trigger: 'item', + formatter: '{a}
{b} : {c} ({d}%)' + }, + legend: { + orient: 'vertical', + left: 'left', + top:20, + data: [ + t('analysis.directAccess'), + t('analysis.mailMarketing'), + t('analysis.allianceAdvertising'), + t('analysis.videoAdvertising'), + t('analysis.searchEngines') + ] + }, + series: [ + { + name: t('analysis.userAccessSource'), + type: 'pie', + radius: '55%', + center: ['50%', '60%'], + data: [ + { value: 335, name: t('analysis.directAccess') }, + { value: 310, name: t('analysis.mailMarketing') }, + { value: 234, name: t('analysis.allianceAdvertising') }, + { value: 135, name: t('analysis.videoAdvertising') }, + { value: 1548, name: t('analysis.searchEngines') } + ] + } + ] +} + +export const barOptions: EChartsOption = { + title: { + text: '', + left: 'center' + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + grid: { + left: 50, + right: 20, + bottom: 20 + }, + xAxis: { + type: 'category', + data: [], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value' + }, + series: [ + { + name: t('analysis.activeQuantity'), + data: [], + type: 'bar' + } + ] +} + +export const radarOption: EChartsOption = { + legend: { + data: [t('workplace.personal'), t('workplace.team')] + }, + radar: { + // shape: 'circle', + indicator: [ + { name: t('workplace.quote'), max: 65 }, + { name: t('workplace.contribution'), max: 160 }, + { name: t('workplace.hot'), max: 300 }, + { name: t('workplace.yield'), max: 130 }, + { name: t('workplace.follow'), max: 100 } + ] + }, + series: [ + { + name: `xxx${t('workplace.index')}`, + type: 'radar', + data: [ + { + value: [42, 30, 20, 35, 80], + name: t('workplace.personal') + }, + { + value: [50, 140, 290, 100, 90], + name: t('workplace.team') + } + ] + } + ] +} + +export const wordOptions = { + series: [ + { + type: 'wordCloud', + gridSize: 2, + sizeRange: [12, 50], + rotationRange: [-90, 90], + shape: 'pentagon', + width: 600, + height: 400, + drawOutOfBound: true, + textStyle: { + color: function () { + return ( + 'rgb(' + + [ + Math.round(Math.random() * 160), + Math.round(Math.random() * 160), + Math.round(Math.random() * 160) + ].join(',') + + ')' + ) + } + }, + emphasis: { + textStyle: { + shadowBlur: 10, + shadowColor: '#333' + } + }, + data: [ + { + name: 'Sam S Club', + value: 10000, + textStyle: { + color: 'black' + }, + emphasis: { + textStyle: { + color: 'red' + } + } + }, + { + name: 'Macys', + value: 6181 + }, + { + name: 'Amy Schumer', + value: 4386 + }, + { + name: 'Jurassic World', + value: 4055 + }, + { + name: 'Charter Communications', + value: 2467 + }, + { + name: 'Chick Fil A', + value: 2244 + }, + { + name: 'Planet Fitness', + value: 1898 + }, + { + name: 'Pitch Perfect', + value: 1484 + }, + { + name: 'Express', + value: 1112 + }, + { + name: 'Home', + value: 965 + }, + { + name: 'Johnny Depp', + value: 847 + }, + { + name: 'Lena Dunham', + value: 582 + }, + { + name: 'Lewis Hamilton', + value: 555 + }, + { + name: 'KXAN', + value: 550 + }, + { + name: 'Mary Ellen Mark', + value: 462 + }, + { + name: 'Farrah Abraham', + value: 366 + }, + { + name: 'Rita Ora', + value: 360 + }, + { + name: 'Serena Williams', + value: 282 + }, + { + name: 'NCAA baseball tournament', + value: 273 + }, + { + name: 'Point Break', + value: 265 + } + ] + } + ] +} diff --git a/src/views/home/index.vue b/src/views/home/index.vue new file mode 100644 index 000000000..1cc81ac3a --- /dev/null +++ b/src/views/home/index.vue @@ -0,0 +1,14 @@ + + diff --git a/src/views/home/types.ts b/src/views/home/types.ts new file mode 100644 index 000000000..e6313d36c --- /dev/null +++ b/src/views/home/types.ts @@ -0,0 +1,55 @@ +export type WorkplaceTotal = { + project: number + access: number + todo: number +} + +export type Project = { + name: string + icon: string + message: string + personal: string + time: Date | number | string +} + +export type Notice = { + title: string + type: string + keys: string[] + date: Date | number | string +} + +export type Shortcut = { + name: string + icon: string + url: string +} + +export type RadarData = { + personal: number + team: number + max: number + name: string +} +export type AnalysisTotalTypes = { + users: number + messages: number + moneys: number + shoppings: number +} + +export type UserAccessSource = { + value: number + name: string +} + +export type WeeklyUserActivity = { + value: number + name: string +} + +export type MonthlySales = { + name: string + estimate: number + actual: number +}