吉安感知网项目-前端
chenyao
2026-02-26 3cd44b7f4f035bd0a3c7ccbfc67e59310213521b
applications/task-work-order/src/views/orderView/deviceInvocation/deviceCallRecord/index.vue
@@ -1,38 +1,50 @@
<template>
   <basic-container>
      <el-form ref="queryParamsRef" :model="searchParams" class="gd-search-form">
         <el-form-item label="登录账号" prop="account">
         <el-form-item label="任务名称" prop="patrolTaskName">
            <el-input
               class="gd-input gray"
               v-model="searchParams.account"
               v-model="searchParams.patrolTaskName"
               placeholder="请输入"
               clearable
               @clear="handleSearch"
            />
         </el-form-item>
         <el-form-item label="用户姓名" prop="realName">
            <el-input
               class="gd-input gray"
               v-model="searchParams.realName"
               placeholder="请输入"
               clearable
               @clear="handleSearch"
            />
         </el-form-item>
         <el-form-item label="所属部门" prop="deptId">
            <el-tree-select
         <el-form-item label="执行设备" prop="deviceId">
            <el-select
               class="gd-select gray"
               popper-class="gd-select-popper"
               v-model="searchParams.deptId"
               :data="deptTree"
               :props="treeProps"
               node-key="id"
               check-strictly
               v-model="searchParams.deviceId"
               placeholder="请选择"
               clearable
               @change="handleSearch"
            />
            >
               <el-option
                  v-for="item in deviceList"
                  :key="item.id"
                  :label="item.nickname"
                  :value="item.id"
               />
            </el-select>
         </el-form-item>
         <el-form-item label="任务发起人" prop="">
            <el-select
               class="gd-select gray"
               popper-class="gd-select-popper"
               v-model="searchParams.taskInitiator"
               placeholder="请选择"
               clearable
               @change="handleSearch"
            >
               <el-option
                  v-for="item in userList"
                  :key="item.id"
                  :label="item.realName"
                  :value="item.id"
               />
            </el-select>
         </el-form-item>
         <el-form-item class="gd-search-actions">
@@ -41,33 +53,33 @@
         </el-form-item>
      </el-form>
      <div class="gd-table-toolbar">
         <el-button v-if="permission.orderUser_add" :icon="Plus" color="#4C34FF" type="primary" @click="handleAdd">
            新增
         </el-button>
         <el-button
            v-if="permission.orderUser_remove"
            :icon="Delete"
            :disabled="!selectedIds.length"
            @click="handleDelete()"
         >
            删除
         </el-button>
      </div>
<!--      <div class="gd-table-toolbar">-->
<!--         <el-button v-if="permission.orderUser_add" :icon="Plus" color="#4C34FF" type="primary" @click="handleAdd">-->
<!--            新增-->
<!--         </el-button>-->
<!--         <el-button-->
<!--            v-if="permission.orderUser_remove"-->
<!--            :icon="Delete"-->
<!--            :disabled="!selectedIds.length"-->
<!--            @click="handleDelete()"-->
<!--         >-->
<!--            删除-->
<!--         </el-button>-->
<!--      </div>-->
      <div class="gd-table-container" v-loading="loading">
         <div class="gd-table-content gd-table-content-bg">
            <el-table class="gd-table" :data="list" @selection-change="handleSelectionChange">
            <el-table class="gd-table" :data="list">
               <el-table-column type="selection" width="46" />
               <el-table-column type="index" show-overflow-tooltip width="64" label="序号" />
               <el-table-column prop="account" show-overflow-tooltip label="任务名称" />
               <el-table-column prop="realName" show-overflow-tooltip label="发起任务部门" />
               <el-table-column prop="roleName" show-overflow-tooltip label="任务发起人" />
               <el-table-column prop="deptName" show-overflow-tooltip label="飞行时长" />
               <el-table-column prop="phone" show-overflow-tooltip label="飞行里程(m)" />
               <el-table-column prop="phone" show-overflow-tooltip label="执行设备" />
               <el-table-column prop="phone" show-overflow-tooltip label="计划执行时间" />
               <el-table-column prop="phone" show-overflow-tooltip label="实际执行时间" />
               <el-table-column prop="patrolTaskName" show-overflow-tooltip label="任务名称" />
               <el-table-column prop="taskDepartment" show-overflow-tooltip label="发起任务部门" />
               <el-table-column prop="taskInitiator" show-overflow-tooltip label="任务发起人" />
               <el-table-column prop="flightDuration" show-overflow-tooltip label="飞行时长" />
               <el-table-column prop="flightDistance" show-overflow-tooltip label="飞行里程(m)" />
               <el-table-column prop="deviceName" show-overflow-tooltip label="执行设备" />
               <el-table-column prop="planExecuteTime" show-overflow-tooltip label="计划执行时间" />
               <el-table-column prop="actualExecuteTime" show-overflow-tooltip label="实际执行时间" />
               <el-table-column label="操作" class-name="operation-btns" width="180">
                  <template v-slot="{ row }">
                     <el-link  @click="handleView(row)">查看</el-link>
