# Conflicts:
#	src/views/iot/yiweilian/index.vue
This commit is contained in:
yangjun 2025-06-30 10:15:01 +08:00
commit a214cb5234
13 changed files with 71 additions and 199 deletions

View File

@ -1,43 +1,43 @@
import { defHttp } from '/@/utils/http/axios';
enum Api {
queryProjectTreeSync = '/iot/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/regionInfo/queryRegionTreeSync',
syncProject = '/iot/projectInfo/sync',
syncRegion = '/iot/regionInfo/sync',
list = '/iot/cameraInfo/list',
ipcCapability = '/iot/cameraInfo/getIpcCapability',
nuList = '/iot/cameraInfo/nuList',
edit = '/iot/cameraInfo/edit',
rebootDevice = '/iot/cameraInfo/rebootDevice',
previewUrl = '/iot/cameraInfo/getPreviewUrl',
getImageCommon = '/iot/cameraInfo/getImageCommon',
setImageCommon = '/iot/cameraInfo/setImageCommon',
getOsdCapability = '/iot/cameraInfo/getOsdCapability',
getOsd = '/iot/cameraInfo/getOsd',
setOsd = '/iot/cameraInfo/setOsd',
getTamperDet = '/iot/cameraInfo/getTamperDet',
setTamperDet = '/iot/cameraInfo/setTamperDet',
getTamperNotif = '/iot/cameraInfo/getTamperNotif',
setTamperNotif = '/iot/cameraInfo/setTamperNotif',
testAudio = '/iot/cameraInfo/testAudio',
getAlarmInfo = '/iot/cameraInfo/getAlarmInfo',
setAlarmInfo = '/iot/cameraInfo/setAlarmInfo',
getAlarmPlan = '/iot/cameraInfo/getAlarmPlan',
setAlarmPlan = '/iot/cameraInfo/setAlarmPlan',
getVideoParams = '/iot/cameraInfo/getVideoParams',
setVideoParams = '/iot/cameraInfo/setVideoParams',
configRecovery = '/iot/cameraInfo/configRecovery',
searchVideo = '/iot/cameraInfo/searchVideo',
getPlaybackUrlList = '/iot/cameraInfo/getPlaybackUrlList',
deletePlaybackChn = '/iot/cameraInfo/deletePlaybackChn',
getMultitransUrl = '/iot/cameraInfo/getMultitransUrl',
getRecordCfgs = '/iot/cameraInfo/getRecordCfgs',
setRecordCfgs = '/iot/cameraInfo/setRecordCfgs',
getBatchProgress = '/iot/cameraInfo/getBatchProgress',
uploadToServer = '/iot/cameraInfo/uploadToServer',
stopUploadToServer = '/iot/cameraInfo/stopUploadToServer',
getUploadToServerProcess = '/iot/cameraInfo/getUploadToServerProcess',
queryProjectTreeSync = '/iot/tplink/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/tplink/regionInfo/queryRegionTreeSync',
syncProject = '/iot/tplink/projectInfo/sync',
syncRegion = '/iot/tplink/regionInfo/sync',
list = '/iot/tplink/cameraInfo/list',
ipcCapability = '/iot/tplink/cameraInfo/getIpcCapability',
nuList = '/iot/tplink/cameraInfo/nuList',
edit = '/iot/tplink/cameraInfo/edit',
rebootDevice = '/iot/tplink/cameraInfo/rebootDevice',
previewUrl = '/iot/tplink/cameraInfo/getPreviewUrl',
getImageCommon = '/iot/tplink/cameraInfo/getImageCommon',
setImageCommon = '/iot/tplink/cameraInfo/setImageCommon',
getOsdCapability = '/iot/tplink/cameraInfo/getOsdCapability',
getOsd = '/iot/tplink/cameraInfo/getOsd',
setOsd = '/iot/tplink/cameraInfo/setOsd',
getTamperDet = '/iot/tplink/cameraInfo/getTamperDet',
setTamperDet = '/iot/tplink/cameraInfo/setTamperDet',
getTamperNotif = '/iot/tplink/cameraInfo/getTamperNotif',
setTamperNotif = '/iot/tplink/cameraInfo/setTamperNotif',
testAudio = '/iot/tplink/cameraInfo/testAudio',
getAlarmInfo = '/iot/tplink/cameraInfo/getAlarmInfo',
setAlarmInfo = '/iot/tplink/cameraInfo/setAlarmInfo',
getAlarmPlan = '/iot/tplink/cameraInfo/getAlarmPlan',
setAlarmPlan = '/iot/tplink/cameraInfo/setAlarmPlan',
getVideoParams = '/iot/tplink/cameraInfo/getVideoParams',
setVideoParams = '/iot/tplink/cameraInfo/setVideoParams',
configRecovery = '/iot/tplink/cameraInfo/configRecovery',
searchVideo = '/iot/tplink/cameraInfo/searchVideo',
getPlaybackUrlList = '/iot/tplink/cameraInfo/getPlaybackUrlList',
deletePlaybackChn = '/iot/tplink/cameraInfo/deletePlaybackChn',
getMultitransUrl = '/iot/tplink/cameraInfo/getMultitransUrl',
getRecordCfgs = '/iot/tplink/cameraInfo/getRecordCfgs',
setRecordCfgs = '/iot/tplink/cameraInfo/setRecordCfgs',
getBatchProgress = '/iot/tplink/cameraInfo/getBatchProgress',
uploadToServer = '/iot/tplink/cameraInfo/uploadToServer',
stopUploadToServer = '/iot/tplink/cameraInfo/stopUploadToServer',
getUploadToServerProcess = '/iot/tplink/cameraInfo/getUploadToServerProcess',
}

