智能电表配置功能

This commit is contained in:
yangjun 2025-06-19 09:40:52 +08:00
parent fa0d05a03d
commit ded861027a
10 changed files with 195 additions and 67 deletions

View File

@ -1,12 +1,12 @@
<template>
<div class="p-2">
<a-tabs v-model:activeKey="activeKey" type="card" @change="handleChange">
<a-tab-pane key="9" tab="清零">
<NuIotTqApiRequestLogList ref="nuIotTqApiRequestLogListModal9"></NuIotTqApiRequestLogList>
</a-tab-pane>
<a-tab-pane key="3" tab="抄表" force-render>
<a-tab-pane key="3" tab="抄表" >
<NuIotTqApiRequestLogList ref="nuIotTqApiRequestLogListModal3"></NuIotTqApiRequestLogList>
</a-tab-pane>
<a-tab-pane key="9" tab="清零" force-render>
<NuIotTqApiRequestLogList ref="nuIotTqApiRequestLogListModal9"></NuIotTqApiRequestLogList>
</a-tab-pane>
<a-tab-pane key="10" tab="电表拉闸" force-render>
<NuIotTqApiRequestLogList ref="nuIotTqApiRequestLogListModal10"></NuIotTqApiRequestLogList>
</a-tab-pane>
@ -22,14 +22,14 @@
import NuIotTqApiRequestLogList from '/@/views/iot/tq/nuIotTqApiRequestLog/NuIotTqApiRequestLogList.vue';
const activeKey= ref('9');
const activeKey= ref('3');
const dbsbInfo = ref<any>({});
const nuIotTqApiRequestLogListModal9 = ref();
const nuIotTqApiRequestLogListModal3 = ref();
const nuIotTqApiRequestLogListModal10 = ref();
const nuIotTqApiRequestLogListModal11 = ref();
function initLog(record){
activeKey.value = "9";
activeKey.value = "3";
getDataList(activeKey.value, record);
dbsbInfo.value = record;
}

View File

