} | } | ||||
const handleClick = (list) => { | const handleClick = (list) => { | ||||
router.push('/') | |||||
inspectionStore.setList(list) | inspectionStore.setList(list) | ||||
router.push('/') | |||||
} | } | ||||
data.timer = setInterval(() => { | data.timer = setInterval(() => { |
import { defineStore } from 'pinia' | |||||
export const useLiveStore = defineStore('live', { | |||||
state() { | |||||
return { | |||||
list: null | |||||
} | |||||
}, | |||||
getters: { | |||||
getList() { | |||||
return this.list | |||||
} | |||||
}, | |||||
actions: { | |||||
setList(data) { | |||||
this.list = data | |||||
}, | |||||
resetList() { | |||||
this.list = null | |||||
} | |||||
} | |||||
}) |
import materials from '@/assets/icon/materials.png' | import materials from '@/assets/icon/materials.png' | ||||
import personnel from '@/assets/icon/personnel.png' | import personnel from '@/assets/icon/personnel.png' | ||||
import { implement } from '@/api/task/index.js' | import { implement } from '@/api/task/index.js' | ||||
import { useLiveStore } from '@/store/modules/live.js' | |||||
const ICON_LIST = { | const ICON_LIST = { | ||||
'002000': problemSpot_icon, | '002000': problemSpot_icon, | ||||
'002001': deadTree_icon, | '002001': deadTree_icon, | ||||
emits: ['send'], | emits: ['send'], | ||||
setup(props, { emit }) { | setup(props, { emit }) { | ||||
const router = useRouter() | const router = useRouter() | ||||
const liveStore = useLiveStore() | |||||
const data = reactive({ | const data = reactive({ | ||||
selectedTab: 0, | selectedTab: 0, | ||||
extendList: [ | extendList: [ | ||||
*/ | */ | ||||
const liveShow = (rowInfo) => { | const liveShow = (rowInfo) => { | ||||
rowInfo = JSON.stringify(rowInfo) | rowInfo = JSON.stringify(rowInfo) | ||||
liveStore.setList(rowInfo) | |||||
router.push({ | router.push({ | ||||
path: '/taskManage/all', | |||||
query: { rowInfo: rowInfo } | |||||
path: '/taskManage/all' | |||||
}) | }) | ||||
} | } | ||||
? 'pointer' | ? 'pointer' | ||||
: '' | : '' | ||||
}) | }) | ||||
// 从其他页面点击网页头部进来, 若有直播, 则打开抽屉 | |||||
if (inspectionStore.getList?.id) { | |||||
data.drawerShow = true | |||||
} | |||||
} | } | ||||
/** | /** |
</template> | </template> | ||||
<script> | <script> | ||||
import { defineComponent, ref, reactive, toRefs, computed, watch, nextTick, onBeforeUnmount } from 'vue' | |||||
import { defineComponent, ref, reactive, toRefs, computed, watch, nextTick, onBeforeUnmount, onMounted } from 'vue' | |||||
import Underlay from './Underlay.vue' | import Underlay from './Underlay.vue' | ||||
import ControlPanel from './ControlPanel.vue' | import ControlPanel from './ControlPanel.vue' | ||||
import SpeedChart from './SpeedChart.vue' | import SpeedChart from './SpeedChart.vue' | ||||
}) | }) | ||||
watch(() => inspectionStore.getList, (value) => { | watch(() => inspectionStore.getList, (value) => { | ||||
if (inspectionStore.getList) { | |||||
uavCheck(value) | |||||
} | |||||
}) | |||||
const uavCheck = (value) => { | |||||
if (value) { | if (value) { | ||||
// 获取无人机实时数据,绘制表格 | // 获取无人机实时数据,绘制表格 | ||||
if (value.airportId) { | if (value.airportId) { | ||||
} | } | ||||
}, 6 * 60 * 1000) | }, 6 * 60 * 1000) | ||||
} | } | ||||
}) | |||||
} | |||||
// 获取无人机信息 | // 获取无人机信息 | ||||
const getUavInfo = async(id) => { | const getUavInfo = async(id) => { | ||||
} | } | ||||
} | } | ||||
onMounted(() => { | |||||
if (inspectionStore.getList) { | |||||
uavCheck(inspectionStore.getList) | |||||
} | |||||
}) | |||||
onBeforeUnmount(() => { | onBeforeUnmount(() => { | ||||
emergencyVideo.value?.disposeVideo() | emergencyVideo.value?.disposeVideo() | ||||
clearTimer() | clearTimer() |
import { useRouter } from 'vue-router' | import { useRouter } from 'vue-router' | ||||
// 视频组件 | // 视频组件 | ||||
import VideoPlayer from '@/components/VideoPlayer/index.vue' | import VideoPlayer from '@/components/VideoPlayer/index.vue' | ||||
import { useLiveStore } from '@/store/modules/live.js' | |||||
export default defineComponent({ | export default defineComponent({ | ||||
name: 'LiveDrawer', | name: 'LiveDrawer', | ||||
components: { VideoPlayer }, | components: { VideoPlayer }, | ||||
setup(props, { emit }) { | setup(props, { emit }) { | ||||
const originRef = ref() | const originRef = ref() | ||||
const router = useRouter() | const router = useRouter() | ||||
const liveStore = useLiveStore() | |||||
const data = reactive({ | const data = reactive({ | ||||
mapData: null, | mapData: null, | ||||
view: null, | view: null, | ||||
}) | }) | ||||
} | } | ||||
liveStore.resetList() | |||||
} | } | ||||
/* 获取轨迹数据 */ | /* 获取轨迹数据 */ |
import { reactive, ref, unref, toRefs, onUnmounted, onMounted } from 'vue' | import { reactive, ref, unref, toRefs, onUnmounted, onMounted } from 'vue' | ||||
import { getTaskList } from '@/api/task/index.js' | import { getTaskList } from '@/api/task/index.js' | ||||
import { useRoute } from 'vue-router' | import { useRoute } from 'vue-router' | ||||
import { useLiveStore } from '@/store/modules/live.js' | |||||
export default { | export default { | ||||
name: 'TaskAll', | name: 'TaskAll', | ||||
components: { HeadSearch, DataTable, TaskModal, LiveDrawer, DemandDrawer, VerifyDrawer }, | components: { HeadSearch, DataTable, TaskModal, LiveDrawer, DemandDrawer, VerifyDrawer }, | ||||
setup() { | setup() { | ||||
const route = useRoute() | const route = useRoute() | ||||
const liveStore = useLiveStore() | |||||
const rowInfo = route.query.rowInfo | const rowInfo = route.query.rowInfo | ||||
getAirOptions() | getAirOptions() | ||||
} | } | ||||
} | } | ||||
onMounted(() => { | onMounted(() => { | ||||
if (rowInfo) { | |||||
data.rowData = JSON.parse(rowInfo) | |||||
data.liveDrawer = true | |||||
if (liveStore.getList) { | |||||
// data.rowData = JSON.parse(rowInfo) | |||||
data.rowData = JSON.parse(liveStore.getList) | |||||
// 巡检任务才展示 | |||||
if (data.rowData?.type === 1) { | |||||
data.liveDrawer = true | |||||
} | |||||
} | } | ||||
}) | }) | ||||
onUnmounted(() => { | onUnmounted(() => { |