coys преди 1 година
родител
ревизия
5ae89024f4

+ 3 - 3
.env.development

@@ -6,7 +6,7 @@ ENV = 'development'
 
 # 开发环境
 #测试地址
-# VUE_APP_BASE_API = 'http://47.92.229.224:8080'
+VUE_APP_BASE_API = 'http://47.92.229.224:8080'
 #罗俊
 #VUE_APP_BASE_API = 'http://10.87.21.60:8080'
 #罗伟
@@ -19,8 +19,8 @@ ENV = 'development'
 # 55环境
 # VUE_APP_BASE_API = 'http://10.87.23.62:8080'
 #  VUE_APP_BASE_API = 'http://localhost:8080'
-# 开发环境
-VUE_APP_BASE_API = 'http://10.87.21.107:8080'
+# 开发环境v
+# VUE_APP_BASE_API = 'http://10.87.21.107:8080'
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 

+ 1 - 6
src/views/videoRecorder/index.vue

@@ -148,12 +148,7 @@
                 </span>
               </template> -->
             </el-table-column>
-            <el-table-column
-              label="硬盘总数"
-              align="center"
-              prop="ypzs"
-              
-            >
+            <el-table-column label="硬盘总数" align="center" prop="ypzs">
               <!-- <template slot-scope="scope">
                 {{ scope.row.planStartTime }}~{{ scope.row.planEndTime }}
               </template> -->

+ 117 - 0
src/views/warnRule/addDialogCom.vue

@@ -0,0 +1,117 @@
+<template>
+  <div>
+    <el-form-item label="使用作息时间" prop="taskName">
+      <el-switch v-model="formData.taskName"> </el-switch>
+    </el-form-item>
+    <el-form-item label="时间模板" prop="taskName">
+      <el-select
+        v-model="formData.taskName"
+        clearable
+        label="规则类型"
+        placeholder="请选择规则类型"
+        prop="orgType"
+      >
+        <el-option
+          v-for="item in dict.type.core_check_type"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value"
+        >
+        </el-option>
+      </el-select>
+    </el-form-item>
+    <div><el-button type="primary" size="medium">新增规则</el-button></div>
+    <div v-for="(item, index) in tableList" :key="item" class="ruleDiv">
+      <div class="sonruleDiv">
+        <div>{{ index + 1 }}.属性规则</div>
+        <el-select v-model="value" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option> </el-select
+        >--<el-select v-model="value" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option> </el-select
+        >--<el-select v-model="value" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+        <el-button type="primary">移除</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  name: "SocWebAddDialogCom",
+  dicts: [
+    
+    "core_check_type",
+    
+  ],
+  data() {
+    return {
+      value: "",
+      formData: {
+        taskName: "",
+      },
+      tableList: [
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+      ],
+      options: [
+        {
+          value: "1",
+          label: "2",
+        },
+        {
+          value: "1",
+          label: "2",
+        },
+        {
+          value: "1",
+          label: "2",
+        },
+      ],
+    };
+  },
+
+  mounted() {},
+
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+.ruleDiv {
+  margin-top: 20px;
+  .sonruleDiv {
+    margin-top: 10px;
+    .el-button {
+      margin-left: 20px;
+    }
+  }
+}
+</style>

+ 49 - 0
src/views/warnRule/addRelvance.vue

