feat(energyManagement): 添加水电气树接口
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
import type { MeterInfoVO, MeterInfoForm, MeterInfoQuery } from './model';
|
||||
import type { MeterInfoVO, MeterInfoForm, MeterInfoQuery } from './model'
|
||||
|
||||
import type { ID, IDS } from '#/api/common';
|
||||
import type { PageResult } from '#/api/common';
|
||||
import type { ID, IDS, PageResult, TreeNode } from '#/api/common';
|
||||
|
||||
import { commonExport } from '#/api/helper';
|
||||
import { requestClient } from '#/api/request';
|
||||
import { commonExport } from '#/api/helper'
|
||||
import { requestClient } from '#/api/request'
|
||||
|
||||
/**
|
||||
* 查询水电气列表
|
||||
@@ -12,7 +11,7 @@ import { requestClient } from '#/api/request';
|
||||
* @returns 水电气列表
|
||||
*/
|
||||
export function meterInfoList(params?: MeterInfoQuery) {
|
||||
return requestClient.get<PageResult<MeterInfoVO>>('/property/meterInfo/list', { params });
|
||||
return requestClient.get<PageResult<MeterInfoVO>>('/property/meterInfo/list', { params })
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -21,7 +20,7 @@ export function meterInfoList(params?: MeterInfoQuery) {
|
||||
* @returns 水电气列表
|
||||
*/
|
||||
export function meterInfoExport(params?: MeterInfoQuery) {
|
||||
return commonExport('/property/meterInfo/export', params ?? {});
|
||||
return commonExport('/property/meterInfo/export', params ?? {})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,7 +29,7 @@ export function meterInfoExport(params?: MeterInfoQuery) {
|
||||
* @returns 水电气详情
|
||||
*/
|
||||
export function meterInfoInfo(id: ID) {
|
||||
return requestClient.get<MeterInfoVO>(`/property/meterInfo/${id}`);
|
||||
return requestClient.get<MeterInfoVO>(`/property/meterInfo/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -39,7 +38,7 @@ export function meterInfoInfo(id: ID) {
|
||||
* @returns void
|
||||
*/
|
||||
export function meterInfoAdd(data: MeterInfoForm) {
|
||||
return requestClient.postWithMsg<void>('/property/meterInfo', data);
|
||||
return requestClient.postWithMsg<void>('/property/meterInfo', data)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -48,7 +47,7 @@ export function meterInfoAdd(data: MeterInfoForm) {
|
||||
* @returns void
|
||||
*/
|
||||
export function meterInfoUpdate(data: MeterInfoForm) {
|
||||
return requestClient.putWithMsg<void>('/property/meterInfo', data);
|
||||
return requestClient.putWithMsg<void>('/property/meterInfo', data)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,5 +56,14 @@ export function meterInfoUpdate(data: MeterInfoForm) {
|
||||
* @returns void
|
||||
*/
|
||||
export function meterInfoRemove(id: ID | IDS) {
|
||||
return requestClient.deleteWithMsg<void>(`/property/meterInfo/${id}`);
|
||||
return requestClient.deleteWithMsg<void>(`/property/meterInfo/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询水电气树
|
||||
* @param level
|
||||
* @returns 水电气树
|
||||
*/
|
||||
export function queryTree(meterType: number | string) {
|
||||
return requestClient.get<TreeNode<Number>[]>(`/property/meterInfo/tree/${meterType}`)
|
||||
}
|
@@ -4,8 +4,8 @@ import type { PropType } from 'vue'
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { handleNode } from '@vben/utils'
|
||||
import { Empty, Skeleton, Tree } from 'ant-design-vue'
|
||||
import { communityTree } from "#/api/property/community"
|
||||
import type { CommunityVO } from "#/api/property/community/model"
|
||||
import { queryTree } from "#/api/property/energyManagement/meterInfo"
|
||||
import type { TreeNode } from '#/api/common'
|
||||
|
||||
defineOptions({ inheritAttrs: false })
|
||||
|
||||
@@ -31,26 +31,31 @@ const searchValue = defineModel('searchValue', {
|
||||
default: '',
|
||||
})
|
||||
|
||||
type TreeArray = CommunityVO[]
|
||||
const treeArray = ref<TreeArray>([])
|
||||
const treeArray = ref<TreeNode[]>([])
|
||||
/** 骨架屏加载 */
|
||||
const showTreeSkeleton = ref<boolean>(true)
|
||||
|
||||
async function loadTree() {
|
||||
showTreeSkeleton.value = true
|
||||
searchValue.value = ''
|
||||
selectFloorId.value = []
|
||||
const ret = await communityTree(3)
|
||||
const splitStr = '/'
|
||||
handleNode(ret, 'label', splitStr, function (node: any) {
|
||||
if (node.level != 3) {
|
||||
node.disabled = true
|
||||
}
|
||||
})
|
||||
const ret = await queryTree(1)
|
||||
handleNode(ret, 3)
|
||||
treeArray.value = ret
|
||||
showTreeSkeleton.value = false
|
||||
}
|
||||
|
||||
function handleNode(nodes: any[], level: number) {
|
||||
nodes.forEach((node) => {
|
||||
node.key = node.id
|
||||
if (node.level < level) {
|
||||
node.disabled = true
|
||||
}
|
||||
if (node.children) {
|
||||
handleNode(node.children, level)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(loadTree);
|
||||
</script>
|
||||
|
||||
@@ -59,8 +64,7 @@ onMounted(loadTree);
|
||||
<Skeleton :loading="showTreeSkeleton" :paragraph="{ rows: 8 }" active class="p-[8px] flex-1 min-h-0">
|
||||
<div class="bg-background flex h-full flex-col overflow-y-auto rounded-lg">
|
||||
<div class="h-full overflow-x-hidden px-[8px]">
|
||||
<Tree v-bind="$attrs" v-if="treeArray.length > 0" v-model:selected-keys="selectFloorId"
|
||||
:field-names="{ title: 'label', key: 'id' }" :show-line="{ showLeafIcon: false }" :tree-data="treeArray"
|
||||
<Tree v-bind="$attrs" v-if="treeArray.length > 0" :show-line="{ showLeafIcon: false }" :tree-data="treeArray"
|
||||
:virtual="false" default-expand-all @select="$emit('select')">
|
||||
<template #title="{ label }">
|
||||
<span v-if="label.indexOf(searchValue) > -1">
|
||||
|
@@ -257,7 +257,7 @@ function handleSelectFloor() {
|
||||
<template>
|
||||
<Page :auto-content-height="true">
|
||||
<div class="flex h-full gap-[8px]">
|
||||
<FloorTree class="w-[260px]" @select="handleSelectFloor" v-model:select-floor-id="selectFloorId"></FloorTree>
|
||||
<FloorTree class="w-[260px]"></FloorTree>
|
||||
<div class="flex-1 overflow-hidden">
|
||||
<div class="row">
|
||||
<div class="comparison-section-container">
|
||||
|
Reference in New Issue
Block a user