Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp
This commit is contained in:
7
hx-ai-intelligent/src/api/airConditioningSystem.ts
Normal file
7
hx-ai-intelligent/src/api/airConditioningSystem.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { BASE_URL } from './index';
|
||||||
|
|
||||||
|
export enum airConditioningSystemApi {
|
||||||
|
getVentHostCtrlList = `${BASE_URL}/api/ventHostCtrl/getDeviceState`, // 查询新风主机最新状态
|
||||||
|
getAcBoxCtrlList = `${BASE_URL}/api/acBoxCtrl/getDeviceState`, // 查询空调箱最新状态
|
||||||
|
getTempSysCtrlList = `${BASE_URL}/tempSysCtrl/getFloorHeatingState`, // 查询地暖最新状态
|
||||||
|
}
|
@@ -27,24 +27,6 @@
|
|||||||
<a-form-item v-if="infoObject.alarmFrequency === 2" name="repetitions" label="重复次数">
|
<a-form-item v-if="infoObject.alarmFrequency === 2" name="repetitions" label="重复次数">
|
||||||
<ns-input-number v-model:value="infoObject.repetitions" placeholder="请输入重复次数" />
|
<ns-input-number v-model:value="infoObject.repetitions" placeholder="请输入重复次数" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
|
||||||
v-if="infoObject.alarmFrequency === 2 || infoObject.alarmFrequency === 3"
|
|
||||||
name="intervalDuration"
|
|
||||||
label="间隔时长">
|
|
||||||
<ns-input-number
|
|
||||||
style="width: 100%"
|
|
||||||
v-model:value="infoObject.intervalDuration"
|
|
||||||
placeholder="请输入间隔时长">
|
|
||||||
<template #addonAfter>
|
|
||||||
<a-select
|
|
||||||
v-model:value="infoObject.intervalDurationUnit"
|
|
||||||
placeholder="请选择间隔时长单位"
|
|
||||||
style="width: 80px"
|
|
||||||
allowClear
|
|
||||||
:options="intervalDurationUnitData" />
|
|
||||||
</template>
|
|
||||||
</ns-input-number>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="优先级" name="priority">
|
<a-form-item label="优先级" name="priority">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="infoObject.priority"
|
v-model:value="infoObject.priority"
|
||||||
@@ -60,7 +42,7 @@
|
|||||||
placeholder="请选择监测频率"
|
placeholder="请选择监测频率"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
allowClear
|
allowClear
|
||||||
:options="MonitorFrequencyEnumm" />
|
:options="MonitorFrequencyEnum" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="启用规则">
|
<a-form-item label="启用规则">
|
||||||
<a-switch
|
<a-switch
|
||||||
@@ -121,7 +103,7 @@
|
|||||||
const AlarmFrequencyEnum = ref([]);
|
const AlarmFrequencyEnum = ref([]);
|
||||||
const PriorityEnum = ref([]);
|
const PriorityEnum = ref([]);
|
||||||
const intervalDurationUnitData = ref([]);
|
const intervalDurationUnitData = ref([]);
|
||||||
const MonitorFrequencyEnumm = ref([]);
|
const MonitorFrequencyEnum = ref([]);
|
||||||
const rules = {
|
const rules = {
|
||||||
alarmTitle: [
|
alarmTitle: [
|
||||||
{
|
{
|
||||||
@@ -138,23 +120,6 @@
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
alarmFrequency: [{ required: true, message: '请选择告警频率', trigger: 'change' }],
|
alarmFrequency: [{ required: true, message: '请选择告警频率', trigger: 'change' }],
|
||||||
intervalDuration: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入正确的间隔时长',
|
|
||||||
trigger: 'change',
|
|
||||||
validator: (rules: any, intervalDuration: any, cbfn: any) => {
|
|
||||||
if (intervalDuration && intervalDuration > 0) {
|
|
||||||
cbfn();
|
|
||||||
} else {
|
|
||||||
cbfn('请输入正确的间隔时长');
|
|
||||||
}
|
|
||||||
if (!infoObject.value.intervalDurationUnit) {
|
|
||||||
cbfn('请选择间隔时长单位');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
repetitions: [
|
repetitions: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@@ -178,13 +143,13 @@
|
|||||||
let enumData = await getAllEnum({
|
let enumData = await getAllEnum({
|
||||||
params: [
|
params: [
|
||||||
'PriorityEnum',
|
'PriorityEnum',
|
||||||
'MonitorFrequencyEnumm',
|
'MonitorFrequencyEnum',
|
||||||
'AlarmFrequencyEnum',
|
'AlarmFrequencyEnum',
|
||||||
'IntervalDurationUnitEnum',
|
'IntervalDurationUnitEnum',
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
PriorityEnum.value = enumData.data.PriorityEnum;
|
PriorityEnum.value = enumData.data.PriorityEnum;
|
||||||
MonitorFrequencyEnumm.value = enumData.data.MonitorFrequencyEnumm;
|
MonitorFrequencyEnum.value = enumData.data.MonitorFrequencyEnum;
|
||||||
AlarmFrequencyEnum.value = enumData.data.AlarmFrequencyEnum;
|
AlarmFrequencyEnum.value = enumData.data.AlarmFrequencyEnum;
|
||||||
intervalDurationUnitData.value = enumData.data.IntervalDurationUnitEnum;
|
intervalDurationUnitData.value = enumData.data.IntervalDurationUnitEnum;
|
||||||
};
|
};
|
||||||
@@ -234,7 +199,6 @@
|
|||||||
data.createWorkOrder = Number(data.createWorkOrder);
|
data.createWorkOrder = Number(data.createWorkOrder);
|
||||||
if (data.alarmFrequency === 1) {
|
if (data.alarmFrequency === 1) {
|
||||||
data.repetitions = null;
|
data.repetitions = null;
|
||||||
data.intervalDuration = null;
|
|
||||||
data.intervalDurationUnit = null;
|
data.intervalDurationUnit = null;
|
||||||
}
|
}
|
||||||
//调用接口
|
//调用接口
|
||||||
|
@@ -41,11 +41,6 @@ const tableKeyMap = [
|
|||||||
dataIndex: 'repetitions',
|
dataIndex: 'repetitions',
|
||||||
width: 120,
|
width: 120,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '频率间隔',
|
|
||||||
dataIndex: 'interval',
|
|
||||||
width: 120,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '监测时长',
|
title: '监测时长',
|
||||||
dataIndex: 'monitorFrequency',
|
dataIndex: 'monitorFrequency',
|
||||||
@@ -139,7 +134,6 @@ export const energyAlarmConfigs = (
|
|||||||
obj.createWorkOrder = obj.createWorkOrder + '';
|
obj.createWorkOrder = obj.createWorkOrder + '';
|
||||||
if (obj.alarmFrequency === 1) {
|
if (obj.alarmFrequency === 1) {
|
||||||
obj.repetitions = null;
|
obj.repetitions = null;
|
||||||
obj.intervalDuration = null;
|
|
||||||
obj.intervalDurationUnit = null;
|
obj.intervalDurationUnit = null;
|
||||||
}
|
}
|
||||||
if (obj.alarmFrequency === 3) {
|
if (obj.alarmFrequency === 3) {
|
||||||
|
@@ -53,10 +53,10 @@
|
|||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<a-switch
|
<a-switch
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
:checked="selectConditioning.enableRules === 1 ? true : false"
|
:checked="selectConditioning.state === 1 ? true : false"
|
||||||
:class="{
|
:class="{
|
||||||
'blue-background': selectConditioning.enableRules === 1 ? true : false,
|
'blue-background': selectConditioning.state === 1 ? true : false,
|
||||||
'grey-background': selectConditioning.enableRules === 1 ? false : true,
|
'grey-background': selectConditioning.state === 1 ? false : true,
|
||||||
}" />
|
}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<div style="width: 100%; height: 40px; line-height: 40px">温度 </div>
|
<div style="width: 100%; height: 40px; line-height: 40px">温度 </div>
|
||||||
<div style="width: 100%; height: 60px">
|
<div style="width: 100%; height: 60px">
|
||||||
<a-slider
|
<a-slider
|
||||||
v-model:value="selectConditioning.number"
|
v-model:value="selectConditioning.temp"
|
||||||
:marks="marks"
|
:marks="marks"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="100"
|
:max="100"
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<div style="width: 100%; height: 40px; line-height: 40px"> 风量 </div>
|
<div style="width: 100%; height: 40px; line-height: 40px"> 风量 </div>
|
||||||
<div style="width: 100%; height: 60px">
|
<div style="width: 100%; height: 60px">
|
||||||
<a-slider
|
<a-slider
|
||||||
v-model:value="selectConditioning.number"
|
v-model:value="selectConditioning.airVol"
|
||||||
:marks="marks"
|
:marks="marks"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="100"
|
:max="100"
|
||||||
@@ -130,6 +130,7 @@
|
|||||||
100: 100,
|
100: 100,
|
||||||
});
|
});
|
||||||
const toggle = (data: any, selectData: any) => {
|
const toggle = (data: any, selectData: any) => {
|
||||||
|
console.log(data, selectData);
|
||||||
dataSource.value = data;
|
dataSource.value = data;
|
||||||
selectConditioning.value = selectData;
|
selectConditioning.value = selectData;
|
||||||
};
|
};
|
||||||
|
@@ -16,19 +16,19 @@
|
|||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
温度
|
温度
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">{{ item.number }}℃</span>
|
<span style="color: #00ffd2">{{ item.temp }}{{ item.tempUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
设置
|
设置
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">{{ item.setUpNumber }}℃</span>
|
<span style="color: #00ffd2">{{ item.temp }}{{ item.tempUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
运行时间
|
运行时间
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">0.08~0.4Mpa</span>
|
<span style="color: #00ffd2">{{ item.runTime }}{{ item.runTimeUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -19,47 +19,76 @@
|
|||||||
<a-tag
|
<a-tag
|
||||||
style="background-color: rgba(0, 0, 0, 0.5); width: 50px; text-align: center"
|
style="background-color: rgba(0, 0, 0, 0.5); width: 50px; text-align: center"
|
||||||
:style="{
|
:style="{
|
||||||
border: '1px solid' + ['#39d7bb', '#f3614d', '#ffa403'][0],
|
border: {
|
||||||
color: ['#39d7bb', '#f3614d', '#ffa403'][0],
|
'0': '1px solid rgba(0, 255, 210, 1)',
|
||||||
|
'1': '1px solid rgba(255, 118, 54, 1)',
|
||||||
|
'2': '1px solid rgba(255, 188, 70, 1)',
|
||||||
|
'3': '1px solid rgba(243, 97, 99, 1)',
|
||||||
|
}[item.runStatus.value],
|
||||||
|
color: {
|
||||||
|
'0': 'rgba(0, 255, 210, 1)',
|
||||||
|
'1': 'rgba(255, 118, 54, 1)',
|
||||||
|
'2': 'rgba(255, 188, 70, 1)',
|
||||||
|
'3': 'rgba(243, 97, 99, 1)',
|
||||||
|
}[item.runStatus.value],
|
||||||
}"
|
}"
|
||||||
>开启</a-tag
|
>{{ item.runStatus.label }}</a-tag
|
||||||
>
|
>
|
||||||
|
<!-- <a-tag
|
||||||
|
v-if="item?.runStatus.value === '0'"
|
||||||
|
style="background-color: rgba(0, 0, 0, 0.5); width: 50px; text-align: center"
|
||||||
|
:style="{
|
||||||
|
border:
|
||||||
|
'1px solid' +
|
||||||
|
{
|
||||||
|
'0': 'rgba(191, 205, 226, 1)',
|
||||||
|
'1': 'rgba(0, 255, 210, 1)',
|
||||||
|
}[item.switchStatus.value],
|
||||||
|
color: {
|
||||||
|
'0': 'rgba(191, 205, 226, 1)',
|
||||||
|
'1': 'rgba(0, 255, 210, 1)',
|
||||||
|
}[item.switchStatus.value],
|
||||||
|
}">
|
||||||
|
{{ { '0': '关闭', '1': '开始' }[item.switchStatus.value] }}</a-tag
|
||||||
|
> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
电机转速
|
电机转速
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #f59a23">1210转/分钟</span>
|
<span style="color: #f59a23">{{ item.motorSp }}{{ item.motorSpUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
换热器热度
|
换热器热度
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">8℃</span>
|
<span style="color: #00ffd2"
|
||||||
|
>{{ item.converterTemp }}{{ item.converterTempUnit }}</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
风量
|
风量
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">12345m3/h</span>
|
<span style="color: #00ffd2">{{ item.airVol }}{{ item.airVolUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
风速
|
风速
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">22m/s</span>
|
<span style="color: #00ffd2">{{ item.airSp }}{{ item.airSpUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
PM2.5
|
PM2.5
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">30</span>
|
<span style="color: #00ffd2">{{ item.pm2_5 }}{{ item.pm2_5Unit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-bottom-item-line">
|
<div class="box-bottom-item-line">
|
||||||
二氧化碳
|
二氧化碳
|
||||||
<div class="box-bottom-item-line-value">
|
<div class="box-bottom-item-line-value">
|
||||||
<span style="color: #00ffd2">123CO2e</span>
|
<span style="color: #00ffd2">{{ item.co_CO2 }}{{ item.co_CO2Unit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -0,0 +1,37 @@
|
|||||||
|
//传感器位置
|
||||||
|
export const devicePosition = [
|
||||||
|
{ left: '30%', bottom: '54%' },
|
||||||
|
{ left: '38%', bottom: '33%' },
|
||||||
|
{ left: '50%', bottom: '41%' },
|
||||||
|
{ left: '42%', bottom: '59%' },
|
||||||
|
{ left: '68%', bottom: '53%' },
|
||||||
|
{ left: '55%', bottom: '65.5%' },
|
||||||
|
{ left: '79%', bottom: '58%' },
|
||||||
|
{ left: '66%', bottom: '70%' },
|
||||||
|
];
|
||||||
|
// 新风主机
|
||||||
|
export const newTrendPosition = [
|
||||||
|
{ left: '46%', bottom: '54%' },
|
||||||
|
{ left: '48%', bottom: '33%' },
|
||||||
|
{ left: '64.5%', bottom: '64%' },
|
||||||
|
{ left: '66%', bottom: '46%' },
|
||||||
|
];
|
||||||
|
//空调箱
|
||||||
|
export const airConditioningPosition = [
|
||||||
|
{ styleText: { left: '16%', bottom: '33%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '31%', bottom: '38%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '41%', bottom: '55.5%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '60%', bottom: '63%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '76%', bottom: '63%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '71%', bottom: '48%' }, lineType: '' },
|
||||||
|
{ styleText: { left: '46.5%', bottom: '32%' }, lineType: '' },
|
||||||
|
];
|
||||||
|
//地暖
|
||||||
|
export const floorHeatingPosition = [
|
||||||
|
{ styleText: { left: '13%', bottom: '44%' }, lineType: '' },
|
||||||
|
{ styleText: { left: '22%', bottom: '48%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '34%', bottom: '53%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '49%', bottom: '59%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '60.5%', bottom: '65.5%' }, lineType: 1 },
|
||||||
|
{ styleText: { left: '72%', bottom: '72%' }, lineType: 1 },
|
||||||
|
];
|
@@ -19,7 +19,7 @@
|
|||||||
<div class="map-box">
|
<div class="map-box">
|
||||||
<!-- 温度 -->
|
<!-- 温度 -->
|
||||||
<div v-if="selectIndex === 0">
|
<div v-if="selectIndex === 0">
|
||||||
<template v-for="(item, index) in sensor" :key="index">
|
<template v-for="(item, index) in sensorData" :key="index">
|
||||||
<div
|
<div
|
||||||
style="position: absolute"
|
style="position: absolute"
|
||||||
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }">
|
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }">
|
||||||
@@ -43,21 +43,22 @@
|
|||||||
<div
|
<div
|
||||||
style="position: absolute"
|
style="position: absolute"
|
||||||
:style="{
|
:style="{
|
||||||
left: 'calc(' + item.styleText.left + ' - 12.9%)',
|
left: 'calc(' + item.styleText.left + ' - 14%)',
|
||||||
bottom: 'calc(' + item.styleText.bottom + ' + 8%)',
|
bottom: 'calc(' + item.styleText.bottom + ' + 8%)',
|
||||||
|
'z-index': 2,
|
||||||
}">
|
}">
|
||||||
<doubleSingleModel :dataSource="item" />
|
<doubleSingleModel :dataSource="item" />
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
style="width: 50px; height: 75px; position: absolute; z-index: 1"
|
style="width: 50px; height: 75px; position: absolute"
|
||||||
:style="{
|
:style="{
|
||||||
left: 'calc(' + item.styleText.left + ' - 1.5%)',
|
left: 'calc(' + item.styleText.left + ' - 2%)',
|
||||||
bottom: 'calc(' + item.styleText.bottom + ' + 4%)',
|
bottom: 'calc(' + item.styleText.bottom + ' + 4%)',
|
||||||
transform: 'rotateY(180deg)',
|
transform: 'rotateY(180deg)',
|
||||||
}"
|
}"
|
||||||
src="../image/liftState/lift/line.png" />
|
src="../image/liftState/lift/line.png" />
|
||||||
<img
|
<img
|
||||||
style="width: 42px; height: 42px; position: absolute"
|
style="width: 42px; height: 42px; position: absolute; z-index: 2"
|
||||||
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
||||||
src="../image/airConditioningSystem/fan.png" />
|
src="../image/airConditioningSystem/fan.png" />
|
||||||
</template>
|
</template>
|
||||||
@@ -78,25 +79,25 @@
|
|||||||
<div v-if="selectIndex === 3">
|
<div v-if="selectIndex === 3">
|
||||||
<template v-for="(item, index) in conditioningData" :key="index">
|
<template v-for="(item, index) in conditioningData" :key="index">
|
||||||
<div
|
<div
|
||||||
style="position: absolute"
|
style="position: absolute; z-index: 2"
|
||||||
:style="{
|
:style="{
|
||||||
left:
|
left: 'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 12.8%)' : ' - 13%)'),
|
||||||
'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 12.9%)' : ' - 13.3%)'),
|
|
||||||
bottom:
|
bottom:
|
||||||
'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 8%)' : ' - 14%)'),
|
'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 7%)' : ' - 14%)'),
|
||||||
}">
|
}">
|
||||||
<doubleSingleModel :dataSource="item" />
|
<doubleSingleModel :dataSource="item" />
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
style="width: 50px; height: 75px; position: absolute; z-index: 1"
|
style="width: 50px; height: 75px; position: absolute"
|
||||||
:style="{
|
:style="{
|
||||||
left: 'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 1.5%)' : ' - 2%)'),
|
left: 'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 1.5%)' : ' - 1.8%)'),
|
||||||
bottom: 'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 4%)' : ' - 9%)'),
|
bottom:
|
||||||
|
'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 4.5%)' : ' - 9%)'),
|
||||||
transform: item.lineType === 1 ? 'rotateY(180deg)' : 'rotate(180deg)',
|
transform: item.lineType === 1 ? 'rotateY(180deg)' : 'rotate(180deg)',
|
||||||
}"
|
}"
|
||||||
src="../image/liftState/lift/line.png" />
|
src="../image/liftState/lift/line.png" />
|
||||||
<img
|
<img
|
||||||
style="width: 42px; height: 42px; position: absolute"
|
style="width: 42px; height: 42px; position: absolute; z-index: 2"
|
||||||
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
||||||
src="../image/airConditioningSystem/conditioningIcon.png" />
|
src="../image/airConditioningSystem/conditioningIcon.png" />
|
||||||
</template>
|
</template>
|
||||||
@@ -115,19 +116,19 @@
|
|||||||
ref="conditioningModels"
|
ref="conditioningModels"
|
||||||
@selectConditioningData="selectConditioningData" />
|
@selectConditioningData="selectConditioningData" />
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
<!-- 空调箱 顶部详情 -->
|
<!-- 空调箱 顶部详情 现阶段没有数据 先隐藏掉 -->
|
||||||
<transition name="zep">
|
<transition name="zep">
|
||||||
<div
|
<div
|
||||||
v-if="selectIndex === 3 && selectConditioning && selectConditioning?.title"
|
v-if="selectIndex === 3 && selectConditioning && selectConditioning?.title && false"
|
||||||
class="newTrend-box">
|
class="newTrend-box">
|
||||||
<newTreedBox :selectConditioning="selectConditioning" />
|
<conditioningBox :selectConditioning="selectConditioning" />
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
<!-- 地暖 -->
|
<!-- 地暖 -->
|
||||||
<div v-if="selectIndex === 4">
|
<div v-if="selectIndex === 4">
|
||||||
<template v-for="(item, index) in floorHeatingData" :key="index">
|
<template v-for="(item, index) in floorHeatingData" :key="index">
|
||||||
<div
|
<div
|
||||||
style="position: absolute"
|
style="position: absolute; z-index: 1"
|
||||||
:style="{
|
:style="{
|
||||||
left:
|
left:
|
||||||
'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 12.9%)' : ' - 13.3%)'),
|
'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 12.9%)' : ' - 13.3%)'),
|
||||||
@@ -137,7 +138,7 @@
|
|||||||
<doubleSingleModel :dataSource="item" />
|
<doubleSingleModel :dataSource="item" />
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
style="width: 50px; height: 75px; position: absolute; z-index: 1"
|
style="width: 50px; height: 75px; position: absolute"
|
||||||
:style="{
|
:style="{
|
||||||
left: 'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 1.5%)' : ' - 2%)'),
|
left: 'calc(' + item.styleText.left + (item.lineType === 1 ? ' - 1.5%)' : ' - 2%)'),
|
||||||
bottom: 'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 4%)' : ' - 9%)'),
|
bottom: 'calc(' + item.styleText.bottom + (item.lineType === 1 ? ' + 4%)' : ' - 9%)'),
|
||||||
@@ -145,7 +146,7 @@
|
|||||||
}"
|
}"
|
||||||
src="../image/liftState/lift/line.png" />
|
src="../image/liftState/lift/line.png" />
|
||||||
<img
|
<img
|
||||||
style="width: 42px; height: 42px; position: absolute"
|
style="width: 42px; height: 42px; position: absolute; z-index: 1"
|
||||||
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
:style="{ left: item.styleText.left, bottom: item.styleText.bottom }"
|
||||||
src="../image/airConditioningSystem/floorHeatingIcon.png" />
|
src="../image/airConditioningSystem/floorHeatingIcon.png" />
|
||||||
</template>
|
</template>
|
||||||
@@ -174,7 +175,7 @@
|
|||||||
import airConditioner from '../image/airConditioningSystem/airConditioner.svg';
|
import airConditioner from '../image/airConditioningSystem/airConditioner.svg';
|
||||||
import floorHeating from '../image/airConditioningSystem/floorHeating.svg';
|
import floorHeating from '../image/airConditioningSystem/floorHeating.svg';
|
||||||
import selectImg from '../image/airConditioningSystem/selectImg.png';
|
import selectImg from '../image/airConditioningSystem/selectImg.png';
|
||||||
// 温泉颜色
|
// 温度颜色
|
||||||
import sunRed from '../image/airConditioningSystem/sunRed.png';
|
import sunRed from '../image/airConditioningSystem/sunRed.png';
|
||||||
import sunYellow from '../image/airConditioningSystem/sunYellow.png';
|
import sunYellow from '../image/airConditioningSystem/sunYellow.png';
|
||||||
import sunGreen from '../image/airConditioningSystem/sunGreen.png';
|
import sunGreen from '../image/airConditioningSystem/sunGreen.png';
|
||||||
@@ -183,9 +184,23 @@
|
|||||||
import doubleSingleModel from '../components/doubleSingleModel.vue';
|
import doubleSingleModel from '../components/doubleSingleModel.vue';
|
||||||
import newTrendModel from './components/newTrendModel.vue';
|
import newTrendModel from './components/newTrendModel.vue';
|
||||||
import conditioningModel from './components/conditioningModel.vue';
|
import conditioningModel from './components/conditioningModel.vue';
|
||||||
import newTreedBox from './components/newTreedBox.vue';
|
import conditioningBox from './components/conditioningBox.vue';
|
||||||
import floorHeatingModel from './components/floorHeatingModel.vue';
|
import floorHeatingModel from './components/floorHeatingModel.vue';
|
||||||
|
import { http } from '/nerv-lib/util/http';
|
||||||
|
import { ventilating } from '/@/api/ventilatingSystem';
|
||||||
|
import { airConditioningSystemApi } from '/@/api/airConditioningSystem';
|
||||||
|
|
||||||
|
// 全局变量
|
||||||
|
import { items } from '/@/store/item';
|
||||||
|
// 定位数据
|
||||||
|
import {
|
||||||
|
devicePosition,
|
||||||
|
newTrendPosition,
|
||||||
|
airConditioningPosition,
|
||||||
|
floorHeatingPosition,
|
||||||
|
} from './devicePosition';
|
||||||
|
// 全局变量
|
||||||
|
const state = items();
|
||||||
onMounted(() => {});
|
onMounted(() => {});
|
||||||
onUnmounted(() => {});
|
onUnmounted(() => {});
|
||||||
//图例
|
//图例
|
||||||
@@ -199,139 +214,9 @@
|
|||||||
const newTrendModels = ref(null);
|
const newTrendModels = ref(null);
|
||||||
|
|
||||||
//温度传感器
|
//温度传感器
|
||||||
const sensor = ref([
|
const sensorData = ref([]);
|
||||||
{
|
|
||||||
title: 'H区多功能传感器',
|
|
||||||
styleText: { left: '28%', bottom: '44%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'G区多功能传感器',
|
|
||||||
styleText: { left: '35%', bottom: '23%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunYellow,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'F区多功能传感器',
|
|
||||||
styleText: { left: '47%', bottom: '31%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'E区多功能传感器',
|
|
||||||
styleText: { left: '38.5%', bottom: '49%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunGreen,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'D区多功能传感器',
|
|
||||||
styleText: { left: '65%', bottom: '43%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'C区多功能传感器',
|
|
||||||
styleText: { left: '52%', bottom: '55.5%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'B区多功能传感器',
|
|
||||||
styleText: { left: '76%', bottom: '48%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'A区多功能传感器',
|
|
||||||
styleText: { left: '63%', bottom: '60%' },
|
|
||||||
type: '温度',
|
|
||||||
unit: '℃',
|
|
||||||
number: 20,
|
|
||||||
url: sunRed,
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
//人流
|
//人流
|
||||||
const peopleData = ref([
|
const peopleData = ref([]);
|
||||||
{
|
|
||||||
title: 'H区人流传感器',
|
|
||||||
styleText: { left: '36%', bottom: '21%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'G区人流传感器',
|
|
||||||
styleText: { left: '28.5%', bottom: '43.5%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'E区人流传感器',
|
|
||||||
styleText: { left: '39%', bottom: '48%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'F区人流传感器',
|
|
||||||
styleText: { left: '47.5%', bottom: '29.5%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'D区人流传感器',
|
|
||||||
styleText: { left: '66%', bottom: '42%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'C区人流传感器',
|
|
||||||
styleText: { left: '53%', bottom: '54.5%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'B区人流传感器',
|
|
||||||
styleText: { left: '77%', bottom: '47%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'A区人流传感器',
|
|
||||||
styleText: { left: '64%', bottom: '59%' },
|
|
||||||
type: '人流',
|
|
||||||
unit: '人',
|
|
||||||
number: 120,
|
|
||||||
url: people,
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
//新风主机
|
//新风主机
|
||||||
const newTrend = ref([
|
const newTrend = ref([
|
||||||
{
|
{
|
||||||
@@ -379,7 +264,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '西区',
|
title: '西区',
|
||||||
styleText: { left: '28%', bottom: '30%' },
|
styleText: { left: '28%', bottom: '28%' },
|
||||||
type: '空调箱',
|
type: '空调箱',
|
||||||
lineType: 1,
|
lineType: 1,
|
||||||
unit: '℃',
|
unit: '℃',
|
||||||
@@ -520,6 +405,146 @@
|
|||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
selectIndex.value = 0;
|
selectIndex.value = 0;
|
||||||
};
|
};
|
||||||
|
//根据温度获取图片
|
||||||
|
const getSunUrl = (number: any) => {
|
||||||
|
if (number > 0 && number < 20) {
|
||||||
|
return sunGreen;
|
||||||
|
} else if (number >= 20 && number < 30) {
|
||||||
|
return sunYellow;
|
||||||
|
} else {
|
||||||
|
return sunRed;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//获取温度颜色
|
||||||
|
const getColor = (number: any) => {
|
||||||
|
if (number > 0 && number < 20) {
|
||||||
|
return '#0dffa4';
|
||||||
|
} else if (number >= 20 && number < 30) {
|
||||||
|
return '#f59a23';
|
||||||
|
} else {
|
||||||
|
return '#f36163';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 获取传感器数据
|
||||||
|
const getSensorData = () => {
|
||||||
|
sensorData.value = [];
|
||||||
|
peopleData.value = [];
|
||||||
|
http
|
||||||
|
.get(ventilating.getSensorData, { projectId: state.projectId, siteId: state.siteId })
|
||||||
|
.then((res) => {
|
||||||
|
if (res.msg === 'success') {
|
||||||
|
res.data.forEach((item: any, index: number) => {
|
||||||
|
sensorData.value.push({
|
||||||
|
title: item.deviceInfoName,
|
||||||
|
styleText: devicePosition[index],
|
||||||
|
type: '温度',
|
||||||
|
unit: item.record.tempUnit,
|
||||||
|
number: item.record.temp,
|
||||||
|
url: getSunUrl(item.record.temp),
|
||||||
|
fontColor: getColor(item.record.temp),
|
||||||
|
});
|
||||||
|
peopleData.value.push({
|
||||||
|
title: item.deviceInfoName,
|
||||||
|
styleText: devicePosition[index],
|
||||||
|
type: '人流',
|
||||||
|
unit: item.record.peopleNumUnit,
|
||||||
|
number: item.record.peopleNum,
|
||||||
|
url: people,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const getnewTrendData = () => {
|
||||||
|
newTrend.value = [];
|
||||||
|
http
|
||||||
|
.get(airConditioningSystemApi.getVentHostCtrlList, {
|
||||||
|
projectId: state.projectId,
|
||||||
|
siteId: state.siteId,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.msg === 'success') {
|
||||||
|
res.data.forEach((item: any, index: number) => {
|
||||||
|
newTrend.value.push({
|
||||||
|
title: item.deviceInfoName,
|
||||||
|
styleText: newTrendPosition[index],
|
||||||
|
type: '新风主机',
|
||||||
|
number: item.record.converterTemp,
|
||||||
|
numberUnit: item.record.converterTempUnit,
|
||||||
|
url: freshAir,
|
||||||
|
...item.record,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const getAcBoxCtrlList = () => {
|
||||||
|
conditioningData.value = [];
|
||||||
|
http
|
||||||
|
.get(airConditioningSystemApi.getAcBoxCtrlList, {
|
||||||
|
projectId: state.projectId,
|
||||||
|
siteId: state.siteId,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.msg === 'success') {
|
||||||
|
res.data.forEach((item: any, index: number) => {
|
||||||
|
conditioningData.value.push({
|
||||||
|
title: item.deviceInfoName,
|
||||||
|
styleText: airConditioningPosition[index].styleText,
|
||||||
|
type: '空调箱',
|
||||||
|
numberUnit: item.record.tempUnit,
|
||||||
|
lineType: airConditioningPosition[index].lineType,
|
||||||
|
number: item.record.temp,
|
||||||
|
url: freshAir,
|
||||||
|
state: item.record.switchStatus.value,
|
||||||
|
...item.record,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const getTempSysCtrlList = () => {
|
||||||
|
floorHeatingData.value = [];
|
||||||
|
http
|
||||||
|
.get(airConditioningSystemApi.getTempSysCtrlList, {
|
||||||
|
projectId: state.projectId,
|
||||||
|
siteId: state.siteId,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
console.log(res, '地暖');
|
||||||
|
if (res.msg === 'success') {
|
||||||
|
res.data.forEach((item: any, index: number) => {
|
||||||
|
floorHeatingData.value.push({
|
||||||
|
title: item.deviceInfoName,
|
||||||
|
styleText: floorHeatingPosition[index].styleText,
|
||||||
|
type: '地暖',
|
||||||
|
number: item.record.currentTemp,
|
||||||
|
numberUnit: item.record.currentTempUnit,
|
||||||
|
lineType: floorHeatingPosition[index].lineType,
|
||||||
|
...item.record,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const fetchData = () => {
|
||||||
|
//传感器
|
||||||
|
getSensorData();
|
||||||
|
//新风主机
|
||||||
|
getnewTrendData();
|
||||||
|
//获取空调箱
|
||||||
|
getAcBoxCtrlList();
|
||||||
|
//获取地暖
|
||||||
|
getTempSysCtrlList();
|
||||||
|
};
|
||||||
|
//实时获取数据 暂定一分钟
|
||||||
|
const intervalId = setInterval(fetchData, 60000);
|
||||||
|
onMounted(() => {
|
||||||
|
fetchData();
|
||||||
|
});
|
||||||
|
onUnmounted(() => {
|
||||||
|
clearInterval(intervalId);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.legend-box {
|
.legend-box {
|
||||||
@@ -593,7 +618,7 @@
|
|||||||
width: 95%;
|
width: 95%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
background-image: url(../image/bg.jpg);
|
background-image: url(../image/floor-1.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@@ -26,10 +26,10 @@
|
|||||||
<div style="margin-top: 4px"> {{ dataSource.type === '地暖' ? '设置' : '风量' }} </div>
|
<div style="margin-top: 4px"> {{ dataSource.type === '地暖' ? '设置' : '风量' }} </div>
|
||||||
<div style="margin-top: -5px">
|
<div style="margin-top: -5px">
|
||||||
<span style="font-size: 18px; color: #0dffff; font-style: italic">
|
<span style="font-size: 18px; color: #0dffff; font-style: italic">
|
||||||
{{ dataSource.type === '地暖' ? dataSource.setUpNumber : '18' }}
|
{{ dataSource.type === '地暖' ? dataSource.temp : dataSource.airVol }}
|
||||||
</span>
|
</span>
|
||||||
<span style="font-size: 10px; margin-left: 5px">{{
|
<span style="font-size: 10px; margin-left: 5px">{{
|
||||||
dataSource.type === '地暖' ? '℃' : 'm3/h'
|
dataSource.type === '地暖' ? dataSource.tempUnit : dataSource.airVolUnit
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<span :style="{ fontSize: '18px', color: getColor(), fontStyle: 'italic' }">
|
<span :style="{ fontSize: '18px', color: getColor(), fontStyle: 'italic' }">
|
||||||
{{ dataSource.number }}
|
{{ dataSource.number }}
|
||||||
</span>
|
</span>
|
||||||
<span style="font-size: 10px; margin-left: 5px">℃</span>
|
<span style="font-size: 10px; margin-left: 5px">{{ dataSource.numberUnit }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const getSunUrl = () => {
|
const getSunUrl = () => {
|
||||||
if (props.dataSource.number > 0 && props.dataSource.number < 20) {
|
if (props.dataSource.number >= 0 && props.dataSource.number < 20) {
|
||||||
return sunGreen;
|
return sunGreen;
|
||||||
} else if (props.dataSource.number >= 20 && props.dataSource.number < 30) {
|
} else if (props.dataSource.number >= 20 && props.dataSource.number < 30) {
|
||||||
return sunYellow;
|
return sunYellow;
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const getColor = () => {
|
const getColor = () => {
|
||||||
if (props.dataSource.number > 0 && props.dataSource.number < 20) {
|
if (props.dataSource.number >= 0 && props.dataSource.number < 20) {
|
||||||
return '#0dffa4';
|
return '#0dffa4';
|
||||||
} else if (props.dataSource.number >= 20 && props.dataSource.number < 30) {
|
} else if (props.dataSource.number >= 20 && props.dataSource.number < 30) {
|
||||||
return '#f59a23';
|
return '#f59a23';
|
||||||
|
@@ -41,7 +41,7 @@
|
|||||||
{ field: 'planGroupName', component: 'NsInput', show: false },
|
{ field: 'planGroupName', component: 'NsInput', show: false },
|
||||||
{ field: 'planName', component: 'NsInput', show: false },
|
{ field: 'planName', component: 'NsInput', show: false },
|
||||||
{ field: 'projectId', component: 'NsInput', show: false },
|
{ field: 'projectId', component: 'NsInput', show: false },
|
||||||
{ field: 'deviceType', component: 'NsInput', show: false },
|
{ field: 'ctrlType', component: 'NsInput', show: false },
|
||||||
{ field: 'orgId', component: 'NsInput', show: false },
|
{ field: 'orgId', component: 'NsInput', show: false },
|
||||||
{
|
{
|
||||||
field: 'createTime',
|
field: 'createTime',
|
||||||
@@ -74,27 +74,27 @@
|
|||||||
});
|
});
|
||||||
const config = ref(null);
|
const config = ref(null);
|
||||||
const enumDataList: any = () => {
|
const enumDataList: any = () => {
|
||||||
return getEnum({ params: { enumType: 'CtrlDeviceType' } });
|
return getEnum({ params: { enumType: 'DeviceCtrlType' } });
|
||||||
};
|
};
|
||||||
const getConfigData = async () => {
|
const getConfigData = async () => {
|
||||||
const enumData = await enumDataList();
|
const enumData = await enumDataList();
|
||||||
config.value = {
|
config.value = {
|
||||||
title: '计划库',
|
title: '计划库',
|
||||||
api: planToAddApi.getActivatedPlanListByTree,
|
api: planToAddApi.getActivatedPlanListByTree,
|
||||||
params: { orgId, projectId, deviceType: enumData.data[0].value },
|
params: { orgId, projectId, ctrlType: enumData.data[0].value },
|
||||||
treeConfig: {
|
treeConfig: {
|
||||||
defaultExpandAll: true,
|
defaultExpandAll: true,
|
||||||
header: {
|
header: {
|
||||||
icon: 'name',
|
icon: 'name',
|
||||||
title: '执行计划',
|
title: '执行计划',
|
||||||
},
|
},
|
||||||
params: { projectId, deviceType: enumData.data[0].value },
|
params: { projectId, ctrlType: enumData.data[0].value },
|
||||||
dynamicParams: {
|
dynamicParams: {
|
||||||
id: 'id',
|
id: 'id',
|
||||||
pid: 'pid',
|
pid: 'pid',
|
||||||
level: 'level',
|
level: 'level',
|
||||||
projectId: 'projectId',
|
projectId: 'projectId',
|
||||||
deviceType: 'deviceType',
|
ctrlType: 'ctrlType',
|
||||||
},
|
},
|
||||||
api: planToAddApi.getActivatedPlanTree,
|
api: planToAddApi.getActivatedPlanTree,
|
||||||
fieldNames: {
|
fieldNames: {
|
||||||
@@ -103,23 +103,23 @@
|
|||||||
pid: 'pid',
|
pid: 'pid',
|
||||||
level: 'level',
|
level: 'level',
|
||||||
projectId: 'projectId',
|
projectId: 'projectId',
|
||||||
deviceType: 'deviceType',
|
ctrlType: 'ctrlType',
|
||||||
children: 'childList',
|
children: 'childList',
|
||||||
},
|
},
|
||||||
formConfig: {
|
formConfig: {
|
||||||
schemas: [
|
schemas: [
|
||||||
{
|
{
|
||||||
field: 'deviceType',
|
field: 'ctrlType',
|
||||||
label: '告警优先级',
|
label: '类型',
|
||||||
component: 'nsSelectApi',
|
component: 'nsSelectApi',
|
||||||
autoSubmit: true,
|
autoSubmit: true,
|
||||||
componentProps: {
|
componentProps: {
|
||||||
api: () => getEnum({ params: { enumType: 'CtrlDeviceType' } }),
|
api: () => getEnum({ params: { enumType: 'DeviceCtrlType' } }),
|
||||||
immediate: true,
|
immediate: true,
|
||||||
resultField: 'data',
|
resultField: 'data',
|
||||||
labelField: 'label',
|
labelField: 'label',
|
||||||
valueField: 'value',
|
valueField: 'value',
|
||||||
placeholder: '请选择告警优先级',
|
placeholder: '请选择',
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
autoSelectFirst: true,
|
autoSelectFirst: true,
|
||||||
filterOption: (input: string, option: any) => {
|
filterOption: (input: string, option: any) => {
|
||||||
|
Reference in New Issue
Block a user