Преглед на файлове

新区域模型前端适配

lv.wenbin преди 8 месеца
родител
ревизия
e6d8865158
променени са 31 файла, в които са добавени 162 реда и са изтрити 1804 реда
  1. 29 4
      ems-ui-cloud/src/api/basecfg/area.js
  2. 0 75
      ems-ui-cloud/src/api/basecfg/areaold.js
  3. 0 52
      ems-ui-cloud/src/api/basecfg/building.js
  4. 0 44
      ems-ui-cloud/src/api/basecfg/zoning.js
  5. 0 4
      ems-ui-cloud/src/enums/DeviceFac.js
  6. 4 28
      ems-ui-cloud/src/views/adapter/pv/index.vue
  7. 3 3
      ems-ui-cloud/src/views/alarm/alarm-info/index.vue
  8. 3 3
      ems-ui-cloud/src/views/alarm/index.vue
  9. 3 3
      ems-ui-cloud/src/views/analysis/device/warn.vue
  10. 2 2
      ems-ui-cloud/src/views/analysis/power/consume.vue
  11. 2 2
      ems-ui-cloud/src/views/analysis/power/prod.vue
  12. 2 2
      ems-ui-cloud/src/views/analysis/power/store.vue
  13. 0 386
      ems-ui-cloud/src/views/basecfg/areaold/index.vue
  14. 0 310
      ems-ui-cloud/src/views/basecfg/building/index.vue
  15. 6 6
      ems-ui-cloud/src/views/basecfg/device/index.vue
  16. 3 3
      ems-ui-cloud/src/views/basecfg/emsfacs/index.vue
  17. 55 69
      ems-ui-cloud/src/views/basecfg/meterdevc/index.vue
  18. 0 391
      ems-ui-cloud/src/views/basecfg/powerbox/index.vue
  19. 8 12
      ems-ui-cloud/src/views/basecfg/price/index.vue
  20. 0 344
      ems-ui-cloud/src/views/basecfg/zoning/index.vue
  21. 5 5
      ems-ui-cloud/src/views/devmgr/attr/index.vue
  22. 3 3
      ems-ui-cloud/src/views/devmgr/el/index.vue
  23. 4 4
      ems-ui-cloud/src/views/devmgr/meterRead/index.vue
  24. 11 7
      ems-ui-cloud/src/views/mgr/charging.vue
  25. 3 3
      ems-ui-cloud/src/views/mgr/powergrid.vue
  26. 2 2
      ems-ui-cloud/src/views/mgr/powerstore.vue
  27. 2 2
      ems-ui-cloud/src/views/mgr/poweruse.vue
  28. 3 3
      ems-ui-cloud/src/views/mgr/strategy.vue
  29. 0 23
      ems-ui-cloud/src/views/task/ManualInspection.vue
  30. 3 3
      ems-ui-cloud/src/views/task/index.vue
  31. 6 6
      ems-ui-cloud/src/views/task/report/index.vue

+ 29 - 4
ems-ui-cloud/src/api/basecfg/area.js

@@ -43,17 +43,42 @@ export function delArea(id) {
   })
 }
 
+// 查询区域对象
+export function getAreaByCode(areaCode) {
+  return request({
+    url: '/ems/basecfg/area?getByCode=' + areaCode,
+    method: 'get'
+  })
+}
+
 // 查询区域树结构
