智能电表水表
This commit is contained in:
parent
a4ba10534c
commit
b5d24efeae
|
@ -173,8 +173,11 @@ import {
|
||||||
if (percentRate.value >= 100) {
|
if (percentRate.value >= 100) {
|
||||||
clearInterval(timerRef.value);
|
clearInterval(timerRef.value);
|
||||||
canUpload.value = true;
|
canUpload.value = true;
|
||||||
|
// uploadStop();
|
||||||
}
|
}
|
||||||
}).catch(res=>{
|
}).catch(res=>{
|
||||||
|
clearInterval(timerRef.value);
|
||||||
|
canUpload.value = true;
|
||||||
console.log(res);
|
console.log(res);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
list = '/iot/tq/electricityMeter/list',
|
||||||
|
eleReset = '/iot/tq/electricityMeter/eleReset',
|
||||||
|
eleControl = '/iot/tq/electricityMeter/eleControl',
|
||||||
|
eleRead = '/iot/tq/electricityMeter/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 });
|
|
@ -0,0 +1,154 @@
|
||||||
|
import {BasicColumn} from '/@/components/Table';
|
||||||
|
import {FormSchema} from '/@/components/Table';
|
||||||
|
|
||||||
|
//列表数据
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '机构',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'departName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '护理单元',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'nuName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '表号',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'address'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '采集器号',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'cid'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备状态',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'relayState',
|
||||||
|
customRender:({record})=>{
|
||||||
|
return record.relayState?(record.relayState=='1'?'合闸':'拉闸'):'';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '在线状态',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'online',
|
||||||
|
customRender:({record})=>{
|
||||||
|
return record.online?(record.online=='true'?'在线':'离线'):'';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '信号强度',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'csq',
|
||||||
|
customRender:({record})=>{
|
||||||
|
if(record.csq){
|
||||||
|
if(record.csq < 10){
|
||||||
|
return '低';
|
||||||
|
}else if(record.csq > 20){
|
||||||
|
return '高';
|
||||||
|
}else{
|
||||||
|
return '中';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用电量KWH',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'eleValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次抄表时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'readTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次上线时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'connectTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次掉线时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'disconnectTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '描述',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'remark'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
label: '机构',
|
||||||
|
field: 'deviceStatus',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择机构',
|
||||||
|
dictCode: 'sys_depart,depart_name,id,org_category = 1 order by depart_name asc',
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '护理单元',
|
||||||
|
field: 'deviceStatus',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择护理单元',
|
||||||
|
dictCode: 'nu_base_info,nu_name,id,del_flag = 0 order by nu_name asc',
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '表号',
|
||||||
|
field: 'address',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '设备状态',
|
||||||
|
field: 'relayState',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择状态',
|
||||||
|
options: [
|
||||||
|
{ label: '合闸', value: '1' },
|
||||||
|
{ label: '拉闸', value: '0' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '在线状态',
|
||||||
|
field: 'online',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择状态',
|
||||||
|
options: [
|
||||||
|
{ label: '在线', value: 'true' },
|
||||||
|
{ label: '离线', value: 'false' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '信号强度',
|
||||||
|
field: 'csq',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择强度',
|
||||||
|
options: [
|
||||||
|
{ label: '高', value: '1' },
|
||||||
|
{ label: '中', value: '2' },
|
||||||
|
{ label: '低', value: '3' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
];
|
|
@ -0,0 +1,207 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!--引用表格-->
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<!--插槽:table标题-->
|
||||||
|
<template #tableTitle>
|
||||||
|
<a-button type="primary" preIcon="ant-design:sync-outlined" @click="handleSyncDevice"> 同步设备</a-button>
|
||||||
|
<a-button preIcon="ant-design:sync-outlined" @click="handleSyncCollector"> 同步采集器</a-button>
|
||||||
|
</template>
|
||||||
|
<template #bodyCell="{ column, record, index, text }">
|
||||||
|
<template v-if="column.dataIndex === 'address'">
|
||||||
|
<a @click="showApiLog(record)"> {{record.address}} </a>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'relayState'">
|
||||||
|
<span v-if="record.relayState ==='1'" style="color:green">
|
||||||
|
合闸
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:red">
|
||||||
|
拉闸
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'online'">
|
||||||
|
<span v-if="record.online ==='true'" style="color:green">
|
||||||
|
在线
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:red">
|
||||||
|
离线
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'csq'">
|
||||||
|
<span v-if="record.csq > 20" style="color:green">
|
||||||
|
高
|
||||||
|
</span>
|
||||||
|
<span v-else-if="record.csq < 10" style="color:red">
|
||||||
|
低
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:yellow">
|
||||||
|
中
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<!--操作栏-->
|
||||||
|
<template #action="{ record }">
|
||||||
|
<TableAction :actions="getTableAction(record)"/>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" name="iot-nuIotRegionInfo" setup>
|
||||||
|
import {reactive, ref,h} from 'vue';
|
||||||
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
|
import {Modal} from "ant-design-vue";
|
||||||
|
import {list, eleReset, eleControl, eleRead, getAllMeter, getAllCollector} from './electricity.api';
|
||||||
|
import { columns, searchFormSchema } from './electricity.data';
|
||||||
|
import {useModal} from "@/components/Modal";
|
||||||
|
|
||||||
|
const queryParam = reactive<any>({});
|
||||||
|
//注册model
|
||||||
|
const [registerModal, {openModal}] = useModal();
|
||||||
|
//注册table数据
|
||||||
|
const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
|
||||||
|
tableProps:{
|
||||||
|
title: '智能电表',
|
||||||
|
api: list,
|
||||||
|
columns,
|
||||||
|
canResize:false,
|
||||||
|
showIndexColumn: true,
|
||||||
|
formConfig: {
|
||||||
|
//labelWidth: 120,
|
||||||
|
schemas: searchFormSchema,
|
||||||
|
autoSubmitOnEnter:true,
|
||||||
|
showAdvancedButton:true,
|
||||||
|
fieldMapToNumber: [
|
||||||
|
],
|
||||||
|
fieldMapToTime: [
|
||||||
|
],
|
||||||
|
},
|
||||||
|
actionColumn: {
|
||||||
|
width: 200,
|
||||||
|
fixed:'right'
|
||||||
|
},
|
||||||
|
beforeFetch: (params) => {
|
||||||
|
return Object.assign(params, queryParam);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功回调
|
||||||
|
*/
|
||||||
|
function handleSuccess() {
|
||||||
|
(selectedRowKeys.value = []) && reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作栏
|
||||||
|
*/
|
||||||
|
function getTableAction(record){
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '抄表',
|
||||||
|
onClick: handleRead.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '拉闸',
|
||||||
|
onClick: handleControlLz.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '合闸',
|
||||||
|
onClick: handleControlHz.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '清零',
|
||||||
|
popConfirm: {
|
||||||
|
title: '是否确认清零',
|
||||||
|
confirm: handleReset.bind(null, record),
|
||||||
|
placement: 'topLeft',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 抄电表
|
||||||
|
async function handleRead(record: Recordable) {
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
};
|
||||||
|
await eleRead(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 电表拉闸
|
||||||
|
async function handleControlLz(record: Recordable) {
|
||||||
|
if(record.relayState == '0'){
|
||||||
|
Modal.info({
|
||||||
|
title: '拉闸',
|
||||||
|
content: h('div', {}, [
|
||||||
|
h('p', '此电表已拉闸!'),
|
||||||
|
]),
|
||||||
|
onOk() {},
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
'type' : '10',
|
||||||
|
};
|
||||||
|
await eleControl(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 电表合闸
|
||||||
|
async function handleControlHz(record: Recordable) {
|
||||||
|
if(record.relayState == '1'){
|
||||||
|
Modal.info({
|
||||||
|
title: '合闸',
|
||||||
|
content: h('div', {}, [
|
||||||
|
h('p', '此电表已合闸!'),
|
||||||
|
]),
|
||||||
|
onOk() {},
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
'type' : '11',
|
||||||
|
};
|
||||||
|
await eleControl(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 电表清零
|
||||||
|
async function handleReset(record: Recordable) {
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
};
|
||||||
|
await eleReset(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取设备信息
|
||||||
|
async function handleSyncDevice() {
|
||||||
|
await getAllMeter({});
|
||||||
|
reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 采集器信息
|
||||||
|
async function handleSyncCollector() {
|
||||||
|
await getAllCollector({});
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showApiLog(record){
|
||||||
|
console.log(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,215 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!--引用表格-->
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<!--插槽:table标题-->
|
||||||
|
<template #tableTitle>
|
||||||
|
<a-button type="primary" preIcon="ant-design:sync-outlined" @click="handleSyncDevice"> 同步设备</a-button>
|
||||||
|
<a-button preIcon="ant-design:sync-outlined" @click="handleSyncCollector"> 同步采集器</a-button>
|
||||||
|
</template>
|
||||||
|
<template #bodyCell="{ column, record, index, text }">
|
||||||
|
<template v-if="column.dataIndex === 'address'">
|
||||||
|
<a @click="showApiLog(record)"> {{record.address}} </a>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'relayState'">
|
||||||
|
<span v-if="record.relayState ==='1'" style="color:green">
|
||||||
|
开阀
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:red">
|
||||||
|
关阀
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<!-- <template v-if="column.dataIndex === 'batteryState'">
|
||||||
|
<span v-if="record.batteryState ==='0'" style="color:green">
|
||||||
|
正常
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:red">
|
||||||
|
低电
|
||||||
|
</span>
|
||||||
|
</template>-->
|
||||||
|
<template v-if="column.dataIndex === 'online'">
|
||||||
|
<span v-if="record.online ==='true'" style="color:green">
|
||||||
|
在线
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:red">
|
||||||
|
离线
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'csq'">
|
||||||
|
<span v-if="record.csq > 20" style="color:green">
|
||||||
|
高
|
||||||
|
</span>
|
||||||
|
<span v-else-if="record.csq < 10" style="color:red">
|
||||||
|
低
|
||||||
|
</span>
|
||||||
|
<span v-else style="color:yellow">
|
||||||
|
中
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<!--操作栏-->
|
||||||
|
<template #action="{ record }">
|
||||||
|
<TableAction :actions="getTableAction(record)"/>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" name="iot-nuIotRegionInfo" setup>
|
||||||
|
import {reactive, ref,h} from 'vue';
|
||||||
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
|
import {Modal} from "ant-design-vue";
|
||||||
|
import {list, waterReset, waterControl, waterRead, getAllMeter, getAllCollector} from './water.api';
|
||||||
|
import { columns, searchFormSchema } from './water.data';
|
||||||
|
import {useModal} from "@/components/Modal";
|
||||||
|
|
||||||
|
const queryParam = reactive<any>({});
|
||||||
|
//注册model
|
||||||
|
const [registerModal, {openModal}] = useModal();
|
||||||
|
//注册table数据
|
||||||
|
const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
|
||||||
|
tableProps:{
|
||||||
|
title: '智能水表',
|
||||||
|
api: list,
|
||||||
|
columns,
|
||||||
|
canResize:false,
|
||||||
|
showIndexColumn: true,
|
||||||
|
formConfig: {
|
||||||
|
//labelWidth: 120,
|
||||||
|
schemas: searchFormSchema,
|
||||||
|
autoSubmitOnEnter:true,
|
||||||
|
showAdvancedButton:true,
|
||||||
|
fieldMapToNumber: [
|
||||||
|
],
|
||||||
|
fieldMapToTime: [
|
||||||
|
],
|
||||||
|
},
|
||||||
|
actionColumn: {
|
||||||
|
width: 200,
|
||||||
|
fixed:'right'
|
||||||
|
},
|
||||||
|
beforeFetch: (params) => {
|
||||||
|
return Object.assign(params, queryParam);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功回调
|
||||||
|
*/
|
||||||
|
function handleSuccess() {
|
||||||
|
(selectedRowKeys.value = []) && reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作栏
|
||||||
|
*/
|
||||||
|
function getTableAction(record){
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '抄表',
|
||||||
|
onClick: handleRead.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '开阀',
|
||||||
|
onClick: handleWaterControlKf.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '关阀',
|
||||||
|
onClick: handleWaterControlGf.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '清零',
|
||||||
|
popConfirm: {
|
||||||
|
title: '是否确认清零',
|
||||||
|
confirm: handleReset.bind(null, record),
|
||||||
|
placement: 'topLeft',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 抄电表
|
||||||
|
async function handleRead(record: Recordable) {
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
};
|
||||||
|
await waterRead(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 水表关阀
|
||||||
|
async function handleWaterControlGf(record: Recordable) {
|
||||||
|
if(record.relayState == '0'){
|
||||||
|
Modal.info({
|
||||||
|
title: '关阀',
|
||||||
|
content: h('div', {}, [
|
||||||
|
h('p', '此水表已关阀!'),
|
||||||
|
]),
|
||||||
|
onOk() {},
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
'type' : '53',
|
||||||
|
};
|
||||||
|
await waterControl(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 水表开阀
|
||||||
|
async function handleWaterControlKf(record: Recordable) {
|
||||||
|
if(record.relayState == '1'){
|
||||||
|
Modal.info({
|
||||||
|
title: '开阀',
|
||||||
|
content: h('div', {}, [
|
||||||
|
h('p', '此水表已开阀!'),
|
||||||
|
]),
|
||||||
|
onOk() {},
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
'type' : '43',
|
||||||
|
};
|
||||||
|
await waterControl(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 水表清零
|
||||||
|
async function handleReset(record: Recordable) {
|
||||||
|
const params = {
|
||||||
|
'cid' : record.cid,
|
||||||
|
'address' : record.address,
|
||||||
|
};
|
||||||
|
await waterReset(params);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取设备信息
|
||||||
|
async function handleSyncDevice() {
|
||||||
|
await getAllMeter({});
|
||||||
|
reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 采集器信息
|
||||||
|
async function handleSyncCollector() {
|
||||||
|
await getAllCollector({});
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showApiLog(record){
|
||||||
|
console.log(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,46 @@
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
list = '/iot/tq/waterMeter/list',
|
||||||
|
waterReset = '/iot/tq/waterMeter/waterReset',
|
||||||
|
waterControl = '/iot/tq/waterMeter/waterControl',
|
||||||
|
waterRead = '/iot/tq/waterMeter/waterRead',
|
||||||
|
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 waterReset = (params?) => defHttp.get({ url: Api.waterReset, params });
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开关闸
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
export const waterControl = (params?) => defHttp.get({ url: Api.waterControl, params });
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 抄电表
|
||||||
|
* @param params
|
||||||
|
*/
|
||||||
|
export const waterRead = (params?) => defHttp.get({ url: Api.waterRead, 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 });
|
|
@ -0,0 +1,162 @@
|
||||||
|
import {BasicColumn} from '/@/components/Table';
|
||||||
|
import {FormSchema} from '/@/components/Table';
|
||||||
|
|
||||||
|
//列表数据
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '机构',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'departName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '护理单元',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'nuName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '表号',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'address'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '采集器号',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'cid'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '设备状态',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'relayState',
|
||||||
|
customRender:({record})=>{
|
||||||
|
return record.relayState?(record.relayState=='1'?'合闸':'拉闸'):'';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '电池状态',
|
||||||
|
// align: "center",
|
||||||
|
// dataIndex: 'batteryState',
|
||||||
|
// customRender:({record})=>{
|
||||||
|
// return record.batteryState?(record.batteryState=='0'?'正常':'低电'):'';
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '在线状态',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'online',
|
||||||
|
customRender:({record})=>{
|
||||||
|
return record.online?(record.online=='true'?'在线':'离线'):'';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '信号强度',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'csq',
|
||||||
|
customRender:({record})=>{
|
||||||
|
if(record.csq){
|
||||||
|
if(record.csq < 10){
|
||||||
|
return '低';
|
||||||
|
}else if(record.csq > 20){
|
||||||
|
return '高';
|
||||||
|
}else{
|
||||||
|
return '中';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用水量m³',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'waterValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次抄表时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'readTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次上线时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'connectTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '上次掉线时间',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'disconnectTime'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '描述',
|
||||||
|
align: "center",
|
||||||
|
dataIndex: 'remark'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
label: '机构',
|
||||||
|
field: 'deviceStatus',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择机构',
|
||||||
|
dictCode: 'sys_depart,depart_name,id,org_category = 1 order by depart_name asc',
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '护理单元',
|
||||||
|
field: 'deviceStatus',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择护理单元',
|
||||||
|
dictCode: 'nu_base_info,nu_name,id,del_flag = 0 order by nu_name asc',
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '表号',
|
||||||
|
field: 'address',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '设备状态',
|
||||||
|
field: 'relayState',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择状态',
|
||||||
|
options: [
|
||||||
|
{ label: '合闸', value: '1' },
|
||||||
|
{ label: '拉闸', value: '0' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '在线状态',
|
||||||
|
field: 'online',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择状态',
|
||||||
|
options: [
|
||||||
|
{ label: '在线', value: 'true' },
|
||||||
|
{ label: '离线', value: 'false' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '信号强度',
|
||||||
|
field: 'csq',
|
||||||
|
component: 'JDictSelectTag',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择强度',
|
||||||
|
options: [
|
||||||
|
{ label: '高', value: '1' },
|
||||||
|
{ label: '中', value: '2' },
|
||||||
|
{ label: '低', value: '3' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
colProps: { span: 6 },
|
||||||
|
},
|
||||||
|
];
|
Loading…
Reference in New Issue