fast(项目、设备列表): 项目详情添加设备列表查看

This commit is contained in:
fhysy 2024-12-04 14:48:22 +08:00
parent f87f6f2071
commit 5231d760fb
4 changed files with 89 additions and 62 deletions

View File

@ -1,12 +1,12 @@
<template>
<div class="app-container iot-device">
<component :is="componectVal" :sourceId="sourceId" :isTenant="false"></component>
<component :is="componectVal" :isTenant="false" :sourceId="sourceId"></component>
<div v-show="componectVal === ''">
<el-form
:model="queryParams"
v-show="showSearch"
ref="queryForm"
:inline="true"
v-show="showSearch"
:model="queryParams"
label-width="68px"
>
<!-- <el-form-item label="所属型号" prop="modelId">
@ -23,8 +23,8 @@
<el-form-item label="型号名称" prop="modelName">
<el-input
v-model="queryParams.modelName"
placeholder="请输入型号名称"
clearable
placeholder="请输入型号名称"
size="small"
@keyup.enter.native="handleQuery"
/>
@ -33,8 +33,8 @@
<el-form-item label="设备名称" prop="deviceName">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入设备名称"
clearable
placeholder="请输入设备名称"
size="small"
@keyup.enter.native="handleQuery"
/>
@ -42,15 +42,15 @@
<el-form-item label="设备状态" prop="deviceState">
<el-select
v-model="queryParams.deviceState"
placeholder="请选择设备状态"
@change="handleQuery"
clearable
placeholder="请选择设备状态"
size="small"
@change="handleQuery"
>
<el-option
:label="keys"
v-for="(keys, vals) in deviceStatusOpt"
:key="vals"
:label="keys"
:value="vals"
/>
</el-select>
@ -72,7 +72,7 @@
</el-select>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@ -80,20 +80,20 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['iot:device:add']"
icon="el-icon-plus"
plain
size="mini"
type="primary"
@click="handleAdd"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
plain
size="mini"
type="warning"
@click="handleExport"
>导出</el-button>
</el-col>
@ -107,58 +107,58 @@
@sort-change="sortChange"
>
<el-table-column
type="index"
label="序号"
align="center"
:index="indexFormatter"
align="center"
label="序号"
type="index"
width="80px"
></el-table-column>
<el-table-column label="设备名称" align="left" prop="deviceName" />
<el-table-column label="所属型号" align="left" prop="modelName" />
<el-table-column label="设备key" align="left" prop="deviceKey" />
<el-table-column label="设备类型" align="left" width="120px" prop="deviceTypeName" />
<el-table-column align="left" label="设备名称" prop="deviceName" />
<el-table-column align="left" label="所属型号" prop="modelName" />
<el-table-column align="left" label="设备key" prop="deviceKey" />
<el-table-column align="left" label="设备类型" prop="deviceTypeName" width="120px" />
<!-- <el-table-column label="父设备" align="left" prop="parentName" /> -->
<el-table-column label="设备状态" align="center" width="120" prop="deviceState">
<el-table-column align="center" label="设备状态" prop="deviceState" width="120">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.deviceState === 'ONLINE'">在线</el-tag>
<el-tag type="danger" v-else-if="scope.row.deviceState === 'OFFLINE'">离线</el-tag>
<el-tag type="danger" v-else-if="scope.row.deviceState === 'OUTLINE'">脱线</el-tag>
<el-tag type="info" v-else-if="scope.row.deviceState === 'UNACTIVE'">未激活</el-tag>
<el-tag v-if="scope.row.deviceState === 'ONLINE'" type="success">在线</el-tag>
<el-tag v-else-if="scope.row.deviceState === 'OFFLINE'" type="danger">离线</el-tag>
<el-tag v-else-if="scope.row.deviceState === 'OUTLINE'" type="danger">脱线</el-tag>
<el-tag v-else-if="scope.row.deviceState === 'UNACTIVE'" type="info">未激活</el-tag>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
label="创建时间"
prop="createTime"
sortable="custom"
width="160px"
prop="createTime"
/>
<el-table-column
label="操作"
align="center"
width="200px"
class-name="small-padding fixed-width"
label="操作"
width="200px"
>
<template slot-scope="scope">
<el-button
icon="el-icon-search"
size="mini"
type="text"
icon="el-icon-search"
@click="handleDetails(scope.row)"
>详情</el-button>
<el-button
v-hasPermi="['iot:device:edit']"
icon="el-icon-edit"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['iot:device:edit']"
>修改</el-button>
<el-button
v-hasPermi="['iot:device:remove']"
icon="el-icon-delete"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['iot:device:remove']"
>删除</el-button>
</template>
</el-table-column>
@ -166,9 +166,9 @@
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:page.sync="queryParams.pageNum"
:total="total"
@pagination="getList"
/>
</div>
@ -178,8 +178,8 @@
:close-on-click-modal="false"
:title="title"
:visible="open"
@close="open = false"
width="500px"
@close="open = false"
>
<el-form ref="form" slot="dialog-center" :model="form" :rules="rules" label-width="100px">
<el-form-item label="所属型号:" prop="modelId">
@ -192,22 +192,21 @@
<el-form-item label="设备类型:" prop="deviceType">
<el-select
disabled
v-model="form.deviceType"
style="width: 100%;"
placeholder="请选择设备类型"
clearable
disabled
placeholder="请选择设备类型"
style="width: 100%;"
>
<el-option
:label="keys"
:value="vals"
v-for="(keys, vals) in deviceTypeList"
:key="vals"
:label="keys"
:value="vals"
/>
</el-select>
</el-form-item>
<el-form-item label="父设备:" prop="parentId" v-if="form.deviceType === 'MINIATURE_BREAKER'">
<el-form-item v-if="form.deviceType === 'MINIATURE_BREAKER'" label="父设备:" prop="parentId">
<el-input
v-model="form.parentName"
placeholder="点击选择父设备"
@ -215,9 +214,9 @@
/>
</el-form-item>
<el-form-item label="线路类型:" prop="lineType" v-if="form.deviceType === 'MINIATURE_BREAKER'">
<el-select v-model="form.lineType" style="width: 100%;" placeholder="请选择线路类型" clearable>
<el-option :label="keys" :value="vals" v-for="(keys, vals) in lineTypeOpt" :key="vals" />
<el-form-item v-if="form.deviceType === 'MINIATURE_BREAKER'" label="线路类型:" prop="lineType">
<el-select v-model="form.lineType" clearable placeholder="请选择线路类型" style="width: 100%;">
<el-option v-for="(keys, vals) in lineTypeOpt" :key="vals" :label="keys" :value="vals" />
</el-select>
</el-form-item>
@ -232,7 +231,7 @@
<el-form-item label="参数设置:">
<span style="color: red; font-size: 12px;">*注意锁定即参数不可修改未锁则可以修改</span>
<div class="form-params-wrap">
<param-wrap ref="paramWrap" typeKeys v-if="open"></param-wrap>
<param-wrap v-if="open" ref="paramWrap" typeKeys></param-wrap>
</div>
</el-form-item>
</el-form>
@ -243,20 +242,20 @@
</dialog-template>
<el-dialog
title="选择"
:visible.sync="selectTableShow"
width="75%"
top="10vh"
class="select-table-dialog"
:close-on-click-modal="false"
:visible.sync="selectTableShow"
class="select-table-dialog"
title="选择"
top="10vh"
width="75%"
>
<select-table-wrap
v-if="selectTableShow"
:tableOption="tableSelectOption.tableOpt"
:otherOption="tableSelectOption.otherOption"
:queryOption="tableSelectOption.queryOpt"
:tableList="tableSelectOption.tableList"
:tableOption="tableSelectOption.tableOpt"
@parentGetList="childGetList($event)"
:otherOption="tableSelectOption.otherOption"
@returnEvent="returnEvent($event)"
/>
@ -266,8 +265,8 @@
</div>
</el-dialog>
<div class="to-home-wrap2-circuit" @click="toTableClick" v-show="componectVal !== ''">
<el-button icon="el-icon-d-arrow-left" title="返回列表" circle>返回列表</el-button>
<div v-show="componectVal !== ''" class="to-home-wrap2-circuit" @click="toTableClick">
<el-button circle icon="el-icon-d-arrow-left" title="返回列表">返回列表</el-button>
</div>
</div>
</template>