-export function areaTreeSelect(recursion,areaCode) {
+export function areaTreeSelect(areaCode, recursion) {
+  return request({
+    url: '/ems/basecfg/area/getAreaTree?rootCode=' + areaCode + '&recursion=' + recursion,
+    method: 'get'
+  })
+}
+
+// 查询区域树(根据设施类型过滤)
+export function areaTreeByFacsCategory(category, subCategory, recursion) {
+  return request({
+    url: '/ems/basecfg/area/getAreaTreeByFacsCategory?facsCategory=' + category + '&facsSubCategory=' + subCategory + '&recursion=' + recursion,
+    method: 'get'
+  })
+}
+
+// 查询区域树(根据标签过滤)
+export function areaTreeByTag(parentCode, tagCode) {
   return request({
-    url: '/ems/basecfg/area/areaTree?recursion=' + recursion + '&rootCode=' + areaCode,
+    url: '/ems/basecfg/area/getAreaTreeByTag?parentCode=' + parentCode + '&tagCode=' + tagCode,
     method: 'get'
   })
 }
 
-export function areaWithFacsCategoryAsTree(category, subCategory) {
+// 查询区域列表(根据标签过滤)
+export function areaListByTag(parentCode, tagCode) {
   return request({
-    url: '/ems/basecfg/area/listWithFacsCategoryAsTree?facsCategory=' + category + '&facsSubCategory=' + subCategory,
+    url: '/ems/basecfg/area/getAreaListByTag?parentCode=' + parentCode + '&tagCode=' + tagCode,
     method: 'get'
   })
 }

+ 0 - 75
ems-ui-cloud/src/api/basecfg/areaold.js

@@ -1,75 +0,0 @@
-import request from '@/utils/request'
-
-// 查询服务区列表
-export function listArea(query) {
-  return request({
-    url: '/ems/basecfg/areaold/list',
-    method: 'get',
-    params: query
-  })
-}
-
-export function listTotalArea() {
-  return request({
-    url: '/ems/basecfg/areaold/listTotal',
-    method: 'get'
-  })
-}
-
-// 查询服务区详细
-export function getArea(id) {
-  return request({
-    url: '/ems/basecfg/areaold/' + id,
-    method: 'get'
-  })
-}
-
-// 新增服务区
-export function addArea(data) {
-  return request({
-    url: '/ems/basecfg/areaold',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改服务区
-export function updateArea(data) {
-  return request({
-    url: '/ems/basecfg/areaold',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除服务区
-export function delArea(id) {
-  return request({
-    url: '/ems/basecfg/areaold/' + id,
-    method: 'delete'
-  })
-}
-
-// 查询区域树结构
-export function areaTreeSelect(tier) {
-  return request({
-    url: '/ems/basecfg/areaold/areaTree?tier=' + tier,
-    method: 'get'
-  })
-}
-
-export function areaTreeSelectByCode(tier, code) {
-  return request({
-    url: '/ems/basecfg/areaold/areaTreeByCode?tier=' + tier + '&code=' + code,
-    method: 'get'
-  })
-}
-
-export function areaTreeSelectByTag(tier, tagCode) {
-  return request({
-    url: '/ems/basecfg/areaold/areaTreeByTag?tier=' + tier + '&tagCode=' + tagCode,
-    method: 'get'
-  })
-}
-
-

+ 0 - 52
ems-ui-cloud/src/api/basecfg/building.js

@@ -1,52 +0,0 @@
-import request from '@/utils/request'
-
-// 查询建筑基本信息列表
-export function listBuilding(query) {
-  return request({
-    url: '/ems/basecfg/area/building/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 根据区域查询建筑
-export function listBuildingByArea(areaCode) {
-  return request({
-    url: '/ems/basecfg/area/building/listByArea?areaCode=' + areaCode,
-    method: 'get'
-  })
-}
-
-// 查询建筑基本信息详细
-export function getBuilding(id) {
-  return request({
-    url: '/ems/basecfg/area/building/' + id,
-    method: 'get'
-  })
-}
-
-// 新增建筑基本信息
-export function addBuilding(data) {
-  return request({
-    url: '/ems/basecfg/area/building',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改建筑基本信息
-export function updateBuilding(data) {
-  return request({
-    url: '/ems/basecfg/area/building',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除建筑基本信息
-export function delBuilding(id) {
-  return request({
-    url: '/ems/basecfg/area/building/' + id,
-    method: 'delete'
-  })
-}

+ 0 - 44
ems-ui-cloud/src/api/basecfg/zoning.js

@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 查询建筑区域划分列表
-export function listZoning(query) {
-  return request({
-    url: '/ems/basecfg/area/building/zoning/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询建筑区域划分详细
-export function getZoning(id) {
-  return request({
-    url: '/ems/basecfg/area/building/zoning/' + id,
-    method: 'get'
-  })
-}
-
-// 新增建筑区域划分
-export function addZoning(data) {
-  return request({
-    url: '/ems/basecfg/area/building/zoning',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改建筑区域划分
-export function updateZoning(data) {
-  return request({
-    url: '/ems/basecfg/area/building/zoning',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除建筑区域划分
-export function delZoning(id) {
-  return request({
-    url: '/ems/basecfg/area/building/zoning/' + id,
-    method: 'delete'
-  })
-}

+ 0 - 4
ems-ui-cloud/src/enums/DeviceFac.js

@@ -1,9 +1,5 @@
 export const OBJ_TYPE = {
   area:{
-    label: '园区',
-    value: 0,
-  },
-  zone:{
     label: '区块',
     value: 1,
   },

+ 4 - 28
ems-ui-cloud/src/views/adapter/pv/index.vue

@@ -583,7 +583,7 @@ export default {
   created() {
     this.queryParams.deviceCategory = 'E'; // 确保初始加载时就设置为 'E'
     this.getList()
-    this.getAreaTree(false,'0')
+    this.getAreaTree('0', false)
     this.getFacsOptions()
     this.getSubsystem()
     this.getSubCategorygetByCode()
@@ -673,8 +673,8 @@ export default {
       })
     },
     /** 查询区域树结构 */
-    getAreaTree(category,areaCode) {
-      areaTreeSelect(category,areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.treeAreaOptions =  [{
           id: '-1',
           label: '全部',
@@ -830,7 +830,7 @@ export default {
       })
       const recursion = false
       const areaCode = '0'
-      areaTreeSelect(recursion, areaCode).then(response => {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.totalAreaOptions = response.data
       })
     },
@@ -974,30 +974,6 @@ export default {
         this.subsystemOptions = response.data
       })
     },
-    getAllDevProcess(subcategoryCode) {
-      getDevProcess(subcategoryCode).then(response => {
-        this.devOptions = response.data
-        console.log('设备工艺', this.devOptions)
-      })
-    },
-    // deviceCategoryChange() {
-    //   this.queryParams.deviceSubCategory = ''
-    //   //this.queryParams.psCode = null; // 重置设备工艺选择
-    //   if (this.queryParams.deviceCategory === 'E' || this.queryParams.deviceCategory === 'W'
-    //     || this.queryParams.deviceCategory === 'T' || this.queryParams.deviceCategory === 'C') {
-    //     this.getAreaTree('Building')
-    //   } else if (this.queryParams.deviceCategory === 'Z') {
-    //     this.getAreaTree('Zoning')
-    //   }
-    //   this.getSubCategorygetByCode()
-    //   this.getFacsOptions()
-    //   this.handleQuery()
-    // },
-    deviceCategoryChange() {
-      if (this.queryParams.deviceCategory === 'E') {
-        this.handleQuery();
-      }
-    },
     /**自定义属性表格*/
     addCustomAttr() {
       // 添加一个新的自定义属性

+ 3 - 3
ems-ui-cloud/src/views/alarm/alarm-info/index.vue

@@ -272,7 +272,7 @@ export default {
     }
   },
   created () {
-    this.getAreaTree(false, '0');
+    this.getAreaTree( '0', false);
     this.getList();
     this.getSubList();
   },
@@ -386,8 +386,8 @@ export default {
         ...this.queryParams,
       }, `alarm-info_${new Date().getTime()}.xlsx`);
     },
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions =[{
           id: '-1',
           label: '全部',

+ 3 - 3
ems-ui-cloud/src/views/alarm/index.vue

@@ -212,7 +212,7 @@ export default {
     }
   },
  async created () {
-    await this.getAreaTreeByTag(false,'0')
+    await this.getAreaTreeByTag('0', false)
     this.getList();
   },
   methods: {
@@ -226,8 +226,8 @@ export default {
       });
     },
      /** 查询区域树结构 */
-     async getAreaTreeByTag(recursion, areaCode) {
-       await areaTreeSelect(recursion, areaCode).then(response => {
+     async getAreaTreeByTag(areaCode, recursion) {
+       await areaTreeSelect(areaCode, recursion).then(response => {
          this.areaOptions = [{
            id: '-1',
            label: '全部',

+ 3 - 3
ems-ui-cloud/src/views/analysis/device/warn.vue

@@ -134,13 +134,13 @@ export default {
     }
   },
   async mounted () {
-    await this.getAreaTreeByTag(false,'0')
+    await this.getAreaTreeByTag('0', false)
     this.queryCharts()
   },
   methods: {
     /** 查询区域树结构 */
-    async getAreaTreeByTag(recursion, areaCode) {
-      await areaTreeSelect(recursion, areaCode).then(response => {
+    async getAreaTreeByTag(areaCode, recursion) {
+      await areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 2 - 2
ems-ui-cloud/src/views/analysis/power/consume.vue

@@ -85,7 +85,7 @@
 
 <script>
 import {getPowerData, getPowerMaxLoad, getPowerDayMaxLoad} from '@/api/mgr/elecUseH'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import { areaTreeByFacsCategory } from '@/api/basecfg/area'
 import BaseChart from '@/components/BaseChart'
 import SubTitle from '@/components/SubTitle'
 import Treeselect from "@riophae/vue-treeselect";
@@ -416,7 +416,7 @@ export default {
     },
     // 查询区域列表
     async getAreaList () {
-      await areaWithFacsCategoryAsTree(this.facsCategory, this.facsSubCategory).then(response => {
+      await areaTreeByFacsCategory(this.facsCategory, this.facsSubCategory, false).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 2 - 2
ems-ui-cloud/src/views/analysis/power/prod.vue

@@ -47,7 +47,7 @@
 
 <script>
 import {listPvSupplyD} from '@/api/mgr/pgSupplyH.js'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import { areaTreeByFacsCategory } from '@/api/basecfg/area'
 import BaseChart from '@/components/BaseChart'
 import SubTitle from '@/components/SubTitle'
 import Treeselect from "@riophae/vue-treeselect";
@@ -260,7 +260,7 @@ export default {
     },
     // 查询区域列表
     async getAreaList () {
-      await areaWithFacsCategoryAsTree(this.facsCategory, this.facsSubCategory).then(response => {
+      await areaTreeByFacsCategory(this.facsCategory, this.facsSubCategory, false).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 2 - 2
ems-ui-cloud/src/views/analysis/power/store.vue

@@ -45,7 +45,7 @@
 
 <script>
 import {getStoreDayList} from '@/api/mgr/elecStoreH.js'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import { areaTreeByFacsCategory } from '@/api/basecfg/area'
 import BaseChart from '@/components/BaseChart'
 import SubTitle from '@/components/SubTitle'
 import Treeselect from "@riophae/vue-treeselect";
@@ -220,7 +220,7 @@ export default {
     },
     // 查询区域列表
     async getAreaList () {
-      await areaWithFacsCategoryAsTree(this.facsCategory, this.facsSubCategory).then(response => {
+      await areaTreeByFacsCategory(this.facsCategory, this.facsSubCategory, false).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 0 - 386
ems-ui-cloud/src/views/basecfg/areaold/index.vue

@@ -1,386 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-
-      <el-form-item label="地块名称" prop="areaName">
-        <el-input
-          v-model="queryParams.areaName"
-          placeholder="请输入地块名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['basecfg:area:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['basecfg:area:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['basecfg:area:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['basecfg:area:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="地块名称" align="center" prop="areaName" width="200px"/>
-      <el-table-column label="简称" align="left" prop="shortName" />
-      <el-table-column label="地块代码" align="center" prop="areaCode" width="200px" />
-      <el-table-column label="服务星级" align="center" prop="serviceStar" />
-      <el-table-column label="所在城市" align="left" prop="city" />
-      <el-table-column label="所在高速" align="left" prop="highway" />
-      <el-table-column label="方向" align="center" prop="direction" />
-
-      <el-table-column label="开业时间" align="center" prop="openDate" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.openDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="坐标" align="center" width="100px">
-        <template slot-scope="scope">
-          {{ scope.row.longitude + ',' + scope.row.latitude }}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button size="mini" type="text"  icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['basecfg:servicearea:edit']">
-            修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleDelete(scope.row)" v-hasPermi="['basecfg:servicearea:remove']">
-            删除</el-button>
-
-        </template>
-      </el-table-column>
-    </el-table>
-<!--分页-->
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改服务区对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="90px" class="form-inline">
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="地块代码" prop="areaCode">
-              <el-input v-model="form.areaCode" placeholder="请输入地块代码" :readonly="isReadOnly"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="地块名称" prop="areaName">
-              <el-input v-model="form.areaName" placeholder="请输入地块名称" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="地块简称" prop="shortName">
-              <el-input v-model="form.shortName" placeholder="请输入简称" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="服务星级" prop="serviceStar">
-              <el-input v-model="form.serviceStar" placeholder="请输入服务星级" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="开业时间" prop="openDate" >
-              <el-date-picker clearable
-                              v-model="form.openDate"
-                              type="date"
-                              value-format="yyyy-MM-dd"
-                              placeholder="请选择开业时间" style="width: 100%">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="所在城市" prop="city">
-              <el-input v-model="form.city" placeholder="请输入所在城市" />
-            </el-form-item>
-          </el-col>
-
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="所在高速" prop="highway">
-              <el-input v-model="form.highway" placeholder="请输入所在高速" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="方向" prop="direction">
-              <el-input v-model="form.direction" placeholder="请输入方向" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-        <el-col :span="24">
-          <el-form-item label="地址" prop="address">
-            <el-input v-model="form.address" placeholder="请输入地址" />
-          </el-form-item>
-        </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="所有单位" prop="attrOrg">
-              <el-input v-model="form.attrOrg" placeholder="请输入所有单位" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="管理单位" prop="mgrOrg">
-              <el-input v-model="form.mgrOrg" placeholder="请输入管理单位" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="占地面积(亩)" prop="landArea">
-              <el-input v-model="form.landArea" placeholder="请输入占地面积" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="建筑面积(㎡)" prop="floorArea">
-              <el-input v-model="form.floorArea" placeholder="请输入建筑面积" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="经度" prop="longitude">
-              <el-input v-model="form.longitude" placeholder="请输入经度" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="纬度" prop="latitude">
-              <el-input v-model="form.latitude" placeholder="请输入纬度" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-//引入后端api接口
-import { listArea, getArea, delArea, addArea, updateArea } from "@/api/basecfg/areaold";
-
-export default {
-  name: "Area",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 服务区表格数据
-      areaList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      isReadOnly: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        areaCode: null,
-        areaName: null,
-        shortName: null,
-        serviceStar: null,
-        city: null,
-        highway: null,
-        direction: null,
-        address: null,
-        attrOrg: null,
-        mgrOrg: null,
-        openDate: null,
-        landArea: null,
-        floorArea: null,
-        longitude: null,
-        latitude: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        areaCode: [
-          { required: true, message: "服务区代码不能为空", trigger: "blur" }
-        ],
-        areaName: [
-          { required: true, message: "服务区名称不能为空", trigger: "blur" }
-        ],
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询服务区列表 */
-    getList() {
-      this.loading = true;
-      listArea(this.queryParams).then(response => {
-        this.areaList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        areaCode: null,
-        areaName: null,
-        serviceStar: null,
-        city: null,
-        highway: null,
-        direction: null,
-        address: null,
-        attrOrg: null,
-        mgrOrg: null,
-        openDate: null,
-        landArea: null,
-        floorArea: null,
-        longitude: null,
-        latitude: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.isReadOnly = false;
-      this.title = "添加服务区";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      this.isReadOnly = true;
-      const id = row.id || this.ids
-      getArea(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改服务区";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateArea(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addArea(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除服务区编号为"' + ids + '"的数据项?').then(function() {
-        return delArea(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('ems/basecfg/area/export', {
-        ...this.queryParams
-      }, `area_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>

+ 0 - 310
ems-ui-cloud/src/views/basecfg/building/index.vue

@@ -1,310 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <el-col :span="4" :xs="24">
-        <div class="head-container">
-          <el-input v-model="areaName" placeholder="请输入地块名称" clearable size="small" prefix-icon="el-icon-search"
-            style="margin-bottom: 20px" />
-        </div>
-        <div class="head-container">
-          <el-tree :data="areaOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree"
-            node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" />
-        </div>
-      </el-col>
-      <el-col :span="20" :xs="24">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-          <el-form-item label="建筑名称" prop="bldgName">
-            <el-input v-model="queryParams.bldgName" placeholder="请输入建筑名称" clearable @keyup.enter.native="handleQuery" />
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['basecfg:building:add']">新增
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-              v-hasPermi="['basecfg:building:edit']">修改</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-              v-hasPermi="['basecfg:building:remove']">删除</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
-              v-hasPermi="['basecfg:building:export']">导出</el-button>
-          </el-col>
-          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-        </el-row>
-
-        <el-table v-loading="loading" :data="buildingList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="建筑名称" align="left" prop="bldgName" />
-          <el-table-column label="服务区" align="center" prop="areaShortName" />
-          <el-table-column label="建筑编码" align="center" prop="bldgCode" />
-          <el-table-column label="位置描述" align="center" prop="address" />
-          <el-table-column label="建筑层数" align="center">
-            <template slot-scope="scope">
-              <span>{{ scope.row.downBldgFloor + scope.row.upBldgFloor + "层" }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button size="mini" type="text"  icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['basecfg:building:edit']">
-                修改</el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleDelete(scope.row)" v-hasPermi="['basecfg:building:remove']">
-                删除</el-button>
-
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-          @pagination="getList" />
-
-        <!-- 添加或修改建筑基本信息对话框 -->
-        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-          <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-            <el-form-item label="所属地块" prop="areaCode">
-              <treeselect v-model="form.areaCode" :options="areaOptions" :show-count="true" placeholder="请选择归属园区" />
-            </el-form-item>
-            <el-form-item label="建筑编码" prop="bldgCode">
-              <el-input v-model="form.bldgCode" placeholder="请输入建筑编码" :readonly="isReadOnly" />
-            </el-form-item>
-            <el-form-item label="建筑名称" prop="bldgName">
-              <el-input v-model="form.bldgName" placeholder="请输入建筑名称" />
-            </el-form-item>
-            <el-form-item label="详细地址" prop="address">
-              <el-input v-model="form.address" placeholder="请输入详细地址" />
-            </el-form-item>
-            <el-form-item label="地上层数" prop="upBldgFloor">
-              <el-input v-model="form.upBldgFloor" oninput="value=value.replace(/^0(0+|\d+)|[^\d]+/g,'')" placeholder="请输入建筑层数" />
-            </el-form-item>
-            <el-form-item label="地下层数" prop="downBldgFloor">
-              <el-input v-model="form.downBldgFloor" oninput="value=value.replace(/^0(0+|\d+)|[^\d]+/g,'')" placeholder="请输入建筑层数" />
-            </el-form-item>
-            <el-form-item label="建筑高度(米)" prop="bldgHeight">
-              <el-input v-model="form.bldgHeight" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入建筑高度" />
-            </el-form-item>
-            <el-form-item label="建筑面积(平方米)" prop="floorArea">
-              <el-input v-model="form.floorArea" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入建筑面积" />
-            </el-form-item>
-            <el-form-item label="主要用途" prop="bldgUsage">
-              <el-input v-model="form.bldgUsage" placeholder="请输入主要用途" />
-            </el-form-item>
-          </el-form>
-          <div slot="footer" class="dialog-footer">
-            <el-button type="primary" @click="submitForm">确 定</el-button>
-            <el-button @click="cancel">取 消</el-button>
-          </div>
-        </el-dialog>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { listBuilding, getBuilding, delBuilding, addBuilding, updateBuilding } from '@/api/basecfg/building'
-import { areaTreeSelect } from '@/api/basecfg/area'
-import Treeselect from '@riophae/vue-treeselect'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-
-export default {
-  name: 'Building',
-  components: { Treeselect },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 建筑基本信息表格数据
-      buildingList: [],
-      // 弹出层标题
-      title: '',
-      // 是否显示弹出层
-      open: false,
-      // 区域名称
-      areaName: undefined,
-      // 区域树选项
-      areaOptions: undefined,
-      defaultProps: {
-        children: 'children',
-        label: 'label'
-      },
-      isReadOnly: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        areaCode: null,
-        bldgCode: null,
-        bldgName: null,
-        address: null,
-        upBldgFloor: null,
-        downBldgFloor: null,
-        bldgHeight: null,
-        floorArea: null,
-        bldgUsage: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        bldgCode: [{ required: true, message: '建筑编码不能为空', trigger: 'blur' }],
-        bldgName: [{ required: true, message: '建筑名称不能为空', trigger: 'blur' }]
-      }
-    }
-  },
-  watch: {
-    // 根据名称筛选区域树
-    areaName(val) {
-      this.$refs.tree.filter(val)
-    }
-  },
-  created() {
-    this.getList()
-    this.getAreaTree('Area')
-  },
-  methods: {
-    /** 查询建筑基本信息列表 */
-    getList() {
-      this.loading = true
-      listBuilding(this.queryParams).then(response => {
-        this.buildingList = response.rows
-        this.total = response.total
-        this.loading = false
-      })
-    },
-    /** 查询区域树结构 */
-    getAreaTree(tier) {
-      areaTreeSelect(tier).then(response => {
-        this.areaOptions = response.data
-      })
-    },
-    // 筛选节点
-    filterNode(value, data) {
-      if (!value) return true
-      return data.label.indexOf(value) !== -1
-    },
-    // 节点单击事件
-    handleNodeClick(data) {
-      this.queryParams.areaCode = data.id
-      this.handleQuery()
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false
-      this.reset()
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        areaCode: null,
-        bldgCode: null,
-        bldgName: null,
-        address: null,
-        upBldgFloor: null,
-        downBldgFloor: null,
-        bldgHeight: null,
-        floorArea: null,
-        bldgUsage: null
-      }
-      this.resetForm('form')
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1
-      this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.queryParams.areaCode = null
-      this.resetForm('queryForm')
-      this.handleQuery()
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.isReadOnly = false
-      this.title = '添加建筑基本信息'
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset()
-      this.isReadOnly = false
-      const id = row.id || this.ids
-      getBuilding(id).then(response => {
-        this.form = response.data
-        this.open = true
-        this.title = '修改建筑基本信息'
-      })
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateBuilding(this.form).then(response => {
-              this.$modal.msgSuccess('修改成功')
-              this.open = false
-              this.getList()
-            })
-          } else {
-            addBuilding(this.form).then(response => {
-              this.$modal.msgSuccess('新增成功')
-              this.open = false
-              this.getList()
-            })
-          }
-        }
-      })
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids
-      this.$modal
-        .confirm('是否确认删除建筑基本信息编号为"' + ids + '"的数据项?')
-        .then(function() {
-          return delBuilding(ids)
-        })
-        .then(() => {
-          this.getList()
-          this.$modal.msgSuccess('删除成功')
-        })
-        .catch(() => {})
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        'ems/basecfg/area/building/export',
-        {
-          ...this.queryParams
-        },
-        `building_${new Date().getTime()}.xlsx`
-      )
-    }
-  }
-}
-</script>

+ 6 - 6
ems-ui-cloud/src/views/basecfg/device/index.vue

@@ -539,7 +539,7 @@ export default {
   },
   created() {
     this.getList()
-    this.getAreaTree(false,'0')
+    this.getAreaTree('0', false)
     this.getFacsOptions()
     this.getSubsystem()
     this.getSubCategorygetByCode()
@@ -613,8 +613,8 @@ export default {
       })
     },
     /** 查询区域树结构 */
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.treeAreaOptions =  [{
           id: null,
           label: '全部',
@@ -747,7 +747,7 @@ export default {
       })
       const recursion = true
       const areaCode = '0'
-      areaTreeSelect(recursion, areaCode).then(response => {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.totalAreaOptions = response.data
       })
     },
@@ -900,9 +900,9 @@ export default {
       //this.queryParams.psCode = null; // 重置设备工艺选择
       if (this.queryParams.deviceCategory === 'E' || this.queryParams.deviceCategory === 'W'
         || this.queryParams.deviceCategory === 'T' || this.queryParams.deviceCategory === 'C') {
-        this.getAreaTree(false,'0')
+        this.getAreaTree('0', false)
       } else if (this.queryParams.deviceCategory === 'Z') {
-        this.getAreaTree(true,'0')
+        this.getAreaTree('0', true)
       }
       this.getSubCategorygetByCode()
       this.getFacsOptions()

+ 3 - 3
ems-ui-cloud/src/views/basecfg/emsfacs/index.vue

@@ -420,7 +420,7 @@ export default {
   },
   created() {
     this.getList()
-    this.getAreaTree(false,'0')
+    this.getAreaTree('0', false)
     this.getAllFacsCategory()
     this.getSubCategorygetByCode()
     this.getFacsModel()
@@ -647,8 +647,8 @@ export default {
       )
     },
     /** 查询区域树结构 */
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 55 - 69
ems-ui-cloud/src/views/basecfg/meterdevc/index.vue

@@ -56,26 +56,6 @@
             </template>
           </el-table-column>
 
-<!--          <el-table-column label="计量标签" align="center" prop="objTag">-->
-<!--            <template slot-scope="scope">-->
-<!--                  <span-->
-<!--                    :style="{-->
-<!--                      padding: '6px 12px',-->
-<!--                      borderRadius: '4px',-->
-<!--                      display: 'inline-block',-->
-<!--                      textAlign: 'center',-->
-<!--                      cursor: 'pointer',-->
-<!--                      color: (scope.row.objTag === 0) ? '#000' : '#000',-->
-<!--                      backgroundColor: (scope.row.objTag === 0) ? '#add8e6' : (scope.row.objTag === 1) ? '#ffff99' : '',-->
-<!--                      minWidth: '70px',-->
-<!--                      height: '35px',-->
-<!--                      textAlign: 'center'-->
-<!--                    }"-->
-<!--                  >-->
-<!--             {{ formatDict(scope.row.objTag, 'objTagOptions') }}-->
-<!--                   </span>-->
-<!--          </template>-->
-<!--          </el-table-column>-->
           <el-table-column label="设备代码" align="center" prop="deviceCode" />
           <el-table-column label="计量类别" align="center" prop="meterCls">
             <template slot-scope="scope">
@@ -110,7 +90,7 @@
         <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
           <el-form ref="form" :model="form" :rules="rules" label-width="80px">
             <el-form-item label="设备归属" prop="deviceCode">
-              <el-select v-model="form.areaCode" @change="handleAreaSelect">
+              <el-select v-model="form.areaCode" :disabled="isAreaCodeMod()">
                 <el-option v-for="item in areaOptions" :label="item.label" :value="item.id" :key="item.id" />
               </el-select>
             </el-form-item>
@@ -128,7 +108,7 @@
               </el-select>
             </el-form-item>
             <el-form-item label="计量对象" prop="objCode">
-              <treeselect v-model="objCode" :options="objCodeOptions" :show-count="true" placeholder="请选择计量对象" ref="treeObjCodeOptions" />
+              <treeselect v-model="objCode" :options="objCodeOptions" :show-count="true" placeholder="请选择计量对象"  />
             </el-form-item>
             <el-form-item label="计量标签" prop="objTag">
               <el-radio-group v-model="form.objTag" size="medium">
@@ -167,7 +147,6 @@
 import { listDevice, getDevice, delDevice, addDevice, updateDevice } from '@/api/device/meterDevice'
 import { devTreeByFacs } from '@/api/device/device'
 import { areaTreeSelect } from '@/api/basecfg/area'
-import { listBuildingByArea } from '@/api/basecfg/building'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 
@@ -194,11 +173,11 @@ export default {
       title: '',
       // 是否显示弹出层
       open: false,
+      areaMod: false,
       // 区域名称
       areaName: undefined,
       objCodeOptions: [],
       areaOptions: [],
-      buildingOptions: [],
       selectObjCode: null,
       objCode: null,
       defaultProps: {
@@ -211,8 +190,9 @@ export default {
         { code: 70, name: '水表' }
       ],
       objTypeOptions: [
-        { code: 1, name: '区块' },
-        { code: 2, name: '设备' }
+        { code: 1, name: '区域' },
+        { code: 2, name: '设施' },
+        { code: 3, name: '设备' }
       ],
       objTagOptions: [
         { code: 0, name: '公摊表' },
@@ -247,7 +227,9 @@ export default {
         specDesc: null
       },
       // 表单参数
-      form: {},
+      form: {
+        areaCode: null,
+      },
       // 表单校验
       rules: {
         areaCode: [{ required: true, message: '选择服务区', trigger: 'blur' }],
@@ -259,38 +241,13 @@ export default {
     }
   },
   watch: {
-    objCode: {
-      handler(id) {
-        if (id) {
-          const option = this.$refs.treeObjCodeOptions.getNode(id)
-          this.objCode = option.id
-          this.form.objCode = option.id
-
-          if (this.form.objType === 1) {
-            if (option.raw.tier === 'Area') {
-              this.form.objSubType = 1
-            } else if (option.raw.tier === 'Building') {
-              this.form.objSubType = 2
-            } else if (option.raw.tier === 'Zoning') {
-              this.form.objSubType = 3
-            }
-          } else if (this.form.objType === 2) {
-            if (option.raw.tier === 'Facs') {
-              this.form.objSubType = 1
-            } else if (option.raw.tier === 'Device') {
-              this.form.objSubType = 2
-            }
-          }
-        }
-      }
-    },
     // 根据名称筛选区域树
     areaName(val) {
       this.$refs.tree.filter(val)
     }
   },
   created() {
-    this.getAreaTree(false,'0')
+    this.getAreaTree('0', false)
     this.getList()
   },
   methods: {
@@ -322,13 +279,13 @@ export default {
         deviceCode: null,
         meterCls: null,
         meterObjType: null,
-        objSubType: null,
         objCode: null,
         colCycle: null,
         colMode: null,
         specDesc: null
       }
       this.objCode = null
+      this.areaMod = false
       this.resetForm('form')
     },
     /** 搜索按钮操作 */
@@ -352,6 +309,7 @@ export default {
       this.reset()
       this.open = true
       this.title = '添加计量设备'
+      this.areaMod = true
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -361,25 +319,39 @@ export default {
         this.form = response.data
         this.open = true
         this.title = '修改计量设备'
-        console.log("更新的数据:", this.form)
       })
 
       this.objCode = row.objCode
+
+      // 区域
       if (row.objType === 1) {
-        areaTreeSelectByCode('Area', row.areaCode).then(response => {
+        areaTreeSelect(row.areaCode, true).then(response => {
+          this.objCodeOptions = [{
+            id: row.areaCode,
+            label: this.getAreaLabelById(row.areaCode),
+            children: response.data
+          }]
+        })
+      }
+      // 设施
+      else if (row.objType === 2) {
+        devTreeByFacs(row.areaCode).then(response => {
           this.objCodeOptions = response.data
         })
-      } else if (row.objType === 2) {
+      }
+      // 设备
+      else if (row.objType === 2) {
         devTreeByFacs(row.areaCode).then(response => {
           this.objCodeOptions = response.data
-
         })
       }
     },
-    handleAreaSelect(areaCode) {
-      listBuildingByArea(areaCode).then(response => {
-        this.buildingOptions = response.data
-      })
+    isAreaCodeMod() {
+      return !this.areaMod;
+    },
+    getAreaLabelById(id) {
+      const item = this.areaOptions.find(item => item.id === id);
+      return item ? item.label : 'default';
     },
     /** 提交按钮 */
     submitForm() {
@@ -433,8 +405,9 @@ export default {
     },
     getObjTypeName(objType) {
       const typeMap = {
-        1: '区块',
-        2: '设备'
+        1: '区域',
+        2: '设施',
+        3: '设备',
       }
       return typeMap[objType] || '未知'
     },
@@ -456,8 +429,8 @@ export default {
       return modeMap[colMode] || '未知'
     },
     /** 查询区域树结构 */
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = response.data
       })
     },
@@ -473,12 +446,25 @@ export default {
     },
     changeObjOptions(objType) {
       this.objCode = null
-
+      // 区域
       if (objType === 1) {
-        areaTreeSelectByCode('Area', this.form.areaCode).then(response => {
+        areaTreeSelect(this.form.areaCode, true).then(response => {
+          this.objCodeOptions = [{
+            id: this.form.areaCode,
+            label: this.getAreaLabelById(this.form.areaCode),
+            children: response.data
+          }]
+        })
+      }
+      // 设施
+      else if (objType === 2) {
+        const devcCategory = 'Z';
+        devTreeByFacs(this.form.areaCode, devcCategory).then(response => {
           this.objCodeOptions = response.data
         })
-      } else if (objType === 2) {
+      }
+      // 设备
+      else if (objType === 3) {
         const devcCategory = 'Z';
         devTreeByFacs(this.form.areaCode, devcCategory).then(response => {
           this.objCodeOptions = response.data

+ 0 - 391
ems-ui-cloud/src/views/basecfg/powerbox/index.vue

@@ -1,391 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="服务区" prop="areaCode">
-        <el-select v-model="queryParams.areaCode">
-          <el-option v-for="item in areaOptions" :label="item.areaName" :value="item.areaCode" :key="item.areaCode" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="箱柜代码" prop="boxCode">
-        <el-input v-model="queryParams.boxCode" placeholder="请输入箱柜代码" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="箱体类型" prop="boxType">
-        <el-select v-model="queryParams.boxType">
-          <el-option v-for="item in boxTypeOptions" :label="item.name" :value="item.code" :key="item.code" />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['ems:box:add']">新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-          v-hasPermi="['ems:box:edit']">修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['ems:box:remove']">删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['ems:box:export']">导出
-        </el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="boxList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="箱柜代码" align="center" prop="boxCode" />
-      <el-table-column label="箱体类型" align="center" prop="boxType">
-        <template slot-scope="scope">
-          <span>{{ getPowerBoxTypeName(scope.row.boxType) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="服务区" align="center" prop="areaShortName" />
-      <el-table-column label="安装位置" align="center" prop="location" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button size="mini" type="text"  icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['basecfg:box:edit']">
-            修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleDelete(scope.row)" v-hasPermi="['basecfg:box:remove']">
-            删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
-
-    <!-- 添加或修改动力箱柜对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="箱柜代码" prop="boxCode">
-              <el-input v-model="form.boxCode" placeholder="请输入箱柜代码"  />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="箱柜类型" prop="boxType" >
-              <el-select v-model="form.boxType" placeholder="请选择箱柜类型" style="width: 100%;">
-                <el-option v-for="item in boxTypeOptions" :label="item.name" :value="item.code" :key="item.code" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="所在服务区" prop="areaCode">
-              <el-select v-model="form.areaCode" placeholder="请选择所在服务区" style="width: 100%;">
-                <el-option v-for="item in areaOptions" :label="item.areaName" :value="item.areaCode" :key="item.areaCode" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="安装位置" prop="location">
-              <el-input v-model="form.location" placeholder="请输入安装位置" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="网关端口" prop="gatewayPort">
-              <el-input v-model="form.gatewayPort" placeholder="请输入网关端口" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="网关地址" prop="gatewayAddr">
-              <el-input v-model="form.gatewayAddr" placeholder="请输入网关地址" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="箱体尺寸" prop="boxSize">
-              <el-input v-model="form.boxSize" placeholder="请输入箱体尺寸" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="电气元件" prop="elecEqptList" >
-          <el-table v-loading="loading" :data="form.elecEqptList" max-height="400px">
-            <el-table-column label="元件编码" align="center"  prop="eqptCode">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.eqptCode" placeholder="元件编码" />
-              </template>
-            </el-table-column>
-            <el-table-column label="外系统编码" align="center"  prop="extEqptCode">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.extEqptCode" placeholder="外系统编码" />
-              </template>
-            </el-table-column>
-            <el-table-column label="元件类型" align="center"  prop="eqptName">
-              <template slot-scope="scope">
-                <el-select v-model="scope.row.eqptType" size="mini" clearable style="width:100%">
-                  <el-option v-for="item in eqptTypeOptions" :label="item.typeName" :key="item.typeCode" :value="item.typeCode"></el-option>
-                </el-select>
-              </template>
-            </el-table-column>
-            <el-table-column label="元件型号" align="center"  prop="eqptSpec">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.eqptSpec" placeholder="元件型号" />
-              </template>
-            </el-table-column>
-            <el-table-column label="额定电压" align="center" prop="ratedVoltage">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.ratedVoltage" placeholder="额定电压" />
-              </template>
-            </el-table-column>
-            <el-table-column label="额定电流" align="center"  prop="ratedCurrent">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.ratedCurrent" placeholder="额定电流" />
-              </template>
-            </el-table-column>
-            <el-table-column label="祖籍列表" align="center"  prop="ancestors">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.ancestors" placeholder="祖籍列表" />
-              </template>
-            </el-table-column>
-            <el-table-column label="上游元件" align="center"  prop="parentEqpt">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.parentEqpt" placeholder="上游元件" />
-              </template>
-            </el-table-column>
-            <el-table-column label="下级支路" align="center"  prop="subCircuit">
-              <template slot-scope="scope">
-                <el-input size="mini" v-model="scope.row.subCircuit" placeholder="下级支路" />
-              </template>
-            </el-table-column>
-            <el-table-column align="center" fixed="right">
-              <template slot="header">
-                <div class="operateBtns" @click="addSub">
-                  <span>操作</span><i class="el-icon-circle-plus-outline"></i>
-                </div>
-              </template>
-              <template slot-scope="scope">
-                <i class="el-icon-delete" @click="deleteSub(scope.$index)"></i>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listPowerBox, getPowerBox, delPowerBox, addPowerBox, updatePowerBox } from '@/api/device/powerbox'
-import { listTotalArea } from '@/api/basecfg/area'
-import {listElecEqptType} from '@/api/basecfg/elecEqptType.js'
-
-export default {
-  name: 'Box',
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 动力箱柜表格数据
-      boxList: [],
-      // 弹出层标题
-      title: '',
-      // 是否显示弹出层
-      open: false,
-      areaOptions: [],
-      boxTypeOptions: [
-        { code: 1, name: '配电柜' },
-        { code: 2, name: '控制柜' },
-        { code: 3, name: '逆变器' }
-      ],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        boxCode: null,
-        boxType: null,
-        areaCode: null,
-        location: null,
-        boxSize: null,
-        gatewayAddr: null,
-        gatewayPort: null
-      },
-      // 表单参数
-      form: {
-        id: null,
-        boxCode: null,
-        boxType: null,
-        areaCode: null,
-        location: null,
-        boxSize: null,
-        gatewayAddr: null,
-        gatewayPort: null,
-        elecEqptList: []
-      },
-      // 表单校验
-      rules: {
-        boxCode: [{ required: true, message: '箱柜代码不能为空', trigger: 'blur' }],
-        boxType: [{ required: true, message: '箱体类型不能为空', trigger: 'change' }]
-      },
-      eqptTypeOptions:[]
-    }
-  },
-  created() {
-    this.getAreaOptions()
-    this.getList()
-    this.getEqptType()
-  },
-  methods: {
-    getEqptType(){
-      listElecEqptType().then(({rows})=>{
-        this.eqptTypeOptions =rows
-      })
-    },
-    addSub() {
-      this.form.elecEqptList.push({
-        eqptCode: '',
-        extEqptCode: '',
-        eqptType:'',
-        eqptSpec:'',
-        ratedVoltage:'',
-        ratedCurrent:'',
-        parentEqpt:'',
-        meterDevice:'',
-        ancestors: '',
-        subCircuit: ''
-      })
-    },
-    deleteSub(index) {
-      this.form.elecEqptList.splice(index, 1)
-    },
-    /** 查询动力箱柜列表 */
-    getList() {
-      this.loading = true
-      listPowerBox(this.queryParams).then(response => {
-        this.boxList = response.rows
-        this.total = response.total
-        this.loading = false
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false
-      this.reset()
-    },
-    // 表单重置
-    reset() {
-      this.form = this.$options.data().form
-      this.resetForm('form')
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1
-      this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm('queryForm')
-      this.handleQuery()
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.title = '添加动力箱柜'
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset()
-      const id = row.id || this.ids
-      getPowerBox(id).then(response => {
-        this.form = response.data
-        this.open = true
-        this.title = '修改动力箱柜'
-      })
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.form.elecEqptList.forEach(item=>{
-            item.boxCode = this.form.boxCode
-          })
-          if (this.form.id != null) {
-            updatePowerBox(this.form).then(response => {
-              this.$modal.msgSuccess('修改成功')
-              this.open = false
-              this.getList()
-            })
-          } else {
-            addPowerBox(this.form).then(response => {
-              this.$modal.msgSuccess('新增成功')
-              this.open = false
-              this.getList()
-            })
-          }
-        }
-      })
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids
-      this.$modal
-        .confirm('是否确认删除动力箱柜编号为"' + ids + '"的数据项?')
-        .then(function() {
-          return delPowerBox(ids)
-        })
-        .then(() => {
-          this.getList()
-          this.$modal.msgSuccess('删除成功')
-        })
-        .catch(() => {})
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        'ems/powerBox/export',
-        {
-          ...this.queryParams
-        },
-        `box_${new Date().getTime()}.xlsx`
-      )
-    },
-    getAreaOptions() {
-      listTotalArea().then(response => {
-        this.areaOptions = response.data
-      })
-    },
-    getPowerBoxTypeName(boxType) {
-      const boxTypeMap = {
-        1: '配电柜',
-        2: '控制柜',
-        3: '逆变器'
-      }
-      return boxTypeMap[boxType] || ''
-    }
-  }
-}
-</script>

+ 8 - 12
ems-ui-cloud/src/views/basecfg/price/index.vue

@@ -369,7 +369,7 @@
             </el-form-item>
             <el-form-item label="关联商户" prop="waterComputeDesc">
               <el-checkbox-group v-model="chargingForm.relCoList" class="custom-checkbox-group">
-                <el-checkbox v-for="item in zoningList" :key="item.zoningCode" :label="item.zoningCode">{{item.zoningName}}</el-checkbox>
+                <el-checkbox v-for="item in zoningList" :key="item.areaCode" :label="item.areaCode">{{item.areaName}}</el-checkbox>
               </el-checkbox-group>
             </el-form-item>
 
@@ -411,8 +411,7 @@ import {
 } from '@/api/basecfg/elecGwPrice'
 import { addPvPriceConfig, delPvPriceConfig, getPvPriceConfig, listPvPriceConfig, updatePvPriceConfig } from '@/api/basecfg/elecPvPrice'
 import { getElecPriceType } from '@/api/commonApi'
-import { areaTreeSelect } from '@/api/basecfg/area'
-import { listZoning } from '@/api/basecfg/zoning'
+import { areaListByTag, areaTreeSelect } from '@/api/basecfg/area'
 
 export default {
   name: 'Attr',
@@ -548,14 +547,14 @@ export default {
     }
   },
   created() {
-    this.getAreaList(false,'0')
+    this.getAreaList('0', false)
     this.getAttrList()
     this.getGwPriceList()
     this.getPvPriceList()
     this.getPriceType()
     this.getStrategyList()
     this.getChargingList()
-    this.getRelateShopList()
+    this.getRelateShopList('0')
   },
   methods: {
     formatDict(value, options, key = 'value', name = 'name') {
@@ -834,8 +833,8 @@ export default {
       })
     },
     // 查询区域列表
-    getAreaList(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaList(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = response.data
       })
     },
@@ -1000,11 +999,8 @@ export default {
       })
     },
     getRelateShopList(areaCode) {
-      listZoning({
-        areaCode,
-        tagCodeList: ['Area_01']
-      }).then(({ rows }) => {
-        this.zoningList = rows
+      areaListByTag(areaCode,'Area_01').then(response => {
+        this.zoningList = response.data
       })
     },
     handleChargingAdd() {

+ 0 - 344
ems-ui-cloud/src/views/basecfg/zoning/index.vue

@@ -1,344 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="20">
-      <el-col :span="4" :xs="24">
-        <div class="head-container">
-          <el-input v-model="areaName" placeholder="请输入建筑名称" clearable size="small" prefix-icon="el-icon-search"
-            style="margin-bottom: 20px" />
-        </div>
-        <div class="head-container">
-          <el-tree :data="areaOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree"
-            node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" />
-        </div>
-      </el-col>
-      <el-col :span="20" :xs="24">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-          <el-form-item label="分区名称" prop="zoningName">
-            <el-input v-model="queryParams.zoningName" placeholder="请输入分区名称" clearable @keyup.enter.native="handleQuery" />
-          </el-form-item>
-          <el-form-item label="区块标签" prop="tagCode">
-            <el-select v-model="queryParams.tagCodeList" placeholder="请选择区块标签" multiple clearable :style="{width: '100%'}">
-              <el-option v-for="item in emsTagOptions" :label="item.tagName" :value="item.tagCode" :key="item.tagCode" />
-            </el-select>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['basecfg:zoning:add']">新增
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-              v-hasPermi="['basecfg:zoning:edit']">修改</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-              v-hasPermi="['basecfg:zoning:remove']">删除</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
-              v-hasPermi="['basecfg:zoning:export']">导出</el-button>
-          </el-col>
-          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-        </el-row>
-
-        <el-table v-loading="loading" :data="zoningList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="分区名称" align="left" prop="zoningName" />
-          <el-table-column label="分区编码" align="center" prop="zoningCode" width="200" />
-          <el-table-column label="所在建筑" align="left" prop="areaPath" />
-          <el-table-column label="区块标签" align="center">
-            <template slot-scope="scope">
-              <span v-for="tag in scope.row.tagNames" :key="tag" :style="getTagStyle(tag)" class="tag-label">
-                {{ tag }}
-              </span>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button size="mini" type="text"  icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['basecfg:zoning:edit']">
-                修改</el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleDelete(scope.row)" v-hasPermi="['basecfg:zoning:remove']">
-                删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-          @pagination="getList" />
-
-        <!-- 添加或修改建筑区域划分对话框 -->
-        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-            <el-form-item label="所属建筑" prop="bldgCode">
-              <treeselect v-model="form.bldgCode" :options="areaOptions" :disable-branch-nodes="true" :show-count="true"
-                placeholder="请选择所属建筑" />
-            </el-form-item>
-            <el-form-item label="楼层" prop="floor">
-              <el-input v-model="form.floor" placeholder="请输入楼层" />
-            </el-form-item>
-            <el-form-item label="分区编码" prop="zoningCode">
-              <el-input v-model="form.zoningCode" placeholder="请输入分区编码" />
-            </el-form-item>
-            <el-form-item label="分区名称" prop="zoningName">
-              <el-input v-model="form.zoningName" placeholder="请输入分区名称" />
-            </el-form-item>
-            <el-form-item label="分区标签" prop="tagCodeList">
-              <el-select v-model="form.tagCodeList" placeholder="请选择分区标签" multiple clearable style="width: 100%">
-                <el-option v-for="item in emsTagOptions" :label="item.tagName" :value="item.tagCode" :key="item.tagCode" />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="建筑划分面积" prop="bldgLdArea">
-              <el-input v-model="form.bldgLdArea" placeholder="请输入建筑划分面积" />
-            </el-form-item>
-            <el-form-item label="使用情况" prop="usageDetail">
-              <el-input v-model="form.usageDetail" placeholder="请输入使用情况" />
-            </el-form-item>
-          </el-form>
-          <div slot="footer" class="dialog-footer">
-            <el-button type="primary" @click="submitForm">确 定</el-button>
-            <el-button @click="cancel">取 消</el-button>
-          </div>
-        </el-dialog>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { listZoning, getZoning, delZoning, addZoning, updateZoning } from '@/api/basecfg/zoning'
-import { getEmsTag } from '@/api/commonApi'
-import { areaTreeSelect } from '@/api/basecfg/area'
-import Treeselect from '@riophae/vue-treeselect'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-
-export default {
-  name: "Zonin",
-  components: { Treeselect },
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 建筑区域划分表格数据
-      zoningList: [],
-      // 弹出层标题
-      title: '',
-      // 是否显示弹出层
-      open: false,
-      // 区域名称
-      areaName: undefined,
-      // 区域树选项
-      areaOptions: undefined,
-      // 标签选项
-      emsTagOptions: undefined,
-      defaultProps: {
-        children: 'children',
-        label: 'label'
-      },
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        areaCode: null,
-        bldgCode: null,
-        zoningName: null,
-        tagCodeList: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        zoningCode: [{ required: true, message: '分区编码不能为空', trigger: 'blur' }],
-        zoningName: [{ required: true, message: '分区名称不能为空', trigger: 'blur' }]
-      }
-    }
-  },
-  watch: {
-    // 根据名称筛选区域树
-    areaName(val) {
-      this.$refs.tree.filter(val)
-    }
-  },
-  created() {
-    this.getList()
-    this.getAreaTree('Building')
-    this.getEmsTag('Area')
-  },
-  methods: {
-
-    formatDict(val, options, key = 'code', text = 'name') {
-      let name = ''
-      this[options].forEach(item => {
-        if (val === item[key]) {
-          name = item[text]
-        }
-      })
-      return name
-    },
-    getTagStyle(tag) {
-      const styleMap = {
-        '公共区域': 'background-color: rgb(255,255,125); color: rgb(109,109,150); padding: 4px 8px; border-radius: 4px; width: 80px; height: 30px; margin: 4px 8px 4px 0; display: inline-block; vertical-align: top;',
-        '商户区域': 'background-color: rgb(206,206,255); color: rgb(109,109,150); padding: 4px 8px; border-radius: 4px; width: 80px; height: 30px; margin: 4px 8px 4px 0; display: inline-block; vertical-align: top;',
-        '热点区域': 'background-color: rgb(203,255,99); color: rgb(109,109,150); padding: 4px 8px; border-radius: 4px; width: 80px; height: 30px; margin: 4px 8px 4px 0; display: inline-block; vertical-align: top;'
-      };
-      return styleMap[tag] || 'background-color: #FFFFFF; color: #000000; padding: 4px 8px; border-radius: 4px; width: 80px; height: 30px; margin: 4px 8px 4px 0; display: inline-block; vertical-align: top;';
-    },
-    /** 查询建筑区域划分列表 */
-    getList() {
-      this.loading = true;
-      listZoning(this.queryParams).then(response => {
-        this.zoningList = response.rows.map(item => {
-          // 将 tagNames 字符串转换为数组
-          item.tagNames = item.tagNames.split(',').map(tag => tag.trim());
-          return item;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    /** 查询区域树结构 */
-    getAreaTree(tier) {
-      areaTreeSelect(tier).then(response => {
-        this.areaOptions = response.data
-      })
-    },
-    // 筛选节点
-    filterNode(value, data) {
-      if (!value) return true
-      return data.label.indexOf(value) !== -1
-    },
-    // 节点单击事件
-    handleNodeClick(data) {
-      if (data.tier === 'Area') {
-        this.queryParams.areaCode = data.id
-        this.queryParams.bldgCode = null
-      } else if (data.tier === 'Building') {
-        this.queryParams.areaCode = null
-        this.queryParams.bldgCode = data.id
-      }
-
-      this.handleQuery()
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false
-      this.reset()
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        bldgCode: null,
-        zoningCode: null,
-        zoningName: null,
-        floor: null,
-        roomNo: null,
-        bldgLdArea: null,
-        usageDetail: null,
-        tagCodeList: null
-      }
-      this.resetForm('form')
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1
-      this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.queryParams.bldgCode = null
-      this.resetForm('queryForm')
-      this.handleQuery()
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.title = '添加建筑区域划分'
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset()
-      const id = row.id || this.ids
-      getZoning(id).then(response => {
-        this.form = response.data
-        this.open = true
-        this.title = '修改建筑区域划分'
-      })
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateZoning(this.form).then(response => {
-              this.$modal.msgSuccess('修改成功')
-              this.open = false
-              this.getList()
-            })
-          } else {
-            addZoning(this.form).then(response => {
-              this.$modal.msgSuccess('新增成功')
-              this.open = false
-              this.getList()
-            })
-          }
-        }
-      })
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids
-      this.$modal
-        .confirm('是否确认删除建筑区域划分编号为"' + ids + '"的数据项?')
-        .then(function() {
-          return delZoning(ids)
-        })
-        .then(() => {
-          this.getList()
-          this.$modal.msgSuccess('删除成功')
-        })
-        .catch(() => {})
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        'ems/basecfg/area/building/zoning/export',
-        {
-          ...this.queryParams
-        },
-        `zoning_${new Date().getTime()}.xlsx`
-      )
-    },
-    getEmsTag(tagModel) {
-      console.log("tagModel", tagModel)
-      getEmsTag(tagModel).then(response => {
-        this.emsTagOptions = response.data
-        console.log("分区标签",this.emsTagOptions)
-      })
-    }
-  }
-}
-</script>
-

+ 5 - 5
ems-ui-cloud/src/views/devmgr/attr/index.vue

@@ -251,7 +251,7 @@ export default {
   },
   created () {
     this.getList()
-    this.getAreaTree(false, '0')
+    this.getAreaTree('0', false)
     this.getFacsOptions()
     this.getSubsystem()
     this.getSubCategorygetByCode()
@@ -287,8 +287,8 @@ export default {
       })
     },
     /** 查询区域树结构 */
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.treeAreaOptions = [{
           id: null,
           label: '全部',
@@ -359,9 +359,9 @@ export default {
       this.reset()
       if (this.queryParams.deviceCategory === 'E' || this.queryParams.deviceCategory === 'W'
         || this.queryParams.deviceCategory === 'T' || this.queryParams.deviceCategory === 'C') {
-        this.getAreaTree(false,'0')
+        this.getAreaTree('0', false)
       } else if (this.queryParams.deviceCategory === 'Z') {
-        this.getAreaTree(true,'0')
+        this.getAreaTree('0', true)
       }
       this.getSubCategorygetByCode()
       this.getFacsOptions()

+ 3 - 3
ems-ui-cloud/src/views/devmgr/el/index.vue

@@ -278,7 +278,7 @@ export default {
 
   },
   async created () {
-    await this.getAreaTreeByTag(false,'0')
+    await this.getAreaTreeByTag('0', false)
     this.getList()
   },
   // 当对象类型有值时,显示对象代码输入框
@@ -303,8 +303,8 @@ export default {
       })
     },
     /** 查询区域树结构 */
-    async getAreaTreeByTag(recursion, areaCode) {
-      await areaTreeSelect(recursion, areaCode).then(response => {
+    async getAreaTreeByTag(areaCode, recursion) {
+      await areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 4 - 4
ems-ui-cloud/src/views/devmgr/meterRead/index.vue

@@ -134,7 +134,7 @@
 <script>
 import { listDevice } from '@/api/device/meterDevice'
 import { listMeterReadingByParam, getLastRecord, addMeterReading, updateMeterReading, delMeterReading } from '@/api/device/meterRead'
-import { areaTreeSelectByTag } from '@/api/basecfg/area'
+import { areaTreeSelect } from '@/api/basecfg/area'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import { dateFormat } from '@/utils/index.js'
@@ -210,7 +210,7 @@ export default {
     }
   },
   created() {
-    this.getAreaTreeByTag('Area', 'Area_01')
+    this.getAreaTreeSelect('0', false)
     this.getList()
   },
 
@@ -283,8 +283,8 @@ export default {
       }
       return tagMap[objTag] || '未知'
     },
-    async getAreaTreeByTag(tier, tagCode) {
-      await areaTreeSelectByTag(tier, tagCode).then(response => {
+    async getAreaTreeSelect(areaCode, recursion) {
+      await areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = response.data
       })
     },

+ 11 - 7
ems-ui-cloud/src/views/mgr/charging.vue

@@ -150,7 +150,7 @@
 </template>
 
 <script>
-import { areaTreeSelectByTag } from '@/api/basecfg/area'
+import { areaTreeByFacsCategory, areaTreeByTag, areaTreeSelect } from '@/api/basecfg/area'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import { chargingList, overviewInfo } from '@/api/mgr/charging.js'
@@ -542,7 +542,6 @@ export default {
         if (this.activeTab === 'second') {
           const response = await chargingList({
             areaPath: areaCode,
-            tier: 'Zoning',
             meterCls,
             startTime,
             endTime
@@ -560,7 +559,6 @@ export default {
         } else {
           const response = await overviewInfo({
             areaPath: areaCode,
-            tier: 'Area',
             meterCls,
             startTime,
             endTime
@@ -582,7 +580,7 @@ export default {
 
     async handleTabChange() {
       if (this.activeTab === 'first') {
-        await this.getAreaTreeByTag('Area', 'Area_01');
+        await this.getAreaTreeByFacsCategory('Z', '',false);
         if (this.areaOptions.length > 0) {
           // 设置默认展开的节点
           this.defalutArr = [];
@@ -592,7 +590,7 @@ export default {
           this.$refs['tree'].setCheckedKeys([this.queryParams.areaCode]);
         }
       } else if (this.activeTab === 'second') {
-        await this.getAreaTreeByTag('Zoning', 'Area_01');
+        await this.getAreaTreeByTag('0', 'Area_01');
         this.defalutArr = [];
         this.recursion(this.areaOptions[0], this.defalutArr);
         this.queryParams.areaCode = this.defalutArr.join('/');
@@ -610,8 +608,14 @@ export default {
       }
     },
     /** 查询区域树结构 */
-    async getAreaTreeByTag(tier, tagCode) {
-      await areaTreeSelectByTag(tier, tagCode).then(response => {
+    async getAreaTreeByTag(parentCode, tagCode) {
+      await areaTreeByTag(parentCode, tagCode).then(response => {
+        this.areaOptions = response.data
+      })
+    },
+    /** 查询区域树结构 */
+    async getAreaTreeByFacsCategory(category, subCategory, recursion) {
+      await areaTreeByFacsCategory(category, subCategory, recursion).then(response => {
         this.areaOptions = response.data
       })
     },

+ 3 - 3
ems-ui-cloud/src/views/mgr/powergrid.vue

@@ -142,7 +142,7 @@
 
 <script>
 import {ApiCode} from '@/api/apiEmums'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import { areaTreeByFacsCategory } from '@/api/basecfg/area'
 import {get} from '@/api/commonApi'
 import {listPgSupplyH, listPvSupplyH} from '@/api/mgr/pgSupplyH'
 import BaseChart from '@/components/BaseChart'
@@ -628,7 +628,7 @@ export default {
     },
     getTodayList () {
       if (this.activeName === 'first') {
-        areaWithFacsCategoryAsTree('W', this.facsSubCategory).then(response => {
+        areaTreeByFacsCategory('W', this.facsSubCategory, false).then(response => {
           this.areaOptions = [{
             id: '-1',
             label: '全部',
@@ -645,7 +645,7 @@ export default {
           this.pgSupplyTodayList = response.rows
         })
       } else {
-        areaWithFacsCategoryAsTree('E', this.facsSubCategory).then(response => {
+        areaTreeByFacsCategory('E', this.facsSubCategory, false).then(response => {
           this.areaOptions = [{
             id: '-1',
             label: '全部',

+ 2 - 2
ems-ui-cloud/src/views/mgr/powerstore.vue

@@ -73,7 +73,7 @@
 
 <script>
 import {listElecStoreH, dayStatistics} from '@/api/mgr/elecStoreH'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import { areaTreeByFacsCategory } from '@/api/basecfg/area'
 import {dateFormat} from '@/utils/index.js'
 import dayjs from 'dayjs'
 import {DateTool} from '@/utils/DateTool'
@@ -299,7 +299,7 @@ export default {
   methods: {
     // 查询区域列表
     async getAreaList () {
-      await areaWithFacsCategoryAsTree(this.facsCategory, this.facsSubCategory).then(response => {
+      await areaTreeByFacsCategory(this.facsCategory, this.facsSubCategory, false).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 2 - 2
ems-ui-cloud/src/views/mgr/poweruse.vue

@@ -116,7 +116,7 @@
 import * as echarts from 'echarts/core';
 import {listHSum, sumByFacsH, sumBySubCategoryH, getPowerData, getPowerMaxLoad} from '@/api/mgr/elecUseH'
 import {getFacsCategorygetByCode} from '@/api/basecfg/emsfacs'
-import {areaWithFacsCategoryAsTree} from '@/api/basecfg/area'
+import {areaTreeByFacsCategory} from '@/api/basecfg/area'
 import {listAllFacs} from '@/api/basecfg/emsfacs'
 import dayjs from 'dayjs'
 import {DateTool} from '@/utils/DateTool'
@@ -757,7 +757,7 @@ export default {
       })
     },
     async getAreaTree (category, subCategory) {
-      await areaWithFacsCategoryAsTree(category, subCategory).then(response => {
+      await areaTreeByFacsCategory(category, subCategory, false).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 3 - 3
ems-ui-cloud/src/views/mgr/strategy.vue

@@ -425,7 +425,7 @@ export default {
   },
   created() {
     this.queryParams.strategyType = 1;
-    this.getAreaTree(false,'0')
+    this.getAreaTree('0', false)
     this.getList();
   },
   methods: {
@@ -718,8 +718,8 @@ export default {
       this.handleQuery()
     },
     /** 查询区域树结构 */
-    getAreaTree(recursion, areaCode) {
-      areaTreeSelect(recursion, areaCode).then(response => {
+    getAreaTree(areaCode, recursion) {
+      areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 0 - 23
ems-ui-cloud/src/views/task/ManualInspection.vue

@@ -233,7 +233,6 @@
 <script>
 import { listArea } from '@/api/basecfg/area';
 import { listFacs } from '@/api/basecfg/emsfacs';
-import { listZoning } from '@/api/basecfg/zoning';
 import {
   addInspectionTask, delInspectionTask, getInspectionTask, listInspectionTask, updateInspectionTask,
 } from '@/api/task/inspectionTask';
@@ -381,28 +380,6 @@ export default {
           }
           this.objOptions = result;
         },
-        [OBJ_TYPE.zone.value]: async (param = {}) => {
-          const {
-            key = '',
-            objCode = '',
-          } = param;
-          const { rows } = await listZoning({
-            pageNum: 1,
-            pageSize: 99,
-            zoningName: key,
-            zoningCode: objCode,
-          });
-          let result = [];
-          if (rows.length > 0) {
-            result = rows.map((item) => {
-              return {
-                value: item.zoningCode,
-                label: `${item.zoningName}(${item.areaPath},${item.usageDetail})`,
-              };
-            });
-          }
-          this.objOptions = result;
-        },
         [OBJ_TYPE.area.value]: async (param = {}) => {
           const {
             key = '',

+ 3 - 3
ems-ui-cloud/src/views/task/index.vue

@@ -50,12 +50,12 @@ export default {
     }
   },
   async created () {
-    await this.getAreaTreeByTag(false,'0')
+    await this.getAreaTreeByTag('0', false)
   },
   methods: {
     /** 查询区域树结构 */
-    async getAreaTreeByTag(recursion, areaCode) {
-      await areaTreeSelect(recursion, areaCode).then(response => {
+    async getAreaTreeByTag(areaCode, recursion) {
+      await areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',

+ 6 - 6
ems-ui-cloud/src/views/task/report/index.vue

@@ -135,11 +135,11 @@
 </template>
 
 <script>
-import {
-  addInspectionReport, delInspectionReport, getInspectionReport, listInspectionReport, updateInspectionReport,
-} from '@/api/task/inspectionReport';
+
+import {addInspectionReport, delInspectionReport, getInspectionReport, listInspectionReport, updateInspectionReport, } from '@/api/task/inspectionReport';
 import {Base64} from 'js-base64';
 import {areaTreeSelect} from '@/api/basecfg/area'
+
 export default {
   name: 'InspectionReport',
   dicts: ['inspection_result'],
@@ -202,7 +202,7 @@ export default {
     }
   },
  async created () {
-    await this.getAreaTreeByTag(false,'0')
+    await this.getAreaTreeSelect('0', false)
     this.getList();
   },
   methods: {
@@ -216,8 +216,8 @@ export default {
       });
     },
     /** 查询区域树结构 */
-    async getAreaTreeByTag(recursion, areaCode) {
-      await areaTreeSelect(recursion, areaCode).then(response => {
+    async getAreaTreeSelect(areaCode, recursion) {
+      await areaTreeSelect(areaCode, recursion).then(response => {
         this.areaOptions = [{
           id: '-1',
           label: '全部',