View File

@ -2,16 +2,16 @@ import { defHttp } from '/@/utils/http/axios';
import {Modal} from "ant-design-vue";
enum Api {
queryProjectTreeSync = '/iot/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/regionInfo/queryRegionTreeSync',
queryTreeList = '/iot/cameraInfo/queryTreeList',
getStorageDevice = '/iot/cameraInfo/getStorageDevice',
getAllRecordPlans = '/iot/cameraInfo/getAllRecordPlans',
getRecordCfgs = '/iot/cameraInfo/getRecordCfgs',
addRecordCfgs = '/iot/cameraInfo/addRecordCfgs',
setRecordCfgs = '/iot/cameraInfo/setRecordCfgs',
delRecordCfgs = '/iot/cameraInfo/delRecordCfgs',
getBatchProgress = '/iot/cameraInfo/getBatchProgress',
queryProjectTreeSync = '/iot/tplink/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/tplink/regionInfo/queryRegionTreeSync',
queryTreeList = '/iot/tplink/cameraInfo/queryTreeList',
getStorageDevice = '/iot/tplink/cameraInfo/getStorageDevice',
getAllRecordPlans = '/iot/tplink/cameraInfo/getAllRecordPlans',
getRecordCfgs = '/iot/tplink/cameraInfo/getRecordCfgs',
addRecordCfgs = '/iot/tplink/cameraInfo/addRecordCfgs',
setRecordCfgs = '/iot/tplink/cameraInfo/setRecordCfgs',
delRecordCfgs = '/iot/tplink/cameraInfo/delRecordCfgs',
getBatchProgress = '/iot/tplink/cameraInfo/getBatchProgress',
}
/**

View File

@ -1,11 +1,11 @@
import { defHttp } from '/@/utils/http/axios';
enum Api {
list = '/iot/projectInfo/list',
sync = '/iot/projectInfo/sync',
add = '/iot/projectInfo/add',
edit = '/iot/projectInfo/edit',
delete = '/iot/projectInfo/delete',
list = '/iot/tplink/projectInfo/list',
sync = '/iot/tplink/projectInfo/sync',
add = '/iot/tplink/projectInfo/add',
edit = '/iot/tplink/projectInfo/edit',
delete = '/iot/tplink/projectInfo/delete',
}
/**

View File

@ -1,16 +1,16 @@
import { defHttp } from '/@/utils/http/axios';
enum Api {
queryProjectTreeSync = '/iot/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/regionInfo/queryRegionTreeSync',
syncProject = '/iot/projectInfo/sync',
syncRegion = '/iot/regionInfo/sync',
syncRegionChildren = '/iot/regionInfo/syncChildren',
list = '/iot/regionInfo/list',
sync = '/iot/regionInfo/sync',
add = '/iot/regionInfo/add',
edit = '/iot/regionInfo/edit',
delete = '/iot/regionInfo/delete',
queryProjectTreeSync = '/iot/tplink/projectInfo/queryRegionTreeSync',
queryRegionTreeSync = '/iot/tplink/regionInfo/queryRegionTreeSync',
syncProject = '/iot/tplink/projectInfo/sync',
syncRegion = '/iot/tplink/regionInfo/sync',
syncRegionChildren = '/iot/tplink/regionInfo/syncChildren',
list = '/iot/tplink/regionInfo/list',
sync = '/iot/tplink/regionInfo/sync',
add = '/iot/tplink/regionInfo/add',
edit = '/iot/tplink/regionInfo/edit',
delete = '/iot/tplink/regionInfo/delete',
queryChildrenByParentId = '/sys/sysDepart/queryChildrenByParentId',
}

View File

@ -1,46 +0,0 @@
import { defHttp } from '/@/utils/http/axios';
enum Api {
list = '/iot/tq/waterMeter/list',
eleReset = '/iot/tq/waterMeter/eleReset',
eleControl = '/iot/tq/waterMeter/eleControl',
eleRead = '/iot/tq/waterMeter/eleRead',
getAllMeter = '/iot/tq/common/device/getAllMeter',
getAllCollector = '/iot/tq/common/device/getAllCollector',
}
/**
*
* @param params
*/
export const list = (params) => defHttp.get({ url: Api.list, params });
/**
*
* @param params
*/
export const eleReset = (params?) => defHttp.get({ url: Api.eleReset, params });
/**
*
* @param params
*/
export const eleControl = (params?) => defHttp.get({ url: Api.eleControl, params });
/**
*
* @param params
*/
export const eleRead = (params?) => defHttp.get({ url: Api.eleRead, params });
/**
*
* @param params
*/
export const getAllMeter = (params?) => defHttp.get({ url: Api.getAllMeter, params });
/**
*
* @param params
*/
export const getAllCollector = (params?) => defHttp.get({ url: Api.getAllCollector, params });

