feat equipmentList

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Ironsp
2026-05-21 17:26:31 +08:00
parent e429228221
commit 3f8a04f06b

View File

@@ -32,7 +32,7 @@
<template #header> <template #header>
<el-row :gutter="10" class="flex justify-end mb8"> <el-row :gutter="10" class="flex justify-end mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">添加设备</el-button> <el-button type="primary" plain icon="Plus" @click="handleAdd()">添加设备</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button v-hasPermi="['demo:demo:edit']" type="success" plain icon="Edit" :disabled="multiple" @click="handleActivate()" <el-button v-hasPermi="['demo:demo:edit']" type="success" plain icon="Edit" :disabled="multiple" @click="handleActivate()"
@@ -65,13 +65,21 @@
</el-table-column> </el-table-column>
<el-table-column label="设备型号" align="center" prop="model" /> <el-table-column label="设备型号" align="center" prop="model" />
<el-table-column label="固件版本" align="center" prop="id" /> <el-table-column label="固件版本" align="center" prop="id" />
<el-table-column label="是否绘制区域" align="center" prop="isDrawArea" /> <el-table-column label="是否绘制区域" align="center" prop="isDrawArea">
<template #default="scope">
<span v-if="scope.row.isDrawArea === 1 || scope.row.isDrawArea === '1'"></span>
<span v-else-if="scope.row.isDrawArea === 0 || scope.row.isDrawArea === '0'"></span>
<span v-else>{{ scope.row.isDrawArea ?? '-' }}</span>
</template>
</el-table-column>
<el-table-column label="绑定时间" align="center" prop="isDelete" /> <el-table-column label="绑定时间" align="center" prop="isDelete" />
<el-table-column width="400" label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column width="400" label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="handleUpdate(scope.row)">编辑</el-button> <el-button type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button type="primary" @click="handleSee(scope.row)">查看监控</el-button> <el-button type="primary" @click="handleSee(scope.row)">查看监控</el-button>
<el-button type="primary" @click="handleActivate(scope.row)">唤醒设备</el-button> <el-button :disabled="scope.row.status === 1 || scope.row.status === '1'" type="primary" @click="handleActivate(scope.row)"
>唤醒设备</el-button
>
<el-button type="primary" @click="handleDelete(scope.row)">删除</el-button> <el-button type="primary" @click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@@ -83,7 +91,7 @@
<el-dialog v-model="dialog.visible" :title="dialog.title" width="500px" append-to-body> <el-dialog v-model="dialog.visible" :title="dialog.title" width="500px" append-to-body>
<el-form ref="demoFormRef" :model="form" :rules="rules"> <el-form ref="demoFormRef" :model="form" :rules="rules">
<el-form-item label="设备编号:" prop="code"> <el-form-item label="设备编号:" prop="code">
<el-input v-model="form.code" placeholder="请输入设备编号" disabled /> <el-input v-model="form.code" placeholder="请输入设备编号" :disabled="haveCode" />
</el-form-item> </el-form-item>
<el-form-item label="设备名称:" prop="name"> <el-form-item label="设备名称:" prop="name">
<el-input v-model="form.name" placeholder="请输入设备名称" /> <el-input v-model="form.name" placeholder="请输入设备名称" />
@@ -105,9 +113,9 @@
<div class="flex w-full items-center justify-between gap-2 min-w-0 pr-8"> <div class="flex w-full items-center justify-between gap-2 min-w-0 pr-8">
<span class="truncate">实时监控-北门出入门监控</span> <span class="truncate">实时监控-北门出入门监控</span>
<div> <div>
<el-button v-if="!drawStart" type="primary" class="shrink-0" @click="drawImage()">绘制区域</el-button> <el-button v-if="!seeSee" type="primary" class="shrink-0" @click="drawImage()">绘制区域</el-button>
<el-button v-if="drawStart" type="primary" class="shrink-0" @click="clearImage()">清空区域</el-button> <el-button v-if="seeSee" type="primary" class="shrink-0" @click="clearImage()">清空区域</el-button>
<el-button v-if="drawStart" type="primary" class="shrink-0" @click="saveImage()">保存区域</el-button> <el-button v-if="seeSee" type="primary" class="shrink-0" @click="saveImage()">保存区域</el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -139,6 +147,8 @@ const showSearch = ref(true);
const ids = ref([]); const ids = ref([]);
const multiple = ref(true); const multiple = ref(true);
const total = ref(0); const total = ref(0);
const seeSee = ref(0);
const haveCode = ref(false);
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
const demoFormRef = ref<ElFormInstance>(); const demoFormRef = ref<ElFormInstance>();
@@ -246,6 +256,7 @@ const handleSelectionChange = (selection: any) => {
/** 新增按钮操作 */ /** 新增按钮操作 */
const handleAdd = () => { const handleAdd = () => {
haveCode.value = false;
reset(); reset();
dialog.visible = true; dialog.visible = true;
dialog.title = '添加设备'; dialog.title = '添加设备';
@@ -253,6 +264,7 @@ const handleAdd = () => {
/** 修改按钮操作 */ /** 修改按钮操作 */
const handleUpdate = async (row?: any) => { const handleUpdate = async (row?: any) => {
haveCode.value = true;
reset(); reset();
const _id = row?.id || ids.value[0]; const _id = row?.id || ids.value[0];
const res = await getDeviceInfo(_id); const res = await getDeviceInfo(_id);
@@ -308,6 +320,7 @@ const resetMonitorDraw = () => {
const handleSee = async (row?: any) => { const handleSee = async (row?: any) => {
reset(); reset();
resetMonitorDraw(); resetMonitorDraw();
seeSee.value = row?.isDrawArea === 1 ? 1 : 0;
const _id = row?.id || ids.value[0]; const _id = row?.id || ids.value[0];
const res = await getDeviceInfo(_id); const res = await getDeviceInfo(_id);
Object.assign(form.value, res.data); Object.assign(form.value, res.data);