master
loveflow 7 months ago
parent 36380da9ea
commit eac71c71f6

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -28,18 +28,30 @@
.mr8 { .mr8 {
margin-right: 8px; margin-right: 8px;
} }
.mr14 {
margin-right: 14px;
}
.mr18 { .mr18 {
margin-right: 18px; margin-right: 18px;
} }
.mr20 {
margin-right: 20px;
}
.mb10 { .mb10 {
margin-bottom: 10px; margin-bottom: 10px;
} }
.mb14 {
margin-bottom: 14px;
}
.mb18 { .mb18 {
margin-bottom: 18px; margin-bottom: 18px;
} }
.mb20 { .mb20 {
margin-bottom: 20px; margin-bottom: 20px;
} }
.ml14 {
margin-left: 14px;
}
/* 间距 END*/ /* 间距 END*/
/* 字体 START */ /* 字体 START */

@ -0,0 +1,187 @@
<template>
<div style="height: 100%; width: 100%">
<g-chart :echartdata="option"></g-chart>
</div>
</template>
<script>
export default {
props: {
chartObj: {
type: Object,
default: () => {
return {};
},
},
},
data() {
return {
option: {},
};
},
mounted() {
this.setOption();
},
methods: {
setOption() {
this.option = {
legend: {
data: this.chartObj.legend,
icon: "rect",
right: "5%",
top: this.chartObj.legendTop || "2%",
itemWidth: 8, //
itemHeight: 8, //
itemGap: 16, //
textStyle: {
//
color: "#D0DEEE",
fontSize: 12,
},
},
grid: {
top: this.chartObj.gridTop || "20%",
bottom: this.chartObj.gridBtm || "10%",
left: this.chartObj.gridLeft || "6%",
right: "5%",
},
tooltip: {
trigger: "axis",
},
xAxis: {
type: "category",
data: this.chartObj.xData,
axisLine: {
show: true,
lineStyle: {
color: "#6C8097",
},
},
axisLabel: {
color: "#D0DEEE",
fontSize: 12,
},
axisTick: {
show: false,
},
},
yAxis: {
type: "value",
splitLine: {
show: true,
lineStyle: {
type: "dashed",
color: "#6C8097",
},
},
axisLabel: {
color: "#6C8097",
fontSize: 12,
interval: 0,
},
},
series: [
{
name: this.chartObj.legend[0],
type: "bar",
barWidth: 20,
color: this.chartObj.color[0][0],
data: this.chartObj.yData1,
label: {
show: false,
position: "top",
},
itemStyle: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: this.chartObj.color[0][1],
},
{
offset: 1,
color: this.chartObj.color[0][2],
},
]),
},
},
{
name: this.chartObj.legend[0] + "1",
type: "scatter",
emphasis: {
scale: false,
},
symbol: "roundRect",
symbolSize: [20, 4], //
symbolOffset: [-12, 0],
itemStyle: {
show: true,
barBorderRadius: [10, 10, 10, 10],
color: "#6BDFFF",
shadowColor: "rgba(255, 255, 255, 1)",
shadowBlur: 6,
borderWidth: 1,
opacity: 1,
},
z: 2,
data: this.chartObj.yData1,
animationDelay: 500,
},
{
name: this.chartObj.legend[1],
type: "bar",
barWidth: 20,
color: this.chartObj.color[1][0],
data: this.chartObj.yData2,
label: {
show: false,
position: "top",
},
itemStyle: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: this.chartObj.color[1][1],
},
{
offset: 1,
color: this.chartObj.color[1][2],
},
]),
},
},
{
name: this.chartObj.legend[1] + "2",
type: "scatter",
emphasis: {
scale: false,
},
symbol: "roundRect",
symbolSize: [20, 4], //
symbolOffset: [12, 0],
itemStyle: {
show: true,
barBorderRadius: [10, 10, 10, 10],
color: "#FFE16B",
shadowColor: "rgba(255, 255, 255, 1)",
shadowBlur: 6,
borderWidth: 1,
opacity: 1,
},
z: 2,
data: this.chartObj.yData2,
animationDelay: 300,
},
],
};
},
},
watch: {
chartObj: {
handler(newval) {
this.setOption();
},
deep: true,
// immediate: true,
},
},
};
</script>