@@ -97,19 +109,20 @@
import { computed, onMounted, ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getDeptTree } from '@/api/system/dept'
import { getList as getUserList, remove } from '@/api/system/user'
import { getDeviceCallRecordPage } from './deviceCallRecordApi'
import { getEquipmentPage } from '../equipmentResource/equipmentResourceApi'
import { getList as getUserList } from '@/api/system/user'
import { useStore } from 'vuex'
import FormDiaLog from './FormDiaLog.vue'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
const initSearchParams = () => ({
   account: '',
   realName: '',
   deptId: '',
   deviceId: '',
   patrolTaskName: '',
   taskInitiator: '',
   current: 1,
   size: 10,
   // sysType: 6
})
const searchParams = ref(initSearchParams())
@@ -131,21 +144,32 @@
async function getList() {
   loading.value = true
   try {
      const res = await getUserList(
         searchParams.value.current,
         searchParams.value.size,
         // searchParams.value.sysType,
         {
            account: searchParams.value.account,
            realName: searchParams.value.realName,
         },
         searchParams.value.deptId
      )
      const res = await getDeviceCallRecordPage(searchParams)
      list.value = res?.data?.data?.records ?? []
      total.value = res?.data?.data?.total ?? 0
   } finally {
      loading.value = false
   }
}
// 获取设备列表
const deviceList = ref([])
async function getDeviceList(row) {
   const params = {
      deviceType: 1, // 设备类型
      modeCode: '', // 设备状态
      current: 1, // 当前页
      size: 999, // 每页大小
   }
   const res = await getEquipmentPage(params)
   deviceList.value = res?.data?.data?.records ?? []
}
// 获取用户列表
const userList = ref([])
async function getUserListPage() {
   const res = await getUserList(1,999)
   userList.value = res?.data?.data?.records ?? []
}
function handleSearch() {
@@ -160,51 +184,15 @@
   getList()
}
function handleAdd() {
   dialogRef.value?.open({ mode: 'add' })
}
function handleView(row) {
   dialogRef.value?.open({ mode: 'view', row: { ...row } })
}
function handleEdit(row) {
   dialogRef.value?.open({ mode: 'edit', row: { ...row } })
}
async function handleDelete(row) {
   const tips = row ? '该条' : '选中的项'
   await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', {
      type: 'warning',
      customClass: 'command-page-view-message-box',
      confirmButtonClass: 'command-message-box-confirm',
      cancelButtonClass: 'command-message-box-cancel',
   })
   const ids = row ? row.id : selectedIds.value.join(',')
   await remove(ids)
   saveOperationLog({
      requestUri: route.path,
      title: `${route.name || '用户管理'}-删除`,
      type: 1
   })
   ElMessage.success('删除成功')
   selectedIds.value = []
   getList()
}
function handleSelectionChange(rows) {
   selectedIds.value = rows.map(item => item.id)
}
function getDeptTreeList() {
   getDeptTree().then(res => {
      deptTree.value = res?.data?.data ?? []
   })
}
onMounted(() => {
   getDeviceList()
   getUserListPage()
   getList()
   getDeptTreeList()
})
</script>