| | |
| | | import axios from 'axios'; |
| | | import { ElMessage } from 'element-plus'; |
| | | |
| | | const debug = true; |
| | | const debug = false; |
| | | |
| | | let ip1 = 'http://47.100.191.150:9029/'; |
| | | let ws = `47.100.191.150:9030`; |
| | |
| | | } |
| | | if (!label) return; |
| | | |
| | | let params = `label=${label}&deviceType=${deviceType}&deviceCode=${deviceCode}`; |
| | | params += startTime ? `&startTime=${startTime}` : ''; |
| | | return $http |
| | | .get(`air/thirdParty/data/fetch/latest?${params}`) |
| | | .get(`air/thirdParty/data/fetch/latest`, { |
| | | params: { label, deviceType, deviceCode, startTime } |
| | | }) |
| | | .then((res) => res.data); |
| | | } |
| | | }; |
| | |
| | | mission(nV, oV) { |
| | | if (nV != oV) { |
| | | this.onInit(() => { |
| | | this.formSearch.timeArray = [ |
| | | new Date(nV.startTime), |
| | | new Date(nV.endTime) |
| | | ]; |
| | | this.dateRange = [new Date(nV.startTime), new Date(nV.endTime)]; |
| | | this.formSearch.deviceType = nV.deviceType; |
| | | this.formSearch.deviceCode = nV.deviceCode; |
| | | |
| | | // 代表首次进入界面,此时自动执行首个任务的数据查询操作 |
| | | if (oV == undefined) { |
| | | setTimeout(() => { |
| | | setTimeout(() => { |
| | | // 延时赋值,因为deviceType和deviceCode也有默认初始值 |
| | | this.formSearch.timeArray = [ |
| | | new Date(nV.startTime), |
| | | new Date(nV.endTime) |
| | | ]; |
| | | this.dateRange = [new Date(nV.startTime), new Date(nV.endTime)]; |
| | | this.formSearch.deviceType = nV.deviceType; |
| | | this.formSearch.deviceCode = nV.deviceCode; |
| | | // 代表首次进入界面,此时自动执行首个任务的数据查询操作 |
| | | if (oV == undefined) { |
| | | this.handleClick(); |
| | | }, 500); |
| | | } |
| | | } |
| | | }, 500); |
| | | }); |
| | | } |
| | | } |
| | |
| | | { |
| | | label: '市控点', |
| | | value: '20' |
| | | }, |
| | | { |
| | | label: '小微站', |
| | | value: '21' |
| | | } |
| | | ]; |
| | |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | redirect: '/index/underwaymix' |
| | | redirect: '/login' |
| | | }, |
| | | // 登陆页面 |
| | | { |
| | |
| | | <SearchBar |
| | | v-show="status == 0" |
| | | :search-time="searchTime" |
| | | :loading="loading" |
| | | :loading="loading || thirdPartyLoading" |
| | | @search="onSearch" |
| | | ></SearchBar> |
| | | <TrajectoryState v-show="status != 0" :status="status"></TrajectoryState> |
| | | <el-button |
| | | <!-- <el-button |
| | | type="primary" |
| | | class="p-events-auto el-button-custom" |
| | | @click="handleClick" |
| | | > |
| | | 分析 |
| | | </el-button> |
| | | </el-button> --> |
| | | </el-row> |
| | | <el-row class="m-t-2"> |
| | | <FactorRadio |
| | |
| | | import { ElMessage } from 'element-plus'; |
| | | import { fetchHistoryData } from '@/utils/factor/data'; |
| | | import dataAnalysisApi from '@/api/dataAnalysisApi'; |
| | | import thirdPartyDataApi from '@/api/thirdPartyDataApi'; |
| | | import { mapStores } from 'pinia'; |
| | | import { useSceneStore } from '@/stores/scene'; |
| | | |
| | |
| | | // 轨迹动画状态 |
| | | status: 0, |
| | | // 是否页面已跳转 |
| | | isUnmounted: false |
| | | isUnmounted: false, |
| | | // 第三方数据获取是否尝试 |
| | | isFetchThirdParty: false, |
| | | thirdPartyLoading: false |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | endTime, |
| | | page, |
| | | perPage: pageSize |
| | | }).then((res) => this.onFetchData(deviceType, res.data)); |
| | | }).then((res) => { |
| | | this.onFetchData(deviceType, res.data); |
| | | if ( |
| | | res.data.length == 0 && |
| | | this.isFetchThirdParty != mission.missionCode |
| | | ) { |
| | | this.onThirdPartyFetch(option); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | onThirdPartyFetch(option) { |
| | | const { mission } = option; |
| | | if (import.meta.env.VITE_DATA_MODE == 'jingan') { |
| | | this.thirdPartyLoading = true; |
| | | this.isFetchThirdParty = mission.missionCode; |
| | | // 通知服务端启动任务范围内的第三方数据获取任务 |
| | | thirdPartyDataApi |
| | | .fetchMissionData(mission.missionCode) |
| | | .then((res) => { |
| | | if (res.data) { |
| | | this.onSearch(option); |
| | | } |
| | | }) |
| | | .finally(() => (this.thirdPartyLoading = false)); |
| | | } |
| | | }, |
| | | handleClick() { |
| | | const { missionCode } = this.mission; |
| | | dataAnalysisApi.pollutionTrace(missionCode).then((res) => { |
| | |
| | | // const mapAnimation = new MapAnimation(); |
| | | |
| | | // 调试模式 |
| | | const mode = 'debug'; |
| | | // const mode = 'debug'; |
| | | const mode = 'product'; |
| | | |
| | | export default { |
| | | components: { DashBoard, RealTimeTrend, DeviceChange, SourceTrace }, |