From b5956822ab50cb8570d835acefdedce5b7519268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Fri, 26 Sep 2025 18:43:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=80=89=E6=8B=A9=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E4=B8=8A=E4=B8=8B=E6=97=B6=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Ems/DateRangeSelect/index.vue | 18 +++++++------- src/views/ems/search/DateTimeSelect.vue | 25 ++++++++++---------- src/views/ems/search/index.vue | 4 ++-- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/components/Ems/DateRangeSelect/index.vue b/src/components/Ems/DateRangeSelect/index.vue index 14bcf15..58f7b18 100644 --- a/src/components/Ems/DateRangeSelect/index.vue +++ b/src/components/Ems/DateRangeSelect/index.vue @@ -62,15 +62,17 @@ export default { this.$emit('updateDate',this.dateRange) }, timeLine(type){ + if(!this.dateRange || !this.dateRange[0] || !this.dateRange[1]) return + const nowStartTimes = new Date(this.dateRange[0]).getTime(),nowEndTimes = new Date(this.dateRange[1]).getTime(),maxTime = new Date(this.defaultDateRange[1]).getTime() + const nowDis = nowEndTimes - nowStartTimes//用户当前选择时间差 可能=0 //baseTime,maxTime 毫秒数 - let baseTime = type === 'before' ? new Date(this.dateRange[0]).getTime() - ( 24 * 60 * 60 * 1000) :new Date(this.dateRange[1]).getTime() + ( 24 * 60 * 60 * 1000) , - maxTime = new Date(this.defaultDateRange[1]).getTime() - //updateTime 毫秒数 - let updateTime = type === 'before' ? baseTime - 7 * 24 * 60 * 60 * 1000 : baseTime + 7 * 24 * 60 * 60 * 1000 - if(type === 'next' && updateTime >= maxTime) updateTime = maxTime - const start = formatDate(type === 'before' ? updateTime : baseTime) - const end = formatDate(type === 'before' ? baseTime : updateTime) - this.dateRange = [start,end] + const baseDis = this.dataUnit === 3 ? 24 * 60 * 60 * 1000 :this.dataUnit === 2 ? 60 * 60 * 1000 : 60 * 1000 + const calcDis = nowDis === 0 ? baseDis : nowDis + let start = type === 'before' ? nowStartTimes - calcDis : nowStartTimes + calcDis + start = Math.min(start,maxTime) + let end = type === 'before' ? nowEndTimes - calcDis : nowEndTimes + calcDis + end = Math.min(end,maxTime) + this.dateRange = [formatDate(start,this.dataUnit !== 3),formatDate(end,this.dataUnit !== 3)] this.$emit('updateDate',this.dateRange) }, } diff --git a/src/views/ems/search/DateTimeSelect.vue b/src/views/ems/search/DateTimeSelect.vue index 99bf7d5..6c01274 100644 --- a/src/views/ems/search/DateTimeSelect.vue +++ b/src/views/ems/search/DateTimeSelect.vue @@ -32,7 +32,7 @@ export default { return this.dataUnit === 3 ? 'daterange' : 'datetimerange' }, valueFormat(){ - return this.dataUnit === 3 ? 'yyyy-MM-dd' :this.dataUnit === 2 ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd HH:mm:ss' + return this.dataUnit === 3 ? 'yyyy-MM-dd' : 'yyyy-MM-dd HH:mm:ss' }, disabledNextBtn(){ if(this.dateRange && this.dateRange.length ===2){ @@ -97,19 +97,18 @@ export default { } }, timeLine(type){ - if(!this.dateRange) return + if(!this.dateRange || !this.dateRange[0] || !this.dateRange[1]) return + const nowStartTimes = new Date(this.dateRange[0]).getTime(),nowEndTimes = new Date(this.dateRange[1]).getTime(),maxTime = new Date(this.defaultDateRange[1]).getTime() + const nowDis = nowEndTimes - nowStartTimes//用户当前选择时间差 可能=0 //baseTime,maxTime 毫秒数 - const baseTimes= this.dataUnit === 3 ? 24 * 60 * 60 * 1000 :this.dataUnit === 2 ? 60 * 60 * 1000 : 60 * 1000 - const baseDis = this.dataUnit === 3 ? 30 :this.dataUnit === 2 ? 24 : 60 - let baseTime = type === 'before' ? new Date(this.dateRange[0]).getTime() - baseTimes :new Date(this.dateRange[1]).getTime() + baseTimes , - maxTime = new Date(this.defaultDateRange[1]).getTime() - //updateTime 毫秒数 - let updateTime = type === 'before' ? baseTime - baseDis * baseTimes : baseTime + baseDis * baseTimes - if(type === 'next' && updateTime >= maxTime) updateTime = maxTime - const start = formatDate(type === 'before' ? updateTime : baseTime,this.dataUnit !== 3) - const end = formatDate(type === 'before' ? baseTime : updateTime,this.dataUnit !== 3) - this.dateRange = [start,end] - this.$emit('updateDate',this.dateRange || []) + const baseDis = this.dataUnit === 3 ? 24 * 60 * 60 * 1000 :this.dataUnit === 2 ? 60 * 60 * 1000 : 60 * 1000 + const calcDis = nowDis === 0 ? baseDis : nowDis + let start = type === 'before' ? nowStartTimes - calcDis : nowStartTimes + calcDis + start = Math.min(start,maxTime) + let end = type === 'before' ? nowEndTimes - calcDis : nowEndTimes + calcDis + end = Math.min(end,maxTime) + this.dateRange = [formatDate(start,this.dataUnit !== 3),formatDate(end,this.dataUnit !== 3)] + this.$emit('updateDate',this.dateRange) }, } } diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index d3d8eaa..b0dac96 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -283,8 +283,8 @@ export default { if(this.isDtdc && (this.form.child.length === 0 || this.form.child.length > 5 )){ return this.$message.error('请选择单体电池且不能超过5个'); } - this.loading = true const{siteIds,dataUnit,categoryName,pointName,dataRange:[start='',end=''],child}=this.form + if(!start || !end) return this.$message.error('请选择时间'); let siteDeviceMap={} child.forEach(([first,second,third])=>{ if(siteDeviceMap[first]){ @@ -307,7 +307,7 @@ export default { }else{ endDate=end } - + this.loading = true getPointValueList({siteIds:[siteIds],dataUnit,categoryName,pointName,startDate,endDate,siteDeviceMap}).then(response => { this.setOption(response?.data || []) }).finally(()=>{