Compare commits
2 Commits
a60301fba5
...
05d99fb7e0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
05d99fb7e0 | ||
![]() |
9e193feb0e |
BIN
sub-operation-service/src/assets/images/smartFarm/demo-list.png
Normal file
BIN
sub-operation-service/src/assets/images/smartFarm/demo-list.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -139,6 +139,18 @@ export const constantRoutes = [
|
|||||||
name: 'intelligentFertilizer',
|
name: 'intelligentFertilizer',
|
||||||
meta: { title: '智能配肥' },
|
meta: { title: '智能配肥' },
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/sub-operation-service/smartFarm/IntelligentIrrigation',
|
||||||
|
component: () => import('@/views/smartFarm/inspection/IntelligentIrrigation.vue'),
|
||||||
|
name: 'IntelligentIrrigation',
|
||||||
|
meta: { title: '智能灌溉' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/sub-operation-service/smartFarm/IntelligentSeedSoaking',
|
||||||
|
component: () => import('@/views/smartFarm/inspection/IntelligentSeedSoaking.vue'),
|
||||||
|
name: 'IntelligentSeedSoaking',
|
||||||
|
meta: { title: '智能浸种' },
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/sub-operation-service/smartFarm/growSeedlings',
|
path: '/sub-operation-service/smartFarm/growSeedlings',
|
||||||
component: () => import('@/views/smartFarm/manageControl/growSeedlings.vue'),
|
component: () => import('@/views/smartFarm/manageControl/growSeedlings.vue'),
|
||||||
|
@ -0,0 +1,71 @@
|
|||||||
|
<script setup>
|
||||||
|
import { ref, reactive, onMounted, watch } from 'vue';
|
||||||
|
import { isEmpty, getAssetsFile } from '@/utils';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
data: {
|
||||||
|
type: Array,
|
||||||
|
required: true,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: () => '',
|
||||||
|
validator: (items) => {
|
||||||
|
return items;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
showImage: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
imageList: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-card style="border-radius: 16px; min-height: 316px">
|
||||||
|
<div class="my-card-title" style="">{{ title }}</div>
|
||||||
|
<div v-for="(item, index) in data" :key="index" class="show-data-box">
|
||||||
|
<div class="left-title">{{ item.title }}:</div>
|
||||||
|
<div :style="{ color: item.status == '0' ? '#FE4066' : '#25BF82' }">{{ item.statusText }}</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="showImage">
|
||||||
|
<p style="font-size: 14px; text-align: left; color: #000000; margin-bottom: 10px">灌溉记录:</p>
|
||||||
|
<el-image
|
||||||
|
style="width: 100%"
|
||||||
|
:src="imageList[0]"
|
||||||
|
:zoom-rate="1.2"
|
||||||
|
:max-scale="7"
|
||||||
|
:min-scale="0.2"
|
||||||
|
:preview-src-list="imageList"
|
||||||
|
show-progress
|
||||||
|
:initial-index="4"
|
||||||
|
fit="cover"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.my-card-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
color: #000;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
.show-data-box {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 7px 0;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
</style>
|
@ -37,6 +37,8 @@ const icons = [
|
|||||||
{ 雨量计: 'rainGauge' },
|
{ 雨量计: 'rainGauge' },
|
||||||
{ 土壤传感器: 'soilSensor' },
|
{ 土壤传感器: 'soilSensor' },
|
||||||
{ 积水传感器: 'waterLoggingSensor' },
|
{ 积水传感器: 'waterLoggingSensor' },
|
||||||
|
{ 土壤温度: 'temperature' },
|
||||||
|
{ 土壤湿度: 'humidity' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -44,19 +46,6 @@ const props = defineProps({
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: true,
|
required: true,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
validator: (items) => {
|
|
||||||
return items.every((item) => {
|
|
||||||
return (
|
|
||||||
typeof item === 'object' &&
|
|
||||||
item !== null &&
|
|
||||||
typeof item.id === 'number' &&
|
|
||||||
typeof item.name === 'string' &&
|
|
||||||
typeof item.detail === 'string' &&
|
|
||||||
typeof item.icon === 'string' &&
|
|
||||||
(!item.status || typeof item.status === 'number')
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
@ -72,8 +61,8 @@ const props = defineProps({
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card style="border-radius: 16px">
|
<el-card style="border-radius: 16px">
|
||||||
<div style="font-size: 16px; font-weight: bold; text-align: left; color: #000">{{ title }}</div>
|
<div style="font-size: 16px; font-weight: bold; text-align: left; color: #000; margin-bottom: 20px">{{ title }}</div>
|
||||||
<div style="display: flex; justify-content: flex-start; flex-wrap: wrap">
|
<div style="display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 20px">
|
||||||
<div v-for="(item, index) in devices" :key="index" class="device">
|
<div v-for="(item, index) in devices" :key="index" class="device">
|
||||||
<div v-if="item.status == 1" class="status" style="background-color: #25bf82">正常</div>
|
<div v-if="item.status == 1" class="status" style="background-color: #25bf82">正常</div>
|
||||||
<div v-else-if="item.status == 0" class="status" style="background-color: #999999">离线</div>
|
<div v-else-if="item.status == 0" class="status" style="background-color: #999999">离线</div>
|
||||||
@ -109,6 +98,8 @@ const props = defineProps({
|
|||||||
<img v-else-if="item.icon === 'rainGauge'" :src="getAssetsFile('images/smartFarm/雨量计.png')" alt="" />
|
<img v-else-if="item.icon === 'rainGauge'" :src="getAssetsFile('images/smartFarm/雨量计.png')" alt="" />
|
||||||
<img v-else-if="item.icon === 'soilSensor'" :src="getAssetsFile('images/smartFarm/土壤传感器.png')" alt="" />
|
<img v-else-if="item.icon === 'soilSensor'" :src="getAssetsFile('images/smartFarm/土壤传感器.png')" alt="" />
|
||||||
<img v-else-if="item.icon === 'waterLoggingSensor'" :src="getAssetsFile('images/smartFarm/积水传感器.png')" alt="" />
|
<img v-else-if="item.icon === 'waterLoggingSensor'" :src="getAssetsFile('images/smartFarm/积水传感器.png')" alt="" />
|
||||||
|
<img v-else-if="item.icon === 'temperature'" :src="getAssetsFile('images/smartFarm/土壤温度.png')" alt="" />
|
||||||
|
<img v-else-if="item.icon === 'humidity'" :src="getAssetsFile('images/smartFarm/土壤湿度.png')" alt="" />
|
||||||
<div style="text-align: left; font-weight: bold; font-size: 18px">{{ item.name }}</div>
|
<div style="text-align: left; font-weight: bold; font-size: 18px">{{ item.name }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -120,9 +111,8 @@ const props = defineProps({
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.device {
|
.device {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
width: 14%;
|
width: 14.6%;
|
||||||
background-color: #f5f5f5;
|
background-color: #f5f5f5;
|
||||||
margin: 20px 1%;
|
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -85,6 +85,18 @@ const leftMenu = reactive([
|
|||||||
icon: 'menu1.png',
|
icon: 'menu1.png',
|
||||||
path: '/sub-operation-service/smartFarm/intelligentFertilizer',
|
path: '/sub-operation-service/smartFarm/intelligentFertilizer',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'IntelligentIrrigation',
|
||||||
|
title: '智能灌溉',
|
||||||
|
icon: 'menu1.png',
|
||||||
|
path: '/sub-operation-service/smartFarm/IntelligentIrrigation',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'IntelligentSeedSoaking',
|
||||||
|
title: '智能浸种',
|
||||||
|
icon: 'menu1.png',
|
||||||
|
path: '/sub-operation-service/smartFarm/IntelligentSeedSoaking',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -179,7 +191,7 @@ const openList = (index) => {
|
|||||||
color: $color-main;
|
color: $color-main;
|
||||||
}
|
}
|
||||||
.smartFarm-left-menu-warp {
|
.smartFarm-left-menu-warp {
|
||||||
padding: 0 30px;
|
padding: 0 30px 0 10px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.left-menu {
|
.left-menu {
|
||||||
|
@ -10,21 +10,6 @@ const props = defineProps({
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: true,
|
required: true,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
validator: (items) => {
|
|
||||||
return items.every((item) => {
|
|
||||||
return (
|
|
||||||
typeof item === 'object' &&
|
|
||||||
item !== null &&
|
|
||||||
typeof item.id === 'number' &&
|
|
||||||
typeof item.isOpen === 'number' &&
|
|
||||||
typeof item.isOperation === 'number' &&
|
|
||||||
typeof item.name === 'string' &&
|
|
||||||
typeof item.serial === 'string' &&
|
|
||||||
typeof item.icon === 'string' &&
|
|
||||||
(!item.status || typeof item.status === 'number')
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
|
@ -27,19 +27,6 @@ const props = defineProps({
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: true,
|
required: true,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
validator: (items) => {
|
|
||||||
return items.every((item) => {
|
|
||||||
return (
|
|
||||||
typeof item === 'object' &&
|
|
||||||
item !== null &&
|
|
||||||
typeof item.id === 'number' &&
|
|
||||||
typeof item.name === 'string' &&
|
|
||||||
typeof item.icon === 'string' &&
|
|
||||||
typeof item.detail === 'string' &&
|
|
||||||
(!item.status || typeof item.status === 'number')
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -0,0 +1,156 @@
|
|||||||
|
<template>
|
||||||
|
<section>
|
||||||
|
<common>
|
||||||
|
<template #main>
|
||||||
|
<div>
|
||||||
|
<devices :title="'智能灌溉设备'" :devices="devices"></devices>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; align-items: stretch; justify-content: space-between; margin-top: 20px">
|
||||||
|
<stream :title="'灌溉监测实时监控'" :devices="devices" style="width: 60%; margin-right: 20px; height: fit-content"></stream>
|
||||||
|
<DataDisplay :title="'灌溉分析'" :data="rightData" :show-image="true" :image-list="srcList" style="flex: 1"></DataDisplay>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</common>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from 'vue';
|
||||||
|
import Common from '../components/common.vue';
|
||||||
|
import Devices from '@/views/smartFarm/components/devices.vue';
|
||||||
|
import Stream from '@/views/smartFarm/components/stream.vue';
|
||||||
|
import DataDisplay from '@/views/smartFarm/components/dataDisplay.vue';
|
||||||
|
|
||||||
|
const devices = ref([
|
||||||
|
{
|
||||||
|
name: 'A-001',
|
||||||
|
icon: 'temperature',
|
||||||
|
detail: 'A区-监控设备9',
|
||||||
|
status: '1', // 0: 离线 1: 正常 -1: 异常
|
||||||
|
id: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-002',
|
||||||
|
icon: 'temperature',
|
||||||
|
detail: 'A区-监控设备66',
|
||||||
|
status: '1',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-003',
|
||||||
|
icon: 'humidity',
|
||||||
|
detail: 'A区-监控设备7',
|
||||||
|
status: '0',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-004',
|
||||||
|
icon: 'humidity',
|
||||||
|
detail: 'A区-监控设备1',
|
||||||
|
status: '-1',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-005',
|
||||||
|
icon: 'valve',
|
||||||
|
detail: 'A区-监控设备5',
|
||||||
|
status: '-1',
|
||||||
|
id: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-006',
|
||||||
|
icon: 'valve',
|
||||||
|
status: '0',
|
||||||
|
detail: 'A区-监控设备21',
|
||||||
|
id: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-007',
|
||||||
|
icon: 'sprinkler',
|
||||||
|
status: '0',
|
||||||
|
detail: 'A区-监控设备4',
|
||||||
|
id: 6,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-008',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'sprinkler',
|
||||||
|
status: '-1',
|
||||||
|
id: 7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-009',
|
||||||
|
detail: 'A区-监控设备9',
|
||||||
|
icon: 'waterSupplyValve',
|
||||||
|
status: '-1',
|
||||||
|
id: 8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-010',
|
||||||
|
detail: 'A区-监控设备10',
|
||||||
|
icon: 'waterSupplyValve',
|
||||||
|
status: '0',
|
||||||
|
id: 9,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-011',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'intelligentValveControl',
|
||||||
|
status: '1',
|
||||||
|
id: 10,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-012',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'intelligentValveControl',
|
||||||
|
status: '1',
|
||||||
|
id: 11,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const srcList = ref(['https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg']);
|
||||||
|
const rightData = ref([
|
||||||
|
{
|
||||||
|
title: '土壤温度', //左侧文本
|
||||||
|
status: '1', // 0:不正常 1:正常
|
||||||
|
statusText: '正常', //右侧文本
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '土壤养分含量',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '光照强度',
|
||||||
|
status: '0',
|
||||||
|
statusText: '偏高',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '降水量',
|
||||||
|
status: '0',
|
||||||
|
statusText: '偏低',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '空气湿度',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '风速',
|
||||||
|
status: '1',
|
||||||
|
statusText: '微风',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备状态',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用水储备',
|
||||||
|
status: '1',
|
||||||
|
statusText: '充足',
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
@ -0,0 +1,156 @@
|
|||||||
|
<template>
|
||||||
|
<section>
|
||||||
|
<common>
|
||||||
|
<template #main>
|
||||||
|
<div>
|
||||||
|
<devices :title="'智能浸种设备'" :devices="devices"></devices>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; align-items: stretch; justify-content: space-between; margin-top: 20px">
|
||||||
|
<stream :title="'浸种监测实时监控'" :devices="devices" style="width: 60%; margin-right: 20px; height: fit-content"></stream>
|
||||||
|
<DataDisplay :title="'浸种分析'" :data="rightData" :show-image="true" :image-list="srcList" style="flex: 1"></DataDisplay>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</common>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from 'vue';
|
||||||
|
import Common from '../components/common.vue';
|
||||||
|
import Devices from '@/views/smartFarm/components/devices.vue';
|
||||||
|
import Stream from '@/views/smartFarm/components/stream.vue';
|
||||||
|
import DataDisplay from '@/views/smartFarm/components/dataDisplay.vue';
|
||||||
|
|
||||||
|
const devices = ref([
|
||||||
|
{
|
||||||
|
name: 'A-001',
|
||||||
|
icon: 'tempSensor',
|
||||||
|
detail: 'A区-监控设备9',
|
||||||
|
status: '1', // 0: 离线 1: 正常 -1: 异常
|
||||||
|
id: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-002',
|
||||||
|
icon: 'tempSensor',
|
||||||
|
detail: 'A区-监控设备66',
|
||||||
|
status: '1',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-003',
|
||||||
|
icon: 'heater',
|
||||||
|
detail: 'A区-监控设备7',
|
||||||
|
status: '1',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-004',
|
||||||
|
icon: 'heater',
|
||||||
|
detail: 'A区-监控设备1',
|
||||||
|
status: '-1',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-005',
|
||||||
|
icon: 'heat',
|
||||||
|
detail: 'A区-监控设备5',
|
||||||
|
status: '1',
|
||||||
|
id: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-006',
|
||||||
|
icon: 'disinfectionLamp',
|
||||||
|
status: '0',
|
||||||
|
detail: 'A区-监控设备21',
|
||||||
|
id: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-007',
|
||||||
|
icon: 'timer',
|
||||||
|
status: '1',
|
||||||
|
detail: 'A区-监控设备4',
|
||||||
|
id: 6,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-008',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'timer',
|
||||||
|
status: '-1',
|
||||||
|
id: 7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-009',
|
||||||
|
detail: 'A区-监控设备9',
|
||||||
|
icon: 'mixer',
|
||||||
|
status: '1',
|
||||||
|
id: 8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-010',
|
||||||
|
detail: 'A区-监控设备10',
|
||||||
|
icon: 'liquidSensor',
|
||||||
|
status: '1',
|
||||||
|
id: 9,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-011',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'liquidSensor',
|
||||||
|
status: '0',
|
||||||
|
id: 10,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'A-012',
|
||||||
|
detail: 'A区-监控设备3',
|
||||||
|
icon: 'disinfectionLamp',
|
||||||
|
status: '1',
|
||||||
|
id: 11,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const srcList = ref(['https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg']);
|
||||||
|
const rightData = ref([
|
||||||
|
{
|
||||||
|
title: '温度', //左侧文本
|
||||||
|
status: '1', // 0:不正常 1:正常
|
||||||
|
statusText: '21℃ 正常', //左侧文本
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '湿度',
|
||||||
|
status: '1',
|
||||||
|
statusText: '18℃ 正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '光照强度',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '浸泡液位',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '溶解氧含量',
|
||||||
|
status: '1',
|
||||||
|
statusText: '36% 正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '酸碱度',
|
||||||
|
status: '1',
|
||||||
|
statusText: '6.7 正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备状态',
|
||||||
|
status: '1',
|
||||||
|
statusText: '正常',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '种子状态',
|
||||||
|
status: '1',
|
||||||
|
statusText: '出芽',
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display: flex; justify-content: space-between; margin-top: 10px">
|
<div style="display: flex; justify-content: space-between; margin-top: 10px">
|
||||||
<stream :title="'施肥监测实时监控'" :devices="devices" style="width: 60%; height: fit-content"></stream>
|
<stream :title="'施肥监测实时监控'" :devices="devices" style="width: 60%; height: fit-content"></stream>
|
||||||
<el-card style="width: calc(40% - 20px); border-radius: 16px; padding: 10px">
|
<el-card style="width: calc(40% - 20px); border-radius: 16px">
|
||||||
<div style="font-size: 16px; font-weight: bold; text-align: left">配肥分析</div>
|
<div style="font-size: 16px; font-weight: bold; text-align: left">配肥分析</div>
|
||||||
<div class="plantStatus">
|
<div class="plantStatus">
|
||||||
<div class="leftKey">土壤酸碱度:</div>
|
<div class="leftKey">土壤酸碱度:</div>
|
||||||
|
@ -36,6 +36,7 @@ export default defineConfig(({ command, mode }) => {
|
|||||||
port: VITE_PORT,
|
port: VITE_PORT,
|
||||||
open: true,
|
open: true,
|
||||||
https: false,
|
https: false,
|
||||||
|
origin: 'http://localhost:9526',
|
||||||
headers: {
|
headers: {
|
||||||
'Access-Control-Allow-Origin': '*',
|
'Access-Control-Allow-Origin': '*',
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user