View File

@ -25,7 +25,6 @@ import {Modal} from "ant-design-vue";
import {ExclamationCircleOutlined} from "@ant-design/icons-vue";
import { formSchema } from "../humid.data";
import {insertDevice, updateDevice, getDeviceParameters} from '../humid.api';
import {getMultitransUrl} from "@/views/iot/tplink/camera/camera.api";
// Emits
const emit = defineEmits(['success', 'register']);

View File

@ -6,14 +6,8 @@
<a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="sn">
<template #label><span title="SN">SN</span></template>
<a-input placeholder="请输入SN" v-model:value="queryParam.sn" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="nuId">
<template #label><span title="护理单元">护理单元</span></template>
<j-dict-select-tag type='list' v-model:value="queryParam.nuId" :dictCode="`nu_base_info,nu_name,id`" placeholder="请选护理单元" allow-clear />
<template #label><span title="同步类型">表号</span></template>
<a-input placeholder="请输入同步类型" v-model:value="queryParam.sn" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
@ -25,54 +19,12 @@
</div>
<a-row>
<a-col v-for="(item,index) in tableData.records" :key="index" :xs="24" :sm="24" :md="12" :lg="12" :xl="8" :xxl="6" style="padding: 8px;">
<!-- <a-card style="width: 100%;border-radius: 8px;" :headStyle="{ height: '60px', padding: '0 24px' }" :bodyStyle="{ padding: '24px 24px 4px 24px' }">
<template #title>
<a-row style="font-weight: normal;">
<a-col :span="18" style="font-size: 14px;">
<div>SN<span style="font-weight: bold;">{{item.sn}}</span></div>
<div style="font-size: 12px;">抄表时间{{item.reportingTime?item.reportingTime:'未抄表'}}</div>
</a-col>
<a-col :span="6" style="text-align: center;padding-top: 4px;">
<div :class="item.relayState=='1'?'zxClass':'lxClass'">{{item.status=='1'?'在线':'离线'}}</div>
</a-col>
</a-row>
</template>
<a-row>
<a-col :span="12" style="margin-top: -10px;">{{item.nuName?item.nuName:'未配置'}}</a-col>
<a-col :span="12" style="text-align: right;margin-top: -10px;">
<span style="text-align: right;background:#f6f6f6;padding: 2px 10px;border-radius:5px;">NUID: {{item.nuId?item.nuId:'未配置'}}</span>
</a-col>
<a-col :span="14" style="text-align: right;font-size: 44px;font-weight: bold;margin-top:18px;">
<span>{{item.eleValue?item.eleValue:'0.00'}}</span>
</a-col>
<a-col :span="8" style="padding: 12px 0 0 5px;margin-top:18px;">
<div style="font-size: 12px;margin: 5px 0 -5px 2px;padding:2px;">KWH</div>
<div style="margin-top:-3px;"><span style="background:#eeeeee;padding: 2px;border-radius:5px;font-size:11px;">用电量</span></div>
</a-col>
</a-row>
<a-divider />
<p style="text-align:center;">
<span style="display:inline-block;" @click="handleRead(item)">
<span class="tbClass"><img src="../../../../assets/iot/a1.png" style="width:20px;" /></span><br/>
<span class="antTitle">抄表</span>
</span>
<span style="display:inline-block;margin-left:10%;" @click="handleEdit(item)">
<span class="tbClass"><img src="../../../../assets/iot/a5.png" style="width:20px;" /></span><br/>
<span class="antTitle">配置</span>
</span>
<span style="display:inline-block;margin-left:10%;" @click="showApiLog(item)">
<span class="tbClass"><img src="../../../../assets/iot/a4.png" style="width:20px;" /></span><br/>
<span class="antTitle">日志</span>
</span>
</p>
</a-card> -->
<a-card style="width: 100%;border-radius: 8px;">
<template #title >
<div class="cardTitle">
<a-row>
<a-col :span="12">
<span style="margin-left:15px;font-size:14px;">SN{{item.sn}}</span>
<span style="margin-left:15px;font-size:14px;">表号{{item.sn}}</span>
</a-col>
<a-col :span="12" style="text-align: right;">
<span style="margin-right:15px;font-size:14px;">{{item.status=='0'?'在线':'离线'}}</span>
@ -84,7 +36,7 @@
<span>护理单元名称{{item.nuName?item.nuName:'未配置'}}</span>
</p>
<p>
<span>上次抄表时间{{item.reportingTime?item.reportingTime:'未抄表'}}</span>
<span>上次抄表时间{{item.readTime?item.readTime:'未抄表'}}</span>
</p>
<p style="margin-top: 20px;">
<a-row>
@ -108,13 +60,8 @@
</p>
</a-card>
</a-col>
<a-col v-if="tableData.total==0" >
<div style="margin: 30px auto;">
<a-empty />
</div>
</a-col>
</a-row>
<div v-if="tableData.total > 0"
<div
style="float:right;bottom: 20px;z-index: 999;padding: 8px 16px;border-radius: 4px;display: flex;align-items: center;">
<span style="margin-right: 10px;"> {{ tableData.total }} 条数据</span>
<Pagination showLessItems v-model:current="pageParams.pageNo" :pageSize="pageParams.pageSize" size="small"
@ -131,12 +78,11 @@
import { defHttp } from '/@/utils/http/axios';
import { Statistic } from 'ant-design-vue';
import {Modal} from "ant-design-vue";
import {deleteDevice, updateDeviceRealTime} from './humid.api';
import {updateDeviceRealTime} from './humid.api';
import { Pagination } from 'ant-design-vue';
import ApiLogAlarmModal from './components/ApiLogAlarmModal.vue'
import DeviceInfoDrawer from "./components/DeviceInfoDrawer.vue";
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { set } from 'lodash-es';
import {useDrawer} from "@/components/Drawer";
@ -227,31 +173,4 @@ const pageParams = ref({ pageNo: 1, pageSize: 8 })
display: block;
position: absolute;
}
.zxClass{
font-size:14px;
background: linear-gradient(to right, #1ea0fa, #017de9);
border-radius: 8px;
height: 35px;
color: white;
line-height: 35px;
}
.lxClass{
font-size:14px;
background: linear-gradient(to right, #cccccc, #cccccc);
border-radius: 8px;
height: 35px;
color: white;
line-height: 35px;
}
.tbClass{
background: #f6f6f6;
padding: 8px;
border-radius: 5px;
}
.antTitle{
margin-top: 10px;
display: block;
font-size: 12px;
}
</style>