feat:WMS及产线数据管理系统项目登陆以及首页研发
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
<template v-if="device!=='mobile'">
|
||||||
<div v-show="port !== '9210'" class="el-icon-s-platform bigscreen-frame" @click="handleBigscreen()"></div>
|
<div v-show="fn" class="el-icon-s-platform bigscreen-frame" @click="handleBigscreen()"></div>
|
||||||
<search id="header-search" class="right-menu-item" />
|
<search id="header-search" class="right-menu-item" />
|
||||||
|
|
||||||
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
||||||
@ -69,6 +69,10 @@ export default {
|
|||||||
'avatar',
|
'avatar',
|
||||||
'device'
|
'device'
|
||||||
]),
|
]),
|
||||||
|
fn(){
|
||||||
|
let arr=['9210','9230']
|
||||||
|
return arr.includes(this.port.toString())
|
||||||
|
},
|
||||||
setting: {
|
setting: {
|
||||||
get() {
|
get() {
|
||||||
return this.$store.state.settings.showSettings
|
return this.$store.state.settings.showSettings
|
||||||
|
@ -68,6 +68,10 @@ export default {
|
|||||||
this.title = '工程机械数字服务平台'
|
this.title = '工程机械数字服务平台'
|
||||||
document.title = '工程机械数字服务平台'
|
document.title = '工程机械数字服务平台'
|
||||||
break;
|
break;
|
||||||
|
case '9230':
|
||||||
|
this.title = '企业作业综合可视化监管平台'
|
||||||
|
document.title = '企业作业综合可视化监管平台'
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
this.title = ''
|
this.title = ''
|
||||||
document.title = ''
|
document.title = ''
|
||||||
|
@ -730,6 +730,7 @@ export default {
|
|||||||
]
|
]
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<deviceMap v-else-if="port === '9190'"></deviceMap>
|
<deviceMap v-else-if="port === '9190'"></deviceMap>
|
||||||
<device-info v-else-if="port === '9210'"></device-info>
|
<device-info v-else-if="port === '9210'"></device-info>
|
||||||
<cityManageMap v-else-if="port === '9180'" />
|
<cityManageMap v-else-if="port === '9180'" />
|
||||||
|
<interface-home v-else-if="port === '9230'" />
|
||||||
<operate-home v-else-if="port === '80' || port === ''"></operate-home>
|
<operate-home v-else-if="port === '80' || port === ''"></operate-home>
|
||||||
<home-page v-else></home-page>
|
<home-page v-else></home-page>
|
||||||
</div>
|
</div>
|
||||||
@ -18,7 +19,7 @@ import MachineryHome from './machinery/home/index.vue'
|
|||||||
import deviceMap from './monitorMap/deviceMap/index.vue'
|
import deviceMap from './monitorMap/deviceMap/index.vue'
|
||||||
import cityManageMap from './cityManage/map/index.vue'
|
import cityManageMap from './cityManage/map/index.vue'
|
||||||
import deviceInfo from './deviceInfo/home/index.vue'
|
import deviceInfo from './deviceInfo/home/index.vue'
|
||||||
|
import interfaceHome from './interface/home/index.vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
HomePage,
|
HomePage,
|
||||||
@ -27,7 +28,8 @@ export default {
|
|||||||
MachineryHome,
|
MachineryHome,
|
||||||
deviceMap,
|
deviceMap,
|
||||||
cityManageMap,
|
cityManageMap,
|
||||||
deviceInfo
|
deviceInfo,
|
||||||
|
interfaceHome
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
BIN
god-ui/src/views/interface/home/assets/icon1.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
god-ui/src/views/interface/home/assets/icon2.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
god-ui/src/views/interface/home/assets/top1.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
god-ui/src/views/interface/home/assets/top2.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
god-ui/src/views/interface/home/assets/top3.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
god-ui/src/views/interface/home/assets/top4.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
god-ui/src/views/interface/home/assets/top5.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
449
god-ui/src/views/interface/home/index.vue
Normal file
@ -0,0 +1,449 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container main-outer-wrapper">
|
||||||
|
<div class="top-card-wrapper" style="grid-template-columns: repeat(5, 1fr)">
|
||||||
|
<div
|
||||||
|
class="top-card-inner top-card-item"
|
||||||
|
v-for="(item, index) in topCardList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
:class="['top-card-icon', 'top-icon-' + (index + 1).toString()]"
|
||||||
|
></div>
|
||||||
|
<div class="top-card-text-wrapper">
|
||||||
|
<div class="top-card-value">{{ item.value }}</div>
|
||||||
|
<div class="top-card-title">{{ item.title }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-main-wrapper">
|
||||||
|
<div class="grid-item-wrapper">
|
||||||
|
<div id="echart1" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-item-wrapper">
|
||||||
|
<div
|
||||||
|
id="echart2"
|
||||||
|
style="width: 100%; height: 100%"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-item-wrapper">
|
||||||
|
<div id="echart3" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-item-wrapper" style="padding: 0 20px">
|
||||||
|
<div>设备情况</div>
|
||||||
|
<div class="grid-item-right">
|
||||||
|
<div class="grid-right-item">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in shebeiList"
|
||||||
|
style="width: 100%; box-shadow: 2px 2px 2px"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<div>{{ item.title }}</div>
|
||||||
|
<div style="display: flex">
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
'top-card-icon',
|
||||||
|
'right-icon-' + (index + 1).toString(),
|
||||||
|
]"
|
||||||
|
></div>
|
||||||
|
<div style="margin-left: 10px">{{ item.number }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
id="echart5"
|
||||||
|
style="width: 78%; height: 100%;box-shadow: 2px 2px 2px #ccc, -2px -2px 1px #12121225;"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
generateBaseOptions,
|
||||||
|
generatePieOptions,
|
||||||
|
initChartStatic,
|
||||||
|
} from "@/utils/bigscreenTool/index.js";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
topCardList: [
|
||||||
|
{
|
||||||
|
title: "采购订单",
|
||||||
|
value: "312",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "销售订单",
|
||||||
|
value: "234",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "采购发票",
|
||||||
|
value: "135",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "销售发票",
|
||||||
|
value: "123",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "设备数量",
|
||||||
|
value: "32",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
shebeiList: [
|
||||||
|
{
|
||||||
|
title: "在线设备",
|
||||||
|
number: "30",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "离线设备",
|
||||||
|
number: "1",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initEchart1();
|
||||||
|
this.initEchart2();
|
||||||
|
this.initEchart3();
|
||||||
|
this.initEchart4();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initEchart1() {
|
||||||
|
const xAxisData = [],
|
||||||
|
baseDate = new Date();
|
||||||
|
for (let i = 0; i < 5; i++) {
|
||||||
|
const middleDate = new Date();
|
||||||
|
middleDate.setMonth(baseDate.getMonth() - i);
|
||||||
|
xAxisData.unshift(`${middleDate.getMonth()}月`);
|
||||||
|
}
|
||||||
|
initChartStatic(
|
||||||
|
"echart1",
|
||||||
|
generateBaseOptions({
|
||||||
|
title: {
|
||||||
|
text: "订单分析趋势",
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
data: xAxisData,
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
top: "bottom",
|
||||||
|
left: "center",
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: "value",
|
||||||
|
},
|
||||||
|
color: ["#609dd5", "#ec7d31"],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "采购订单",
|
||||||
|
data: [49, 60, 39, 60, 50, 55],
|
||||||
|
type: "line",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "销售订单",
|
||||||
|
data: [35, 40, 38, 43, 40, 35],
|
||||||
|
type: "line",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
grid:{
|
||||||
|
bottom:'17%'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
},
|
||||||
|
initEchart2() {
|
||||||
|
const xAxisData = [],
|
||||||
|
baseDate = new Date();
|
||||||
|
for (let i = 0; i < 5; i++) {
|
||||||
|
const middleDate = new Date();
|
||||||
|
middleDate.setMonth(baseDate.getMonth() - i);
|
||||||
|
xAxisData.unshift(`${middleDate.getMonth()}月`);
|
||||||
|
}
|
||||||
|
initChartStatic(
|
||||||
|
"echart2",
|
||||||
|
generateBaseOptions({
|
||||||
|
legend: {
|
||||||
|
show: true,
|
||||||
|
top: "bottom",
|
||||||
|
left: "center",
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
text: "生产统计分析(万斤)",
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
data: xAxisData,
|
||||||
|
},
|
||||||
|
color: ["#5b9ad4", "#ec7d31", "#a4a4a4"],
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
type: "value",
|
||||||
|
min: 0,
|
||||||
|
max: 50,
|
||||||
|
interval: 10,
|
||||||
|
axisLabel: {
|
||||||
|
formatter: "{value}",
|
||||||
|
textStyle: {
|
||||||
|
color: "#252525",//Y轴内容文字颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "value",
|
||||||
|
min: 88,
|
||||||
|
max: 100,
|
||||||
|
interval: 2,
|
||||||
|
axisLabel: {
|
||||||
|
textStyle: {
|
||||||
|
color: "#252525",//Y轴内容文字颜色
|
||||||
|
},
|
||||||
|
formatter: "{value}%",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "生产总量",
|
||||||
|
type: "bar",
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
barWidth: 5, // 设置柱子粗细
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
valueFormatter: function (value) {
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: [32, 29, 38, 35, 41, 46],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "残次品",
|
||||||
|
type: "bar",
|
||||||
|
itemStyle: {
|
||||||
|
barWidth: 5, // 设置柱子粗细
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
valueFormatter: function (value) {
|
||||||
|
return value;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: [3, 2.5, 2.8, 2, 3.3, 2.7],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "合格率",
|
||||||
|
type: "line",
|
||||||
|
yAxisIndex: 1,
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: "top",
|
||||||
|
formatter: "{c}%", //显示百分号
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
valueFormatter: function (value) {
|
||||||
|
return value + " %";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: [91, 91, 93, 94, 92, 92],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
grid:{
|
||||||
|
width:'90%',
|
||||||
|
bottom:'18%'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
},
|
||||||
|
initEchart3() {
|
||||||
|
initChartStatic(
|
||||||
|
"echart3",
|
||||||
|
generatePieOptions({
|
||||||
|
color: ["#a4a4a4", "#5b9ad4", "#ec7d31"],
|
||||||
|
legend: {
|
||||||
|
left: "right",
|
||||||
|
textStyle: {
|
||||||
|
color: "#252525",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
text: "销售金额占比",
|
||||||
|
left: "center",
|
||||||
|
},
|
||||||
|
graphic: [
|
||||||
|
{
|
||||||
|
//环形图中间添加文字
|
||||||
|
type: "text", //通过不同top值可以设置上下显示
|
||||||
|
left: "center",
|
||||||
|
top: "center",
|
||||||
|
style: {
|
||||||
|
text: "906.2万",
|
||||||
|
textAlign: "center",
|
||||||
|
fill: "red", //文字的颜色
|
||||||
|
fontSize: 20,
|
||||||
|
lineHeight: 20,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "数据详情",
|
||||||
|
type: "pie",
|
||||||
|
radius: ["40%", "70%"],
|
||||||
|
center: ["50%", "50%"],
|
||||||
|
data: [
|
||||||
|
{ value: 468.5, name: "桐盛建材" },
|
||||||
|
{ value: 329, name: "青鹏水泥" },
|
||||||
|
{ value: 108.7, name: "安达橡胶" },
|
||||||
|
],
|
||||||
|
label: {
|
||||||
|
formatter: "{c|{c}} , {per|{d}%}",
|
||||||
|
rich: {
|
||||||
|
c: {
|
||||||
|
color: "#252525",
|
||||||
|
fontSize: 12,
|
||||||
|
lineHeight: 33,
|
||||||
|
},
|
||||||
|
per: {
|
||||||
|
color: "#252525",
|
||||||
|
fontSize: 12,
|
||||||
|
lineHeight: 33,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
},
|
||||||
|
initEchart4() {
|
||||||
|
initChartStatic(
|
||||||
|
"echart5",
|
||||||
|
generatePieOptions({
|
||||||
|
color: ["#a4a4a4", "#5b9ad4", "#ec7d31"],
|
||||||
|
legend: {
|
||||||
|
left: "right",
|
||||||
|
itemWidth: 10,
|
||||||
|
itemHeight: 10,
|
||||||
|
textStyle: {
|
||||||
|
color: "#252525",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
text: "设备分布",
|
||||||
|
top: "2%",
|
||||||
|
left: "2%",
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: "数据详情",
|
||||||
|
type: "pie",
|
||||||
|
radius: ["40%", "70%"],
|
||||||
|
center: ["50%", "50%"],
|
||||||
|
data: [
|
||||||
|
{ value: 12.37, name: "金马地磅" },
|
||||||
|
{ value: 6.19, name: "金钟衡器" },
|
||||||
|
{ value: 14.44, name: "凯土地磅" },
|
||||||
|
],
|
||||||
|
label: {
|
||||||
|
formatter: "{c|{c}%} ",
|
||||||
|
rich: {
|
||||||
|
c: {
|
||||||
|
color: "#252525",
|
||||||
|
fontSize: 12,
|
||||||
|
lineHeight: 33,
|
||||||
|
},
|
||||||
|
per: {
|
||||||
|
color: "#252525",
|
||||||
|
fontSize: 12,
|
||||||
|
lineHeight: 33,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
@import url(../../../styles/mainPage.scss);
|
||||||
|
.top-card-icon {
|
||||||
|
width: 2rem;
|
||||||
|
height: 2rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.top-card-inner {
|
||||||
|
flex-direction: row !important;
|
||||||
|
box-shadow: 2px 2px 2px #25252525;
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
|
.top-card-icon {
|
||||||
|
width: 4rem;
|
||||||
|
height: 4rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-card-text-wrapper {
|
||||||
|
width: calc(100% - 5rem);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.top-card-value {
|
||||||
|
font-family: "TitleFont";
|
||||||
|
font-size: 1.6rem;
|
||||||
|
position: relative;
|
||||||
|
top: 0.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-main-wrapper {
|
||||||
|
grid-template-columns: 0.8fr 1.2fr;
|
||||||
|
grid-template-rows: 2fr 2fr;
|
||||||
|
width: 100%;
|
||||||
|
.grid-item-wrapper {
|
||||||
|
box-shadow: 2px 2px 2px #25252525;
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
|
.grid-item-title {
|
||||||
|
font-family: "TitleFont";
|
||||||
|
font-weight: 500 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.grid-item-right {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
height: calc(100% - 3rem);
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.grid-right-item {
|
||||||
|
width: 20%;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@for $i from 1 through 5 {
|
||||||
|
.top-icon-#{$i} {
|
||||||
|
background-image: url(./assets/top#{$i}.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@for $i from 1 through 2 {
|
||||||
|
.right-icon-#{$i} {
|
||||||
|
background-image: url(./assets/icon#{$i}.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -158,6 +158,11 @@ export default {
|
|||||||
loginDom.style.backgroundImage = 'url(/images/gongcheng-bg.png)'
|
loginDom.style.backgroundImage = 'url(/images/gongcheng-bg.png)'
|
||||||
this.redirect = '/index'
|
this.redirect = '/index'
|
||||||
break;
|
break;
|
||||||
|
case '9230':
|
||||||
|
document.title = '企业作业综合可视化监管平台'
|
||||||
|
loginDom.style.backgroundImage = 'url(/images/qiye-bg.png)'
|
||||||
|
this.redirect = '/index'
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
document.title = ''
|
document.title = ''
|
||||||
loginDom.style.backgroundImage = 'url(/images/gangyin-bg.png)'
|
loginDom.style.backgroundImage = 'url(/images/gangyin-bg.png)'
|
||||||
|