@@ -0,0 +1,49 @@
+<template>
+  <div>
+    <DialogCom title="选择报警防区设备"  append-to-body :visible.sync="isShow" width="60%">
+      <el-transfer
+        style="text-align: center; display: inline-block"
+        v-model="value4"
+        filterable
+        :left-default-checked="[2, 3]"
+        :right-default-checked="[1]"
+        :titles="['设备名称', '设备名称']"
+        :button-texts="['移除<<', '添加>>']"
+        :format="{
+          noChecked: '${total}',
+          hasChecked: '${checked}/${total}',
+        }"
+        @change="handleChange"
+        :data="data"
+      >
+        <span slot-scope="{ option }"
+          >{{ option.key }} - {{ option.label }}</span
+        >
+      </el-transfer>
+    </DialogCom>
+  </div>
+</template>
+<script>
+export default {
+  name: "SocWebAddRelvance",
+
+  data() {
+    return {
+      isShow:false
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    handleChange(value, direction, movedKeys) {
+        console.log(value, direction, movedKeys);
+      }
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-transfer{
+  margin-top: 20px;
+}
+</style>

+ 177 - 0
src/views/warnRule/dialog.vue

@@ -0,0 +1,177 @@
+<template>
+  <div class="edu-training-edit">
+    <DialogCom title="新增告警规则" :visible.sync="isShow" width="60%">
+      <el-form
+        :model="formData"
+        size="small"
+        ref="form"
+        :inline="true"
+        label-position="right"
+        label-width="160px"
+        label-suffix=":"
+      >
+        <el-form-item label="规则名称" prop="taskName">
+          <el-input
+            v-model="formData.taskName"
+            placeholder="请输入规则名称"
+            clearable
+            maxlength="50"
+          />
+        </el-form-item>
+        <el-form-item label="规则类型" prop="taskName">
+          <el-select
+            v-model="formData.taskName"
+            clearable
+            label="规则类型"
+            placeholder="请选择规则类型"
+            prop="orgType"
+          >
+            <el-option
+              v-for="item in dict.type.sys_org_type"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="启用" prop="taskName">
+          <el-switch v-model="formData.taskName"> </el-switch>
+        </el-form-item>
+        <el-form-item label="描述" prop="taskName">
+          <el-input
+            v-model="formData.taskName"
+            placeholder="请输入描述"
+            clearable
+            maxlength="50"
+          />
+        </el-form-item>
+        <el-tabs type="border-card">
+          <el-tab-pane label="报警防区"></el-tab-pane>
+          <el-tab-pane label="UPS"></el-tab-pane>
+          <el-tab-pane label="烟感"></el-tab-pane>
+          <el-tab-pane label="回路"></el-tab-pane>
+          <el-tab-pane label="温湿度"></el-tab-pane>
+          <el-tab-pane label="智能电表"></el-tab-pane>
+          <el-tab-pane label="水浸"></el-tab-pane>
+          <el-tab-pane label="门磁"></el-tab-pane>
+          <el-tab-pane label="卷帘门"></el-tab-pane>
+          <el-tab-pane label="地磁"></el-tab-pane>
+          <el-tab-pane label="燃气"></el-tab-pane>
+          
+          <!-- 列表组件 -->
+          <addCom></addCom>
+        </el-tabs>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">关闭</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import addCom from '@/views/warnRule/addDialogCom.vue'
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+export default {
+  components: { DataRangePicker,addCom },
+  dicts: [
+    "core_registration_project",
+    "core_check_type",
+    "sys_org_type",
+    "retrieval_task_status",
+  ],
+  data() {
+    const params = this.$route.params;
+    return {
+      formData: {},
+      falg: false,
+      labelStyle: {
+        color: "#000",
+        "text-align": "center",
+        height: "40px",
+        "min-width": "150px",
+        "word-break": "keep-all",
+      },
+      content_style: {
+        "text-align": "left",
+        "min-width": "300px",
+        "word-break": "break-all",
+      },
+      id: params ? params.id : null,
+      isShow: false,
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser"]),
+  },
+  methods: {
+    ...mapMutations([]),
+
+    async refresh(id, other) {
+      if (!id) {
+        // this.reset(other);
+      } else {
+        // getTask(id).then((response) => {
+        //   this.formData = response.data;
+        //   this.open = true;
+        //   this.title = "调阅详情";
+        // });
+      }
+    },
+    async show(id, other = {}) {
+      // this.id = id;
+      // await this.refresh(id, other);
+      this.isShow = true;
+    },
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+    // 事件
+    //apimark//
+  },
+  mounted() {},
+};
+</script>
+
+<style lang="scss">
+.edu-training-edit {
+}
+.titleDiv {
+  margin-top: 20px;
+  margin-bottom: 20px;
+  border-left: 5px solid #008cd6;
+  padding-left: 10px;
+ 
+}
+.divCls {
+  display: flex;
+  flex-flow: wrap;
+  align-items: center;
+  .Fatherprogress {
+    width: 400px;
+    margin-bottom: 20px;
+    margin-top: 20px;
+    .progressName {
+      font-size: 17px;
+    }
+    .progressMain {
+      font-size: 14px;
+      color: #8c8c8c;
+      display: inline-block;
+      margin-left: 20px;
+      // margin: 0 auto;
+    }
+    .el-progress__text {
+      display: none;
+    }
+  }
+}
+.el-dialog__body {
+  padding-top: 0px;
+}
+</style>

+ 356 - 0
src/views/warnRule/index.vue

@@ -0,0 +1,356 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <el-col :span="24" :xs="24">
+        <div class="main-right-box">
+          <div class="main-search-box">
+            <el-form
+              :model="queryParams"
+              ref="queryForm"
+              size="small"
+              :inline="true"
+              v-show="showSearch"
+            >
+              <el-form-item label="规则类型" prop="taskName">
+                <el-select
+                  v-model="queryParams.taskName"
+                  clearable
+                  label="规则类型"
+                  placeholder="请选择规则类型"
+                  prop="orgType"
+                  @change="cleanExecOrgList"
+                >
+                  <el-option
+                    v-for="item in dict.type.sys_org_type"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+
+              <el-form-item label="规则名称" prop="taskName">
+                <el-input queryParams.taskName> </el-input>
+              </el-form-item>
+            </el-form>
+
+            <el-row :gutter="10">
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="mini"
+                  @click="handleQuery"
+                  >搜索
+                </el-button>
+              </el-col>
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-refresh"
+                  size="mini"
+                  @click="resetQuery"
+                  >重置
+                </el-button>
+              </el-col>
+              <el-col :span="1.5">
+                <el-button type="primary" size="mini" @click="addRuleHandler"
+                  >新增规则
+                </el-button>
+              </el-col>
+              <right-toolbar
+                :showSearch.sync="showSearch"
+                @queryTable="getList"
+              ></right-toolbar>
+            </el-row>
+          </div>
+          <el-table
+            :data="taskList"
+            border
+            v-loading="loading"
+            height="600"
+            size="small"
+          >
+            <el-table-column type="expand">
+              <template slot-scope="props"
+                ><el-table
+                  :data="tableData"
+                  class="sonTable"
+                  border
+                  style="width: 90%"
+                >
+                  <el-table-column prop="date" label="设备类型" width="180">
+                  </el-table-column>
+                  <el-table-column prop="name" label="作用时间" >
+                  </el-table-column>
+                  <el-table-column
+                    prop="address"
+                    label="熟悉名称--限定符--作用值"
+                  >
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-table-column>
+            <el-table-column label="名称" prop="taskName"> </el-table-column>
+            <el-table-column label="类型" prop="sbmc"> </el-table-column>
+            <el-table-column label="启用" prop="pp"> </el-table-column>
+            <el-table-column label="描述" prop="ip"> </el-table-column>
+
+            <el-table-column label="设备数" prop="wlzt"> </el-table-column>
+            <el-table-column
+              label="操作"
+              fixed="right"
+              style="width: 100px"
+              align="center"
+              class-name="small-padding fixed-width"
+            >
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-view"
+                  @click="lookView(scope.row)"
+                  v-hasPermi="['core:task:query']"
+                  >编辑</el-button
+                >
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-view"
+                  @click="lookView(scope.row)"
+                  v-hasPermi="['core:task:query']"
+                  >删除</el-button
+                >
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-view"
+                  @click="lookView(scope.row)"
+                  v-hasPermi="['core:task:query']"
+                  >关联设备</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+
+          <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+          <!-- 关联设备 -->
+          <relevanceDialog ref="relevanceDialog"> </relevanceDialog>
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { listTask } from "@/api/core/task";
+import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
+import DialogInfo from "./dialog.vue";
+import { listPlanRole } from "@/api/core/edu/plan";
+import { formatTime } from "@/utils/ruoyi";
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+import relevanceDialog from "@/views/warnRule/relevanceDialog.vue";
+import dayjs from "dayjs";
+import { mapGetters } from "vuex";
+export default {
+  components: { OrgTree, DialogInfo, DataRangePicker, relevanceDialog },
+  name: "Task",
+  // dicts: ["sys_access_cycle"],
+  dicts: ["sys_org_type", "plan_status"],
+  data() {
+    return {
+      // 遮罩层
+      loading: false,
+      // 选中数组
+      ids: [],
+      // 非单个停用
+      single: true,
+      // 非多个停用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 1,
+      tableData: [
+        {
+          date: "水浸",
+          name: "周一、周二、周三、周四、周五、周六、周七 00:00~24:00",
+          address: "水浸状态---等于---告警",
+        },
+      ],
+      // 监控调阅任务表格数据
+      taskList: [
+        {
+          taskName: "上班",
+          sbmc: "上班一键巡检",
+          pp: "启用",
+          ip: "暂无描述",
+          wlzt: "水浸(全部)",
+        },
+      ],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        taskName: null,
+        cycle: null,
+        dateRange: [],
+        planStartTime: null,
+        status: null,
+        roleId: null,
+        checkSub: true,
+      },
+      selectedOrgName: "",
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+
+      orgName: "",
+    };
+  },
+  created() {
+    this.queryParams.orgId = this.$store.getters.orgId;
+    this.getList();
+  },
+  computed: {
+    ...mapGetters(["orgId", "orgName"]),
+  },
+  methods: {
+    /** 查询监控调阅任务列表 */
+    getList() {
+      this.taskList = [
+        {
+          taskName: "上班",
+          sbmc: "上班一键巡检",
+          pp: "启用",
+          ip: "暂无描述",
+          wlzt: "水浸(全部)",
+        },
+        {
+          taskName: "上班",
+          sbmc: "上班一键巡检",
+          pp: "启用",
+          ip: "暂无描述",
+          wlzt: "水浸(全部)",
+        },
+      ];
+      return;
+      this.loading = true;
+      listTask(this.queryParams).then((response) => {
+        this.taskList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+    /** 下穿状态改变*/
+    changeCheckBox() {
+      this.getList();
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        planId: null,
+        taskName: null,
+        orgId: null,
+        orgPath: null,
+        orgName: null,
+        ymdDate: null,
+        ymdYear: null,
+        ymdHalfyear: null,
+        ymdQuarter: null,
+        ymdMonth: null,
+        ymdWeek: null,
+        ymdDay: null,
+        cycle: null,
+        planStartTime: null,
+        planEndTime: null,
+        startTime: null,
+        endTime: null,
+        status: null,
+        roleId: null,
+        retrievalUser: null,
+        orderNum: null,
+        batchNum: null,
+        submitTime: null,
+        exceptionCount: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      //this.queryParams.dateRange = [];
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.orgId = this.orgId;
+      this.selectedOrgName = this.orgName;
+      this.queryParams.checkSub = true;
+      this.queryParams.dateRange = ["", ""];
+      this.queryParams.planStartTime = null;
+
+      this.handleQuery();
+    },
+    addRuleHandler() {
+      this.$refs["infoDialog"].show("row.id", {});
+    },
+    // 多选框选中数据
+    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 = "添加监控调阅任务";
+    },
+    /** 关联按钮操作 */
+    lookView() {
+      this.$refs["relevanceDialog"].show("row.id", {});
+    },
+
+    /** 导出按钮操作 */
+    // handleExport() {
+    //   console.log(this);
+    //   this.download(
+    //     "core/retrievalTask/export",
+    //     {
+    //       ...this.queryParams,
+    //     },
+    //     `${
+    //       this.selectedOrgName
+    //     }-${this.$tab.getCurrentTabName()}-${dayjs().format("YYYYMMDD")}.xlsx`
+    //   );
+    // },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.sonTable {
+  margin: 0 auto;
+}
+</style>

+ 61 - 0
src/views/warnRule/relevanceDialog.vue

@@ -0,0 +1,61 @@
+<template>
+  <div>
+    <DialogCom title="告警规则关联设备" :visible.sync="isShow" width="60%">
+      <el-form :model="formData" ref="queryForm" size="small" :inline="true">
+       <div >
+        <div class="disDiv">
+          <el-form-item label="名称" prop="taskName"> 1.属性规则 </el-form-item>
+          <el-form-item label="规则类型" prop="taskName">
+            上班一键巡检
+          </el-form-item>
+        </div>
+        <div class="disDiv">
+          <el-form-item label="启动" prop="taskName">
+            <el-switch v-model="formData.taskName"> </el-switch>
+          </el-form-item>
+          <el-form-item label="描述" prop="taskName"> 描述 </el-form-item>
+        </div>
+       </div>
+        <el-tabs type="border-card">
+          <el-tab-pane label="报警防区"></el-tab-pane>
+          <el-tab-pane label="烟雾传感器"></el-tab-pane>
+          <el-tab-pane label="温湿度采集器"></el-tab-pane>
+          <el-tab-pane label="水浸传感器"></el-tab-pane>
+          <relevanceDialogCom></relevanceDialogCom>
+        </el-tabs>
+      </el-form>
+    </DialogCom>
+  </div>
+</template>
+<script>
+import relevanceDialogCom from "@/views/warnRule/relevanceDialogCom.vue";
+export default {
+  name: "SocWebRelevanceDialog",
+  components: {
+    relevanceDialogCom,
+  },
+  data() {
+    return {
+      isShow: false,
+      formData: {
+        taskName: "",
+      },
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    show() {
+      this.isShow = true;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.disDiv{
+  display: flex;
+  justify-content: space-between;
+}
+
+</style>

+ 92 - 0
src/views/warnRule/relevanceDialogCom.vue

@@ -0,0 +1,92 @@
+<template>
+  <div>
+    <el-form-item label="关联设备方式" prop="taskName">
+      <el-radio v-model="radio" label="1">设备类型</el-radio>
+      <el-radio v-model="radio" label="2">指定设备</el-radio>
+    </el-form-item>
+    <div v-if="radio == '2'">
+      <div>
+        <el-button type="primary" @click="addrelvanceH" size="medium"
+          >添加设备</el-button
+        ><el-button type="primary" size="medium">删除设备</el-button>
+      </div>
+      <div class="ruleDiv">
+        <el-table
+          :data="taskList"
+          border
+          v-loading="loading"
+          height="600"
+          size="small"
+        >
+          <el-table-column type="selection" width="55"> </el-table-column>
+          <el-table-column label="所属机构" prop="orgname"> </el-table-column>
+          <el-table-column label="设备名称" prop="id"> </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div v-else>
+      <el-form-item label="全部设备启用" prop="taskName">
+        <el-switch v-model="taskName"> </el-switch>
+      </el-form-item>
+    </div>
+    <addrelvance ref="addrelvance"></addrelvance>
+  </div>
+</template>
+<script>
+import addrelvance from "@/views/warnRule/addRelvance.vue";
+const generateData = _ => {
+        const data = [];
+        for (let i = 1; i <= 15; i++) {
+          data.push({
+            key: i,
+            label: `备选项 ${ i }`,
+            disabled: i % 4 === 0
+          });
+        }
+        return data;
+      }
+export default {
+  name: "SocWebAddDialogCom",
+  components: {
+    addrelvance,
+  },
+  dicts: ["core_check_type"],
+  data() {
+    return {
+      value: "",
+      data:generateData(),
+      radio: "1",
+      loading: false,
+      formData: {
+        taskName: "",
+      },
+      taskName: false,
+      taskList: [
+        {
+          orgname: "福建农信",
+          id: "烟感器设备01",
+        },
+      ],
+    };
+  },
+
+  mounted() {},
+
+  methods: {
+    addrelvanceH(){
+        this.$refs.addrelvance.isShow=true
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+.ruleDiv {
+  margin-top: 20px;
+  .sonruleDiv {
+    margin-top: 10px;
+    .el-button {
+      margin-left: 20px;
+    }
+  }
+}
+</style>