@ -4,12 +4,12 @@ import {FormSchema} from '/@/components/Table';
//列表数据
export const columns: BasicColumn[] = [
{
title: '机构',
title: '单元编码',
align: "center",
dataIndex: 'departName'
dataIndex: 'nuId'
},
{
title: '护理单元',
title: '单元名称',
align: "center",
dataIndex: 'nuName'
},
@ -19,10 +19,16 @@ export const columns: BasicColumn[] = [
dataIndex: 'address'
},
{
title: '采集器号',
title: '机构名称',
align: "center",
dataIndex: 'cid'
dataIndex: 'departName',
width: 220,
},
// {
// title: '采集器号',
// align: "center",
// dataIndex: 'cid'
// },
{
title: '设备状态',
align: "center",
@ -72,16 +78,16 @@ export const columns: BasicColumn[] = [
align: "center",
dataIndex: 'connectTime'
},
{
title: '上次掉线时间',
align: "center",
dataIndex: 'disconnectTime'
},
{
title: '描述',
align: "center",
dataIndex: 'remark'
},
// {
// title: '上次掉线时间',
// align: "center",
// dataIndex: 'disconnectTime'
// },
// {
// title: '描述',
// align: "center",
// dataIndex: 'remark'
// },
];
export const searchFormSchema: FormSchema[] = [

View File

@ -4,17 +4,10 @@
<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>
<a-button type="primary" preIcon="ant-design:sync-outlined" @click="handleSyncDevice"> 拉取设备</a-button>
<a-button type="primary" 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 === 'departName'">
<span v-if="!record.departName"><a @click="handlePzjg(record)"> 未配置 </a></span>
<span v-else><a @click="handlePzjg(record)"> {{record.departName}} </a></span>
</template>
<template v-if="column.dataIndex === 'nuName'">
<span v-if="!record.nuName"><a @click="handlePzhldy(record)"> 未配置 </a></span>
<span v-else><a @click="handlePzhldy(record)"> {{record.nuName}} </a></span>
@ -101,7 +94,7 @@ import { defHttp } from '/@/utils/http/axios';
],
},
actionColumn: {
width: 240,
width: 290,
fixed:'right'
},
beforeFetch: (params) => {
@ -135,9 +128,10 @@ import { defHttp } from '/@/utils/http/axios';
console.log("🚀 ~ handleParams ~ params:", params)
defHttp.post({
url: "/iot/tq/electricityMeter/edit",
params:params.value
params:params
}).then(res=>{
console.log("🚀 ~ getTableAction ~ res:", res)
reload();
})
}
//
@ -171,6 +165,10 @@ import { defHttp } from '/@/utils/http/axios';
placement: 'topLeft',
},
},
{
label: '日志',
onClick: showApiLog.bind(null, record),
},
{
label: '同步',
onClick: handleSync.bind(null, record),

View File

@ -16,44 +16,80 @@ export const columns: BasicColumn[] = [
dataIndex: 'type_dictText'
},
{
title: '请求时的值',
title: '上次请求时的值',
align: "center",
dataIndex: 'requestValue'
},
{
title: '请求时间',
align: "center",
dataIndex: 'requestTime'
},
{
title: '请求状态',
align: "center",
dataIndex: 'requestStatus_dictText'
},
{
title: '请求描述',
align: "center",
dataIndex: 'requestRemark'
},
{
title: '反馈值',
title: '本次请求值',
align: "center",
dataIndex: 'resolveValue'
},
{
title: '反馈时间',
title: '本次请求时间',
align: "center",
dataIndex: 'requestTime'
},
{
title: '本次请求状态',
align: "center",
dataIndex: 'requestStatus_dictText'
},
{
title: '本次反馈时间',
align: "center",
dataIndex: 'resolveTime'
},
{
title: '反馈状态',
title: '本次反馈状态',
align: "center",
dataIndex: 'resolveStatus_dictText'
},
{
title: '反馈描述',
align: "center",
dataIndex: 'resolveRemark'
dataIndex: 'resolveRemark',
defaultHidden: true
},
];
//列表数据
export const columns2: BasicColumn[] = [
{
title: '表号',
align: "center",
dataIndex: 'address'
},
{
title: '类型',
align: "center",
dataIndex: 'type_dictText'
},
{
title: '本次请求时间',
align: "center",
dataIndex: 'requestTime'
},
{
title: '本次请求状态',
align: "center",
dataIndex: 'requestStatus_dictText'
},
{
title: '本次反馈时间',
align: "center",
dataIndex: 'resolveTime'
},
{
title: '本次反馈状态',
align: "center",
dataIndex: 'resolveStatus_dictText'
},
{
title: '反馈描述',
align: "center",
dataIndex: 'resolveRemark',
defaultHidden: true
},
];

View File

@ -6,24 +6,28 @@ import { getWeekMonthQuarterYear } from '/@/utils';
//列表数据
export const columns: BasicColumn[] = [
{
title: '机构/部门名称',
title: '机构名称',
align: "center",
dataIndex: 'departName'
},
{
title: '机构编码',
align: "center",
dataIndex: 'orgCode'
dataIndex: 'orgCode',
width: '120px'
},
{
title: '运营开始时间',
align: "center",
dataIndex: 'operationStartTime'
dataIndex: 'operationStartTime',
width: '150px',
defaultHidden: true
},
{
title: '运营到期时间',
align: "center",
dataIndex: 'operationEndTime'
dataIndex: 'operationEndTime',
width: '150px'
},
];

View File

