From 011aab07af85ba820b9f96a02c249b7ba26c8d26 Mon Sep 17 00:00:00 2001 From: he wei <858544502@qq.com> Date: 星期四, 26 六月 2025 09:02:06 +0800 Subject: [PATCH] U 整理提交 --- src/views/realtime/tabs/system.vue | 190 +++++++++++++++++++++++++++-------------------- 1 files changed, 110 insertions(+), 80 deletions(-) diff --git a/src/views/realtime/tabs/system.vue b/src/views/realtime/tabs/system.vue index dcde4af..d75cb0e 100644 --- a/src/views/realtime/tabs/system.vue +++ b/src/views/realtime/tabs/system.vue @@ -18,15 +18,17 @@ import { - getHalfHourBattDevData, - getHalfHourPwrHisAcinData, - getHalfHourPwrHisDcoutData, + getBattDevData100, + getPwrHisAcinData100, + getPwrHisDcoutData100, + getPwrHeartParam, } from "@/api/realtime"; import { stopDis, restart, } from '@/api/control'; + const props = defineProps({ data: { @@ -137,6 +139,7 @@ if (!n) return; nextTick(() => { + getHeartParam(); // getAcinData(); // getDevData(); // getDcoutData(); @@ -182,6 +185,7 @@ const startIdx = ref(0); // 鍗婂皬鏃剁殑鏁版嵁鏉℃暟 1绉掍竴绗旇 +// 鏀逛负100绗� 鍙厤缃� 涓変釜灞炴�у彲浠ヨ缃笉鍚� const counter = 30 * 60; let xLabels1 = ref([]); @@ -296,7 +300,7 @@ } async function getAcinData() { - let { code, data, data2 } = await getHalfHourPwrHisAcinData(props.powerId, show_num.acin); + let { code, data, data2 } = await getPwrHisAcinData100(props.powerId); let list = []; if (code && data) { list = data2; @@ -305,7 +309,7 @@ } async function getDevData() { - let { code, data, data2 } = await getHalfHourBattDevData(props.battgroupId, show_num.dev); + let { code, data, data2 } = await getBattDevData100(props.battgroupId, props.powerId); let list = []; if (code && data) { list = data2; @@ -314,7 +318,7 @@ } async function getDcoutData() { - let { code, data, data2, data3 } = await getHalfHourPwrHisDcoutData(props.powerId, show_num.dcout); + let { code, data, data2, data3 } = await getPwrHisDcoutData100(props.powerId); let list = []; let cfg = []; if (code && data) { @@ -508,8 +512,8 @@ // let num = Math.ceil(counter / show_num['dev']); // TODO battRtstate 缂哄皯loadCurr let devObj = props.data.battRtstate; - xLabels1.value.shift(); - xLabels1.value.push(devObj.recordDatetime); + xLabels2.value.shift(); + xLabels2.value.push(devObj.recDatetime); chartData['dev'].shift(); chartData['dev'].push(devObj); updateChart2(); @@ -517,6 +521,46 @@ // 钃勭數姹犱俊鎭� battInfo.value = props.data.sticRtdata; } + +const configVisible = ref(false); +const formRef = ref(); +const form1 = reactive({ + time: 5, + count: 100, +}); + +function validatorTime(rule, value, callback) { + if(/^\d+$/.test(value)) { + if(value<1 || value>30) { + callback(new Error('鑼冨洿1~30')); + } else { + callback(); + } + }else { + callback(new Error('璇疯緭鍏ユ暣鏁�')); + } +} + +function validatorCount(rule, value, callback) { + if(/^\d+$/.test(value)) { + if (value<50 || value>200) { + callback(new Error('鑼冨洿50~200')); + } else { + callback(); + } + }else { + callback(new Error('璇疯緭鍏ユ暣鏁�')); + } +} + +const rules = { + time: [{ required: true, message: '璇疯緭鍏ユ椂闂�', trigger: ['blur', 'change'] }, + { validator: validatorTime, trigger: ['blur', 'change'] }, + ], + count: [{ required: true, message: '璇疯緭鍏ユ潯鏁�', trigger: ['blur', 'change'] }, + { validator: validatorCount, trigger: ['blur', 'change'] }, + ], +}; // 鍙栧墠鍗婂皬鏃舵暟鎹� 鏇存柊鍥捐〃 @@ -554,24 +598,46 @@ hrParamVisible.value = true; } +const config = ref({}); + +async function getHeartParam() { + let res = await getPwrHeartParam(props.powerId); + let { code, data, data2 } = res.data; + let cfg = {}; + if (code && data) { + cfg = data2; + } + config.value = cfg; +} + +const configTitle = ref(''); +function setConfig(type) { + switch(type) { + case 0: + configTitle.value = '璁剧疆浜ゆ祦杈撳叆閲囬泦鍙傛暟'; + form1.time = config.value.acinInterverCfg || 5; + form1.count = config.value.acinCountCfg || 100; + break; + case 1: + configTitle.value = '璁剧疆鐩存祦杈撳嚭閲囬泦鍙傛暟'; + form1.time = config.value.acoutInterverCfg || 5; + form1.count = config.value.acoutCountCfg || 100; + break; + case 2: + configTitle.value = '璁剧疆鏍稿璁惧閲囬泦鍙傛暟'; + form1.time = config.value.hrInterverCfg || 5; + form1.count = config.value.hrCountCfg || 100; + break; + } + configVisible.value = true; +} + +function updateConfig() { + configVisible.value = false; +} onMounted(async () => { - numChange('acin'); - numChange('dcout'); - numChange('dev'); - // await getAcinData(); - // await getDevData(); - // await getDcoutData(); - - // if (chart1.value) { - // chart1.value.updateChart(['04:12', '04:13', '04:14'], { - // '璁惧娓╁害': [100, 200, 220], - // '缁勭鐢垫祦': [100, 200, 220], - // '缁勭鐢靛帇': [100, 200, 220], - // '璐熻浇鐢垫祦': [100, 200, 220], - // }); - // } }); </script> @@ -648,28 +714,11 @@ <div class="card-item"> <card title="浜ゆ祦杈撳叆"> <template #tools> - <div class="page-filter"> - <div class="label">绮掑害</div> - <div class="value"> - <el-select - v-model="show_num['acin']" - size="small" - style="width: 50px" - @change="numChange('acin')" - > - <el-option - v-for="(n, i) in 10" - :key="'list0_' + i" - :label="'x' + n" - :value="n" - /> - </el-select> - </div> - </div> <el-radio-group class="tab-idx" v-model="tabIdx0" size="small"> <el-radio-button label="鐢垫祦" :value="0" /> <el-radio-button label="鐢靛帇" :value="1" /> </el-radio-group> + <svg-icon class-name="btn-setting" icon-class="setting" @click="setConfig(0)"></svg-icon> </template> <line-chart ref="chart0"></line-chart> </card> @@ -677,28 +726,11 @@ <div class="card-item"> <card title="鐩存祦杈撳嚭"> <template #tools> - <div class="page-filter"> - <div class="label">绮掑害</div> - <div class="value"> - <el-select - v-model="show_num['dcout']" - size="small" - style="width: 50px" - @change="numChange('dcout')" - > - <el-option - v-for="(n, i) in 10" - :key="'list0_' + i" - :label="'x' + n" - :value="n" - /> - </el-select> - </div> - </div> <el-radio-group class="tab-idx" v-model="tabIdx1" size="small"> <el-radio-button label="鐢垫祦" :value="0" /> <el-radio-button label="鐢靛帇" :value="1" /> </el-radio-group> + <svg-icon class-name="btn-setting" icon-class="setting" @click="setConfig(1)"></svg-icon> </template> <line-chart3 ref="chart1" @@ -713,25 +745,7 @@ <div class="card-item"> <card title="鏍稿璁惧淇℃伅"> <template #tools> - <div class="page-filter"> - <div class="label">绮掑害</div> - <div class="value"> - <el-select - v-model="show_num['dev']" - size="small" - style="width: 50px" - @change="numChange('dev')" - > - <el-option - v-for="(n, i) in 10" - :key="'list0_' + i" - :label="'x' + n" - :value="n" - /> - </el-select> - </div> - </div> - <!-- <svg-icon class-name="btn-setting" icon-class="setting"></svg-icon> --> + <svg-icon class-name="btn-setting" icon-class="setting" @click="setConfig(2)"></svg-icon> </template> <line-chart2 ref="chart2"></line-chart2> </card> @@ -815,12 +829,28 @@ </card> </div> </div> + <!-- 璁剧疆闂撮殧鍙傛暟 --> + <el-dialog v-model="configVisible" draggable :title="configTitle" width="560"> + <el-form ref="formRef" :model="form1" :rules="rules" label-width="10em"> + <el-form-item label="闂撮殧鏃堕棿(鍒�)" prop="time"> + <el-input v-model="form1.time"></el-input> + </el-form-item> + <el-form-item label="鏁版嵁绗旀暟" prop="count"> + <el-input v-model="form1.count"></el-input> + </el-form-item> + </el-form> + <template #footer> + <el-button @click="configVisible = false">鍏抽棴</el-button> + <!-- <el-button type="primary" @click="getConfig">璇诲彇</el-button> --> + <el-button type="primary" @click="updateConfig">璁惧畾</el-button> + </template> + </el-dialog> <!-- 璁剧疆鏍稿鍙傛暟 --> - <el-dialog v-model="hrParamVisible" :title="hrParamTitle" width="960"> + <el-dialog v-model="hrParamVisible" draggable :title="hrParamTitle" width="960"> <hr-params :devId="devId" v-model:visible="hrParamVisible" :battgroupId="battgroupId"></hr-params> </el-dialog> <!-- 璁剧疆璁惧鍛婅鍙傛暟 --> - <el-dialog v-model="devAlmVisible" title="璁惧鍛婅鍙傛暟" width="960"> + <el-dialog v-model="devAlmVisible" draggable title="璁惧鍛婅鍙傛暟" width="960"> <dev-alarm-params :devId="devId" v-model:visible="devAlmVisible"></dev-alarm-params> </el-dialog> </div> -- Gitblit v1.9.1