吉安感知网项目-前端
张含笑
2026-04-15 1ac06394b8c6d385efdefc558313288410176fe4
feat:成果数据接口
2 files modified
116 ■■■■■ changed files
applications/task-work-order/src/views/orderView/orderManage/orderManage/orderManageApi.js 27 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/outcomeData.vue 89 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/orderManageApi.js
@@ -73,4 +73,31 @@
        method: 'get',
        params: data
    })
}
// 批量下载成果文件
export function gdTaskResultDownloadApi(params) {
    return request({
        url: `/drone-gd/workOrder/gdTaskResult/download`,
        method: 'get',
        params,
        responseType: 'blob'
    })
}
// 逻辑删除成果数据
export function gdTaskResultRemoveApi(params) {
    return request({
        url: `/drone-gd/workOrder/gdTaskResult/remove`,
        method: 'post',
        params
    })
}
// 根据工单ID查询巡查任务列表
export function listByWorkOrderId(params) {
    return request({
        url: `/drone-gd/workOrder/gdPatrolTask/listByWorkOrderId`,
        method: 'get',
        params
    })
}
applications/task-work-order/src/views/orderView/orderManage/orderManage/outcomeData.vue
@@ -5,7 +5,7 @@
        <el-select
         class="gd-select"
        popper-class="gd-select-popper"
          v-model="searchParams.patrolTaskName"
          v-model="searchParams.patrolTaskId"
          placeholder="请选择"
          clearable
          filterable
@@ -15,7 +15,7 @@
            v-for="item in patrolTaskList"
            :key="item.id"
            :label="item.patrolTaskName"
            :value="item.patrolTaskName"
            :value="item.id"
          />
        </el-select>
      </el-form-item>
@@ -71,12 +71,11 @@
</template>
<script setup>
import {gdTaskResultPageApi}from './orderManageApi'
import {gdTaskResultPageApi, gdTaskResultDownloadApi, gdTaskResultRemoveApi,listByWorkOrderId}from './orderManageApi'
import { Search, RefreshRight, Download } from '@element-plus/icons-vue'
import { ref, onMounted, inject } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getDictLabel } from '@ztzf/utils'
import { gdPatrolTaskPageApi } from '@/views/orderView/orderManage/inspectionRequest/inspectionRequestApi'
import dayjs from 'dayjs'
const props = defineProps({
@@ -90,9 +89,9 @@
// 初始化查询参数
const initSearchParams = () => ({
  patrolTaskName: '',
  current: 1,
  size: 10,
  patrolTaskId: ''
})
const searchParams = ref(initSearchParams())
@@ -107,13 +106,9 @@
// 获取巡查任务列表
async function getPatrolTaskList() {
  try {
    const res = await gdTaskResultPageApi({
      current: 1,
      size: 1000,
      id: props.workOrderId
    })
    patrolTaskList.value = res?.data?.data?.records || []
    console.log('patrolTaskList.value', patrolTaskList.value)
    const res = await listByWorkOrderId({ workOrderId: props.workOrderId })
    patrolTaskList.value = res?.data?.data || []
    console.log('巡查任务列表:', patrolTaskList.value)
  } catch (error) {
    console.error('获取巡查任务列表失败:', error)
  }
@@ -129,7 +124,6 @@
    })
    list.value = res?.data?.data?.records || []
    total.value = res?.data?.data?.total || 0
        console.log('list.value', list.value)
  } finally {
    loading.value = false
  }
@@ -154,37 +148,52 @@
}
// 下载
function handleDownload(row) {
  if (!row.resultUrl) {
    ElMessage.warning('暂无图片可下载')
async function handleDownload(row) {
  if (!row.id) {
    ElMessage.warning('暂无数据可下载')
    return
  }
  const a = document.createElement('a')
  a.href = row.resultUrl
  a.download = `成果数据_${row.patrolTaskName}_${dayjs().format('YYYYMMDDHHmmss')}`
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
  ElMessage.success('下载成功')
  try {
    const res = await gdTaskResultDownloadApi({ ids: row.id })
    const blob = res.data
    const url = URL.createObjectURL(blob)
    const a = document.createElement('a')
    a.href = url
    a.download = `成果数据_${row.patrolTaskName}_${dayjs().format('YYYYMMDDHHmmss')}`
    document.body.appendChild(a)
    a.click()
    document.body.removeChild(a)
    URL.revokeObjectURL(url)
    ElMessage.success('下载成功')
  } catch (error) {
    console.error('下载失败:', error)
    ElMessage.error('下载失败')
  }
}
// 批量下载
function handleBatchDownload() {
async function handleBatchDownload() {
  if (selectedRows.value.length === 0) {
    ElMessage.warning('请选择要下载的数据')
    return
  }
  selectedRows.value.forEach(row => {
    if (row.resultUrl) {
      const a = document.createElement('a')
      a.href = row.resultUrl
      a.download = `成果数据_${row.patrolTaskName}_${dayjs().format('YYYYMMDDHHmmss')}`
      document.body.appendChild(a)
      a.click()
      document.body.removeChild(a)
    }
  })
  ElMessage.success('批量下载完成')
  const ids = selectedRows.value.map(row => row.id).join(',')
  try {
    const res = await gdTaskResultDownloadApi({ ids })
    const blob = res.data
    const url = URL.createObjectURL(blob)
    const a = document.createElement('a')
    a.href = url
    a.download = `成果数据批量_${dayjs().format('YYYYMMDDHHmmss')}`
    document.body.appendChild(a)
    a.click()
    document.body.removeChild(a)
    URL.revokeObjectURL(url)
    ElMessage.success('批量下载完成')
  } catch (error) {
    console.error('批量下载失败:', error)
    ElMessage.error('批量下载失败')
  }
}
// 删除
@@ -196,9 +205,13 @@
    cancelButtonClass: 'gd-confirm-cancel-button',
  })
  try {
    // 这里需要调用删除接口,暂时模拟成功
    ElMessage.success('删除成功')
    getList()
    const res = await gdTaskResultRemoveApi({ ids: row.id })
    if (res?.data?.success) {
      ElMessage.success('删除成功')
      getList()
    } else {
      ElMessage.error('删除失败')
    }
  } catch (error) {
    ElMessage.error('删除失败')
  }