@ -11,6 +11,7 @@
<BasicTable @register="registerTable" >
<!--插槽:table标题-->
<template #tableTitle>
护理机构
</template>
<!--操作栏-->
<template #action="{ record }">
@ -49,7 +50,7 @@ import { e } from 'unocss';
canResize:false,
useSearchForm: false,
actionColumn: {
width: 120,
width: 80,
fixed: 'right',
},
beforeFetch: async (params) => {
@ -105,7 +106,7 @@ function edit(record) {
departInfo.value.departName = record.departName;
departInfo.value.departServerUrl = record.orgCode;
console.log("🚀 ~ handleEdit ~ departInfo.value:", departInfo.value)
emit("ok",departInfo);
emit("ok",departInfo.value);
}
/**

View File

@ -6,19 +6,21 @@ import { getWeekMonthQuarterYear } from '/@/utils';
//列表数据
export const columns: BasicColumn[] = [
{
title: '护理单元名称',
title: '单元名称',
align: "center",
dataIndex: 'nuName'
},
{
title: '编码',
title: '单元编码',
align: "center",
dataIndex: 'code'
dataIndex: 'nuId',
width: '150px'
},
{
title: '创建时间',
align: "center",
dataIndex: 'createTime'
dataIndex: 'createTime',
width: '150px'
},
];

View File

@ -0,0 +1,80 @@
<template>
<div class="p-2">
<a-row>
<a-col :span="12">
<DepartUtilsList ref="departUtilsListModal" @ok="departCallback" ></DepartUtilsList>"
</a-col>
<a-col :span="12">
<HldyUtilsList ref="hldyUtilsListModal" @ok="hldyCallback" ></HldyUtilsList>
</a-col>
</a-row>
</div>
</template>
<script lang="ts" name="departUtils-sysDepart" setup>
import { ref, reactive } from 'vue';
import HldyUtilsList from '/@/views/utils/nuUtils/HldyUtilsList.vue'
import DepartUtilsList from '/@/views/utils/departUtils/DepartUtilsList.vue'
const departUtilsListModal = ref();
const hldyUtilsListModal = ref();
const departInfo = ref<any>({});
const emit = defineEmits(['register', 'ok']);
//
function hldyCallback(record) {
console.log("🚀 ~ hldyCallback ~ record:", record)
console.log("🚀 ~ handleEdit ~ record:", record)
departInfo.value.nuId = record.nuId;
departInfo.value.nuName = record.nuName;
departInfo.value.departId = record.departId;
departInfo.value.departName = record.departName;
departInfo.value.departServerUrl = record.departServerUrl;
console.log("🚀 ~ handleEdit ~ departInfo.value:", departInfo.value)
emit("ok",departInfo.value);
}
//
function departCallback(record) {
console.log("🚀 ~ departCallback ~ record:", record)
hldyUtilsListModal.value.edit(record);
}
function edit(record) {
console.log("🚀 ~ edit ~ record:", record.departServerUrl)
departInfo.value = record;
// queryParam.sysOrgCode = record.departServerUrl;
}
defineExpose({
edit,
});
</script>
<style lang="less" scoped>
.jeecg-basic-table-form-container {
padding: 0;
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
.query-group-cust{
min-width: 100px !important;
}
.query-group-split-cust{
width: 30px;
display: inline-block;
text-align: center
}
.ant-form-item:not(.ant-form-item-with-help){
margin-bottom: 16px;
height: 32px;
}
:deep(.ant-picker),:deep(.ant-input-number){
width: 100%;
}
}
</style>

View File

@ -11,6 +11,7 @@
<BasicTable @register="registerTable" >
<!--插槽:table标题-->
<template #tableTitle>
护理单元
</template>
<!--操作栏-->
<template #action="{ record }">
@ -89,10 +90,10 @@ import { e } from 'unocss';
*/
function handleEdit(record: Recordable) {
console.log("🚀 ~ handleEdit ~ record:", record)
departInfo.value.nuId = record.id;
departInfo.value.nuId = record.nuId;
departInfo.value.nuName = record.nuName;
console.log("🚀 ~ handleEdit ~ departInfo.value:", departInfo.value)
emit("ok",departInfo);
emit("ok",departInfo.value);
}
/**

View File

@ -1,16 +1,16 @@
<template>
<j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
<DepartUtilsList ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></DepartUtilsList>
<HldyUtilsIndex ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></HldyUtilsIndex>
</j-modal>
</template>
<script lang="ts" setup>
import { ref, nextTick, defineExpose } from 'vue';
import DepartUtilsList from './HldyUtilsList.vue'
import HldyUtilsIndex from './HldyUtilsIndex.vue'
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
const title = ref<string>('');
const width = ref<number>(800);
const width = ref<string>('85%');
const visible = ref<boolean>(false);
const disableSubmit = ref<boolean>(false);
const registerForm = ref();