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 @@ + + + + + + + + + + + {{ t('workplace.welcome') }} {{ username }} {{ t('workplace.happyDay') }} + + + {{ t('workplace.toady') }},20℃ - 32℃! + + + + + + + + {{ t('workplace.project') }} + + + + + {{ t('workplace.toDo') }} + + + + + {{ t('workplace.access') }} + + + + + + + + + + + + + + + {{ t('workplace.project') }} + {{ t('action.more') }} + + + + + + + + + {{ item.name }} + + {{ t(item.message) }} + + {{ item.personal }} + {{ formatTime(item.time, 'yyyy-MM-dd') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ t('workplace.shortcutOperation') }} + + + + + + + + + {{ item.name }} + + + + + + + + + + {{ t('workplace.notice') }} + {{ t('action.more') }} + + + + + + + + + + {{ item.type }} : {{ item.title }} + + + + {{ formatTime(item.date, 'yyyy-MM-dd') }} + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + {{ t('analysis.newUser') }} + + + + + + + + + + + + + + + + + + + + + {{ t('analysis.unreadInformation') }} + + + + + + + + + + + + + + + + + + + + + {{ t('analysis.transactionAmount') }} + + + + + + + + + + + + + + + + + + + + + {{ t('analysis.totalShopping') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + 今日到货计划(已发货) + {{materialData?.preparetoissueTodayCount}}单 + + + + + + 今日备料计划(已发料) + {{materialData?.preparetoissueTodayCount}}单 + + + + + + 今日叫料请求(已发料) + {{materialData?.issueRequestTodayCount}}单 + + + + + + 空闲库位数/总库位数 + {{materialData?.freeLocationCount}}个/{{materialData?.totalLocationCount}}个 + + + + + + + 呆滞库存预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + 超期库存预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + 高低储预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + 待处理任务 + + + + + + + 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 @@ + + + + + + 今日生产计划 + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + {{ formatDate(scope.row.beginTime) }} + + + + {{ formatDate(scope.row.endTime) }} + + + + + + + 线边安全库存 + + + + + + + + + + + + + + + + + + + + {{ formatDate(scope.row.createTime) }} + + + + + {{ formatDate(scope.row.createTime) }} + + + + + + + + 待上架成品库存 + + + + + + {{ formatDate(scope.row.requestTime) }} + + + + + {{ formatDate(scope.row.requestDueTime) }} + + + + + + + + {{ formatDate(scope.row.acceptTime) }} + + + + + + + + + + {{ formatter(scope.row.autoComplete, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowModifyLocation, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowModifyQty, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowBiggerQty, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowSmallerQty, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ + formatter(scope.row.allowModifyInventoryStatus, DICT_TYPE.TRUE_FALSE) + }} + + + + + {{ formatter(scope.row.allowContinuousScanning, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowPartialComplete, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowModifyBatch, DICT_TYPE.TRUE_FALSE) }} + + + + + {{ formatter(scope.row.allowModifyPackingNumber, DICT_TYPE.TRUE_FALSE) }} + + + + + + 待处理任务 + + + + + + + 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 @@ + + + + + + + 今日到货计划(已发货) + {{ productData?.deliverPlanTodayCount || 0 }}单 + + + + + + + 呆滞库存预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + 超期库存预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + 高低储预警 + + + + + + + + + {{ formatter(scope.row.uom, DICT_TYPE.UOM) }} + + + + + + + {{ formatter(scope.row.inventoryStatus, DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + + + + + {{ formatDate(scope.row.planDate) }} + + + + + + 待处理任务 + + + + + + + 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 @@ + + + + + + 订单数 + + + + {{ supplierData?.openPurchaseCount || 0 }}单 + 开放订单数 + + + + + + {{ supplierData?.allPurchaseCount || 0 }}单 + 全部订单数 + + + + + + + 要货计划数 + + + + {{ supplierData?.openPurchasePlanCount || 0 }}单 + 开放计划数 + + + + + + {{ supplierData?.allPurchasePlanCount || 0 }}单 + 全部计划数 + + + + + + + 发货单数 + + + + {{ supplierData?.notTakeSupplierdeliverCount || 0 }}单 + 未收货订单数 + + + + + + {{ supplierData?.takeSupplierdeliverCount || 0 }}单 + 已收货订单数 + + + + + + + + + 本月发货单趋势 + + + + 本月发货零件TOP10 + + + + + + 最新消息 + + + + + + + + + + + + + {{ scope.row.templateParams }} + + + + + + + + + + + + + + + + + + 最新扣分明细 + + + + + + + + + + 本月退货明细 + + + + + + + + + + + + + + + + + + + + {{ formatter(scope.row.inventoryStatus,DICT_TYPE.INVENTORY_STATUS) }} + + + + + + + + + + + + + + + {{ formatter(scope.row.uom,DICT_TYPE.UOM) }} + + + + + + + {{ formatDate(scope.row.createTime) }} + + + + + + + 本月索赔明细 + + + + + + + + + + + + {{ formatDate(scope.row.createTime) }} + + + + + + + + + + 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 +}