| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | 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()) |
| | |
| | | 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() { |
| | |
| | | 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> |
| | | |