View File

@ -318,7 +318,7 @@
</el-form-item>
<el-form-item
v-if="form.deviceType === 'MINIATURE_BREAKER'"
v-if="form.deviceType === 'MINIATURE_BREAKER' || form.deviceType === 'DOOR_SENSOR'"
label="父设备:"
prop="parentId"
>
@ -767,6 +767,10 @@ export default {
isAsc: 'desc'
}).then(response => {
this.inProjectList = response.rows;
if(this.$route.query.projectId){
this.queryParams.inProject = parseInt(this.$route.query.projectId);
this.getList();
}
});
},
handleDeviceDialogEvent(e) {

View File

@ -42,7 +42,7 @@
</div>
</div>
</div>
<div style="width: 100%">
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center">
<e-nav-menu-button
v-model="activeType"
:activeList="activeList"
@ -55,6 +55,7 @@
}
"
/>
<el-button size="mini" type="primary" @click="goDeviceList">查看设备</el-button>
</div>
<div class="container-info">
<el-row :gutter="10">
@ -508,6 +509,25 @@ export default {
},
},
methods: {
goDeviceList(){
console.log(this.$route.path)
if(this.$route.path == "/project_tenant/project_tenant"){
this.$router.push({
path: "/device_tenant/device_tenant",
query: {
projectId: this.infoData.projectId,
},
});
}else if(this.$route.path == "/project/project"){
this.$router.push({
path: "/device/device",
query: {
projectId: this.infoData.projectId,
},
});
}
},
mapEvent(data) {
this.mapForm.lng = data.lng;
this.mapForm.lat = data.lat;

View File

@ -278,6 +278,10 @@ export default {
isAsc: 'desc'
}).then(response => {
this.inProjectList = response.rows;
if(this.$route.query.projectId){
this.queryParams.inProject = parseInt(this.$route.query.projectId);
this.getList();
}
});
},
//