Sfoglia il codice sorgente

事件、能力、属性

hsshuxian 10 mesi fa
parent
commit
31870658bc

+ 490 - 4
ems-ui/src/views/basecfg/device/model.vue

@@ -84,7 +84,10 @@
           <el-button
             size="mini"
             type="text"
-          >特性</el-button>
+            icon="el-icon-info"
+            @click="handleDetail(scope.row)"
+           >
+            特性</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -106,17 +109,200 @@
         <el-form-item label="模型名称" prop="modelName">
           <el-input v-model="form.modelName" placeholder="请输入模型名称" />
         </el-form-item>
+        <el-form-item label="对象类型" prop="objType">
+          <el-input v-model="form.objType" 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-drawer :title=curRow.modelName size="80%" :visible.sync="showDrawer" direction="rtl" >
+      <div class="drawer-content" style="padding-left:50px" >
+        <el-tabs v-model="subKey" >
+          <el-tab-pane label="对象属性" name="attr">
+            <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="['ems:attr:add']">新增
+                </el-button>
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="attrList">
+              <el-table-column type="selection" width="55" align="center" />
+              <el-table-column label="序号" align="center" prop="id" />
+<!--              <el-table-column label="模型code" align="center" prop="modelCode" />-->
+              <el-table-column label="属性名称" align="center" prop="attrName" />
+              <el-table-column label="属性标识" align="center" prop="attrKey" />
+              <el-table-column label="属性值" align="center" prop="attrValue" />
+              <el-table-column label="属性单位" align="center" prop="attrUnit" />
+              <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="['ems:attr:edit']">
+                    修改</el-button>
+                  <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleAttrDelete(scope.row)" v-hasPermi="['ems:attr: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="模型code" prop="modelCode">-->
+<!--                  <el-input v-model="attrForm.modelCode" placeholder="请输入模型code" />-->
+<!--                </el-form-item>-->
+
+                <el-form-item label="属性名称" prop="attrName">
+                  <el-input v-model="attrForm.attrName" placeholder="请输入属性名称" />
+                </el-form-item>
+                <el-form-item label="属性标识" prop="attrKey">
+                  <el-input v-model="attrForm.attrKey" placeholder="请输入属性标识" />
+                </el-form-item>
+                <el-form-item label="属性值" prop="attrValue">
+                  <el-input v-model="attrForm.attrValue" type="textarea" placeholder="请输入内容" />
+                </el-form-item>
+                <el-form-item label="属性单位" prop="attrUnit">
+                  <el-input v-model="attrForm.attrUnit" 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-tab-pane>
+
+          <el-tab-pane label="对象事件" name="second">
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleEventAdd" v-hasPermi="['ems:event:add']">新增
+                </el-button>
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="eventList">
+              <el-table-column type="selection" width="55" align="center" />
+              <el-table-column label="序号" align="center" prop="id" />
+<!--              <el-table-column label="模型code" align="center" prop="modelCode" />-->
+              <el-table-column label="事件名称" align="center" prop="eventName" />
+              <el-table-column label="事件类型" align="center" prop="eventType" />
+<!--              <el-table-column label="事件名称" align="center" prop="eventKey" />-->
+<!--              <el-table-column label="事件名称" align="center" prop="eventDesc" />-->
+              <el-table-column label="事件代码" align="center" prop="eventCode" />
+              <el-table-column label="外系统事件代码" align="center" prop="extEventCode" />
+              <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="handleEventUpdate(scope.row)" v-hasPermi="['ems:event:edit']">
+                    修改</el-button>
+                  <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleEventDelete(scope.row)" v-hasPermi="['ems:event:remove']">
+                    删除</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <pagination v-show="total>0" :total="total" :page.sync="queryEventParams.pageNum" :limit.sync="queryEventParams.pageSize"
+                        @pagination="getEventList" />
+
+            <!-- 添加或修改事件对话框 -->
+            <el-dialog :title="title" :visible.sync="eventOpen" width="500px" append-to-body>
+              <el-form ref="eventForm" :model="eventForm" :rules="eventRules" label-width="80px">
+<!--                <el-form-item label="模型code" prop="modelCode">-->
+<!--                  <el-input v-model="eventForm.modelCode" placeholder="请输入模型code" />-->
+<!--                </el-form-item>-->
+<!--                <el-form-item label="事件名称" prop="eventKey">-->
+<!--                  <el-input v-model="eventForm.eventKey" placeholder="请输入事件名称" />-->
+<!--                </el-form-item>-->
+                <el-form-item label="事件名称" prop="eventName">
+                  <el-input v-model="eventForm.eventName" placeholder="请输入事件名称" />
+                </el-form-item>
+                <el-form-item label="事件类型" prop="eventType">
+                  <el-input v-model="eventForm.eventType" placeholder="请输入事件类型" />
+                </el-form-item>
+<!--                <el-form-item label="事件名称" prop="eventDesc">-->
+<!--                  <el-input v-model="eventForm.eventDesc" type="textarea" placeholder="请输入内容" />-->
+<!--                </el-form-item>-->
+                <el-form-item label="事件代码" prop="eventCode">
+                  <el-input v-model="eventForm.eventCode" placeholder="请输入事件代码" />
+                </el-form-item>
+                <el-form-item label="外系统事件代码" prop="extEventCode">
+                  <el-input v-model="eventForm.extEventCode" placeholder="请输入外系统事件代码" />
+                </el-form-item>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitEventForm">确 定</el-button>
+                <el-button @click="eventCancel">取 消</el-button>
+              </div>
+            </el-dialog>
+          </el-tab-pane>
+
+          <el-tab-pane label="对象能力" name="third">
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAbilityAdd" v-hasPermi="['ems:ability:add']">新增
+                </el-button>
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="abilityList">
+              <el-table-column type="selection" width="55" align="center" />
+              <el-table-column label="序号" align="center" prop="id" />
+<!--              <el-table-column label="模型code" align="center" prop="modelCode" />-->
+<!--              <el-table-column label="能力键" align="center" prop="abilityKey" />-->
+              <el-table-column label="能力名称" align="center" prop="abilityName" />
+              <el-table-column label="能力参数" align="center" prop="abilityParam" />
+              <el-table-column label="能力描述" align="center" prop="abilityDesc" />
+              <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="handleAbilityUpdate(scope.row)" v-hasPermi="['ems:ability:edit']">
+                    修改</el-button>
+                  <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleAbilityDelete(scope.row)" v-hasPermi="['ems:ability:remove']">
+                    删除</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <!-- 添加或修改能力对话框 -->
+            <el-dialog :title="title" :visible.sync="abilityOpen" width="500px" append-to-body>
+              <el-form ref="abilityForm" :model="abilityForm" :rules="abilityRules" label-width="80px">
+<!--                <el-form-item label="模型code" prop="modelCode">-->
+<!--                  <el-input v-model="abilityForm.modelCode" placeholder="请输入模型code" />-->
+<!--                </el-form-item>-->
+<!--                <el-form-item label="能力键" prop="abilityKey">-->
+<!--                  <el-input v-model="abilityForm.abilityKey" placeholder="请输入能力键" />-->
+<!--                </el-form-item>-->
+                <el-form-item label="能力名称" prop="abilityName">
+                  <el-input v-model="abilityForm.abilityName" placeholder="请输入能力名称" />
+                </el-form-item>
+                <el-form-item label="能力描述" prop="abilityDesc">
+                  <el-input v-model="abilityForm.abilityDesc" type="textarea" placeholder="请输入内容" />
+                </el-form-item>
+                <el-form-item label="能力参数" prop="abilityParam">
+                  <el-input v-model="abilityForm.abilityParam" type="textarea" placeholder="请输入内容" />
+                </el-form-item>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitAbilityForm">确 定</el-button>
+                <el-button @click="abilityCancel">取 消</el-button>
+              </div>
+            </el-dialog>
+          </el-tab-pane>
+
+        </el-tabs>
+      </div>
+    </el-drawer>
   </div>
 </template>
 
 <script>
-import { listModel, getModel, delModel, addModel, updateModel } from "@/api/basecfg/objModel";
+import {listModel, getModel, delModel, addModel, updateModel, getModelByCode} from "@/api/basecfg/objModel";
+import { listEvent, getEvent, delEvent, addEvent, updateEvent } from "@/api/basecfg/objEvent";
+import { listAttr, getAttr, delAttr, addAttr, updateAttr } from "@/api/basecfg/objAttribute";
+import { listAbility, getAbility, delAbility, addAbility, updateAbility } from "@/api/basecfg/objAbility";
+
 
 export default {
   name: "Model",
@@ -140,6 +326,9 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      eventOpen: false,
+      attrOpen: false,
+      abilityOpen: false,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -148,9 +337,26 @@ export default {
         modelName: null,
         objType: null
       },
+      // 查询参数
+      queryEventParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      queryAttrParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      queryAbilityParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      curRow: {},
       // 表单参数
       form: {},
-      // 表单校验
+      eventForm: {},
+      attrForm: {},
+      abilityForm: {},
+      //  表单校验
       rules: {
         modelCode: [
           { required: true, message: "模型code不能为空", trigger: "blur" }
@@ -161,13 +367,93 @@ export default {
         objType: [
           { required: true, message: "对象类型不能为空", trigger: "change" }
         ]
-      }
+      },
+      eventRules: {
+        modelCode: [
+          {required: true, message: "模型code不能为空", trigger: "blur"}
+        ],
+        eventKey: [
+          {required: true, message: "事件名称不能为空", trigger: "blur"}
+        ],
+        eventType: [
+          {required: true, message: "事件类型不能为空", trigger: "change"}
+        ],
+        eventName: [
+          {required: true, message: "事件名称不能为空", trigger: "blur"}
+        ],
+      },
+      attrRules: {
+        modelCode: [
+          {required: true, message: "模型code不能为空", trigger: "blur"}
+        ],
+        attrKey: [
+          {required: true, message: "属性标识不能为空", trigger: "blur"}
+        ],
+        attrName: [
+          {required: true, message: "属性名称不能为空", trigger: "blur"}
+        ],
+      },
+      abilityRules: {
+        modelCode: [
+          {required: true, message: "模型code不能为空", trigger: "blur"}
+        ],
+        abilityKey: [
+          {required: true, message: "能力键不能为空", trigger: "blur"}
+        ],
+        abilityName: [
+          {required: true, message: "能力名称不能为空", trigger: "blur"}
+        ],
+      },
+
+      // 能源对象事件表格数据
+      eventList: [],
+      // 能源对象属性表格数据
+      attrList: [],
+      // 能源对象能力表格数据
+      abilityList: [],
+
+      showDrawer: false,
+      subDialogShow: false,
+      // subTitle: '',
+      subKey: 'attr',
     };
   },
   created() {
     this.getList();
   },
   methods: {
+    // 设配详情
+    handleDetail(row) {
+      this.showDrawer = true
+      this.curRow = row
+      // this.subKey = this.$options.data().subKey
+      // console.log("this.subKey",this.subKey)
+      this.modelCode = row.modelCode; // 更新当前模型代码
+      console.log("模型代码",this.modelCode)
+      getModel(this.curRow.id).then(response => {
+        const data=response.data;
+        console.log("data",data);
+        this.attrList=data.attrList
+        this.eventList=data.eventList
+        this.abilityList=data.abilityList
+      })
+    },
+    /** 新增按钮操作 */
+    handleAttrAdd() {
+      this.attrReset();
+      this.attrOpen = true;
+      this.title = "添加能源对象属性";
+    },
+    handleEventAdd() {
+      this.eventReset();
+      this.eventOpen = true;
+      this.title = "添加能源对象事件";
+    },
+    handleAbilityAdd() {
+      this.abilityReset();
+      this.abilityOpen = true;
+      this.title = "添加能源对象事件";
+    },
     /** 查询能源对象属性列表 */
     getList() {
       this.loading = true;
@@ -177,6 +463,206 @@ export default {
         this.loading = false;
       });
     },
+    /** 查询能源对象事件列表 */
+    getEventList() {
+      console.log("对象事件!!!!")
+      this.loading = true;
+      listEvent(this.queryEventParams).then(response => {
+        this.eventList = response.rows;
+        this.total = this.eventList.length; // 更新总数为过滤后的总数
+        this.loading = false;
+      });
+    },
+    /** 查询能源对象属性列表 */
+    getAttrList() {
+      this.loading = true;
+      console.log("对象属性!!!!")
+      listAttr(this.queryAttrParams).then(response => {
+        this.attrList = response.rows;
+        console.log("对象属性", this.attrList)
+        this.total = this.attrList.length; // 更新总数为过滤后的总数
+        this.loading = false;
+      });
+    },
+    /** 查询能源对象能力列表 */
+    getAbilityList() {
+      this.loading = true;
+      console.log("对象能力!!!!")
+      listAbility(this.queryAbilityParams).then(response => {
+        this.abilityList = response.rows;;
+        this.total = this.abilityList.length; // 更新总数为过滤后的总数
+        this.loading = false;
+      });
+    },
+
+    // 表单重置
+    attrReset() {
+      this.attrForm = {
+        id: null,
+        modelCode: null,
+        attrKey: null,
+        attrName: null,
+        attrValue: null,
+        attrUnit: null
+      };
+      this.resetForm("attrForm");
+    },
+    eventReset() {
+      this.eventForm = {
+        id: null,
+        modelCode: null,
+        eventKey: null,
+        eventType: null,
+        eventName: null,
+        eventDesc: null,
+        eventCode: null,
+        extEventCode: null
+      };
+      this.resetForm("eventForm");
+    },
+    abilityReset() {
+      this.abilityForm = {
+        id: null,
+        modelCode: null,
+        abilityKey: null,
+        abilityName: null,
+        abilityDesc: null,
+        abilityParam: null
+      };
+      this.resetForm("abilityForm");
+    },
+
+    /** 修改按钮操作 */
+    handleAttrUpdate(row) {
+      this.attrReset();
+      const id = row.id || this.ids
+      getAttr(id).then(response => {
+        this.attrForm = response.data;
+        this.attrOpen = true;
+        this.title = "修改能源对象属性";
+      });
+    },
+    handleEventUpdate(row) {
+      this.eventReset();
+      const id = row.id || this.ids
+      getEvent(id).then(response => {
+        this.eventForm = response.data;
+        this.eventOpen = true;
+        this.title = "修改能源对象事件";
+      });
+    },
+    handleAbilityUpdate(row) {
+      this.abilityReset();
+      const id = row.id || this.ids
+      getAbility(id).then(response => {
+        this.abilityForm = response.data;
+        this.abilityOpen = true;
+        this.title = "修改能源对象能力";
+      });
+    },
+
+    /** 删除按钮操作 */
+    handleAttrDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除能源对象属性编号为"' + ids + '"的数据项?').then(function() {
+        return delAttr(ids);
+      }).then(() => {
+        this.getAttrList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    handleEventDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除能源对象事件编号为"' + ids + '"的数据项?').then(function() {
+        return delEvent(ids);
+      }).then(() => {
+        this.getEventList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    handleAbilityDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除能源对象能力编号为"' + ids + '"的数据项?').then(function() {
+        return delAbility(ids);
+      }).then(() => {
+        this.getAbilityList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+
+    /** 提交按钮 */
+    submitAttrForm() {
+      this.$refs["attrForm"].validate(valid => {
+        if (valid) {
+          if (this.attrForm.id != null) {
+            updateAttr(this.attrForm).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.attrOpen = false;
+              this.getAttrList();
+            });
+          } else {
+            addAttr(this.attrForm).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.attrOpen = false;
+              this.getAttrList();
+            });
+          }
+        }
+      });
+    },
+    submitEventForm() {
+      this.$refs["eventForm"].validate(valid => {
+        if (valid) {
+          if (this.eventForm.id != null) {
+            updateEvent(this.eventForm).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.eventOpen = false;
+              this.getEventList();
+            });
+          } else {
+            addEvent(this.eventForm).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.eventOpen = false;
+              this.getEventList();
+            });
+          }
+        }
+      });
+    },
+    submitAbilityForm() {
+      this.$refs["abilityForm"].validate(valid => {
+        if (valid) {
+          if (this.abilityForm.id != null) {
+            updateAbility(this.abilityForm).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.abilityOpen =false;
+              this.getAbilityList();
+            });
+          } else {
+            addAbility(this.abilityForm).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.abilityOpen = false;
+              this.getAbilityList();
+            });
+          }
+        }
+      });
+    },
+    // 取消按钮
+    attrCancel() {
+      this.attrOpen = false;
+      this.attrReset();
+    },
+    eventCancel() {
+      this.eventOpen = false;
+      this.eventReset();
+    },
+    // 取消按钮
+    abilityCancel() {
+      this.abilityOpen = false;
+      this.abilityReset();
+    },
+
     // 取消按钮
     cancel() {
       this.open = false;

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

@@ -475,11 +475,11 @@ export default {
       if (objType === 1) {
         areaTreeSelectByCode('Area', this.form.areaCode).then(response => {
           this.objCodeOptions = response.data
-          console.log("objcodeOPtion!!!",this.objCodeOptions)
         })
       } else if (objType === 2) {
         devTreeByFacs(this.form.areaCode).then(response => {
           this.objCodeOptions = response.data
+          console.log("计量对象",this.objCodeOptions)
         })
       }
     }

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

@@ -238,9 +238,9 @@
               </el-select>
             </el-form-item>
             <el-form-item label="执行说明" required :rules="[{required:true,message:'请选择执行说明'}]" prop="repeatParam"
-              v-if="[1,5,6].includes(strategyForm.repeatType)">
+                          v-if="[1,5,6].includes(strategyForm.repeatType)">
               <el-time-picker v-if="strategyForm.repeatType==1" v-model="strategyForm.repeatParam" value-format="HH:mm:ss"
-                :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
+                              :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
               </el-time-picker>
               <el-checkbox-group v-else-if="strategyForm.repeatType==5" v-model="strategyForm.repeatParam">
                 <el-checkbox v-for="day in weeks.filter(item=>item.value<6)"  :label="day.value" :key="day.value">
@@ -261,14 +261,14 @@
                 <el-table-column label="开始时刻" align="center" prop="startTime">
                   <template slot-scope="scope">
                     <el-time-picker v-model="scope.row.startTime" size="mini" value-format="HH:mm:ss"
-                      :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
+                                    :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
                     </el-time-picker>
                   </template>
                 </el-table-column>
                 <el-table-column label="结束时刻" align="center" prop="endTime">
                   <template slot-scope="scope">
                     <el-time-picker v-model="scope.row.endTime" size="mini" value-format="HH:mm:ss"
-                      :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
+                                    :picker-options="{selectableRange: '00:00:00 - 23:59:59'}" placeholder="选择时间">
                     </el-time-picker>
                   </template>
                 </el-table-column>