Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
factory_front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qinjianhui
factory_front
Commits
b13e4321
Commit
b13e4321
authored
Dec 30, 2025
by
wusiyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 概览字段更新
parent
c887e038
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
123 additions
and
50 deletions
+123
-50
src/views/Dashboard.vue
+123
-50
No files found.
src/views/Dashboard.vue
View file @
b13e4321
...
@@ -6,11 +6,11 @@
...
@@ -6,11 +6,11 @@
<div
class=
"card-container"
>
<div
class=
"card-container"
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
今日新单(件/单)
</div>
<div
class=
"card-title"
>
今日新单(件/
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
content=
"今日新增订单的订单数量
"
:content=
"`今日新增订单的订单数量($
{today}北京时间 0-24点数据)`
"
placement="bottom"
placement="bottom"
>
>
<div
class=
"card-icon"
></div>
<div
class=
"card-icon"
></div>
...
@@ -28,11 +28,11 @@
...
@@ -28,11 +28,11 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
今日接单(件/单)
</div>
<div
class=
"card-title"
>
今日接单(件/
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
content=
"今日新增确认生产的订单数量
"
:content=
"`今日新增确认生产的订单数量($
{today}北京时间 0-24点数据)`
"
placement="bottom"
placement="bottom"
>
>
<div
class=
"card-icon"
></div>
<div
class=
"card-icon"
></div>
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
未发货订单(单)
</div>
<div
class=
"card-title"
>
未发货订单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -68,7 +68,7 @@
...
@@ -68,7 +68,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
超时未发订单(单)
</div>
<div
class=
"card-title"
>
超时未发订单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -86,9 +86,18 @@
...
@@ -86,9 +86,18 @@
</div>
</div>
</div>
</div>
<div
class=
"card-container"
:gutter=
"20"
>
<div
class=
"card-container"
:gutter=
"20"
>
<el-tooltip
class=
"item"
effect=
"light"
placement=
"bottom-end"
>
<template
#
content
>
<div
style=
"display: flex; align-items: center; gap: 4px"
>
<div
class=
"up-icon-green"
></div>
<div>
为正向趋势,
</div>
<div
class=
"down-icon-red"
></div>
<div>
为负向趋势
</div>
</div>
</
template
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
昨日发货数(
单)
</div>
<div
class=
"card-title"
>
昨日发货数(订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -111,24 +120,34 @@
...
@@ -111,24 +120,34 @@
"
"
style=
"display: flex; margin-left: 10px"
style=
"display: flex; margin-left: 10px"
>
>
<div
class=
"text-red
"
>
<div
class=
"text-green
"
>
{{ statisticData?.compareYesterdayShipmentOrderNum }}
{{ statisticData?.compareYesterdayShipmentOrderNum }}
</div>
</div>
<div
class=
"up-ico
n"
></div>
<div
class=
"up-icon-gree
n"
></div>
</div>
</div>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
class=
"text-green
"
>
<div
class=
"text-red
"
>
{{
{{
Math.abs(
Math.abs(
statisticData?.compareYesterdayShipmentOrderNum || 0,
statisticData?.compareYesterdayShipmentOrderNum || 0,
)
)
}}
}}
</div>
</div>
<div
class=
"down-icon
"
></div>
<div
class=
"down-icon-red
"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"light"
placement=
"bottom-end"
>
<
template
#
content
>
<div
style=
"display: flex; align-items: center; gap: 4px"
>
<div
class=
"up-icon-green"
></div>
<div>
为正向趋势,
</div>
<div
class=
"down-icon-red"
></div>
<div>
为负向趋势
</div>
</div>
</
template
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
24h发货率
</div>
<div
class=
"card-title"
>
24h发货率
</div>
...
@@ -154,34 +173,45 @@
...
@@ -154,34 +173,45 @@
"
"
style=
"display: flex; margin-left: 10px"
style=
"display: flex; margin-left: 10px"
>
>
<div
class=
"text-red
"
>
<div
class=
"text-green
"
>
{{
{{
(statisticData?.compareLastDayShipmentRateOf24Hour ??
(statisticData?.compareLastDayShipmentRateOf24Hour ??
'-') + '%'
'-') + '%'
}}
}}
</div>
</div>
<div
class=
"up-ico
n"
></div>
<div
class=
"up-icon-gree
n"
></div>
</div>
</div>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
class=
"text-green
"
>
<div
class=
"text-red
"
>
{{
{{
Math.abs(
Math.abs(
statisticData
?.
compareLastDayShipmentRateOf24Hour
||
0
,
statisticData?.compareLastDayShipmentRateOf24Hour ||
0,
) + '%'
) + '%'
}}
}}
</div>
</div>
<div
class=
"down-icon
"
></div>
<div
class=
"down-icon-red
"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"light"
placement=
"bottom-end"
>
<
template
#
content
>
<div
style=
"display: flex; align-items: center; gap: 4px"
>
<div
class=
"up-icon-green"
></div>
<div>
为正向趋势,
</div>
<div
class=
"down-icon-red"
></div>
<div>
为负向趋势
</div>
</div>
</
template
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
48h发货率
</div>
<div
class=
"card-title"
>
48h发货率
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
content=
"昨日已发货订单中从接单转为已发货状态在48小时内的比例(昨日北京时间0-24点数据)
"
:content=
"`昨日已发货订单中从接单转为已发货状态在48小时内的比例(${yesterday}北京时间 0-24点数据)`
"
placement=
"bottom"
placement=
"bottom"
>
>
<div
class=
"card-icon"
></div>
<div
class=
"card-icon"
></div>
...
@@ -200,34 +230,45 @@
...
@@ -200,34 +230,45 @@
"
"
style=
"display: flex; margin-left: 10px"
style=
"display: flex; margin-left: 10px"
>
>
<div
class=
"text-red
"
>
<div
class=
"text-green
"
>
{{
{{
(statisticData?.compareLastDayShipmentRateOf48Hour ??
(statisticData?.compareLastDayShipmentRateOf48Hour ??
'-') + '%'
'-') + '%'
}}
}}
</div>
</div>
<div
class=
"up-ico
n"
></div>
<div
class=
"up-icon-gree
n"
></div>
</div>
</div>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
class=
"text-green
"
>
<div
class=
"text-red
"
>
{{
{{
Math.abs(
Math.abs(
statisticData
?.
compareLastDayShipmentRateOf48Hour
||
0
,
statisticData?.compareLastDayShipmentRateOf48Hour ||
0,
) + '%'
) + '%'
}}
}}
</div>
</div>
<div
class=
"down-icon
"
></div>
<div
class=
"down-icon-red
"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"light"
placement=
"bottom-end"
>
<
template
#
content
>
<div
style=
"display: flex; align-items: center; gap: 4px"
>
<div
class=
"up-icon-red"
></div>
<div>
为正向趋势,
</div>
<div
class=
"down-icon-green"
></div>
<div>
为负向趋势
</div>
</div>
</
template
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
发货超时率
</div>
<div
class=
"card-title"
>
发货超时率
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
content=
"昨日已发货订单中从接单转为已发货状态大于48小时的比例(昨日北京时间0-24点数据)
"
:content=
"`昨日已发货订单中从接单转为已发货状态大于48小时的比例(${yesterday}北京时间 0-24点数据)`
"
placement=
"bottom"
placement=
"bottom"
>
>
<div
class=
"card-icon"
></div>
<div
class=
"card-icon"
></div>
...
@@ -257,26 +298,28 @@
...
@@ -257,26 +298,28 @@
'-') + '%'
'-') + '%'
}}
}}
</div>
</div>
<div
class=
"up-icon
"
></div>
<div
class=
"up-icon-red
"
></div>
</div>
</div>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
v-else
style=
"display: flex; margin-left: 10px"
>
<div
class=
"text-green"
>
<div
class=
"text-green"
>
{{
{{
Math.abs(
Math.abs(
statisticData
?.
compareLastDayOverTimeShipmentRate
||
0
,
statisticData?.compareLastDayOverTimeShipmentRate ||
0,
) + '%'
) + '%'
}}
}}
</div>
</div>
<div
class=
"down-ico
n"
></div>
<div
class=
"down-icon-gree
n"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-tooltip>
</div>
</div>
<div
class=
"card-container"
>
<div
class=
"card-container"
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
待创建物流(单)
</div>
<div
class=
"card-title"
>
待创建物流(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -294,11 +337,11 @@
...
@@ -294,11 +337,11 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
待排单(单)
</div>
<div
class=
"card-title"
>
待排单(
生产
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
content=
"目前订单中待排单的总生产数"
content=
"目前订单中待排单的总生产
单
数"
placement=
"bottom"
placement=
"bottom"
>
>
<div
class=
"card-icon"
></div>
<div
class=
"card-icon"
></div>
...
@@ -312,7 +355,7 @@
...
@@ -312,7 +355,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
生产中(单)
</div>
<div
class=
"card-title"
>
生产中(
生产
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -330,7 +373,7 @@
...
@@ -330,7 +373,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
待发货(单)
</div>
<div
class=
"card-title"
>
待发货(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -348,7 +391,7 @@
...
@@ -348,7 +391,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
拦截申请(单)
</div>
<div
class=
"card-title"
>
拦截申请(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -366,7 +409,7 @@
...
@@ -366,7 +409,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
异常单(单)
</div>
<div
class=
"card-title"
>
异常单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -386,7 +429,7 @@
...
@@ -386,7 +429,7 @@
<div
class=
"card-container"
>
<div
class=
"card-container"
>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
缺货中订单(单)
</div>
<div
class=
"card-title"
>
缺货中订单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -404,7 +447,7 @@
...
@@ -404,7 +447,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
缺货
<
24h单(单)
</div>
<div
class=
"card-title"
>
缺货
<
24h单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -422,7 +465,7 @@
...
@@ -422,7 +465,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
缺货
<
48h单(单)
</div>
<div
class=
"card-title"
>
缺货
<
48h单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -440,7 +483,7 @@
...
@@ -440,7 +483,7 @@
</div>
</div>
<div
class=
"card-item"
>
<div
class=
"card-item"
>
<div
class=
"card-item-header"
>
<div
class=
"card-item-header"
>
<div
class=
"card-title"
>
缺货≥48h单(单)
</div>
<div
class=
"card-title"
>
缺货≥48h单(
订
单)
</div>
<el-tooltip
<el-tooltip
class=
"item"
class=
"item"
effect=
"light"
effect=
"light"
...
@@ -593,6 +636,22 @@ echarts.use([
...
@@ -593,6 +636,22 @@ echarts.use([
UniversalTransition
,
UniversalTransition
,
])
])
const
today
=
new
Date
()
.
toLocaleDateString
(
'zh-CN'
,
{
year
:
'numeric'
,
month
:
'2-digit'
,
day
:
'2-digit'
,
})
.
replace
(
/
\/
/g
,
'-'
)
const
yesterday
=
new
Date
(
new
Date
().
setDate
(
new
Date
().
getDate
()
-
1
))
.
toLocaleDateString
(
'zh-CN'
,
{
year
:
'numeric'
,
month
:
'2-digit'
,
day
:
'2-digit'
,
})
.
replace
(
/
\/
/g
,
'-'
)
// 获取统计数据
// 获取统计数据
const
statisticData
=
ref
<
StatisticData
|
null
>
(
null
)
const
statisticData
=
ref
<
StatisticData
|
null
>
(
null
)
...
@@ -1166,19 +1225,6 @@ onBeforeUnmount(() => {
...
@@ -1166,19 +1225,6 @@ onBeforeUnmount(() => {
white-space
:
nowrap
;
white-space
:
nowrap
;
margin-bottom
:
3px
;
margin-bottom
:
3px
;
}
}
.up-icon
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 24 24'%3E%3Cpath fill='%23f56c6c' d='M12.725 2.451a.75.75 0 0 0-1.007-.013L3.504 9.69A.75.75 0 0 0 4 11.003h4.382c.138 1.255.057 2.576-.252 3.969c-.318 1.434-1.722 3.25-4.515 5.438a.75.75 0 0 0 .535 1.337c3.311-.322 6.112-1.537 8.365-3.662c2.08-1.963 3.228-4.334 3.422-7.082H20a.75.75 0 0 0 .511-1.299z'/%3E%3C/svg%3E")
;
}
.down-icon
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 24 24'%3E%3Cpath fill='%2367C23A' d='M4.15 2.253a.75.75 0 0 0-.535 1.337C6.408 5.778 7.812 7.594 8.13 9.028c.309 1.393.39 2.714.252 3.969H4a.75.75 0 0 0-.496 1.312l8.214 7.253a.75.75 0 0 0 1.007-.013l7.786-7.253a.75.75 0 0 0-.511-1.3h-4.063c-.194-2.747-1.342-5.118-3.422-7.08C10.262 3.79 7.46 2.574 4.15 2.252'/%3E%3C/svg%3E")
;
}
}
}
}
}
}
}
...
@@ -1246,3 +1292,30 @@ onBeforeUnmount(() => {
...
@@ -1246,3 +1292,30 @@ onBeforeUnmount(() => {
}
}
}
}
</
style
>
</
style
>
<
style
lang=
"scss"
>
.up-icon-red
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 24 24'%3E%3Cpath fill='%23f56c6c' d='M12.725 2.451a.75.75 0 0 0-1.007-.013L3.504 9.69A.75.75 0 0 0 4 11.003h4.382c.138 1.255.057 2.576-.252 3.969c-.318 1.434-1.722 3.25-4.515 5.438a.75.75 0 0 0 .535 1.337c3.311-.322 6.112-1.537 8.365-3.662c2.08-1.963 3.228-4.334 3.422-7.082H20a.75.75 0 0 0 .511-1.299z'/%3E%3C/svg%3E")
;
}
.up-icon-green
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2367C23A' d='M12.725 2.451a.75.75 0 0 0-1.007-.013L3.504 9.69A.75.75 0 0 0 4 11.003h4.382c.138 1.255.057 2.576-.252 3.969c-.318 1.434-1.722 3.25-4.515 5.438a.75.75 0 0 0 .535 1.337c3.311-.322 6.112-1.537 8.365-3.662c2.08-1.963 3.228-4.334 3.422-7.082H20a.75.75 0 0 0 .511-1.299z'/%3E%3C/svg%3E")
;
}
.down-icon-green
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 24 24'%3E%3Cpath fill='%2367C23A' d='M4.15 2.253a.75.75 0 0 0-.535 1.337C6.408 5.778 7.812 7.594 8.13 9.028c.309 1.393.39 2.714.252 3.969H4a.75.75 0 0 0-.496 1.312l8.214 7.253a.75.75 0 0 0 1.007-.013l7.786-7.253a.75.75 0 0 0-.511-1.3h-4.063c-.194-2.747-1.342-5.118-3.422-7.08C10.262 3.79 7.46 2.574 4.15 2.252'/%3E%3C/svg%3E")
;
}
.down-icon-red
{
width
:
18px
;
height
:
18px
;
background-size
:
100%
100%
;
background-image
:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23F56C6C' d='M4.15 2.253a.75.75 0 0 0-.535 1.337C6.408 5.778 7.812 7.594 8.13 9.028c.309 1.393.39 2.714.252 3.969H4a.75.75 0 0 0-.496 1.312l8.214 7.253a.75.75 0 0 0 1.007-.013l7.786-7.253a.75.75 0 0 0-.511-1.3h-4.063c-.194-2.747-1.342-5.118-3.422-7.08C10.262 3.79 7.46 2.574 4.15 2.252'/%3E%3C/svg%3E")
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment