| | |
| | | <el-table-column prop="deviceStatus" show-overflow-tooltip label="设备状态" /> |
| | | <el-table-column prop="occurTime" show-overflow-tooltip label="发生时间" /> |
| | | </el-table> |
| | | <div class="gd-pagination-parent"> |
| | | <el-pagination |
| | | popper-class="gd-select-popper" |
| | | v-model:current-page="formData.current" |
| | | v-model:page-size="formData.size" |
| | | layout="total, prev, pager, next, sizes" |
| | | :total="total" |
| | | @change="loadDetail" |
| | | /> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | |
| | | import { useRoute } from 'vue-router' |
| | | |
| | | const detailsList = ref([]) |
| | | const total = ref(0) |
| | | |
| | | const initForm = () => ({ |
| | | callId: '', |
| | |
| | | const deptTree = ref([]) |
| | | const route = useRoute() |
| | | |
| | | const validatePass = (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('请输入密码')) |
| | | } else { |
| | | callback() |
| | | |
| | | const statusList = ref(['待机','起飞准备','起飞准备完毕','手动飞行','自动起飞','航线飞行','全景拍照','智能跟随', |
| | | 'ADS-B 躲避','自动返航','自动降落','强制降落','三桨叶降落','升级中','未连接','APAS','虚拟摇杆状态','指令飞行','空中 RTK 收敛模式', |
| | | '机场选址中','POI环绕']) |
| | | |
| | | function getStatusText(statusIndex) { |
| | | // 如果状态索引为 null、undefined 或无效 |
| | | if (statusIndex === null || statusIndex === undefined || statusIndex === '') { |
| | | return '--'; |
| | | } |
| | | } |
| | | const validatePass2 = (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('请再次输入密码')) |
| | | } else if (value !== formData.value.password) { |
| | | callback(new Error('两次输入密码不一致')) |
| | | } else { |
| | | callback() |
| | | |
| | | // 将状态索引转换为数字 |
| | | const index = Number(statusIndex); |
| | | |
| | | // 检查索引是否有效(在数组范围内) |
| | | if (!isNaN(index) && index >= 0 && index < statusList.value.length) { |
| | | return statusList.value[index]; |
| | | } |
| | | |
| | | // 无效索引返回默认值 |
| | | console.warn(`无效的设备状态索引: ${statusIndex}`); |
| | | return '未知状态'; |
| | | } |
| | | |
| | | |
| | |
| | | visible.value = false |
| | | } |
| | | |
| | | async function loadDetail(id) { |
| | | formData.value.id = id |
| | | const res = await getDeviceCallRecordDetails(formData) |
| | | detailsList.value = res?.data?.data.records |
| | | async function loadDetail() { |
| | | const res = await getDeviceCallRecordDetails(formData.value) |
| | | detailsList.value = res?.data?.data.records || [] |
| | | total.value = res?.data?.data.total || 0 |
| | | } |
| | | |
| | | function handleClosed() { |
| | |
| | | async function open({ mode, row } = {}) { |
| | | dialogMode.value = mode || 'add' |
| | | visible.value = true |
| | | await loadDetail(row.id) |
| | | formData.value.callId = row.id || '' |
| | | await loadDetail() |
| | | } |
| | | |
| | | onMounted(() => { |