@ -71,7 +71,7 @@ export default {
grid: { grid: {
top: this.chartObj.gridTop || "20%", top: this.chartObj.gridTop || "20%",
bottom: "10%", bottom: "10%",
left: "6%", left: this.chartObj.gridLeft || "6%",
right: "5%", right: "5%",
}, },
tooltip: { tooltip: {
@ -96,6 +96,7 @@ export default {
}, },
}, },
yAxis: { yAxis: {
name: this.chartObj.yName || "",
type: "value", type: "value",
splitLine: { splitLine: {
show: true, show: true,

@ -0,0 +1,134 @@
<template>
<div style="height: 100%; width: 100%">
<g-chart :echartdata="option"></g-chart>
</div>
</template>
<script>
export default {
props: {
chartObj: {
type: Object,
default: () => {
return {};
},
},
},
data() {
return {
option: {},
};
},
mounted() {
this.setOption();
},
methods: {
setOption() {
this.option = {
color: ["#C6403E", "#FF8A5A", "#5B8FF9"],
legend: {
icon: "rect",
right: "3%",
top: this.chartObj.legendTop || "1%",
itemWidth: 8, //
itemHeight: 8, //
itemGap: 16, //
itemStyle: {
borderWidth: 0,
},
textStyle: {
//
color: "#D0DEEE",
fontSize: 12,
},
},
tooltip: {
show: false,
},
radar: {
center: ["50%", "50%"], //
radius: "65%",
name: {
textStyle: {
color: "#D0DEEE",
fontSize: 18,
},
},
axisName: {
color: "#D0DEEE",
},
indicator: this.chartObj.indicator,
splitArea: {
// grid
show: true,
areaStyle: {
//
color: ["transparent"], //
},
},
axisLine: {
// 线
lineStyle: {
color: "rgba(61,183,171,0.1)",
},
},
splitLine: {
lineStyle: {
type: "solid",
color: "rgba(61,183,171,0.1)", // 线
width: 2, // 线线
},
},
},
series: [
{
type: "radar",
symbolSize: 6,
itemStyle: {
borderColor: "#ffffff",
borderWidth: 1,
},
lineStyle: {
width: 3,
},
areaStyle: {
color: "transparent",
},
data: [
{
value: [80, 80, 80, 70, 60, 50],
name: "猎枪",
lineStyle: {
color: "#C6403E",
},
},
{
value: [40, 70, 50, 60, 30, 80],
name: "竞技体育用枪",
lineStyle: {
color: "#FF8A5A",
},
},
{
value: [50, 60, 90, 30, 10, 80],
name: "商业射击馆枪支",
lineStyle: {
color: "#5B8FF9",
},
},
],
},
],
};
},
},
watch: {
chartObj: {
handler(newval) {
this.setOption();
},
deep: true,
// immediate: true,
},
},
};
</script>

@ -8,6 +8,11 @@ export default [
name: "screen", name: "screen",
component: () => import("@/views/enterpriseTopic/screen"), component: () => import("@/views/enterpriseTopic/screen"),
}, },
{
path: "/topic/personSafety/screen",
name: "personSafety",
component: () => import("@/views/enterpriseTopic/personSafety/screen"),
},
{ {
path: "/topic", path: "/topic",
name: "topic", name: "topic",

@ -313,7 +313,7 @@ export default {
color: #d9e7ff; color: #d9e7ff;
.riskIcon { .riskIcon {
width: vw(24); width: vh(24);
height: vh(24); height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat center background: url("~@/assets/images/screen/riskIcon.png") no-repeat center
center; center;

@ -566,7 +566,7 @@ export default {
color: #d9e7ff; color: #d9e7ff;
.riskIcon { .riskIcon {
width: vw(24); width: vh(24);
height: vh(24); height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat center background: url("~@/assets/images/screen/riskIcon.png") no-repeat center
center; center;

@ -31,19 +31,28 @@ export default {
<style lang="scss"> <style lang="scss">
@import "@/loveflow/assets/index.scss"; @import "@/loveflow/assets/index.scss";
.screenCol { .screenCol {
height: vh(36); height: 100%;
.screenIcon { flex: 1;
width: vw(24); .screenName {
height: vh(24); height: vh(36);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat center background: url("~@/assets/images/topic/colT.png") no-repeat center center;
center;
background-size: 100% 100%; background-size: 100% 100%;
} .screenIcon {
.screenNameText { width: vh(24);
font-size: vh(16); height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat center
center;
background-size: 100% 100%;
}
.screenNameText {
font-size: vh(16);
}
} }
.screenChart { .screenChart {
height: calc(100% - 3.3333vh);
background: url("~@/assets/images/topic/colB.png") no-repeat center center;
background-size: 100% 100%;
} }
} }
</style> </style>

@ -1,5 +1,613 @@
<template> <template>
<div> <div class="enterpriseTopic">
<!-- 列管物品 --> <div class="enterpriseTopicBody">
<div class="screenRow mb18">
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">人防数据</div>
</div>
<div class="screenChart">
<lineOne :chartObj="tlObj"></lineOne>
</div>
</div>
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">物品使用情况</div>
</div>
<div class="screenChart">
<barFour :chartObj="tmObj"></barFour>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">列管物品异常分析</div>
</div>
<div class="screenChart">
<div class="screenErrorWrap">
<div
class="errorWrap"
:style="{ backgroundImage: 'url(' + item.icon + ')' }"
v-for="item in errorList"
:key="item.name"
>
<div class="errorNum">{{ item.value }}</div>
<div class="errorName">{{ item.name }}</div>
</div>
</div>
<div class="screenErrorAlarmWrap">
<div
class="screenErrorAlarm"
v-for="(item, index) in errorAlarm"
:key="item.name + index"
>
<div class="line">
<div class="item">
<div class="label">企业名称</div>
<div class="value name">{{ item.name }}</div>
</div>
<div class="item">
<div class="label">预警时间</div>
<div class="value">{{ item.time }}</div>
</div>
</div>
<div class="line">
<div class="item">
<div class="label">异常类型</div>
<div class="value">{{ item.type }}</div>
</div>
<div class="item">
<div class="label">预警详情</div>
<div class="value">{{ item.detail }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="screenRow screenRowBtm">
<div class="screenCol mr20">
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">放射源物品</div>
</div>
<div class="screenChart">
<div class="fshePanel">
<div class="fsheWrap mr18 ml14">
<div class="fsheHead">
<div class="fsheIcon"></div>
<div class="fsheTitle">放射源种类及数量</div>
</div>
<div class="fsheBody"></div>
</div>
<div class="fsheWrap mr18">
<div class="fsheHead">
<div class="fsheIcon"></div>
<div class="fsheTitle">放射源运输</div>
</div>
<div class="fsheBody"></div>
</div>
<div class="fsheWrap mr14">
<div class="fsheHead">
<div class="fsheIcon"></div>
<div class="fsheTitle">放射源使用</div>
</div>
<div class="fsheBody"></div>
</div>
</div>
</div>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">民用枪支</div>
</div>
<div class="screenChart">
<div class="gunsWrap">
<div class="gunsLeft">
<div
class="gunsItem"
v-for="item in gunsList"
:key="item.name"
:class="item.class"
>
<div class="gunsIcon"></div>
<div class="gunsInfo">
<div class="label">{{ item.name }}</div>
<div class="value">{{ item.value }}</div>
</div>
</div>
</div>
<div class="gunsRight">
<radarTwo :chartObj="mrObj"></radarTwo>
</div>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script>
import lineOne from "@/loveflow/components/echart/line/one.vue";
import barFour from "@/loveflow/components/echart/bar/four.vue";
import radarTwo from "@/loveflow/components/echart/radar/two.vue";
export default {
components: { lineOne, barFour,radarTwo },
data() {
return {
tlObj: {
gridTop: "15%",
gridLeft: "8%",
yName: "单位:百分比",
legendTop: "4%",
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData: [
[31, 41, 28, 87, 32, 12, 97, 79],
[51, 52, 68, 57, 12, 72, 57, 39],
[91, 71, 98, 59, 61, 72, 78, 69],
[81, 87, 21, 56, 10, 19, 82, 91],
],
name: "人防数据",
legend: ["危化品", "放射物品", "民爆物品", "民用枪支"],
color: [
["#09C8F5", "rgba(9,200,245,0.1)", "rgba(9,200,245,0.1)"],
["#FFD16A", "rgba(255,209,106,0.1)", "rgba(255,209,106,0.1)"],
["#FF8A5A", "rgba(255,138,90,0.1)", "rgba(255,138,90,0.1)"],
["#FF3B3B", "rgba(255,59,59,0.1)", "rgba(255,59,59,0.1)"],
],
},
tmObj: {
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData1: [23, 24, 13, 21, 33, 14, 32, 12],
yData2: [13, 34, 23, 11, 23, 24, 12, 32],
legend: ["易制爆物品", "剧毒物品"],
name: "物品使用情况",
color: [
["#09C8F5", "rgba(9,200,245,0.9)", "rgba(9,200,245,0)"],
["#FFD16A", "rgba(255,209,106,0.9)", "rgba(255,209,106,0)"],
],
},
errorList: [
{
name: "使用规范异常",
value: 13211,
icon: require("@/assets/images/topic/e1.png"),
},
{
name: "出入库登记异常",
value: 14223,
icon: require("@/assets/images/topic/e2.png"),
},
{
name: "仓库安全异常",
value: 3211,
icon: require("@/assets/images/topic/e3.png"),
},
{
name: "使用资质异常",
value: 14212,
icon: require("@/assets/images/topic/e4.png"),
},
],
errorAlarm: [
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
{
name: "宁波镇海兴达化工有限公司",
type: "使用规范异常",
time: "2024-02-28 22:25:25",
detail: "危化品定期检查延期",
},
],
gunsList: [
{
name: "猎枪",
value: 213,
class: "oneGuns",
},
{
name: "竞技体育用枪",
value: 1113,
class: "twoGuns",
},
{
name: "商业射击馆枪支",
value: 2131,
class: "threeGuns",
},
],
mrObj: {
indicator: [
{
name: "枪支数量",
max: 100,
},
{
name: "使用人数",
max: 100,
},
{
name: "巡检次数",
max: 100,
},
{
name: "资质齐全占比",
max: 100,
},
{
name: "使用登记次数",
max: 100,
},
{
name: "关联单位数",
max: 100,
},
],
yData: [12, 13, 14, 15, 11, 14],
name: "民用枪支",
},
};
},
};
</script>
<style lang="less">
.enterpriseTopic {
height: 100%;
background: url("~@/assets/images/topic/allback.png") no-repeat center center;
background-size: 100% 100%;
box-sizing: border-box;
overflow: hidden;
.enterpriseTopicBody {
position: absolute;
top: 100px;
left: 16px;
width: calc(100% - 32px);
height: calc(100% - 110px);
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
.screenRow {
display: flex;
flex: 1;
.screenCol {
flex: 1;
height: 100%;
background: url("~@/assets/images/topic/pcolT.png") no-repeat center
center;
background-size: 100% 100%;
.screenErrorWrap {
display: flex;
justify-content: space-between;
.errorWrap {
background-repeat: no-repeat;
background-position: center center;
background-size: 100% 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
padding-bottom: 4px;
.errorNum {
margin-bottom: 4px;
font-weight: 500;
color: #ffe3e3;
text-shadow: 0px 0px 9px rgba(255, 113, 87, 0.88);
}
.errorName {
color: #d0deee;
}
}
}
.screenErrorAlarmWrap {
display: flex;
flex-direction: column;
justify-content: space-between;
.screenErrorAlarm {
display: flex;
flex-direction: column;
background: url("~@/assets/images/topic/jx.png") no-repeat center
center;
background-size: 100% 100%;
.line {
display: flex;
flex: 1;
align-items: center;
.item {
flex: 1;
display: flex;
.label {
color: #d0deee;
}
.value {
color: #ffffff;
}
.name {
color: #ffe6d9;
}
}
}
}
}
.fshePanel {
display: flex;
height: 100%;
.fsheWrap {
flex: 1;
height: calc(100% - 26px);
margin-top: 12px;
.fsheHead {
background: url("~@/assets/images/topic/fsT.png") no-repeat center
center;
background-size: 100% 100%;
.fsheIcon {
background: url("~@/assets/images/topic/fsIcon.png") no-repeat
center center;
background-size: 100% 100%;
}
.fsheTitle {
color: #d9e7ff;
}
}
.fsheBody {
background: rgba(108, 151, 149, 0.2);
border: 1px solid #495461;
}
}
}
.gunsWrap {
display: flex;
height: 100%;
padding: 18px 10px 4px 28px;
.gunsLeft {
height: 100%;
flex: 1;
display: flex;
flex-direction: column;
margin-right: 10px;
.gunsItem {
flex: 1;
margin-bottom: 14px;
display: flex;
align-items: center;
padding-left: 8px;
.gunsIcon {
}
.gunsInfo {
.label {
}
.value {
font-weight: 500;
}
}
}
.oneGuns {
background: url("~@/assets/images/topic/gunb1.png") no-repeat
center center;
background-size: 100% 100%;
.gunsIcon {
background: url("~@/assets/images/topic/guni1.png") no-repeat
center center;
background-size: 100% 100%;
}
.gunsInfo {
.label {
color: #ffcfc4;
}
.value {
color: #ffebeb;
}
}
}
.twoGuns {
background: url("~@/assets/images/topic/gunb2.png") no-repeat
center center;
background-size: 100% 100%;
.gunsIcon {
background: url("~@/assets/images/topic/guni2.png") no-repeat
center center;
background-size: 100% 100%;
}
.gunsInfo {
.label {
color: #ffe5c4;
}
.value {
color: #fff4eb;
}
}
}
.threeGuns {
background: url("~@/assets/images/topic/gunb3.png") no-repeat
center center;
background-size: 100% 100%;
.gunsIcon {
background: url("~@/assets/images/topic/guni3.png") no-repeat
center center;
background-size: 100% 100%;
}
.gunsInfo {
.label {
color: #c4e5ff;
}
.value {
color: #ebf9ff;
}
}
}
}
.gunsRight {
height: 100%;
flex: 1.8;
}
}
}
}
.screenRowBtm {
.screenCol {
background: url("~@/assets/images/topic/pcolB.png") no-repeat center
center;
background-size: 100% 100%;
}
}
}
}
</style>
<style lang="scss" scoped>
@import "@/loveflow/assets/index.scss";
.enterpriseTopic {
.enterpriseTopicBody {
.screenRow {
.screenCol {
.screenName {
display: flex;
align-items: center;
padding-left: vh(6);
height: vh(36);
font-size: vh(16);
color: #d9e7ff;
.screenIcon {
margin-right: 2px;
width: vh(24);
height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat
center center;
background-size: 100% 100%;
}
.screenNameText {
}
}
.screenChart {
position: relative;
height: calc(100% - 3.3333vh);
.screenErrorWrap {
margin-top: vh(24);
.errorWrap {
width: vh(142);
height: vh(100);
.errorNum {
font-size: vh(16);
}
.errorName {
font-size: vh(14);
}
}
}
.screenErrorAlarmWrap {
margin: vh(15) vh(15) 0;
.screenErrorAlarm {
height: vh(56);
margin-bottom: vh(15);
font-size: vw(12);
.line {
padding-left: vh(8);
}
}
}
.fshePanel {
.fsheWrap {
.fsheHead {
display: flex;
align-items: center;
height: vh(36);
.fsheIcon {
width: vh(32);
height: vh(38);
}
.fsheTitle {
font-size: vh(14);
}
}
.fsheBody {
height: calc(100% - 3.3333vh);
}
}
}
.gunsWrap {
.gunsLeft {
.gunsItem {
.gunsIcon {
width: vh(90);
height: vh(70);
}
.gunsInfo {
height: vh(70);
display: flex;
flex-direction: column;
justify-content: space-evenly;
.label {
font-size: vh(18);
}
.value {
font-size: vh(28);
}
}
}
.oneGuns {
.gunsIcon {
}
.gunsInfo {
.label {
}
.value {
}
}
}
.twoGuns {
.gunsIcon {
}
.gunsInfo {
.label {
}
.value {
}
}
}
.threeGuns {
.gunsIcon {
}
.gunsInfo {
.label {
}
.value {
}
}
}
}
.gunsRight {
height: 100%;
flex: 1.6;
}
}
}
}
}
}
}
</style>

@ -0,0 +1,166 @@
<template>
<div class="enterpriseTopic">
<head-wrap title="人员安全风险评估"></head-wrap>
<div class="enterpriseTopicBody">
<div class="screenRow mb18">
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">人防数据</div>
</div>
<div class="screenChart">
<lineOne :chartObj="tlObj"></lineOne>
</div>
</div>
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">物品使用情况</div>
</div>
<div class="screenChart">
<barFour :chartObj="tmObj"></barFour>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">列管物品异常分析</div>
</div>
<div class="screenChart"></div>
</div>
</div>
<div class="screenRow screenRowBtm">
<div class="screenCol mr20">
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">放射源物品</div>
</div>
<div class="screenChart"></div>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">民用枪支</div>
</div>
<div class="screenChart"></div>
</div>
</div>
</div>
</div>
</template>
<script>
import headWrap from "@/views/home/head.vue";
import lineOne from "@/loveflow/components/echart/line/one.vue";
import barFour from "@/loveflow/components/echart/bar/four.vue";
export default {
components: { headWrap, lineOne, barFour },
data() {
return {
tlObj: {
gridTop: "15%",
gridLeft: "8%",
yName: "单位:百分比",
legendTop: "4%",
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData: [
[31, 41, 28, 87, 32, 12, 97, 79],
[51, 52, 68, 57, 12, 72, 57, 39],
[91, 71, 98, 59, 61, 72, 78, 69],
[81, 87, 21, 56, 10, 19, 82, 91],
],
name: "人防数据",
legend: ["危化品", "放射物品", "民爆物品", "民用枪支"],
color: [
["#09C8F5", "rgba(9,200,245,0.1)", "rgba(9,200,245,0.1)"],
["#FFD16A", "rgba(255,209,106,0.1)", "rgba(255,209,106,0.1)"],
["#FF8A5A", "rgba(255,138,90,0.1)", "rgba(255,138,90,0.1)"],
["#FF3B3B", "rgba(255,59,59,0.1)", "rgba(255,59,59,0.1)"],
],
},
tmObj: {
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData1: [23, 24, 13, 21, 33, 14, 32, 12],
yData2: [13, 34, 23, 11, 23, 24, 12, 32],
legend: ["易制爆物品", "剧毒物品"],
name: "物品使用情况",
color: [
["#09C8F5", "rgba(9,200,245,0.9)", "rgba(9,200,245,0)"],
["#FFD16A", "rgba(255,209,106,0.9)", "rgba(255,209,106,0)"],
],
},
};
},
};
</script>
<style lang="less">
.enterpriseTopic {
height: 100%;
background: url("~@/assets/images/topic/allback.png") no-repeat center center;
background-size: 100% 100%;
box-sizing: border-box;
overflow: hidden;
.enterpriseTopicBody {
position: absolute;
top: 100px;
left: 16px;
width: calc(100% - 32px);
height: calc(100% - 110px);
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
.screenRow {
display: flex;
flex: 1;
.screenCol {
flex: 1;
height: 100%;
background: url("~@/assets/images/topic/pcolT.png") no-repeat center
center;
background-size: 100% 100%;
}
}
.screenRowBtm {
.screenCol {
background: url("~@/assets/images/topic/pcolB.png") no-repeat center
center;
background-size: 100% 100%;
}
}
}
}
</style>
<style lang="scss" scoped>
@import "@/loveflow/assets/index.scss";
.enterpriseTopic {
.enterpriseTopicBody {
.screenRow {
.screenCol {
.screenName {
display: flex;
align-items: center;
padding-left: vh(6);
height: vh(36);
font-size: vh(16);
color: #d9e7ff;
.screenIcon {
width: vh(24);
height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat
center center;
background-size: 100% 100%;
}
.screenNameText {
}
}
.screenChart {
height: calc(100% - 3.3333vh);
}
}
}
}
}
</style>

@ -1,37 +1,131 @@
<template> <template>
<div class="enterpriseTopic"> <div class="enterpriseTopic">
<head-wrap title="平安企业专题驾驶舱"></head-wrap> <head-wrap title="人员安全风险评估"></head-wrap>
<div class="enterpriseTopicBody">
<div class="screenRow mb18">
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">人防数据</div>
</div>
<div class="screenChart">
<lineOne :chartObj="tlObj"></lineOne>
</div>
</div>
<div class="screenCol mr18">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">物品使用情况</div>
</div>
<div class="screenChart">
<barFour :chartObj="tmObj"></barFour>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">列管物品异常分析</div>
</div>
<div class="screenChart"></div>
</div>
</div>
<div class="screenRow screenRowBtm">
<div class="screenCol mr20">
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">放射源物品</div>
</div>
<div class="screenChart"></div>
</div>
</div>
<div class="screenCol">
<div class="screenName">
<div class="screenIcon"></div>
<div class="screenNameText">民用枪支</div>
</div>
<div class="screenChart"></div>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import headWrap from "@/views/home/head.vue"; import headWrap from "@/views/home/head.vue";
import lineOne from "@/loveflow/components/echart/line/one.vue";
import barFour from "@/loveflow/components/echart/bar/four.vue";
export default { export default {
components: { headWrap }, components: { headWrap, lineOne, barFour },
data() { data() {
return {}; return {
tlObj: {
gridTop: "15%",
gridLeft: "8%",
yName: "单位:百分比",
legendTop: "4%",
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData: [
[31, 41, 28, 87, 32, 12, 97, 79],
[51, 52, 68, 57, 12, 72, 57, 39],
[91, 71, 98, 59, 61, 72, 78, 69],
[81, 87, 21, 56, 10, 19, 82, 91],
],
name: "人防数据",
legend: ["危化品", "放射物品", "民爆物品", "民用枪支"],
color: [
["#09C8F5", "rgba(9,200,245,0.1)", "rgba(9,200,245,0.1)"],
["#FFD16A", "rgba(255,209,106,0.1)", "rgba(255,209,106,0.1)"],
["#FF8A5A", "rgba(255,138,90,0.1)", "rgba(255,138,90,0.1)"],
["#FF3B3B", "rgba(255,59,59,0.1)", "rgba(255,59,59,0.1)"],
],
},
tmObj: {
xData: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月"],
yData1: [23, 24, 13, 21, 33, 14, 32, 12],
yData2: [13, 34, 23, 11, 23, 24, 12, 32],
legend: ["易制爆物品", "剧毒物品"],
name: "物品使用情况",
color: [
["#09C8F5", "rgba(9,200,245,0.9)", "rgba(9,200,245,0)"],
["#FFD16A", "rgba(255,209,106,0.9)", "rgba(255,209,106,0)"],
],
},
};
}, },
}; };
</script> </script>
<style lang="less"></style> <style lang="less">
<style lang="scss" scoped>
@import "@/loveflow/assets/index.scss";
.enterpriseTopic { .enterpriseTopic {
.riskCol { height: 100%;
padding-left: vw(8); background: url("~@/assets/images/topic/allback.png") no-repeat center center;
font-size: vh(16); background-size: 100% 100%;
box-sizing: border-box;
.riskName { overflow: hidden;
height: 30px; .enterpriseTopicBody {
position: absolute;
top: 100px;
left: 16px;
width: calc(100% - 32px);
height: calc(100% - 110px);
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
.screenRow {
display: flex; display: flex;
margin-top: vh(6); flex: 1;
color: #d9e7ff; .screenCol {
flex: 1;
.riskIcon { height: 100%;
width: vw(24); background: url("~@/assets/images/topic/pcolT.png") no-repeat center
height: vh(24); center;
background: url("~@/assets/images/screen/riskIcon.png") no-repeat center background-size: 100% 100%;
}
}
.screenRowBtm {
.screenCol {
background: url("~@/assets/images/topic/pcolB.png") no-repeat center
center; center;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -39,3 +133,34 @@ export default {
} }
} }
</style> </style>
<style lang="scss" scoped>
@import "@/loveflow/assets/index.scss";
.enterpriseTopic {
.enterpriseTopicBody {
.screenRow {
.screenCol {
.screenName {
display: flex;
align-items: center;
padding-left: vh(6);
height: vh(36);
font-size: vh(16);
color: #d9e7ff;
.screenIcon {
width: vh(24);
height: vh(24);
background: url("~@/assets/images/screen/riskIcon.png") no-repeat
center center;
background-size: 100% 100%;
}
.screenNameText {
}
}
.screenChart {
height: calc(100% - 3.3333vh);
}
}
}
}
}
</style>

@ -5,7 +5,10 @@
<div class="riskRow topRow"> <div class="riskRow topRow">
<div class="riskCol mr18"> <div class="riskCol mr18">
<div class="inRow"> <div class="inRow">
<div class="sideLtCol mb10"></div> <div
class="sideLtCol mb10"
@click="gotoPage('/topic/personSafety/screen')"
></div>
<div class="sideLmCol"></div> <div class="sideLmCol"></div>
</div> </div>
</div> </div>
@ -19,20 +22,30 @@
</div> </div>
</div> </div>
<div class="riskRow btmRow"> <div class="riskRow btmRow">
<colWrap class="mr18"></colWrap> <div class="riskCol mr18"></div>
<colWrap></colWrap> <div
class="riskCol"
@click="gotoPage('/topic/listGoods')"
></div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import headWrap from "@/views/home/head.vue"; import headWrap from "@/views/home/head.vue";
import colWrap from "@/views/enterpriseTopic/components/colWrap.vue";
export default { export default {
components: { headWrap, colWrap }, components: { headWrap },
data() { data() {
return {}; return {};
}, },
methods: {
gotoPage(path) {
this.$router.push({
path: path,
});
},
},
}; };
</script> </script>
@ -115,7 +128,7 @@ export default {
color: #d9e7ff; color: #d9e7ff;
.riskIcon { .riskIcon {
width: vw(24); width: vh(24);
height: vh(24); height: vh(24);
} }
} }

Loading…
Cancel
Save