+
+
+
+
+ -
{{ item.name }}
{{ item.value }}%
@@ -50,16 +98,42 @@
@@ -109,19 +183,20 @@
}
.dot {
- width: vw(4);
- height: vw(4);
+ width: vw(10);
+ height: vw(10);
margin: 0 vw(16);
}
.name {
font-weight: 400;
- font-size: vw(12);
+ font-size: vw(14);
color: #ffffff;
- width: vw(130);
+ width: vw(110);
}
.value {
+ // padding-right: vw(20);
font-weight: bold;
font-size: vw(15);
color: #ffffff;
diff --git a/src/views/traffic/components/box-2.vue b/src/views/traffic/components/box-2.vue
index 6a61529..d7a26dc 100644
--- a/src/views/traffic/components/box-2.vue
+++ b/src/views/traffic/components/box-2.vue
@@ -11,7 +11,7 @@
{{ item.name }}
-
+
+
+
+
+
+
+
+

平均车速
+
+
+
+ km/h
+
+
+
+
+

拥堵距离
+
+
+
+ km
+
+
+
+
+

拥堵次数
+
+
+
+
+
+
+
+

拥堵开始时间
+
+
+ {{ item.startTime }}
+
+
+
+
+

拥堵持续时长
+
+
+ {{ item.congestDuration }}
+
+
+
+
+
+
+
@@ -58,13 +154,14 @@
.box-2 {
margin-top: vh(120);
display: flex;
- background: linear-gradient(321deg, #0b2f64 0%, #062b57 100%);
}
.nav {
- width: vw(232);
- margin-left: vw(10);
- overflow: auto;
+ width: vw(230);
height: vh(950);
+ margin-left: vw(8);
+ padding-left: vw(5);
+ overflow: auto;
+ background: linear-gradient(321deg, #0b2f64 0%, #062b57 100%);
&::-webkit-scrollbar {
width: vw(0); /* 滚动条的宽度 */
@@ -89,47 +186,234 @@
background-size: 100% 100%;
}
}
-
.traffic-map {
position: relative;
z-index: 9;
- width: vw(1290);
+ width: vw(1300);
height: vh(955);
- margin: 0 vw(8);
- padding: vw(20);
+ margin-left: vw(8);
box-sizing: border-box;
background-image: url('/src/assets/images/map-bg-2.png');
background-size: 100% 100%;
- .video-list {
- width: vw(320);
- height: vh(120);
- background: #0a254b;
- border-radius: 0px 0px 0px 0px;
- position: absolute;
- bottom: vw(40);
- right: vw(40);
- z-index: 99;
+ }
+ .traffic-map-big {
+ position: relative;
+ z-index: 9;
+ width: vw(2116);
+ height: vh(955);
+ margin-left: vw(8);
+ box-sizing: border-box;
+ background-image: url('/src/assets/images/map-bg-2.png');
+ background-size: 100% 100%;
+ }
+ .video-list {
+ width: vw(320);
+ height: vh(120);
+ background: #0a254b;
+ border-radius: 0px 0px 0px 0px;
+ position: absolute;
+ bottom: vw(40);
+ right: vw(40);
+ z-index: 99;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ .li {
+ width: vw(140);
+ height: vh(105);
+ background-image: url('/src/assets/images/small-v-bg.png');
+ background-size: 100% 100%;
+ margin-right: vw(6);
+ }
+ .menu {
+ width: vw(12);
+ height: vh(60);
+ font-family: Inter, Inter;
+ font-weight: 400;
+ font-size: vw(12);
+ color: #ffffff;
+ line-height: vh(14);
+ text-align: left;
+ font-style: normal;
+ text-transform: none;
+ }
+ }
+ .list {
+ width: vw(806);
+ height: vh(952);
+ margin-left: vw(8);
+ overflow: auto;
+ &::-webkit-scrollbar {
+ width: vw(0); /* 滚动条的宽度 */
+ }
+ }
+ .item {
+ margin-bottom: vh(10);
+ background-image: url('@/assets/images/bg-2.png');
+ background-size: 100% 100%;
+ .header {
+ height: vh(72);
display: flex;
- justify-content: center;
align-items: center;
- .li {
- width: vw(140);
- height: vh(105);
- background-image: url('/src/assets/images/small-v-bg.png');
- background-size: 100% 100%;
- margin-right: vw(6);
+ &-left {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ > img {
+ width: vw(30);
+ height: auto;
+ margin-right: vw(15);
+ }
}
- .menu {
- width: vw(12);
- height: vh(60);
- font-family: Inter, Inter;
- font-weight: 400;
- font-size: vw(12);
+ &-left__title {
+ margin-right: vw(20);
+ font-size: vw(28);
+ font-weight: bold;
+ color: transparent;
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-image: linear-gradient(to bottom, #ffffff 0%, #87c9ff 100%);
+ }
+ &-left__camera {
+ cursor: pointer;
+ width: vw(120);
+ height: vw(72);
+ font-weight: 600;
+ font-size: vw(15);
color: #ffffff;
- line-height: vh(14);
- text-align: left;
- font-style: normal;
- text-transform: none;
+ padding-left: vw(42);
+ display: flex;
+ align-items: center;
+ margin: 0 vw(20);
+ background-image: url('/src/assets/images/t-a-1.png');
+ background-size: 100% 100%;
+ }
+ &-left__point {
+ cursor: pointer;
+ margin: 0 vw(20);
+ width: vw(120);
+ height: vw(72);
+ font-weight: 600;
+ font-size: vw(15);
+ color: #ffffff;
+ padding-left: vw(42);
+ display: flex;
+ align-items: center;
+ background-image: url('/src/assets/images/t-a-2.png');
+ background-size: 100% 100%;
+ }
+ &-status {
+ min-width: vw(150);
+ height: vw(54);
+ font-weight: 600;
+ font-size: vw(14);
+ color: #fff;
+ display: flex;
+ align-items: center;
+ padding-left: vw(50);
+ padding-right: vw(20);
+ background-image: url('/src/assets/images/t-b-1.png');
+ background-size: 100% 100%;
+ }
+ }
+
+ .chart-item {
+ padding: vw(1);
+ margin-top: vh(10);
+ height: vh(293);
+ background-image: url('@/assets/images/bg-3.png');
+ background-size: 100% 100%;
+
+ .chart-box {
+ width: 100%;
+ height: vh(250);
+ }
+
+ .title-3 {
+ margin-left: vw(10);
+ position: relative;
+ width: vw(344);
+ height: vh(12);
+ margin-top: vh(20);
+ background-image: url('@/assets/images/title-6.png');
+ background-size: 100% 100%;
+
+ & > span {
+ position: absolute;
+ bottom: vh(4);
+ left: vw(20);
+ font-size: vw(15);
+ font-weight: bold;
+ background-image: linear-gradient(to bottom, #ffffff 0%, #0096ff 100%);
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ /* 兼容WebKit内核浏览器 */
+ color: transparent;
+ /* 兼容其他浏览器 */
+ }
+ }
+ }
+
+ .statistics {
+ height: vh(90);
+ display: flex;
+ align-items: center;
+ justify-content: space-evenly;
+ background-image: url('@/assets/images/bg-3.png');
+ background-size: 100% 100%;
+
+ &-item__label {
+ font-weight: 400;
+ font-size: vw(14);
+ color: #fff;
+ margin-bottom: vh(10);
+ }
+ &-item__value {
+ padding-left: vw(15);
+ height: vh(30);
+ font-weight: bold;
+ font-size: vw(24);
+ color: #02f9fa;
+ background-image: url('@/assets/images/t-box-title-bg-1.png');
+ background-size: 100% 100%;
+ }
+ .item-box {
+ .item-t {
+ display: flex;
+ font-weight: 400;
+ font-size: vw(14);
+ color: rgba(255, 255, 255, 0.8);
+ margin-bottom: vh(20);
+ img {
+ margin-right: vw(5);
+ width: vw(8);
+ height: vh(8);
+ }
+ }
+
+ .item-num {
+ width: vw(134);
+ height: vh(30);
+ background-image: url('@/assets/images/t-box-title-bg-1.png');
+ background-size: 100% 100%;
+ font-weight: bold;
+ font-size: vw(24);
+ color: #02f9fa;
+ text-align: left;
+ font-style: normal;
+ text-transform: none;
+ padding-left: vw(15);
+ position: relative;
+ left: vw(-8);
+
+ span {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ }
}
}
}
diff --git a/src/views/traffic/components/box-3.vue b/src/views/traffic/components/box-3.vue
deleted file mode 100644
index 43a6494..0000000
--- a/src/views/traffic/components/box-3.vue
+++ /dev/null
@@ -1,414 +0,0 @@
-
-
-
-
-
-
-
-

路段长度
-
-
-
-
-
-
-
-

平均车速
-
-
-
-
-
-
-
-

拥堵距离
-
-
-
-
-
-
-
-

拥堵次数
-
-
-
-
-
-
-
-

拥堵开始时间
-
-
-
-
-
-
-
-

拥堵持续时长
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/traffic/components/spotRate.vue b/src/views/traffic/components/spotRate.vue
index 27c62ea..c986fe5 100644
--- a/src/views/traffic/components/spotRate.vue
+++ b/src/views/traffic/components/spotRate.vue
@@ -18,9 +18,13 @@
default: () => []
},
total: {
- type: Number,
+ type: [Number, String],
default: () => 0
},
+ label: {
+ type: String,
+ default: () => ''
+ },
colors: {
type: Array,
default: () => ['#FDC40A', '#FF5232', '#50F0A6', '#5FDFFA']
@@ -29,6 +33,8 @@
const { id, setOption } = useEchart()
+ let params = null
+
var defaultCofig = {
color: [],
series: [
@@ -47,12 +53,12 @@
rich: {
value: {
color: '#fff',
- fontSize: fitChartSize(24),
+ fontSize: fitChartSize(20),
fontWeight: 'bold',
padding: [0, 0, 5, 0]
},
name: {
- color: '#7894A8',
+ color: '#fff',
fontSize: fitChartSize(12)
}
}
@@ -70,20 +76,26 @@
(newVal) => {
if (newVal.length > 0) {
nextTick(() => {
- defaultCofig.color = props.colors
- defaultCofig.series[0].data = props.dataList
- defaultCofig.series[0].label.formatter = () => {
- return `{value|${props.total}}` + '\n' + `{name|工单总数}`
+ if (!params) {
+ defaultCofig.color = props.colors
+ defaultCofig.series[0].data = props.dataList
+ defaultCofig.series[0].label.formatter = () => {
+ return `{value|${props.total}}` + '\n' + `{name|${props.label}}`
+ }
+ params = {
+ ...defaultCofig,
+ ...props.config
+ }
+ } else {
}
- setOption({
- ...defaultCofig,
- ...props.config
- })
+ setOption(params)
})
}
},
{ immediate: true }
)
+
+ const init = () => {}
diff --git a/src/views/traffic/index.vue b/src/views/traffic/index.vue
index 9e209a8..cab4b58 100644
--- a/src/views/traffic/index.vue
+++ b/src/views/traffic/index.vue
@@ -1,11 +1,9 @@
-
diff --git a/src/views/workOrder/components/box-2.vue b/src/views/workOrder/components/box-2.vue
index 09a73bb..e83094a 100644
--- a/src/views/workOrder/components/box-2.vue
+++ b/src/views/workOrder/components/box-2.vue
@@ -25,10 +25,6 @@
-
@@ -77,7 +73,7 @@
-
+
-
@@ -90,7 +86,7 @@
-
+
-
@@ -373,8 +369,8 @@
}
.dot {
- width: vw(4);
- height: vw(4);
+ width: vw(10);
+ height: vw(10);
margin: 0 vw(16);
}
diff --git a/src/views/workOrder/components/spotRate.vue b/src/views/workOrder/components/spotRate.vue
index 0a47b04..67ea07b 100644
--- a/src/views/workOrder/components/spotRate.vue
+++ b/src/views/workOrder/components/spotRate.vue
@@ -21,6 +21,10 @@
type: Number,
default: () => 0
},
+ label: {
+ type: String,
+ default: () => ''
+ },
colors: {
type: Array,
default: () => ['#FDC40A', '#FF5232', '#50F0A6', '#5FDFFA']
@@ -52,7 +56,7 @@
padding: [0, 0, 5, 0]
},
name: {
- color: '#7894A8',
+ color: '#fff',
fontSize: fitChartSize(12)
}
}
@@ -73,7 +77,7 @@
defaultCofig.color = props.colors
defaultCofig.series[0].data = props.dataList
defaultCofig.series[0].label.formatter = () => {
- return `{value|${props.total}}` + '\n' + `{name|工单总数}`
+ return `{value|${props.total}}` + '\n' + `{name|${props.label}}`
}
setOption({
...defaultCofig,