2025年04月23日17:23:02

This commit is contained in:
luojiayi 2025-04-23 17:23:03 +08:00
parent 4b939a0a06
commit b76ec6d7fc
4 changed files with 33 additions and 6 deletions

1
src/api/index.d.ts vendored
View File

@ -181,6 +181,7 @@ export namespace TDevice {
mode: number
monitorMode: number
battery: number
otaFlag: number
adminUsername: string
adminPhone: string
userNumber: string

View File

@ -203,6 +203,14 @@ export const accountSetStatus = (p?: TAccountSetStatus): Promise<null> => {
params: p
});
};
// 设备OTA
export const deviceOta = (deviceId: string | number): Promise<null> => {
return request({
url: '/v1/api/device/ota',
method: 'post',
data: { deviceId }
});
};
// 删除机构
export const orgDelete = (p?: TOrg.Idel): Promise<null> => {

View File

@ -1,12 +1,12 @@
<template>
<el-form label-width="auto">
<el-row :gutter="20" style="margin-top: 20px">
<el-col :span="8">
<el-col :span="12">
<el-form-item label="关机:">
<el-button type="primary" @click="handelControl(1)">关机</el-button>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="重启:">
<el-button type="primary" @click="handelControl(2)">重启</el-button>
</el-form-item>
@ -14,12 +14,12 @@
</el-row>
<el-row :gutter="20" style="margin-top: 20px">
<el-col :span="8">
<el-col :span="12">
<el-form-item label="恢复出厂:">
<el-button type="primary" @click="handelControl(3)">恢复出厂</el-button>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="获取实时定位:">
<el-button type="primary" @click="handelControl(4)">获取实时定位</el-button>
</el-form-item>
@ -27,6 +27,11 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="OTA">
<el-button type="primary" @click="handelControl(6)" :disabled="!rowData.otaFlag">设备升级</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="模式选择:">
<el-select placeholder="请选择模式" v-model="modelValue.mode" style="width: 230px" @change="handelControl(5)">
@ -50,6 +55,9 @@
<script setup lang="ts" name="basetable">
import { ElMessageBox } from "element-plus";
import { TDevice } from "@/api/index.d";
import { PropType } from "vue";
const emit = defineEmits(["change"]);
const { modelValue } = defineProps({
@ -57,6 +65,10 @@ const { modelValue } = defineProps({
type: Object,
default: () => ({}),
},
rowData: {
type: Object as PropType<TDevice.IListRes>,
default: () => {},
},
});
const handelControl = (type: number) => {

View File

@ -39,7 +39,7 @@
<el-dialog title="设备控制" v-model="visible1" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
<!-- <TableEdit :form-data="rowData" :options="controlOptions" :update="updateData" /> -->
<DeviceControl v-model="controlForm" @change="handelControl" />
<DeviceControl :rowData="rowData" v-model="controlForm" @change="handelControl" />
</el-dialog>
<el-dialog title="设备关联" v-model="visible2" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
<BindArea :orgAllData="orgAllData" :selectDeviceList="selectDeviceList" @close="visible2 = false" :api="bindWebFn" />
@ -50,7 +50,7 @@
<script setup lang="ts" name="basetable">
import { ref, reactive, onMounted } from "vue";
import { ElMessage } from "element-plus";
import { deviceList, setMode, deviceGetLocation, deviceControl, setUseStatus, setStatus, orgAllList, bindWeb } from "@/api/index";
import { deviceList, setMode, deviceGetLocation, deviceControl, setUseStatus, setStatus, orgAllList, bindWeb, deviceOta } from "@/api/index";
import { TbindWeb, TDevice, TOrg } from "@/api/index.d";
import TableCustom from "@/components/table-custom.vue";
import TableSearch from "@/components/table-search.vue";
@ -245,6 +245,12 @@ const handelControl = (type: number) => {
ElMessage.success("操作成功");
});
break;
case 6:
deviceOta(rowData.value.deviceId).then(() => {
getData();
ElMessage.success("操作成功");
});
break;
default:
let cmdEnum = {
1: "poweroff",