|
@@ -1,6 +1,6 @@
|
|
|
<script setup>
|
|
|
-import { ref, onMounted, computed, unref, watch, h } from 'vue';
|
|
|
-import { NScrollbar, useMessage, NTabs, NTabPane, NSwitch, useNotification, NButton } from 'naive-ui';
|
|
|
+import { ref, onMounted, computed, unref, watch, h, onUnmounted } from 'vue';
|
|
|
+import { NScrollbar, useMessage, NTabs, NTabPane, NSwitch, useNotification } from 'naive-ui';
|
|
|
import { TheChatView } from '@/components';
|
|
|
import { controlApi } from "@/api/control";
|
|
|
import BaseTitle from './components/BaseTitle.vue';
|
|
@@ -15,9 +15,12 @@ const notification = useNotification()
|
|
|
const message = useMessage();
|
|
|
const isVisibleBtn = ref(true);
|
|
|
const isVisibleUpdateInfo = ref(false);
|
|
|
-const systemStatus = ref(0);
|
|
|
const zuTaiStatus = ref({});
|
|
|
const minAndMaxValue = ref({});
|
|
|
+let msgReactive = '';
|
|
|
+let timer1 = '';
|
|
|
+let timer2 = '';
|
|
|
+let timerInterval = '';
|
|
|
const resultNumberSet = ref({
|
|
|
flowNum1: 0,
|
|
|
flowNum2: 0,
|
|
@@ -157,21 +160,6 @@ const onEditCancel = () => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-// 最终提交
|
|
|
-const onFinalResult = async (type) => {
|
|
|
- const name = type == 'one' ? '南池' : '北池';
|
|
|
-
|
|
|
- if ( type == 'one' ) {
|
|
|
- systemStatus.value.activeOne = systemStatus.value.activeOne === 1 ? 0 : 1;
|
|
|
- } else {
|
|
|
- systemStatus.value.activeTwo = systemStatus.value.activeTwo === 1 ? 0 : 1;
|
|
|
- }
|
|
|
-
|
|
|
- controlApi.putSystemStatus({ ...systemStatus.value });
|
|
|
-
|
|
|
- message.success(`${name}投药状态更改成功`);
|
|
|
-}
|
|
|
-
|
|
|
// 切换tabs
|
|
|
const onUpdateTab = (index) => {
|
|
|
dataSourceParams.value.type = index;
|
|
@@ -265,10 +253,11 @@ const handleMedicateAmount = () => {
|
|
|
|
|
|
if ( type == 0 ) {
|
|
|
// && dataSourceParams.value.medicineAmountOne != updateNum1
|
|
|
- if ( !dataSourceParams.value.typeOne ) {
|
|
|
- const medicineAmountOne = dataSourceParams.value.medicineAmountOne
|
|
|
+ if ( !dataSourceParams.value.typeOne ) { // 手动
|
|
|
+ const medicineAmountOne = dataSourceParams.value.medicineAmountOne;
|
|
|
if ( medicineAmountOne && medicineAmountOne != 0 ) {
|
|
|
resultNumberSet.value.updateNum1 = dataSourceParams.value.medicineAmountOne;
|
|
|
+ resultNumberSet.value.currentResultNum1 = dataSourceParams.value.medicineAmountOne;
|
|
|
isVisibleUpdateInfo.value = true;
|
|
|
// message.warning("北池有新的投放方案, 请查看");
|
|
|
} else {
|
|
@@ -290,6 +279,7 @@ const handleMedicateAmount = () => {
|
|
|
const medicineAmountTwo = dataSourceParams.value.medicineAmountTwo;
|
|
|
if (medicineAmountTwo && medicineAmountTwo != 0 ) {
|
|
|
resultNumberSet.value.updateNum2 = dataSourceParams.value.medicineAmountTwo;
|
|
|
+ resultNumberSet.value.currentResultNum2 = dataSourceParams.value.medicineAmountTwo;
|
|
|
isVisibleUpdateInfo.value = true;
|
|
|
// message.warning("南池有新的投放方案, 请查看");
|
|
|
} else {
|
|
@@ -438,7 +428,28 @@ const waringTips = () => {
|
|
|
console.log("warningList", warningList);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
+ let countDown = 5;
|
|
|
+ timer1 = setTimeout(() => {
|
|
|
+ message.warning('有新检测数据,30秒后刷新系统,请注意保存设置',
|
|
|
+ { duration: 6 * 1000 }
|
|
|
+ )
|
|
|
+ timer2 = setTimeout(() => {
|
|
|
+ msgReactive = message.create('即将更新系统数据,5秒后刷新', {
|
|
|
+ type: 'warning',
|
|
|
+ duration: 6 * 10000
|
|
|
+ });
|
|
|
+ timerInterval = setInterval(() => {
|
|
|
+ if ( countDown == 1 ) {
|
|
|
+ clearInterval(timerInterval);
|
|
|
+ return location.reload();
|
|
|
+ }
|
|
|
+ countDown --;
|
|
|
+ msgReactive.content = `即将更新系统数据,${countDown}秒后刷新`;
|
|
|
+ }, 1000)
|
|
|
+ }, 25 * 1000)
|
|
|
+ }, 4.5 * 60 * 1000);
|
|
|
|
|
|
const { data: valSet } = await controlApi.getMinMaxVal();
|
|
|
|
|
@@ -465,7 +476,7 @@ onMounted(async () => {
|
|
|
} = data;
|
|
|
|
|
|
// 0 不可以 组态投放 1 可以 系统投放
|
|
|
- zuTaiStatus.value = { activeTwo: addTypeOne, activeTwo: addTypeTwo };
|
|
|
+ zuTaiStatus.value = { activeOne: addTypeOne, activeTwo: addTypeTwo };
|
|
|
|
|
|
// 系数
|
|
|
baseSourceParams.value = {
|
|
@@ -496,8 +507,8 @@ onMounted(async () => {
|
|
|
jsLlTypeTwo, jsLlTwo, jsCodTypeTwo, jsCodTwo, hycXsyTypeTwo, hycXsyTwo, qycYxyTypeTwo, qycYxyTwo, qycAdTypeTwo, qycAdTwo, jsTnTypeTwo, jsTnTwo,
|
|
|
htfksdTwo, jzxsTwo, xzxsTwo, kzxsTwo, slfpxsTwo, tydlTwo, zhxsTwo, sxpsTwo, yymdTwo, zxqdllTwo, tdbTwo,
|
|
|
|
|
|
- medicineAmountOne: typeOne === 0 ? 0 : medicineAmountOne,
|
|
|
- medicineAmountTwo: typeTwo === 0 ? 0 : medicineAmountTwo,
|
|
|
+ medicineAmountOne: typeOne == 0 || !typeOne ? null : medicineAmountOne,
|
|
|
+ medicineAmountTwo: typeTwo == 0 || !typeOne ? null : medicineAmountTwo,
|
|
|
|
|
|
addDifferenceOne,
|
|
|
addDifferenceTwo
|
|
@@ -537,6 +548,12 @@ onMounted(async () => {
|
|
|
// });
|
|
|
})
|
|
|
|
|
|
+onUnmounted(() => {
|
|
|
+ clearTimeout(timer1);
|
|
|
+ clearTimeout(timer2);
|
|
|
+ clearTimeout(timerInterval);
|
|
|
+})
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
@@ -683,8 +700,15 @@ onMounted(async () => {
|
|
|
<div class="w-full flex items-center justify-between" v-show="!dataSourceParams.typeOne">
|
|
|
<span>人工投放:</span>
|
|
|
<div class="w-[200px] flex items-center space-x-[8px]">
|
|
|
- <BaseInput :isCloseIcon="false" v-model="dataSourceParams.medicineAmountOne"
|
|
|
- @on-blur="handleMedicateAmount" unit="L/h">
|
|
|
+ <BaseInput
|
|
|
+ placeholder="请输入人工投放量"
|
|
|
+ :isCloseIcon="false"
|
|
|
+ v-model="dataSourceParams.medicineAmountOne"
|
|
|
+ @on-blur="handleMedicateAmount"
|
|
|
+ unit="L/h"
|
|
|
+ :min="minAndMaxValue.minAddAmount"
|
|
|
+ :max="minAndMaxValue.maxAddAmount"
|
|
|
+ >
|
|
|
</BaseInput>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -813,6 +837,8 @@ onMounted(async () => {
|
|
|
:unit="index === 0 ? 'mg/L' : ''"
|
|
|
:isNeedFlotBtn="false"
|
|
|
:readonly="index === northColumnData.length - 1"
|
|
|
+ :min="minAndMaxValue.minAddAmount"
|
|
|
+ :max="minAndMaxValue.maxAddAmount"
|
|
|
>
|
|
|
</BaseInput>
|
|
|
</div>
|
|
@@ -820,12 +846,11 @@ onMounted(async () => {
|
|
|
</ul>
|
|
|
</BaseCard>
|
|
|
</div>
|
|
|
-
|
|
|
<div class="w-full flex items-center justify-between" v-show="!dataSourceParams.typeTwo">
|
|
|
<span>人工投放:</span>
|
|
|
<div class="w-[200px] flex items-center space-x-[8px ]">
|
|
|
<BaseInput :isCloseIcon="false" v-model="dataSourceParams.medicineAmountTwo"
|
|
|
- @on-blur="handleMedicateAmount" unit="L/h">
|
|
|
+ @on-blur="handleMedicateAmount" unit="L/h" placeholder="请输入人工投放量">
|
|
|
</BaseInput>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -851,9 +876,9 @@ onMounted(async () => {
|
|
|
>
|
|
|
</TheResultPanel>
|
|
|
<TheEchartPanel
|
|
|
- v-model:change="isVisibleUpdateInfo"
|
|
|
:htfksdOne="dataSourceParams.htfksdOne"
|
|
|
:htfksdTwo="dataSourceParams.htfksdTwo"
|
|
|
+ v-model:change="isVisibleUpdateInfo"
|
|
|
></TheEchartPanel>
|
|
|
</div>
|
|
|
</div>
|