From 0d6fa19e4ee35aa51b4848e185df596ec1fc50a3 Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Tue, 3 Jun 2025 01:42:35 +0800 Subject: [PATCH] admin加入物联网相关功能 --- src/api/iot/aAccessControlApi.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/api/iot/adminBarrierApi.js | 41 +++++++++++++++++++++++++++++++++++++++++ src/api/iot/adminChargeMachineApi.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/api/iot/adminInoutApi.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/iot/adminMeterApi.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/components/iot/selectAdminCommunity.vue | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/index.js | 15 +++++++++++++++ src/router/index.js | 25 +++++++++++++++++++++++++ src/views/iot/aAccessControlLang.js | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/aAccessControlList.vue | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminBarrierLang.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminBarrierList.vue | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminChargeMachineLang.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminChargeMachineList.vue | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminInoutLang.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminInoutList.vue | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminMeterLang.js | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/iot/adminMeterList.vue | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18 files changed, 1524 insertions(+), 0 deletions(-) create mode 100644 src/api/iot/aAccessControlApi.js create mode 100644 src/api/iot/adminBarrierApi.js create mode 100644 src/api/iot/adminChargeMachineApi.js create mode 100644 src/api/iot/adminInoutApi.js create mode 100644 src/api/iot/adminMeterApi.js create mode 100644 src/components/iot/selectAdminCommunity.vue create mode 100644 src/views/iot/aAccessControlLang.js create mode 100644 src/views/iot/aAccessControlList.vue create mode 100644 src/views/iot/adminBarrierLang.js create mode 100644 src/views/iot/adminBarrierList.vue create mode 100644 src/views/iot/adminChargeMachineLang.js create mode 100644 src/views/iot/adminChargeMachineList.vue create mode 100644 src/views/iot/adminInoutLang.js create mode 100644 src/views/iot/adminInoutList.vue create mode 100644 src/views/iot/adminMeterLang.js create mode 100644 src/views/iot/adminMeterList.vue diff --git a/src/api/iot/aAccessControlApi.js b/src/api/iot/aAccessControlApi.js new file mode 100644 index 0000000..679afc6 --- /dev/null +++ b/src/api/iot/aAccessControlApi.js @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +// 获取门禁列表 +export function listAdminAccessControl(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminAccessControl', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || '获取门禁列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取管理员小区列表 +export function listAdminCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listAdminCommunitys', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || '获取小区列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/iot/adminBarrierApi.js b/src/api/iot/adminBarrierApi.js new file mode 100644 index 0000000..4dbf14a --- /dev/null +++ b/src/api/iot/adminBarrierApi.js @@ -0,0 +1,41 @@ +import request from '@/utils/request' + +// 获取道闸设备列表 +export function listAdminBarrier(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminBarrier', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取道闸设备列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取管理小区列表 +export function listAdminCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listAdminCommunitys', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取管理小区列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/iot/adminChargeMachineApi.js b/src/api/iot/adminChargeMachineApi.js new file mode 100644 index 0000000..002fdf9 --- /dev/null +++ b/src/api/iot/adminChargeMachineApi.js @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +// 获取充电桩列表 +export function listAdminChargeMachine(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminChargeMachine', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total, + records: res.records + }) + } else { + reject(new Error(res.msg || '获取充电桩列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取小区列表 +export function listAdminCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listAdminCommunitys', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data + }) + } else { + reject(new Error(res.msg || '获取小区列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/iot/adminInoutApi.js b/src/api/iot/adminInoutApi.js new file mode 100644 index 0000000..87786fd --- /dev/null +++ b/src/api/iot/adminInoutApi.js @@ -0,0 +1,61 @@ +import request from '@/utils/request' + +// 获取管理员进出记录列表 +export function listAdminAccessControlInout(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminAccessControlInout', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Failed to get admin access control inout list')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取管理员门禁列表 +export function listAdminAccessControl(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminAccessControl', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Failed to get admin access control list')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取管理员小区列表 +export function listAdminCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listAdminCommunitys', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || 'Failed to get admin community list')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/iot/adminMeterApi.js b/src/api/iot/adminMeterApi.js new file mode 100644 index 0000000..d967287 --- /dev/null +++ b/src/api/iot/adminMeterApi.js @@ -0,0 +1,47 @@ +import request from '@/utils/request' + +// 获取水电表列表 +export function listAdminMeterMachine(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.listAdminMeterMachine', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || '获取水电表列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} + +// 获取小区列表 +export function listAdminCommunitys(params) { + return new Promise((resolve, reject) => { + request({ + url: '/community.listAdminCommunitys', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve({ + data: res.data, + total: res.total + }) + } else { + reject(new Error(res.msg || '获取小区列表失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/iot/selectAdminCommunity.vue b/src/components/iot/selectAdminCommunity.vue new file mode 100644 index 0000000..8abc374 --- /dev/null +++ b/src/components/iot/selectAdminCommunity.vue @@ -0,0 +1,64 @@ + + + + + + {{item.name}} + + + + + + + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index d3dc2c5..d98f9d8 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -76,6 +76,11 @@ import { messages as adminComplaintMessages } from '../views/complaint/adminComp import { messages as adminComplaintDetailMessages } from '../views/complaint/adminComplaintDetailLang' import { messages as adminWorkPoolMessages } from '../views/work/adminWorkPoolLang' import { messages as adminWorkDetailMessages } from '../views/work/adminWorkDetailLang' +import { messages as aAccessControlMessages } from '../views/iot/aAccessControlLang' +import { messages as adminBarrierMessages } from '../views/iot/adminBarrierLang' +import { messages as adminChargeMachineMessages } from '../views/iot/adminChargeMachineLang' +import { messages as adminMeterMessages } from '../views/iot/adminMeterLang' +import { messages as adminInoutMessages } from '../views/iot/adminInoutLang' Vue.use(VueI18n) @@ -156,6 +161,11 @@ const messages = { ...adminComplaintDetailMessages.en, ...adminWorkPoolMessages.en, ...adminWorkDetailMessages.en, + ...aAccessControlMessages.en, + ...adminBarrierMessages.en, + ...adminChargeMachineMessages.en, + ...adminMeterMessages.en, + ...adminInoutMessages.en, }, zh: { ...loginMessages.zh, @@ -232,6 +242,11 @@ const messages = { ...adminComplaintDetailMessages.zh, ...adminWorkPoolMessages.zh, ...adminWorkDetailMessages.zh, + ...aAccessControlMessages.zh, + ...adminBarrierMessages.zh, + ...adminChargeMachineMessages.zh, + ...adminMeterMessages.zh, + ...adminInoutMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index b728f20..8337bd6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -366,6 +366,31 @@ const routes = [ name: '/views/work/adminWorkDetail', component: () => import('@/views/work/adminWorkDetailList.vue') }, + { + path: '/pages/iot/aAccessControl', + name: '/pages/iot/aAccessControl', + component: () => import('@/views/iot/aAccessControlList.vue') + }, + { + path: '/pages/iot/adminBarrier', + name: '/pages/iot/adminBarrier', + component: () => import('@/views/iot/adminBarrierList.vue') + }, + { + path: '/pages/iot/adminChargeMachine', + name: '/pages/iot/adminChargeMachine', + component: () => import('@/views/iot/adminChargeMachineList.vue') + }, + { + path: '/pages/iot/adminMeter', + name: '/pages/iot/adminMeter', + component: () => import('@/views/iot/adminMeterList.vue') + }, + { + path:'/pages/iot/adminInout', + name:'/pages/iot/adminInout', + component: () => import('@/views/iot/adminInoutList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/iot/aAccessControlLang.js b/src/views/iot/aAccessControlLang.js new file mode 100644 index 0000000..ec1f7dd --- /dev/null +++ b/src/views/iot/aAccessControlLang.js @@ -0,0 +1,64 @@ +export const messages = { + en: { + aAccessControl: { + search: { + title: 'Search Conditions', + machineCode: 'Please enter device code', + machineName: 'Please enter device name', + locationName: 'Please enter location name' + }, + list: { + title: 'Access Control Information' + }, + table: { + communityName: 'Community Name', + machineCode: 'Device Code', + machineName: 'Device Name', + machineIp: 'IP', + machineMac: 'Mac', + promptSwitch: 'Prompt Switch', + direction: 'Direction', + implBean: 'Manufacturer', + locationName: 'Location', + stateName: 'Online Status', + heartbeatTime: 'Heartbeat Time' + }, + direction: { + in: 'In', + out: 'Out' + }, + fetchError: 'Failed to get access control list' + } + }, + zh: { + aAccessControl: { + search: { + title: '查询条件', + machineCode: '请输入设备编码', + machineName: '请输入设备名称', + locationName: '请输入位置名称' + }, + list: { + title: '门禁信息' + }, + table: { + communityName: '小区名称', + machineCode: '门禁编码', + machineName: '门禁名称', + machineIp: 'IP', + machineMac: 'Mac', + promptSwitch: '开门提示', + direction: '方向', + implBean: '厂家', + locationName: '位置', + stateName: '在线', + heartbeatTime: '心跳时间' + }, + direction: { + in: '进', + out: '出' + }, + fetchError: '获取门禁列表失败' + } + } +} \ No newline at end of file diff --git a/src/views/iot/aAccessControlList.vue b/src/views/iot/aAccessControlList.vue new file mode 100644 index 0000000..5e84dd6 --- /dev/null +++ b/src/views/iot/aAccessControlList.vue @@ -0,0 +1,169 @@ + + + + + + + + + + {{ $t('aAccessControl.search.title') }} + + + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + {{ $t('aAccessControl.list.title') }} + + + + + + + + {{ scope.row.machineIp || '-' }} + + + + + {{ scope.row.machineMac || '-' }} + + + + + {{ scope.row.promptSwitch === 'ON' ? $t('common.yes') : $t('common.no') }} + + + + + {{ scope.row.direction === '3306' ? $t('aAccessControl.direction.in') : $t('aAccessControl.direction.out') + }} + + + + + + + + + + {{ $t('common.detail') }} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/iot/adminBarrierLang.js b/src/views/iot/adminBarrierLang.js new file mode 100644 index 0000000..fd233bf --- /dev/null +++ b/src/views/iot/adminBarrierLang.js @@ -0,0 +1,62 @@ +export const messages = { + en: { + adminBarrier: { + allCommunities: 'All Communities', + search: { + title: 'Search Conditions', + machineCode: 'Please enter device code', + machineName: 'Please enter device name' + }, + list: { + title: 'Barrier Devices' + }, + table: { + communityName: 'Community Name', + machineCode: 'Device Code', + machineName: 'Device Name', + machineIp: 'Device IP', + direction: 'Direction', + implBeanName: 'Manufacturer', + boxName: 'Box', + stateName: 'Status', + monitorName: 'Monitor', + heartbeatTime: 'Heartbeat Time', + createTime: 'Create Time' + }, + direction: { + in: 'In', + out: 'Out' + } + } + }, + zh: { + adminBarrier: { + allCommunities: '全部小区', + search: { + title: '查询条件', + machineCode: '请输入设备编码', + machineName: '请输入设备名称' + }, + list: { + title: '道闸设备' + }, + table: { + communityName: '小区名称', + machineCode: '设备编码', + machineName: '设备名称', + machineIp: '设备IP', + direction: '设备方向', + implBeanName: '道闸厂家', + boxName: '岗亭', + stateName: '状态', + monitorName: '监控', + heartbeatTime: '心跳时间', + createTime: '创建时间' + }, + direction: { + in: '进', + out: '出' + } + } + } +} \ No newline at end of file diff --git a/src/views/iot/adminBarrierList.vue b/src/views/iot/adminBarrierList.vue new file mode 100644 index 0000000..30735a9 --- /dev/null +++ b/src/views/iot/adminBarrierList.vue @@ -0,0 +1,138 @@ + + + + + + + + + + {{ $t('adminBarrier.search.title') }} + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + {{ $t('adminBarrier.list.title') }} + + + + + + + + + {{ scope.row.direction === '3306' ? $t('adminBarrier.direction.in') : $t('adminBarrier.direction.out') }} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/iot/adminChargeMachineLang.js b/src/views/iot/adminChargeMachineLang.js new file mode 100644 index 0000000..0b45ce7 --- /dev/null +++ b/src/views/iot/adminChargeMachineLang.js @@ -0,0 +1,56 @@ +export const messages = { + en: { + adminChargeMachine: { + search: { + title: 'Search Conditions', + machineName: 'Please enter machine name', + machineCode: 'Please enter machine code' + }, + list: { + title: 'Charge Machines' + }, + table: { + communityName: 'Community Name', + machineName: 'Machine Name', + machineCode: 'Machine Code', + factoryName: 'Factory', + portCount: 'Port Count', + ruleName: 'Charge Rule', + chargeTypeName: 'Charge Type', + stateName: 'Status', + heartbeatTime: 'Heartbeat Time', + monitorName: 'Monitor' + }, + allCommunities: 'All Communities', + fetchError: 'Failed to fetch charge machines', + fetchCommunityError: 'Failed to fetch communities' + } + }, + zh: { + adminChargeMachine: { + search: { + title: '查询条件', + machineName: '请输入设备名称', + machineCode: '请输入设备编号' + }, + list: { + title: '充电桩列表' + }, + table: { + communityName: '小区名称', + machineName: '设备名称', + machineCode: '设备编号', + factoryName: '厂家', + portCount: '插槽/桩个数', + ruleName: '充电规则', + chargeTypeName: '充电类型', + stateName: '状态', + heartbeatTime: '心跳时间', + monitorName: '监控' + }, + allCommunities: '全部小区', + fetchError: '获取充电桩列表失败', + fetchCommunityError: '获取小区列表失败' + } + } +} \ No newline at end of file diff --git a/src/views/iot/adminChargeMachineList.vue b/src/views/iot/adminChargeMachineList.vue new file mode 100644 index 0000000..491fcba --- /dev/null +++ b/src/views/iot/adminChargeMachineList.vue @@ -0,0 +1,156 @@ + + + + + + + + + + {{ $t('adminChargeMachine.search.title') }} + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + {{ $t('adminChargeMachine.list.title') }} + + + + + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.detail') }} + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/iot/adminInoutLang.js b/src/views/iot/adminInoutLang.js new file mode 100644 index 0000000..eb13031 --- /dev/null +++ b/src/views/iot/adminInoutLang.js @@ -0,0 +1,72 @@ +export const messages = { + en: { + adminInout: { + search: { + title: 'Search Conditions', + inputUserName: 'Please enter user name', + inputPhone: 'Please enter phone number', + inputStartTime: 'Please enter start time', + inputEndTime: 'Please enter end time', + selectAccessControl: 'Please select access control', + selectOpenStatus: 'Please select open status' + }, + list: { + title: 'Access Records' + }, + table: { + face: 'Face', + communityName: 'Community Name', + number: 'Number', + deviceName: 'Device Name', + deviceCode: 'Device Code', + userName: 'User Name', + openType: 'Open Type', + phone: 'Phone', + idCard: 'ID Card', + similarity: 'Similarity', + openStatus: 'Open Status', + openTime: 'Open Time' + }, + allCommunities: 'All Communities', + faceOpen: 'Face Open', + otherOpen: 'Other', + openSuccess: 'Open Success', + openFailed: 'Open Failed' + } + }, + zh: { + adminInout: { + search: { + title: '查询条件', + inputUserName: '请填写用户名称', + inputPhone: '请填写手机号', + inputStartTime: '请输入开始时间', + inputEndTime: '请输入结束时间', + selectAccessControl: '请选择门禁', + selectOpenStatus: '请选择开门状态' + }, + list: { + title: '进出记录' + }, + table: { + face: '人脸', + communityName: '小区名称', + number: '编号', + deviceName: '设备名称', + deviceCode: '设备编码', + userName: '用户名称', + openType: '开门方式', + phone: '手机号', + idCard: '用户身份证', + similarity: '相似度', + openStatus: '开门状态', + openTime: '开门时间' + }, + allCommunities: '全部小区', + faceOpen: '人脸开门', + otherOpen: '其他', + openSuccess: '开门成功', + openFailed: '开门失败' + } + } +} \ No newline at end of file diff --git a/src/views/iot/adminInoutList.vue b/src/views/iot/adminInoutList.vue new file mode 100644 index 0000000..d132c6c --- /dev/null +++ b/src/views/iot/adminInoutList.vue @@ -0,0 +1,193 @@ + + + + + + + + + + {{ $t('adminInout.search.title') }} + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + + + + + + + + + {{ $t('adminInout.list.title') }} + + + + + + + + + + + + + + + {{ scope.row.openTypeCd === '1000' ? $t('adminInout.faceOpen') : $t('adminInout.otherOpen') }} + + + + + {{ scope.row.tel || '-' }} + + + + + {{ scope.row.idCard || '-' }} + + + + + + {{ scope.row.state === 'C' ? $t('adminInout.openSuccess') : $t('adminInout.openFailed') }} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/iot/adminMeterLang.js b/src/views/iot/adminMeterLang.js new file mode 100644 index 0000000..1366be2 --- /dev/null +++ b/src/views/iot/adminMeterLang.js @@ -0,0 +1,76 @@ +export const messages = { + en: { + adminMeter: { + search: { + title: 'Search Conditions', + machineName: 'Please enter name', + address: 'Please enter meter number', + machineModel: 'Please select model', + roomName: 'Please enter room number (building-unit-room)' + }, + table: { + title: 'Smart Water and Electricity Meter', + machineId: 'ID', + communityName: 'Community Name', + machineName: 'Name', + address: 'Meter Number', + meterType: 'Meter Type', + machineModel: 'Model', + roomName: 'Room', + implBeanName: 'Manufacturer', + degree: 'Current Degree', + curDegrees: 'Remaining Amount', + curReadingTime: 'Reading Time', + stateName: 'Status', + heartbeatTime: 'Heartbeat Time', + readlingTime: 'Reading on day {day} at {hour}:00 every month' + }, + model: { + recharge: 'Recharge Mode', + reading: 'Reading Mode' + }, + community: { + all: 'All Communities', + fetchError: 'Failed to load communities' + }, + fetchError: 'Failed to load meter data' + } + }, + zh: { + adminMeter: { + search: { + title: '查询条件', + machineName: '请输入名称', + address: '请输入表号', + machineModel: '请选择模式', + roomName: '请输入房屋编号(楼栋-单元-房屋)' + }, + table: { + title: '智能水电表', + machineId: '编号', + communityName: '小区名称', + machineName: '名称', + address: '表号', + meterType: '表类型', + machineModel: '模式', + roomName: '房屋', + implBeanName: '设备厂家', + degree: '当前度数', + curDegrees: '剩余金额', + curReadingTime: '读表时间', + stateName: '状态', + heartbeatTime: '心跳时间', + readlingTime: '每月{day}日{hour}时抄表' + }, + model: { + recharge: '充值模式', + reading: '抄表模式' + }, + community: { + all: '全部小区', + fetchError: '加载小区失败' + }, + fetchError: '加载水电表数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/iot/adminMeterList.vue b/src/views/iot/adminMeterList.vue new file mode 100644 index 0000000..0d9053b --- /dev/null +++ b/src/views/iot/adminMeterList.vue @@ -0,0 +1,191 @@ + + + + + + + + + + {{ $t('adminMeter.search.title') }} + + + + + + + + + + + + + + + + + + + + {{ $t('common.search') }} + + + + + + + + {{ $t('adminMeter.table.title') }} + + + + + + + + + {{ getMeterTypeName(scope.row.meterType) }} + + + + + {{ scope.row.machineModel === '1001' ? $t('adminMeter.model.recharge') : $t('adminMeter.model.reading') }} + + + + + + + {{ scope.row.machineModel === '1001' ? (scope.row.degree || scope.row.prestoreDegrees) : '-' }} + + + + + + {{ scope.row.curDegrees }} + + + {{ scope.row.curDegrees }}({{ $t('adminMeter.table.readingTime', { + day: scope.row.readDay, hour: + scope.row.readHours + }) }}) + + + + + + + + + + {{ $t('common.detail') }} + + + + + + + + + + + + + + + \ No newline at end of file -- libgit2 0.21.4