src/api/home/machineNest.js
@@ -47,15 +47,7 @@ }) } // 设备-任务列表 export const getDeviceJobList = (data,params) => { return request({ url: `/drone-device-core/wayline/waylineJobInfo/jobList`, method: 'post', data, params }) } // 设备-事件列表 export const getDeviceEventList = (data,params) => { @@ -66,3 +58,5 @@ params }) } src/api/home/task.js
@@ -48,5 +48,32 @@ data: data.searchParams, }) } // 任务详情 export const getJobDetails = params => { return request({ url: '/drone-device-core/wayline/waylineJobInfo/jobDetails', method: 'get', params }) } // 设备-任务列表 export const getDeviceJobList = (data,params) => { return request({ url: `/drone-device-core/wayline/waylineJobInfo/jobList`, method: 'post', data, params }) } // 根据任务id查成果 export const getJobInfoFiles = (params) => { return request({ url: `/blade-resource/media/api/v1/workspaces/files/getJobInfoFiles`, method: 'get', params }) } src/views/SignMachineNest/MachineRight/MachineTableDetails/DeviceJob/DeviceJob.vue
@@ -32,8 +32,8 @@ </template> <script setup> import { useStore } from 'vuex' import { getDeviceJobList } from '@/api/home/machineNest' import DeviceJobDetails from './DeviceJobDetails/DeviceJobDetails.vue'; import { getDeviceJobList } from '@/api/home/task' const list = ref([]) const params = ref({ src/views/SignMachineNest/MachineRight/MachineTableDetails/DeviceJob/DeviceJobDetails/DeviceJobDetails.vue
@@ -1,7 +1,7 @@ <!-- 任务详情 --> <template> <el-dialog append-to-body append-to-body modal-class="detailsOfHistoricalTasks" v-model="isShow" title="历史任务详情" @@ -21,7 +21,16 @@ <JobRelatedEvents v-if="isShow" /> <el-divider content-position="left">任务成果 xxx个</el-divider> <div class="imgListBox"> <div v-for="item in imgList" class="imgItem">xxx图片</div> <el-image class="imgItem" v-for="(item, index) in achievementList" :src="item.url" :preview-src-list="achievementList.map(i => i.url)" show-progress preview-teleported :initial-index="index" fit="cover" /> </div> </div> <div class="contentRight">map</div> @@ -32,30 +41,64 @@ <script setup> import { pxToRem } from '@/utils/rem' import JobRelatedEvents from './JobRelatedEvents.vue' import { getJobDetails, getJobInfoFiles } from '@/api/home/task' const isShow = defineModel('show') const imgList = ref([ { name: '图片1', url: 'xxx' }, { name: '图片1', url: 'xxx' }, { name: '图片1', url: 'xxx' }, { name: '图片1', url: 'xxx' }, ]) const infoList = ref([ { name: '任务编号', value: 'xxx' }, { name: '任务所属机巢', value: 'xxx' }, { name: '关联算法', value: 'xxx' }, { name: '任务名称', value: 'xxx' }, { name: '所属单位', value: 'xxx' }, { name: '任务类型', value: 'xxx' }, { name: '任务周期', value: 'xxx' }, { name: '飞行事件', value: 'xxx' }, { name: '任务频次', value: 'xxx' }, { name: '任务描述', value: 'xxx' }, { name: '任务编号', value: '', field: 'id' }, { name: '任务所属机巢', value: '', field: 'device_names' }, { name: '关联算法', value: '', field: 'ai_type_str' }, { name: '任务名称', value: '', field: 'name' }, { name: '所属单位', value: '', field: 'dept_name' }, { name: '任务类型', value: '', field: 'industry_type_str' }, { name: '飞行事件', value: '', field: 'event_number' }, { name: '任务周期', value: '', field: 'rep_rule_val' }, { name: '任务频次', value: '', field: 'rep_fre_val' }, { name: '任务描述', value: '', field: 'remark' }, ]) const detailsData = ref({ id: 19, remark: '测试测试', is_monitoring: 0, industry_type_str: '综合类、公安类', area_code: '360103', ai_type_str: '识别火情、车牌识别', begin_time: '2025/04/02 16:00', end_time: '2025/04/01 15:59', device_names: '赣县-夏潭机场', create_time: '2025-04-01T07:35:19.000+00:00', name: '夏弹机场测试', event_number: 2, creator_name: '管理员', way_lines: [], }) const achievementList = ref([]) const wayLineJodInfoId = inject('wayLineJodInfoId') const getAchievement = () => { getJobInfoFiles({ jobInfoId: wayLineJodInfoId.value }).then(res => { achievementList.value = res.data.data }) } const getDetails = () => { getJobDetails({ wayLineJobInfoId: wayLineJodInfoId.value }).then(res => { console.log(res.data.data, 666) detailsData.value = res.data.data infoList.value.forEach(item => { item.value = detailsData.value?.[item.field] || '' }) }) } watch(isShow, (newValue, oldValue) => { if (newValue) { getAchievement() getDetails() } }) </script> <style lang="scss"> @@ -112,6 +155,8 @@ .imgListBox { display: flex; flex-wrap: wrap; gap: 0 10px; .imgItem { width: 200px; src/views/SignMachineNest/MachineRight/MachineTableDetails/DeviceJob/DeviceJobDetails/JobRelatedEvents.vue
@@ -1,11 +1,23 @@ <template> <el-divider content-position="left">关联事件 {{total}}个</el-divider> <el-table :data="list" style="width: 100%" > <el-table-column prop="event_num" label="编号" /> <el-table-column prop="id" label="ID" /> <el-table-column prop="event_name" label="名称" /> <el-table-column prop="media_type" label="类型" /> <el-table-column prop="photo_url" label="图片url" /> <el-table-column prop="video_url" label="视频url" /> <el-table-column prop="photo_url" label="图片"> <template #default="scope"> <el-image :style="{width: pxToRem(50), height: pxToRem(50)}" :src="scope.row.photo_url" :preview-src-list="[scope.row.photo_url]" show-progress preview-teleported :initial-index="4" fit="cover" /> </template> </el-table-column> <el-table-column prop="video_url" label="视频" /> <el-table-column prop="remark" label="备注" /> <el-table-column prop="status" label="状态"> <template #default="scope"> @@ -17,7 +29,6 @@ <el-tag v-if="scope.row.status === 5" type="success">已完结</el-tag> </template> </el-table-column> <el-table-column prop="wayline_job_id" label=" 任务id" /> <el-table-column label="操作" > <template #default="scope"> <el-button type="primary" link @click="examine(scope.row)">审核</el-button> @@ -39,6 +50,7 @@ import { useStore } from 'vuex' import { getDeviceEventList } from '@/api/home/machineNest' import { ElMessage } from 'element-plus'; import { pxToRem } from '@/utils/rem' const list = ref() @@ -47,7 +59,7 @@ }) const sizeParams = ref({ current: 1, size: 1, size: 10, }) const store = useStore() const child_sn = computed(() => store.state.home.singleUavHome.child_sn) @@ -69,13 +81,14 @@ total.value = resData.total }) } const pageChange = val => { sizeParams.value.current = val getList() } onMounted(() => { console.log(66); getList() }) </script>