Commit 253e9fee authored by jiaxu.yan's avatar jiaxu.yan

feat: 气象干预类型修改

parent cb391db4
...@@ -203,7 +203,6 @@ import { ElMessage } from "element-plus"; ...@@ -203,7 +203,6 @@ import { ElMessage } from "element-plus";
const options = reactive([]); const options = reactive([]);
import store from "../../store/index"; import store from "../../store/index";
import { vFloatNumber } from "@/utils/directives.js"; import { vFloatNumber } from "@/utils/directives.js";
import { load } from "@amap/amap-jsapi-loader";
import { ElLoading } from "element-plus"; import { ElLoading } from "element-plus";
const form = ref({ const form = ref({
types: [], types: [],
......
<script setup> <script setup>
import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect} from "vue"; import {
ref,
defineProps,
defineEmits,
computed,
isRef,
onMounted,
watchEffect,
} from "vue";
import { vFloatNumber } from "@/utils/directives.js";
const props = defineProps({ const props = defineProps({
open: { open: {
type: Boolean, type: Boolean,
default: false, default: false,
required: true required: true,
} },
}) });
const emit = defineEmits(['onCancel','onConfirm']) const emit = defineEmits(["onCancel", "onConfirm"]);
const addData = ref({ const addData = ref({
transfers:[], // 换热站 transfers: [], // 换热站
customizeName: '', // 自定义名称 customizeName: "", // 自定义名称
diffPercentage: '', // 自动偏差百分比 diffPercentage: "", // 自动偏差百分比
illumination: '', // 光照 illumination: "", // 光照
isAuto: false, // 是否自动模式 isAuto: false, // 是否自动模式
isFixed: false, // 干预模式:true 固定模式,false 气象仪模式 isFixed: false, // 干预模式:true 固定模式,false 气象仪模式
operateTime:"", // 操作时间 operateTime: "", // 操作时间
sort: '', // 排序 sort: "", // 排序
tempRegulation: '', // 自动调节温度 tempRegulation: "", // 自动调节温度
temperature: '', // 温度 temperature: "", // 温度
timeoutMin: '', // 自动验证循环时间 timeoutMin: "", // 自动验证循环时间
wind: '', // 风速 wind: "", // 风速
description: null, // 排序字段,全为Null description: null, // 排序字段,全为Null
updateNullFields:"", // 无用,但不为空 updateNullFields: "", // 无用,但不为空
isActive:false, // 是否启用 isActive: false, // 是否启用
}) });
const inputStyle = { const inputStyle = {
color: 'black', color: "black",
height: '24px' height: "24px",
} };
function handleClose() { function handleClose() {
resetInput() resetInput();
emit('onCancel') emit("onCancel");
} }
function handleConfirm() { function handleConfirm() {
addData.value.operateTime = getCurrentDateTime() addData.value.operateTime = getCurrentDateTime();
emit('onConfirm',addData.value) emit("onConfirm", addData.value);
resetInput() resetInput();
} }
function getCurrentDateTime() { function getCurrentDateTime() {
const now = new Date(); const now = new Date();
const year = now.getFullYear(); const year = now.getFullYear();
const month = ('0' + (now.getMonth() + 1)).slice(-2); // 月份从0开始,所以加1 const month = ("0" + (now.getMonth() + 1)).slice(-2); // 月份从0开始,所以加1
const day = ('0' + now.getDate()).slice(-2); const day = ("0" + now.getDate()).slice(-2);
const hours = ('0' + now.getHours()).slice(-2); const hours = ("0" + now.getHours()).slice(-2);
const minutes = ('0' + now.getMinutes()).slice(-2); const minutes = ("0" + now.getMinutes()).slice(-2);
const seconds = ('0' + now.getSeconds()).slice(-2); const seconds = ("0" + now.getSeconds()).slice(-2);
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
} // 生成时间 } // 生成时间
function resetInput(){ function resetInput() {
addData.value={ addData.value = {
transfers:[], // 换热站 transfers: [], // 换热站
customizeName: '', // 自定义名称 customizeName: "", // 自定义名称
diffPercentage: '', // 自动偏差百分比 diffPercentage: "", // 自动偏差百分比
illumination: '', // 光照 illumination: "", // 光照
isAuto: false, // 是否自动模式 isAuto: false, // 是否自动模式
isFixed: false, // 干预模式:true 固定模式,false 气象仪模式 isFixed: false, // 干预模式:true 固定模式,false 气象仪模式
operateTime:"", // 操作时间 operateTime: "", // 操作时间
sort: '', // 排序 sort: "", // 排序
tempRegulation: '', // 自动调节温度 tempRegulation: "", // 自动调节温度
temperature: '', // 温度 temperature: "", // 温度
timeoutMin: '', // 自动验证循环时间 timeoutMin: "", // 自动验证循环时间
wind: '', // 风速 wind: "", // 风速
description: null, // 排序字段,全为Null description: null, // 排序字段,全为Null
updateNullFields:"", // 无用,但不为空 updateNullFields: "", // 无用,但不为空
isActive:false, // 是否启用 isActive: false, // 是否启用
} };
} }
</script> </script>
...@@ -76,66 +84,120 @@ function resetInput(){ ...@@ -76,66 +84,120 @@ function resetInput(){
v-model="props.open" v-model="props.open"
width="1000px" width="1000px"
title="新增" title="新增"
@close="emit('onCancel')"> @close="emit('onCancel')"
>
<template #default> <template #default>
<div class="dialog-content"> <div class="dialog-content">
<el-row style="border-top: #a6c3e9 1px solid"> <el-row style="border-top: #a6c3e9 1px solid">
<el-col :span="8" class="content-col-label">自定义名称:</el-col> <el-col :span="8" class="content-col-label">自定义名称:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.customizeName" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-model="addData.customizeName"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">干预模式:</el-col> <el-col :span="8" class="content-col-label">干预模式:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-radio-group v-model="addData.isFixed"> <el-radio-group v-model="addData.isFixed">
<el-radio :value="true" :style="{marginLeft:'10px'}">固定模式</el-radio> <el-radio :value="true" :style="{ marginLeft: '10px' }"
<el-radio :value="false" :style="{marginLeft:'-15px'}">气象仪模式</el-radio> >固定模式</el-radio
>
<el-radio :value="false" :style="{ marginLeft: '-15px' }"
>气象仪模式</el-radio
>
</el-radio-group> </el-radio-group>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">温度:</el-col> <el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.temperature" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.temperature"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">风速:</el-col> <el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.wind" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.wind"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">光照:</el-col> <el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.illumination" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.illumination"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">排序:</el-col> <el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.sort" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.sort"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="5" class="content-col-label">切换自动模式:</el-col> <el-col :span="5" class="content-col-label">切换自动模式:</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-checkbox :style="{marginLeft:'10px'}" v-model="addData.isAuto" label="自动模式"/> <el-checkbox
:style="{ marginLeft: '10px' }"
v-model="addData.isAuto"
label="自动模式"
/>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col> <el-col :span="5" class="content-col-label"
>自动偏差百分比(%d):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.diffPercentage" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.diffPercentage"
style="width: 240px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col> <el-col :span="5" class="content-col-label"
>自动验证循环时间(分钟):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.timeoutMin" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.timeoutMin"
style="width: 240px"
/>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col> <el-col :span="5" class="content-col-label"
>自动调节温度(℃):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.tempRegulation" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="addData.tempRegulation"
style="width: 240px"
/>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
...@@ -150,7 +212,6 @@ function resetInput(){ ...@@ -150,7 +212,6 @@ function resetInput(){
</template> </template>
<style scoped> <style scoped>
.el-row { .el-row {
color: black; color: black;
height: 35px; height: 35px;
...@@ -178,10 +239,10 @@ function resetInput(){ ...@@ -178,10 +239,10 @@ function resetInput(){
.el-input { .el-input {
color: black; color: black;
} }
.el-radio{ .el-radio {
color: black; color: black;
} }
.el-checkbox{ .el-checkbox {
color: black; color: black;
} }
</style> </style>
<script setup> <script setup>
import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect} from "vue"; import { vFloatNumber } from "@/utils/directives.js";
import {
ref,
defineProps,
defineEmits,
computed,
isRef,
onMounted,
watchEffect,
} from "vue";
const props = defineProps({ const props = defineProps({
open: { open: {
type: Boolean, type: Boolean,
default: false, default: false,
required: true required: true,
}, },
data: { data: {
type: Object, type: Object,
default: {}, default: {},
required:true required: true,
} },
}) });
const emit = defineEmits({ const emit = defineEmits({
onCancel: null, onCancel: null,
onConfirm: data => { onConfirm: (data) => {
return true return true;
} },
}) });
const reviseData = ref({}) const reviseData = ref({});
watchEffect(()=>{ watchEffect(() => {
reviseData.value = {...props.data} reviseData.value = { ...props.data };
}) });
const inputStyle = { const inputStyle = {
color: 'black', color: "black",
height: '24px' height: "24px",
} };
const switchingisAuto = computed({ const switchingisAuto = computed({
get() { get() {
return reviseData.value.isAuto === '自动模式' return reviseData.value.isAuto === "自动模式";
}, },
set(newValue) { set(newValue) {
if (newValue) { if (newValue) {
reviseData.value.isAuto = '自动模式' reviseData.value.isAuto = "自动模式";
} else { } else {
reviseData.value.isAuto = '手动模式' reviseData.value.isAuto = "手动模式";
}
} }
}) // 可写计算属性,手动、自动模式切换 },
function onOpen(){ }); // 可写计算属性,手动、自动模式切换
console.log('props.data数据',props.data) function onOpen() {
console.log('修改弹窗接收到的数据',reviseData.value) console.log("props.data数据", props.data);
console.log("修改弹窗接收到的数据", reviseData.value);
} }
</script> </script>
...@@ -51,73 +60,128 @@ function onOpen(){ ...@@ -51,73 +60,128 @@ function onOpen(){
width="1000px" width="1000px"
title="自定义修改" title="自定义修改"
@close="emit('onCancel')" @close="emit('onCancel')"
@open="onOpen"> @open="onOpen"
>
<template #default> <template #default>
<div class="dialog-content"> <div class="dialog-content">
<el-row style="border-top: #a6c3e9 1px solid"> <el-row style="border-top: #a6c3e9 1px solid">
<el-col :span="8" class="content-col-label">自定义名称:</el-col> <el-col :span="8" class="content-col-label">自定义名称:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.customizeName" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-model="reviseData.customizeName"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">干预模式:</el-col> <el-col :span="8" class="content-col-label">干预模式:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-radio-group v-model="reviseData.isFixed"> <el-radio-group v-model="reviseData.isFixed">
<el-radio value="固定模式" :style="{marginLeft:'10px'}">固定模式</el-radio> <el-radio value="固定模式" :style="{ marginLeft: '10px' }"
<el-radio value="气象仪模式" :style="{marginLeft:'-15px'}">气象仪模式</el-radio> >固定模式</el-radio
>
<el-radio value="气象仪模式" :style="{ marginLeft: '-15px' }"
>气象仪模式</el-radio
>
</el-radio-group> </el-radio-group>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">温度:</el-col> <el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.temperature" style="width: 510px"/> <el-input
v-float-number
:input-style="inputStyle"
v-model="reviseData.temperature"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">风速:</el-col> <el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.wind" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="reviseData.wind"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">光照:</el-col> <el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.illumination" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="reviseData.illumination"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" class="content-col-label">排序:</el-col> <el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.sort" style="width: 510px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="reviseData.sort"
style="width: 510px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="5" class="content-col-label">切换自动模式:</el-col> <el-col :span="5" class="content-col-label">切换自动模式:</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-checkbox :style="{marginLeft:'10px'}" v-model="switchingisAuto" label="自动模式"/> <el-checkbox
:style="{ marginLeft: '10px' }"
v-model="switchingisAuto"
label="自动模式"
/>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col> <el-col :span="5" class="content-col-label"
>自动偏差百分比(%d):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.diffPercentage" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="reviseData.diffPercentage"
style="width: 240px"
/>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col> <el-col :span="5" class="content-col-label"
>自动验证循环时间(分钟):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.timeoutMin" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-model="reviseData.timeoutMin"
style="width: 240px"
/>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col> <el-col :span="5" class="content-col-label"
>自动调节温度(℃):</el-col
>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="reviseData.tempRegulation" style="width: 240px"/> <el-input
:input-style="inputStyle"
v-float-number
v-model="reviseData.tempRegulation"
style="width: 240px"
/>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</template> </template>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="emit('onConfirm', reviseData)">保存</el-button> <el-button type="primary" @click="emit('onConfirm', reviseData)"
>保存</el-button
>
<el-button type="primary" @click="emit('onCancel')">关闭</el-button> <el-button type="primary" @click="emit('onCancel')">关闭</el-button>
</div> </div>
</template> </template>
...@@ -125,7 +189,6 @@ function onOpen(){ ...@@ -125,7 +189,6 @@ function onOpen(){
</template> </template>
<style scoped> <style scoped>
.el-row { .el-row {
color: black; color: black;
height: 35px; height: 35px;
...@@ -153,10 +216,10 @@ function onOpen(){ ...@@ -153,10 +216,10 @@ function onOpen(){
.el-input { .el-input {
color: black; color: black;
} }
.el-radio{ .el-radio {
color: black; color: black;
} }
.el-checkbox{ .el-checkbox {
color: black; color: black;
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment