Bladeren bron

业务配置完善

lv.wenbin 1 jaar geleden
bovenliggende
commit
306f2854ee

+ 0 - 7
ems-ui/src/api/basecfg/elecvalency.js

@@ -50,10 +50,3 @@ export function delValency(id) {
     method: 'delete'
   })
 }
-
-export function getElecValencyType(){
-  return request({
-    url: '/ems/basecfg/elecvalency/type',
-    method: 'get'
-  })
-}

+ 8 - 0
ems-ui/src/api/basecfg/emsfacs.js

@@ -9,6 +9,14 @@ export function listFacs(query) {
   })
 }
 
+// 查询能源设施/系统列表
+export function listAllFacs(areaCode) {
+  return request({
+    url: '/ems/basecfg/emsfacs/listall?refArea=' + areaCode,
+    method: 'get'
+  })
+}
+
 // 查询能源设施/系统详细
 export function getFacs(id) {
   return request({

+ 8 - 0
ems-ui/src/api/basecfg/facstype.js

@@ -9,6 +9,14 @@ export function listType(query) {
   })
 }
 
+// 查询能源设施/系统分类列表
+export function listAllFacsType() {
+  return request({
+    url: '/ems/basecfg/facstype/listall',
+    method: 'get'
+  })
+}
+
 // 查询能源设施/系统分类详细
 export function getType(id) {
   return request({

+ 17 - 0
ems-ui/src/api/commonApi.js

@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+
+// 查询用电分类
+export function getElecValencyType(){
+  return request({
+    url: '/ems/common/elecvalency/type',
+    method: 'get'
+  })
+}
+
+// 查询能源分类树
+export function getEmsClsTree(){
+  return request({
+    url: '/ems/common/emscls/tree',
+    method: 'get'
+  })
+}

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

@@ -129,15 +129,15 @@
         <!-- 添加或修改建筑基本信息对话框 -->
         <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="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="areaCode">
-              <treeselect v-model="form.areaCode" :options="areaOptions" :show-count="true" placeholder="请选择归属园区" />
-            </el-form-item>
             <el-form-item label="详细地址" prop="address">
               <el-input v-model="form.address" placeholder="请输入详细地址" />
             </el-form-item>

+ 5 - 4
ems-ui/src/views/basecfg/electricity/index.vue

@@ -88,10 +88,10 @@
         <el-form-item label="低谷时段价格" prop="fsLowDegreePrice">
           <el-input v-model="valencyFrom.fsLowDegreePrice" placeholder="请输入分时低谷时段价格" />
         </el-form-item>
-        <el-form-item label="最大需量用电价格" prop="maxReqPrice">
+        <el-form-item label="最大需量用电价格" prop="maxReqPrice" v-if="valencyFrom.elecType === 4">
           <el-input v-model="valencyFrom.maxReqPrice" placeholder="请输入最大需量用电价格" />
         </el-form-item>
-        <el-form-item label="变压器容量用电价格" prop="transCapacityPrice">
+        <el-form-item label="变压器容量用电价格" prop="transCapacityPrice" v-if="valencyFrom.elecType === 4">
           <el-input v-model="valencyFrom.transCapacityPrice" placeholder="请输入变压器容量用电价格" />
         </el-form-item>
       </el-form>
@@ -162,7 +162,7 @@
         </el-form-item>
         <el-form-item label="价格策略" prop="priceCode" >
           <el-select v-model="attrForm.priceCode">
-            <el-option v-for="item in valencyOptions" :label="`${item.elecTypeName} - ${item.voltageLevel}`" :value="item.cfgCode" :key="item.cfgCode" />
+            <el-option v-for="item in valencyOptions" :label="`${item.elecTypeName}&lt;${item.voltageLevel}&gt;`" :value="item.cfgCode" :key="item.cfgCode" />
           </el-select>
         </el-form-item>
         <el-form-item label="容(需)量类型" prop="reqCapacityFlag">
@@ -187,7 +187,8 @@
 
 <script>
 import { listAttr, getAttr, delAttr, addAttr, updateAttr } from "@/api/basecfg/electricity";
-import { listValency, listValencyAll, getValency, addValency, delValency, updateValency, getElecValencyType } from '@/api/basecfg/elecvalency'
+import { listValency, listValencyAll, getValency, addValency, delValency, updateValency } from '@/api/basecfg/elecvalency'
+import { getElecValencyType } from '@/api/commonApi'
 import { areaTreeSelect } from "@/api/basecfg/area"
 
 export default {

+ 227 - 153
ems-ui/src/views/basecfg/emsfacs/index.vue

@@ -1,170 +1,194 @@
 <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="facsCode">
-        <el-input
-          v-model="queryParams.facsCode"
-          placeholder="请输入设施代码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="设施名称" prop="facsName">
-        <el-input
-          v-model="queryParams.facsName"
-          placeholder="请输入设施名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="归属区域" prop="refArea">
-        <el-input
-          v-model="queryParams.refArea"
-          placeholder="请输入归属区域"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="厂商" prop="manufacturer">
-        <el-input
-          v-model="queryParams.manufacturer"
-          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:emsfacs: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:emsfacs:edit']"
-        >修改</el-button>
+    <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="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['basecfg:emsfacs: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:emsfacs:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+      <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="facsName">
+            <el-input
+              v-model="queryParams.facsName"
+              placeholder="请输入设施名称"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="设施分类" prop="facsType">
+            <el-select v-model="queryParams.facsType" @change="handleFacsTypeChange">
+              <el-option v-for="item in facsTypeOptions" :label="item.name" :value="item.code" :key="item.code" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="设施子类" prop="facsSubtype">
+            <el-select v-model="queryParams.facsSubtype">
+              <el-option v-for="item in facsSubTypeOptions" :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-table v-loading="loading" :data="facsList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="归属区域" align="center" prop="refAreaName" />
-      <el-table-column label="设施代码" align="center" prop="facsCode" />
-      <el-table-column label="设施名称" align="center" prop="facsName" />
-      <el-table-column label="设施分类" align="center" prop="facsTypeName" />
-      <el-table-column label="设施子类" align="center" prop="facsSubtypeName" />
-      <el-table-column label="厂商" align="center" prop="manufacturer" />
-      <el-table-column label="启用状态" align="center" prop="enable" >
-        <template slot-scope="scope">
-          <!-- 根据status的值显示不同的文本 -->
-          <span>{{ scope.row.enable === 0 ? '未启用' : '启用' }}</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:emsfacs:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['basecfg:emsfacs:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+        <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:emsfacs: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:emsfacs: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:emsfacs:remove']"
+            >删除</el-button>
+          </el-col>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+
+        <el-table v-loading="loading" :data="facsList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="设施代码" align="center" prop="facsCode" />
+          <el-table-column label="设施名称" align="center" prop="facsName" />
+          <el-table-column label="设施分类" align="center" prop="facsTypeName" />
+          <el-table-column label="设施子类" align="center" prop="facsSubtypeName" />
+          <el-table-column label="厂商" align="center" prop="manufacturer" />
+          <el-table-column label="启用状态" align="center" prop="enable" >
+            <template slot-scope="scope">
+              <!-- 根据status的值显示不同的文本 -->
+              <span>{{ scope.row.enable === 0 ? '关闭' : '启用' }}</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:emsfacs:edit']"
+              >修改</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['basecfg:emsfacs: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="80px">
-        <el-form-item label="设施代码" prop="facsCode">
-          <el-input v-model="form.facsCode" placeholder="请输入设施代码" />
-        </el-form-item>
-        <el-form-item label="设施名称" prop="facsName">
-          <el-input v-model="form.facsName" placeholder="请输入设施名称" />
-        </el-form-item>
-        <el-form-item label="启用状态" prop="enable">
-          <el-input v-model="form.enable" placeholder="请输入启用状态" />
-        </el-form-item>
-        <el-form-item label="设施分类" prop="facsType">
-          <el-input v-model="form.facsType" placeholder="请输入设施分类" />
-        </el-form-item>
-        <el-form-item label="设施子类" prop="facsSubtype">
-          <el-input v-model="form.facsSubtype" placeholder="请输入设施子类" />
-        </el-form-item>
-        <el-form-item label="归属区域" prop="refArea">
-          <el-input v-model="form.refArea" placeholder="请输入归属区域" />
-        </el-form-item>
-        <el-form-item label="厂商" prop="manufacturer">
-          <el-input v-model="form.manufacturer" 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-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+          <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+            <el-form-item label="归属区域" prop="refArea">
+              <treeselect v-model="form.refArea" :options="areaOptions" :show-count="true" placeholder="请选择归属园区" />
+            </el-form-item>
+            <el-form-item label="设施代码" prop="facsCode">
+              <el-input v-model="form.facsCode" placeholder="请输入设施代码" />
+            </el-form-item>
+            <el-form-item label="设施名称" prop="facsName">
+              <el-input v-model="form.facsName" placeholder="请输入设施名称" />
+            </el-form-item>
+            <el-form-item label="设施分类" prop="facsType">
+              <el-select v-model="form.facsType" @change="handleFacsTypeChange">
+                <el-option v-for="item in facsTypeOptions" :label="item.name" :value="item.code" :key="item.code" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="设施子类" prop="facsSubtype">
+              <el-select v-model="form.facsSubtype">
+                <el-option v-for="item in facsSubTypeOptions" :label="item.name" :value="item.code" :key="item.code" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="启用状态" prop="enable">
+              <el-select v-model="form.enable">
+                <el-option v-for="item in enableOptions" :label="item.name" :value="item.code" :key="item.code" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="厂商" prop="manufacturer">
+              <el-input v-model="form.manufacturer" placeholder="请输入厂商" />
+            </el-form-item>
+            <el-form-item label="设施属性" prop="subtypeList">
+              <el-table v-loading="loading" :data="form.facsAttrs">
+                <el-table-column label="属性名称" align="center" prop="attrName" />
+                <el-table-column label="属性描述" align="center" prop="attrDesc" />
+                <el-table-column label="属性值" align="center" prop="attrValue" />
+                <el-table-column label="属性单位" align="center" prop="attrUnit" />
+              </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>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
 <script>
 import { listFacs, getFacs, delFacs, addFacs, updateFacs } from "@/api/basecfg/emsfacs";
+import { listAllFacsType } from "@/api/basecfg/facstype"
+import { areaTreeSelect } from '@/api/basecfg/area'
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "Facs",
+  components: { Treeselect },
   data() {
     return {
       // 遮罩层
@@ -185,6 +209,21 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      // 区域名称
+      areaName: undefined,
+      // 区域树选项
+      areaOptions: undefined,
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // 设施分类列表
+      facsTypeOptions: undefined,
+      facsSubTypeOptions: undefined,
+      enableOptions: [
+        { code: 0, name: "关闭"},
+        { code: 1, name: "启用"}
+      ],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -196,6 +235,7 @@ export default {
         enable: null,
         refArea: null,
         manufacturer: null,
+        facsAttrs: null
       },
       // 表单参数
       form: {},
@@ -221,6 +261,8 @@ export default {
   },
   created() {
     this.getList();
+    this.getAreaTree('Area');
+    this.getAllFacsType();
   },
   methods: {
     /** 查询能源设施/系统列表 */
@@ -283,6 +325,7 @@ export default {
         this.form = response.data;
         this.open = true;
         this.title = "修改能源设施/系统";
+        this.handleFacsTypeChange(response.data.facsType)
       });
     },
     /** 提交按钮 */
@@ -320,6 +363,37 @@ export default {
       this.download('ems/basecfg/emsfacs/export', {
         ...this.queryParams
       }, `facs_${new Date().getTime()}.xlsx`)
+    },
+    /** 查询区域树结构 */
+    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.refArea = data.id;
+      this.handleQuery();
+    },
+    /** 获取设施分类 **/
+    getAllFacsType() {
+      listAllFacsType().then(response =>{
+        this.facsTypeOptions = response.data;
+      })
+    },
+    handleFacsTypeChange(code) {
+      let obj = {};
+      this.facsTypeOptions.forEach(item => {
+        if (item.code && Array.isArray(item.subtypeList)) {
+          obj[item.code] = item.subtypeList;
+        }
+      })
+      this.facsSubTypeOptions = obj[code] || [];
     }
   }
 };

+ 19 - 37
ems-ui/src/views/basecfg/facstype/index.vue

@@ -1,36 +1,9 @@
 <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="code">
-        <el-input
-          v-model="queryParams.code"
-          placeholder="请输入设施系统代码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="系统名称" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入设施系统名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="数据版本" prop="version">
-        <el-input
-          v-model="queryParams.version"
-          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-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"/>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">设施大类</el-col>
+    </el-row>
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
@@ -69,8 +42,8 @@
 
     <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="设施系统代码" align="center" prop="code" />
-      <el-table-column label="设施系统名称" align="center" prop="name" />
+      <el-table-column label="系统代码" align="center" prop="code" />
+      <el-table-column label="系统名称" align="center" prop="name" />
       <el-table-column label="说明" align="center" prop="desc" />
       <el-table-column label="数据版本" align="center" prop="version" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -102,12 +75,12 @@
     />
 
     <!-- 添加或修改能源设施/系统分类对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="设施系统代码" prop="code">
+        <el-form-item label="系统代码" prop="code">
           <el-input v-model="form.code" placeholder="请输入设施系统代码" />
         </el-form-item>
-        <el-form-item label="设施系统名称" prop="name">
+        <el-form-item label="系统名称" prop="name">
           <el-input v-model="form.name" placeholder="请输入设施系统名称" />
         </el-form-item>
         <el-form-item label="说明" prop="desc">
@@ -116,6 +89,12 @@
         <el-form-item label="数据版本" prop="version">
           <el-input v-model="form.version" placeholder="请输入数据版本" />
         </el-form-item>
+        <el-form-item label="系统子类" prop="subtypeList">
+          <el-table v-loading="loading" :data="form.subtypeList">
+            <el-table-column label="子系统代码" align="center" prop="code" />
+            <el-table-column label="子系统名称" align="center" prop="name" />
+          </el-table>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -146,6 +125,8 @@ export default {
       total: 0,
       // 能源设施/系统分类表格数据
       typeList: [],
+      // 子类表格数据
+      subTypeList: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -157,7 +138,8 @@ export default {
         code: null,
         name: null,
         desc: null,
-        version: null
+        version: null,
+        subtypeList: null
       },
       // 表单参数
       form: {},

+ 59 - 31
ems-ui/src/views/basecfg/flowrel/index.vue

@@ -2,36 +2,23 @@
   <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="exportFacsCode">
-        <el-input
-          v-model="queryParams.exportFacsCode"
-          placeholder="请输入能源输出设施"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+        <el-select v-model="queryParams.areaCode" @change="getAllFacs" >
+          <el-option v-for="item in areaOptions" :label="item.label" :value="item.id" :key="item.id" />
+        </el-select>
       </el-form-item>
-      <el-form-item label="流入设施" prop="inputFacsCode">
-        <el-input
-          v-model="queryParams.inputFacsCode"
-          placeholder="请输入能源流入设施"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+
+      <el-form-item label="输出设施" prop="exportFacsCode">
+        <el-select v-model="queryParams.exportFacsCode" >
+          <el-option v-for="item in facsOptions" :label="item.facsName" :value="item.facsCode" :key="item.facsCode" />
+        </el-select>
       </el-form-item>
-      <el-form-item label="流动介质" prop="emsCls">
-        <el-input
-          v-model="queryParams.emsCls"
-          placeholder="请输入能源流动介质"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="流入设施" prop="inputFacsCode">
+        <el-select v-model="queryParams.inputFacsCode" >
+          <el-option v-for="item in facsOptions" :label="item.facsName" :value="item.facsCode" :key="item.facsCode" />
+        </el-select>
       </el-form-item>
-      <el-form-item label="供能状态" prop="state">
-        <el-input
-          v-model="queryParams.state"
-          placeholder="请输入供能状态"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="流动介质" prop="emsCls" label-width="68px">
+        <treeselect v-model="queryParams.emsCls" :options="emsClsOptions" :show-count="true" placeholder="请选择能源种类" />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -122,14 +109,23 @@
         <el-form-item label="编码" prop="code">
           <el-input v-model="form.code" placeholder="请输入编码" />
         </el-form-item>
+        <el-form-item label="所在园区" prop="areaCode">
+          <el-select v-model="form.areaCode" @change="getAllFacs" >
+            <el-option v-for="item in areaOptions" :label="item.label" :value="item.id" :key="item.id" />
+          </el-select>
+        </el-form-item>
         <el-form-item label="输出设施" prop="exportFacsCode">
-          <el-input v-model="form.exportFacsCode" placeholder="请输入能源输出设施" />
+          <el-select v-model="form.exportFacsCode" >
+            <el-option v-for="item in facsOptions" :label="item.facsName" :value="item.facsCode" :key="item.facsCode" />
+          </el-select>
         </el-form-item>
         <el-form-item label="流入设施" prop="inputFacsCode">
-          <el-input v-model="form.inputFacsCode" placeholder="请输入能源流入设施" />
+          <el-select v-model="form.inputFacsCode" >
+            <el-option v-for="item in facsOptions" :label="item.facsName" :value="item.facsCode" :key="item.facsCode" />
+          </el-select>
         </el-form-item>
         <el-form-item label="流动介质" prop="emsCls">
-          <el-input v-model="form.emsCls" placeholder="请输入能源流动介质" />
+          <treeselect v-model="form.emsCls" :options="emsClsOptions" :show-count="true" placeholder="请选择能源种类" />
         </el-form-item>
         <el-form-item label="供能状态" prop="state">
           <el-input v-model="form.state" placeholder="请输入供能状态" />
@@ -145,9 +141,14 @@
 
 <script>
 import { listRel, getRel, delRel, addRel, updateRel } from "@/api/basecfg/flowrel";
+import { areaTreeSelect } from "@/api/basecfg/area"
+import { listAllFacs } from "@/api/basecfg/emsfacs"
+import { getEmsClsTree } from "@/api/commonApi"
+import Treeselect from '@riophae/vue-treeselect'
 
 export default {
   name: "Rel",
+  components: { Treeselect },
   data() {
     return {
       // 遮罩层
@@ -168,6 +169,12 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      // 区域选项
+      areaOptions: undefined,
+      // 设施选项
+      facsOptions: undefined,
+      // 能源分类树
+      emsClsOptions: undefined,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -213,6 +220,9 @@ export default {
   },
   created() {
     this.getList();
+    this.getAreaTree("Area");
+    this.getAllFacs("");
+    this.getEmsCls();
   },
   methods: {
     /** 查询能源设施能流关系列表 */
@@ -265,6 +275,7 @@ export default {
       this.reset();
       this.open = true;
       this.title = "添加能源设施能流关系";
+      this.getAllFacs("");
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -275,6 +286,7 @@ export default {
         this.open = true;
         this.title = "修改能源设施能流关系";
       });
+      this.getAllFacs("");
     },
     /** 提交按钮 */
     submitForm() {
@@ -321,7 +333,23 @@ export default {
         4505: '自产自销'
       };
       return actionTypeMap[cellValue] || '未知';
-    }
+    },
+    getAreaTree(tier) {
+      areaTreeSelect(tier).then(response => {
+        this.areaOptions = response.data;
+      });
+    },
+    getAllFacs(id) {
+      listAllFacs(id).then(response =>{
+        this.facsOptions = response.data;
+      })
+    },
+    /** 查询能源树结构 */
+    getEmsCls() {
+      getEmsClsTree().then(response => {
+        this.emsClsOptions = response.data;
+      });
+    },
   }
 };
 </script>

+ 6 - 7
ems-ui/src/views/basecfg/zoning/index.vue

@@ -28,19 +28,18 @@
       </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-form-item label="房间号" prop="roomNo">
             <el-input
-              v-model="queryParams.zoningName"
-              placeholder="请输入区块名称"
+              v-model="queryParams.roomNo"
+              placeholder="请输入房间号"
               clearable
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
-
-          <el-form-item label="房间号" prop="roomNo">
+          <el-form-item label="区块名称" prop="zoningName">
             <el-input
-              v-model="queryParams.roomNo"
-              placeholder="请输入房间号"
+              v-model="queryParams.zoningName"
+              placeholder="请输入区块名称"
               clearable
               @keyup.enter.native="handleQuery"
             />