Forráskód Böngészése

配电设施管理

lv.wenbin 11 hónapja
szülő
commit
6aa96de39f

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

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询动力柜电器设备类型列表
+export function listElecEqptType(query) {
+  return request({
+    url: '/ems/elecEqpt/type/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询动力柜电器设备类型详细
+export function getElecEqptType(id) {
+  return request({
+    url: '/ems/elecEqpt/type/' + id,
+    method: 'get'
+  })
+}
+
+// 新增动力柜电器设备类型
+export function addElecEqptType(data) {
+  return request({
+    url: '/ems/elecEqpt/type',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改动力柜电器设备类型
+export function updateElecEqptType(data) {
+  return request({
+    url: '/ems/elecEqpt/type',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除动力柜电器设备类型
+export function delElecEqptType(id) {
+  return request({
+    url: '/ems/elecEqpt/type/' + id,
+    method: 'delete'
+  })
+}

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

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询光伏电价配置列表
+export function listPvPriceConfig(query) {
+  return request({
+    url: '/ems/basecfg/pvprice/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询光伏电价配置详细
+export function getPvPriceConfig(id) {
+  return request({
+    url: '/ems/basecfg/pvprice/' + id,
+    method: 'get'
+  })
+}
+
+// 新增光伏电价配置
+export function addPvPriceConfig(data) {
+  return request({
+    url: '/ems/basecfg/pvprice',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改光伏电价配置
+export function updatePvPriceConfig(data) {
+  return request({
+    url: '/ems/basecfg/pvprice',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除光伏电价配置
+export function delPvPriceConfig(id) {
+  return request({
+    url: '/ems/basecfg/pvprice/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ems-ui/src/api/device/powerBoxElecEqpt.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询动力箱柜电气设备列表
+export function listPowerBoxElecEqpt(query) {
+  return request({
+    url: '/ems/powerBox/elecEqpt/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询动力箱柜电气设备详细
+export function getPowerBoxElecEqpt(id) {
+  return request({
+    url: '/ems/powerBox/elecEqpt/' + id,
+    method: 'get'
+  })
+}
+
+// 新增动力箱柜电气设备
+export function addPowerBoxElecEqpt(data) {
+  return request({
+    url: '/ems/powerBox/elecEqpt',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改动力箱柜电气设备
+export function updatePowerBoxElecEqpt(data) {
+  return request({
+    url: '/ems/powerBox/elecEqpt',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除动力箱柜电气设备
+export function delPowerBoxElecEqpt(id) {
+  return request({
+    url: '/ems/powerBox/elecEqpt/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ems-ui/src/api/device/powerbox.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询动力箱柜列表
+export function listPowerBox(query) {
+  return request({
+    url: '/ems/powerBox/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询动力箱柜详细
+export function getPowerBox(id) {
+  return request({
+    url: '/ems/powerBox/' + id,
+    method: 'get'
+  })
+}
+
+// 新增动力箱柜
+export function addPowerBox(data) {
+  return request({
+    url: '/ems/powerBox',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改动力箱柜
+export function updatePowerBox(data) {
+  return request({
+    url: '/ems/powerBox',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除动力箱柜
+export function delPowerBox(id) {
+  return request({
+    url: '/ems/powerBox/' + id,
+    method: 'delete'
+  })
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
ems-ui/src/assets/icons/svg/econsumption.svg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
ems-ui/src/assets/icons/svg/foodwaste.svg


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
ems-ui/src/assets/icons/svg/illumination.svg


+ 1 - 0
ems-ui/src/assets/icons/svg/powerdist.svg

@@ -0,0 +1 @@
+<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M768 42.666667H256C209.066667 42.666667 170.666667 81.066667 170.666667 128v682.666667c0 46.933333 38.4 85.333333 85.333333 85.333333v42.666667c0 23.466667 19.2 42.666667 42.666667 42.666666h85.333333c23.466667 0 42.666667-19.2 42.666667-42.666666v-42.666667h170.666666v42.666667c0 23.466667 19.2 42.666667 42.666667 42.666666h85.333333c23.466667 0 42.666667-19.2 42.666667-42.666666v-42.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V128c0-46.933333-38.4-85.333333-85.333333-85.333333zM309.333333 170.666667h405.333334c17.066667 0 32 14.933333 32 32s-14.933333 32-32 32h-405.333334c-17.066667 0-32-14.933333-32-32S292.266667 170.666667 309.333333 170.666667z m0 554.666666c17.066667 0 32 14.933333 32 32s-14.933333 32-32 32-32-14.933333-32-32 14.933333-32 32-32z m106.666667 64c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m106.666667 0c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m-42.666667-115.2c-8.533333 12.8-25.6 8.533333-23.466667-6.4L469.333333 512h-72.533333c-14.933333 0-23.466667-17.066667-12.8-29.866667l136.533333-172.8c8.533333-12.8 25.6-8.533333 23.466667 6.4l-14.933333 155.733334h72.533333c14.933333 0 23.466667 17.066667 12.8 29.866666l-134.4 172.8z" p-id="4285"></path></svg>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
ems-ui/src/assets/icons/svg/sponge.svg


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

@@ -1,6 +1,11 @@
 <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="meterCls">
+        <el-select v-model="queryParams.meterCls" >
+          <el-option v-for="item in emsClsOptions" :label="item.name" :value="item.code" :key="item.code" />
+        </el-select>
+      </el-form-item>
       <el-form-item label="服务区" prop="areaCode" >
         <el-select v-model="queryParams.areaCode" @change="handleAreaSelect">
           <el-option v-for="item in areaOptions" :label="item.areaName" :value="item.areaCode" :key="item.areaCode" />
@@ -14,11 +19,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="计量介质" prop="meterCls">
-        <el-select v-model="queryParams.meterCls" >
-          <el-option v-for="item in emsClsOptions" :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>

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

@@ -0,0 +1,335 @@
+<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="['ems:box:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['ems: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="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="箱柜代码" prop="boxCode">
+          <el-input v-model="form.boxCode" placeholder="请输入箱柜代码" />
+        </el-form-item>
+        <el-form-item label="箱柜类型" prop="boxType">
+          <el-select v-model="form.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 label="所在服务区" prop="areaCode">
+          <el-select v-model="form.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="location">
+          <el-input v-model="form.location" placeholder="请输入安装位置" />
+        </el-form-item>
+        <el-form-item label="箱体尺寸" prop="boxSize">
+          <el-input v-model="form.boxSize" placeholder="请输入箱体尺寸" />
+        </el-form-item>
+        <el-form-item label="网关地址" prop="gatewayAddr">
+          <el-input v-model="form.gatewayAddr" placeholder="请输入网关地址" />
+        </el-form-item>
+        <el-form-item label="网关端口" prop="gatewayPort">
+          <el-input v-model="form.gatewayPort" placeholder="请输入网关端口" />
+        </el-form-item>
+        <el-form-item label="电气元件" prop="elecEqptList">
+          <el-table v-loading="loading" :data="form.elecEqptList">
+            <el-table-column label="元件编码" align="center" prop="eqptCode" />
+            <el-table-column label="外系统编码" align="center" prop="extEqptCode" />
+            <el-table-column label="元件类型" align="center" prop="eqptName" />
+            <el-table-column label="元件型号" align="center" prop="eqptSpec" />
+            <el-table-column label="额定电压" align="center" prop="ratedVoltage" />
+            <el-table-column label="额定电流" align="center" prop="ratedCurrent" />
+            <el-table-column label="上游元件" align="center" prop="parentEqpt" />
+            <el-table-column label="计量设备" align="center" prop="meterDevice" />
+          </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'
+
+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: {},
+      // 表单校验
+      rules: {
+        boxCode: [
+          { required: true, message: "箱柜代码不能为空", trigger: "blur" }
+        ],
+        boxType: [
+          { required: true, message: "箱体类型不能为空", trigger: "change" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getAreaOptions();
+    this.getList();
+  },
+  methods: {
+    /** 查询动力箱柜列表 */
+    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 = {
+        id: null,
+        boxCode: null,
+        boxType: null,
+        areaCode: null,
+        location: null,
+        boxSize: null,
+        gatewayAddr: null,
+        gatewayPort: null,
+        elecEqptList: 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.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) {
+          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>

+ 225 - 68
ems-ui/src/views/basecfg/electricity/index.vue → ems-ui/src/views/basecfg/price/index.vue

@@ -1,6 +1,91 @@
 <template>
   <div class="app-container">
     <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
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAttrAdd"
+          v-hasPermi="['basecfg:price:add']"
+        >新增</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getAttrList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="attrList" >
+      <el-table-column label="服务区" align="center" prop="areaName" />
+      <el-table-column label="用电分类" align="center" prop="elecTypeName" />
+      <el-table-column label="电压等级" align="center" prop="voltageLevel" />
+      <el-table-column label="容(需)量策略" align="center">
+      <el-table-column label="容(需)量类型" align="center" prop="reqCapacityFlag" :formatter="matchReqCapacityFlag" />
+      <el-table-column label="变压器容量(千伏·安)" align="center" prop="transCapacity" />
+      <el-table-column label="最大需量(千瓦)" align="center" prop="reqQuantity" />
+      </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="handleAttrUpdate(scope.row)"
+            v-hasPermi="['basecfg:price:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleAttrDelete(scope.row)"
+            v-hasPermi="['basecfg:price:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryAttrParams.pageNum"
+      :limit.sync="queryAttrParams.pageSize"
+      @pagination="getAttrList"
+    />
+    <!-- 添加或修改服务区用电属性对话框 -->
+    <el-dialog :title="title" :visible.sync="attrOpen" width="500px" append-to-body>
+      <el-form ref="attrForm" :model="attrForm" :rules="attrRules" label-width="150px">
+        <el-form-item label="园区" prop="areaCode">
+          <el-select v-model="attrForm.areaCode">
+            <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="priceCode" >
+          <el-select v-model="attrForm.priceCode">
+            <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">
+          <el-select v-model="attrForm.reqCapacityFlag">
+            <el-option v-for="item in reqCapacityOptions" :label="item.name" :value="item.code" :key="item.code" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="变压器容量(kVA/月)" prop="transCapacity" v-if="attrForm.reqCapacityFlag === 1">
+          <el-input v-model="attrForm.transCapacity" placeholder="请输入变压器容量" />
+        </el-form-item>
+        <el-form-item label="最大需量(kW·h/月)" prop="reqQuantity" v-if="attrForm.reqCapacityFlag === 2">
+          <el-input v-model="attrForm.reqQuantity" placeholder="请输入最大需量" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitAttrForm">确 定</el-button>
+        <el-button @click="attrCancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 国网电价配置 -->
+    <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">国网电价</el-col>
     </el-row>
     <el-row :gutter="10" class="mb8">
@@ -11,7 +96,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleValencyAdd"
-          v-hasPermi="['basecfg:electricity:add']"
+          v-hasPermi="['basecfg:price:add']"
         >新增</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getValencyList"></right-toolbar>
@@ -38,14 +123,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleValencyUpdate(scope.row)"
-            v-hasPermi="['basecfg:electricity:edit']"
+            v-hasPermi="['basecfg:price:edit']"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleValencyDelete(scope.row)"
-            v-hasPermi="['basecfg:electricity:remove']"
+            v-hasPermi="['basecfg:price:remove']"
           >删除</el-button>
         </template>
       </el-table-column>
@@ -54,8 +139,8 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryValencyParams.pageNum"
+      :limit.sync="queryValencyParams.pageSize"
       @pagination="getValencyList"
     />
 
@@ -101,8 +186,9 @@
       </div>
     </el-dialog>
 
+    <!-- 光伏电价配置 -->
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">价格策略</el-col>
+      <el-col :span="1.5">光伏电价</el-col>
     </el-row>
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -111,75 +197,53 @@
           plain
           icon="el-icon-plus"
           size="mini"
-          @click="handleAttrAdd"
-          v-hasPermi="['basecfg:electricity:add']"
+          @click="handlePvPriceAdd"
+          v-hasPermi="['basecfg:price:add']"
         >新增</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getAttrList"></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getPvPriceList"></right-toolbar>
     </el-row>
-
-    <el-table v-loading="loading" :data="attrList" >
-      <el-table-column label="服务区" align="center" prop="areaName" />
-      <el-table-column label="用电分类" align="center" prop="elecTypeName" />
-      <el-table-column label="电压等级" align="center" prop="voltageLevel" />
-      <el-table-column label="容(需)量类型" align="center" prop="reqCapacityFlag" :formatter="matchReqCapacityFlag" />
-      <el-table-column label="变压器容量(千伏·安)" align="center" prop="transCapacity" />
-      <el-table-column label="最大需量(千瓦)" align="center" prop="reqQuantity" />
+    <el-table v-loading="loading" :data="pvPriceList" >
+      <el-table-column label="价格名称" align="center" prop="priceName" />
+      <el-table-column label="用户电价/脱硫煤电价" align="center" prop="objPrice" />
+      <el-table-column label="国家补贴" align="center" prop="stateSubsidy" />
+      <el-table-column label="地方补贴" align="center" prop="localSubsidy" />
       <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="handleAttrUpdate(scope.row)"
-            v-hasPermi="['basecfg:electricity:edit']"
+            @click="handlePvPriceUpdate(scope.row)"
+            v-hasPermi="['basecfg:price:edit']"
           >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleAttrDelete(scope.row)"
-            v-hasPermi="['basecfg:electricity: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="getAttrList"
-    />
-    <!-- 添加或修改服务区用电属性对话框 -->
-    <el-dialog :title="title" :visible.sync="attrOpen" width="500px" append-to-body>
-      <el-form ref="attrForm" :model="attrForm" :rules="attrRules" label-width="150px">
-        <el-form-item label="园区" prop="areaCode">
-          <el-select v-model="attrForm.areaCode">
-            <el-option v-for="item in areaOptions" :label="item.label" :value="item.id" :key="item.id" />
-          </el-select>
+    <!-- 添加或修改电价配置对话框 -->
+    <el-dialog :title="title" :visible.sync="pvPriceOpen" width="500px" append-to-body>
+      <el-form ref="pvPriceFrom" :model="pvPriceFrom" :rules="pvPriceRules" label-width="150px">
+        <el-form-item label="配置代码" prop="cfgCode">
+          <el-input v-model="pvPriceFrom.cfgCode"  placeholder="请输入配置代码" />
         </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}&lt;${item.voltageLevel}&gt;`" :value="item.cfgCode" :key="item.cfgCode" />
-          </el-select>
+        <el-form-item label="价格名称" prop="priceName">
+          <el-input v-model="pvPriceFrom.priceName"  placeholder="请输入价格名称" />
         </el-form-item>
-        <el-form-item label="容(需)量类型" prop="reqCapacityFlag">
-          <el-select v-model="attrForm.reqCapacityFlag">
-            <el-option v-for="item in reqCapacityOptions" :label="item.name" :value="item.code" :key="item.code" />
-          </el-select>
+        <el-form-item label="用户/脱硫煤电价" prop="objPrice">
+          <el-input v-model="pvPriceFrom.objPrice" placeholder="请输入价格" />
         </el-form-item>
-        <el-form-item label="变压器容量(kVA/月)" prop="transCapacity" v-if="attrForm.reqCapacityFlag === 1">
-          <el-input v-model="attrForm.transCapacity" placeholder="请输入变压器容量" />
+        <el-form-item label="国家补贴" prop="stateSubsidy">
+          <el-input v-model="pvPriceFrom.stateSubsidy" placeholder="请输入国家补贴" />
         </el-form-item>
-        <el-form-item label="最大需量(kW·h/月)" prop="reqQuantity" v-if="attrForm.reqCapacityFlag === 2">
-          <el-input v-model="attrForm.reqQuantity" placeholder="请输入最大需量" />
+        <el-form-item label="地方补贴" prop="localSubsidy">
+          <el-input v-model="pvPriceFrom.localSubsidy" placeholder="请输入国家补贴" />
         </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitAttrForm">确 定</el-button>
-        <el-button @click="attrCancel">取 消</el-button>
+        <el-button type="primary" @click="submitPvPriceForm">确 定</el-button>
+        <el-button @click="pvPriceCancel">取 消</el-button>
       </div>
     </el-dialog>
   </div>
@@ -188,6 +252,13 @@
 <script>
 import { listAttr, getAttr, delAttr, addAttr, updateAttr } from "@/api/basecfg/electricity";
 import { listValency, listValencyAll, getValency, addValency, delValency, updateValency } from '@/api/basecfg/elecvalency'
+import {
+  addPvPriceConfig,
+  delPvPriceConfig,
+  getPvPriceConfig,
+  listPvPriceConfig,
+  updatePvPriceConfig
+} from '@/api/basecfg/pvprice'
 import { getElecValencyType } from '@/api/commonApi'
 import { areaTreeSelect } from "@/api/basecfg/area"
 
@@ -211,29 +282,35 @@ export default {
       attrList: [],
       // 电价表格
       valencyList: [],
+      // 光伏电价
+      pvPriceList: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
       attrOpen: false,
       valencyOpen: false,
+      pvPriceOpen: false,
       // 选项定义
       valencyTypeOptions: undefined,
       areaOptions: undefined,
       valencyOptions: undefined,
       // 查询参数
-      queryParams: {
+      queryValencyParams: {
         pageNum: 1,
-        pageSize: 10,
-        areaCode: null,
-        elecType: null,
-        priceCode: null,
-        reqCapacityFlag: null,
-        transCapacity: null,
-        reqQuantity: null,
+        pageSize: 10
+      },
+      queryAttrParams: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      queryPvPriceParams: {
+        pageNum: 1,
+        pageSize: 10
       },
       // 表单参数
       attrForm: {},
-      valencyFrom:{},
+      valencyFrom: {},
+      pvPriceFrom: {},
       // 表单校验
       valencyRules: {
         cfgCode: [
@@ -246,7 +323,6 @@ export default {
           { required: true, message: "电压等级不为空", trigger: "blur" }
         ]
       },
-
       // 表单校验
       attrRules: {
         areaCode: [
@@ -259,6 +335,15 @@ export default {
           { required: true, message: "价格编码不能为空", trigger: "blur" }
         ],
       },
+      // 表单校验
+      pvPriceRules: {
+        cfgCode: [
+          { required: true, message: "配置代码不为空", trigger: "blur" }
+        ],
+        priceName: [
+          { required: true, message: "价格名称不为空", trigger: "blur" }
+        ]
+      },
       reqCapacityOptions: [
         { code: 0, name: "不涉及"},
         { code: 1, name: "容量电价"},
@@ -269,12 +354,13 @@ export default {
   created() {
     this.getAttrList();
     this.getValencyList();
+    this.getPvPriceList();
     this.getValencyType();
   },
   methods: {
     getValencyList() {
       this.loading = true;
-      listValency(this.queryParams).then(response => {
+      listValency(this.queryValencyParams).then(response => {
         this.valencyList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -351,7 +437,7 @@ export default {
     /** 查询服务区用电属性列表 */
     getAttrList() {
       this.loading = true;
-      listAttr(this.queryParams).then(response => {
+      listAttr(this.queryAttrParams).then(response => {
         this.attrList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -379,11 +465,11 @@ export default {
     },
     /** 搜索按钮操作 */
     handleAttrQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryAttrParams.pageNum = 1;
       this.getAttrList();
     },
     handleValencyQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryValencyParams.pageNum = 1;
       this.getValencyList();
     },
     /** 重置按钮操作 */
@@ -441,6 +527,77 @@ export default {
         this.$modal.msgSuccess("删除成功");
       }).catch(() => {});
     },
+    getPvPriceList() {
+      this.loading = true;
+      listPvPriceConfig(this.queryPvPriceParams).then(response => {
+        this.pvPriceList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    pvPriceCancel() {
+      this.pvPriceOpen = false;
+      this.pvPriceReset();
+    },
+    // 表单重置
+    pvPriceReset() {
+      this.pvPriceFrom = {
+        id: null,
+        cfgCode: null,
+        priceName: null,
+        objPrice: null,
+        stateSubsidy: null,
+        localSubsidy: null
+      };
+      this.resetForm("pvPriceFrom");
+    },
+    /** 新增按钮操作 */
+    handlePvPriceAdd() {
+      this.pvPriceReset();
+      this.pvPriceOpen = true;
+      this.title = "添加光伏电价配置";
+    },
+    /** 修改按钮操作 */
+    handlePvPriceUpdate(row) {
+      this.pvPriceReset();
+      const id = row.id || this.ids
+      getPvPriceConfig(id).then(response => {
+        this.pvPriceFrom = response.data;
+        this.pvPriceOpen = true;
+        this.title = "修改光伏电价配置";
+      });
+    },
+    /** 提交按钮 */
+    submitPvPriceForm() {
+      this.$refs["pvPriceFrom"].validate(valid => {
+        if (valid) {
+          if (this.pvPriceFrom.id != null) {
+            updatePvPriceConfig(this.pvPriceFrom).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.pvPriceOpen = false;
+              this.getPvPriceList();
+            });
+          } else {
+            addPvPriceConfig(this.pvPriceFrom).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.pvPriceOpen = false;
+              this.getPvPriceList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handlePvPriceDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除电价配置编号为"' + ids + '"的数据项?').then(function() {
+        return delPvPriceConfig(ids);
+      }).then(() => {
+        this.getPvPriceList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
     matchReqCapacityFlag(row, column, cellValue, index) {
       const reqCapacityFlagMap = {
         0: '不涉及',

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott