Bläddra i källkod

物联感知ui

coys 1 år sedan
förälder
incheckning
b71f56c2e2

+ 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'
 #罗伟
@@ -18,9 +18,9 @@ VUE_APP_BASE_API = 'http://47.92.229.224:8080'
 # VUE_APP_BASE_API = 'http://localhost:8080'
 # 55环境
 # VUE_APP_BASE_API = 'http://10.87.23.62:8080'
- VUE_APP_BASE_API = 'http://localhost:8080'
+#  VUE_APP_BASE_API = 'http://localhost:8080'
 # 开发环境
-# VUE_APP_BASE_API = 'http://10.87.21.103:8080'
+VUE_APP_BASE_API = 'http://10.87.21.107:8080'
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 

+ 223 - 0
src/views/defenseMonitoring/dialog.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="edu-training-edit">
+    <DialogCom title="布防历史" :visible.sync="isShow" width="60%">
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          size="small"
+          ref="form"
+          :inline="true"
+          label-position="right"
+          label-width="160px"
+          label-suffix=":"
+        >
+          <el-form-item label="上报时间范围" prop="taskName">
+            <DataRangePicker
+              type="daterange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              :default-time="['00:00:00', '23:59:59']"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              v-model="queryParams.dateRange"
+              :picker-options="pickerOptions"
+            >
+            </DataRangePicker>
+          </el-form-item>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuery"
+            >搜索
+          </el-button>
+          <el-button
+            type="primary"
+            icon="el-icon-refresh"
+            size="mini"
+            @click="resetQuery"
+            >重置
+          </el-button>
+
+          <div class="extend_mod">
+            <el-table
+              v-loading="loading"
+              :data="formData.taskDataVoList"
+              @selection-change="handleSelectionChange"
+              height="300px"
+              border=""
+            >
+              <el-table-column label="防区编号" align="center" prop="sbmc" />
+              <el-table-column
+                label="防区名称"
+                align="center"
+                prop="sbmc1"
+              /><el-table-column
+                label="所属机构"
+                align="center"
+                prop="taskName"
+              />
+              <el-table-column label="布防状态" align="center" prop="pp" />
+              <el-table-column label="上报时间" align="center" prop="ip" />
+            </el-table>
+            
+            <pagination
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getList" 
+              />
+              
+          </div>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">关闭</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getEduTask } from "@/api/core/edu/eduTask";
+import { getTask } from "@/api/core/task";
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+export default {
+  components: { DataRangePicker },
+  dicts: [
+    "core_registration_project",
+    "core_check_type",
+    "retrieval_task_status",
+  ],
+  data() {
+    const params = this.$route.params;
+    return {
+      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,
+      formData: this.reset(),
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        taskName: null,
+        cycle: null,
+        dateRange: [],
+        planStartTime: null,
+        status: null,
+        roleId: null,
+        checkSub: true,
+      },
+      total: 1,
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser"]),
+  },
+  methods: {
+    getList(){
+
+    },
+        ...mapMutations([]),
+    reset(other = {}) {
+      return {
+        id: null,
+        taskName: null,
+        status: null,
+        planStartTime: null,
+        planEndTime: null,
+        orgName: null,
+        roleName: null,
+        retrievalUserName: null,
+        startTime: null,
+        endTime: null,
+        taskDataVoList: [
+          {
+            taskName: "福建农信",
+            sbmc: "4000",
+            sbmc1: "报警主机子系统布防状态检测数据 1",
+            pp: " 撤防",
+            ip: "2023-12-22 14:49:00",
+
+            ypzs: "门已打开",
+            status: "在线",
+          },
+        ],
+        ...other,
+      };
+    },
+    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">
+.page-body {
+  margin-top: 20px;
+}
+.pagination-container{
+    box-shadow: none;
+}
+.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>

+ 406 - 0
src/views/defenseMonitoring/index.vue

@@ -0,0 +1,406 @@
+<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="组织机构">
+                <org-tree
+                  v-model="queryParams.orgId"
+                  @defaultKey="getDefaultKey"
+                  @defaultOrg="getDefaultOrg"
+                  @checkChange="checkChange"
+                  @click="clickTreeNode"
+                  ref="orgTree"
+                ></org-tree>
+              </el-form-item>
+              <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">
+                <DataRangePicker
+                  type="daterange"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  :default-time="['00:00:00', '23:59:59']"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  v-model="queryParams.dateRange"
+                  :picker-options="pickerOptions"
+                >
+                </DataRangePicker>
+              </el-form-item>
+              <el-form-item label="上报时间" prop="planStartTime">
+                <el-select
+                  v-model="queryParams.planStartTime"
+                  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>
+
+            <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"
+                    icon="el-icon-download"
+                    size="mini"
+                    @click="handleExport"
+                    v-hasPermi="['core:task:export']"
+                    >导出</el-button
+                  >
+                </el-col> -->
+
+              <right-toolbar
+                :showSearch.sync="showSearch"
+                @queryTable="getList"
+              ></right-toolbar>
+            </el-row>
+          </div>
+
+          <el-table
+            v-loading="loading"
+            :data="taskList"
+            border
+            height="600"
+            size="small"
+          >
+            <!-- <el-table-column
+                label="序号"
+                type="index"
+                align="center"
+                width="100"
+              >
+                <template slot-scope="scope">
+                  <span>{{
+                    (queryParams.pageNum - 1) * queryParams.pageSize +
+                    scope.$index +
+                    1
+                  }}</span>
+                </template>
+              </el-table-column> -->
+            <el-table-column
+              label="组织机构"
+              align="center"
+              prop="taskName"
+              width="220"
+            />
+            <el-table-column
+              label="防区编号"
+              align="center"
+              prop="sbmc"
+              show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="防区名称"
+              align="center"
+              prop="sbmc1"
+              width="220"
+              show-overflow-tooltip="true"
+            />
+
+            <el-table-column label="布防状态" align="center" prop="pp" />
+            <el-table-column label="上报时间" align="center" prop="ip" />
+
+            <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
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+          <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 dayjs from "dayjs";
+import { mapGetters } from "vuex";
+export default {
+  components: { OrgTree, DialogInfo, DataRangePicker },
+  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,
+      // 监控调阅任务表格数据
+      taskList: [
+        {
+          taskName: "长乐农商行",
+          sbmc: "三楼海康",
+          pp: "海康视频存储设备",
+          ip: "10.87.10.166",
+          wlzt: "正常",
+          ypzs: "50",
+          exceptionCount: "2",
+          sykj: "995G/7449G",
+        },
+      ],
+      // 弹出层标题
+      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: "4000",
+          sbmc1: "报警主机子系统布防状态检测数据 1",
+          pp: " 撤防",
+          ip: "2023-12-22 14:49:00",
+         
+          ypzs: "门已打开",
+          status: "在线",
+        },
+        {
+          //自助区卷帘门一
+          taskName: "福建农信",
+          sbmc: "4001",
+          sbmc1: "报警主机子系统布防状态检测数据 2",
+          pp: " 布防",
+          ip: "2023-12-22 14:49:00",
+          
+        },
+      ];
+      return;
+      this.loading = true;
+      listTask(this.queryParams).then((response) => {
+        this.taskList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+    getDefaultOrg(org) {
+      this.orgName = org.name;
+      this.selectedOrgName = org.shortName;
+    },
+
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.orgName = data.name;
+      this.selectedOrgName = data.shortName;
+      this.handleQuery();
+    },
+    /** 下穿状态改变*/
+    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.$refs["orgTree"].setCheckSub(this.queryParams.checkSub);
+      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 = "添加监控调阅任务";
+    },
+    /** 修改按钮操作 */
+    lookView(row) {
+      this.$refs["infoDialog"].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></style>

+ 220 - 0
src/views/dynamicLoopManagement/dialog.vue

@@ -0,0 +1,220 @@
+<template>
+  <div class="edu-training-edit">
+    <DialogCom title="巡检主机动环历史数据" :visible.sync="isShow" width="40%">
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          size="small"
+          ref="form"
+          :inline="true"
+          label-position="right"
+          label-width="160px"
+          label-suffix=":"
+        >
+          <el-form-item label="上报时间" prop="taskName">
+            <DataRangePicker
+              type="daterange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              :default-time="['00:00:00', '23:59:59']"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              v-model="queryParams.dateRange"
+              :picker-options="pickerOptions"
+            >
+            </DataRangePicker>
+          </el-form-item>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuery"
+            >搜索
+          </el-button>
+          <el-button
+            type="primary"
+            icon="el-icon-refresh"
+            size="mini"
+            @click="resetQuery"
+            >重置
+          </el-button>
+         
+          <div class="extend_mod">
+            <el-table
+              v-loading="loading"
+              :data="formData.taskDataVoList"
+              @selection-change="handleSelectionChange"
+              height="300px"
+              border=""
+            >
+              <el-table-column
+                label="上报时间"
+                align="center"
+                prop="hostName"
+              />
+              <el-table-column
+                label="上报内容"
+                align="center"
+                prop="channelName"
+              />
+            </el-table>
+            <pagination
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getList" 
+              />
+          </div>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">关闭</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getEduTask } from "@/api/core/edu/eduTask";
+import { getTask } from "@/api/core/task";
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+export default {
+  components: { DataRangePicker },
+  dicts: [
+    "core_registration_project",
+    "core_check_type",
+    "retrieval_task_status",
+  ],
+  data() {
+    const params = this.$route.params;
+    return {
+      total:1,
+      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,
+      formData: this.reset(),
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        taskName: null,
+        cycle: null,
+        dateRange: [],
+        planStartTime: null,
+        status: null,
+        roleId: null,
+        checkSub: true,
+      },
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser"]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset(other = {}) {
+      return {
+        id: null,
+        taskName: null,
+        status: null,
+        planStartTime: null,
+        planEndTime: null,
+        orgName: null,
+        roleName: null,
+        retrievalUserName: null,
+        startTime: null,
+        endTime: null,
+        taskDataVoList: [
+          {
+            hostName: "2023-12-22 15:01:25",
+            channelName: "门已打开",
+            
+          },
+          {
+            hostName: "2023-12-22 16:01:25",
+            channelName: "门已关闭",
+           
+          },
+          {
+            hostName: "2023-12-22 17:01:25",
+            channelName: "未知异常",
+            
+          },
+         
+        ],
+        ...other,
+      };
+    },
+    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">
+.page-body{
+  margin-top: 20px;
+}
+
+.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>

+ 476 - 0
src/views/dynamicLoopManagement/index.vue

@@ -0,0 +1,476 @@
+<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="组织机构">
+                <org-tree
+                  v-model="queryParams.orgId"
+                  @defaultKey="getDefaultKey"
+                  @defaultOrg="getDefaultOrg"
+                  @checkChange="checkChange"
+                  @click="clickTreeNode"
+                  ref="orgTree"
+                ></org-tree>
+              </el-form-item>
+              <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="planStartTime">
+                <el-select
+                  v-model="queryParams.planStartTime"
+                  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="planStartTime">
+                <el-select
+                  v-model="queryParams.planStartTime"
+                  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="planStartTime">
+                <el-select
+                  v-model="queryParams.planStartTime"
+                  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>
+
+            <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"
+                  icon="el-icon-refresh"
+                  size="mini"
+                  @click="resetQuery"
+                  >状态汇总
+                </el-button>
+              </el-col>
+              <!-- <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  icon="el-icon-download"
+                  size="mini"
+                  @click="handleExport"
+                  v-hasPermi="['core:task:export']"
+                  >导出</el-button
+                >
+              </el-col> -->
+              
+              <right-toolbar
+                :showSearch.sync="showSearch"
+                @queryTable="getList"
+              ></right-toolbar>
+            </el-row>
+          </div>
+
+          <el-table
+            v-loading="loading"
+            :data="taskList"
+            border
+            height="600"
+            size="small"
+          >
+            <!-- <el-table-column
+              label="序号"
+              type="index"
+              align="center"
+              width="100"
+            >
+              <template slot-scope="scope">
+                <span>{{
+                  (queryParams.pageNum - 1) * queryParams.pageSize +
+                  scope.$index +
+                  1
+                }}</span>
+              </template>
+            </el-table-column> -->
+            <el-table-column
+              label="组织机构"
+              align="center"
+              prop="taskName"
+              width="220"
+            />
+            <el-table-column
+              label="设备编码"
+              align="center"
+              prop="sbmc"
+             
+              show-overflow-tooltip="true"
+            />
+            <el-table-column
+              label="设备名称"
+              align="center"
+              prop="sbmc1"
+              width="220"
+              show-overflow-tooltip="true"
+            />
+
+            <el-table-column
+              label="资产类别"
+              align="center"
+              prop="pp"
+              
+            />
+            <el-table-column
+              label="设备类型"
+              align="center"
+              prop="ip"
+            
+            />
+            <el-table-column
+              label="设备状态"
+              align="center"
+              prop="status"
+             
+            />
+            <el-table-column label="上报时间" align="center" prop="wlzt">
+              <!-- <template slot-scope="scope">
+                  <span>
+                    <dict-tag
+                      :options="dict.type.retrieval_task_status"
+                      :value="scope.row.status"
+                    />
+                  </span>
+                </template> -->
+            </el-table-column>
+            <el-table-column label="上报内容" align="center" prop="ypzs">
+              <!-- <template slot-scope="scope">
+                  {{ scope.row.planStartTime }}~{{ scope.row.planEndTime }}
+                </template> -->
+            </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
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+          <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 dayjs from "dayjs";
+import { mapGetters } from "vuex";
+export default {
+  components: { OrgTree, DialogInfo, DataRangePicker },
+  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,
+      // 监控调阅任务表格数据
+      taskList: [
+        {
+          taskName: "长乐农商行",
+          sbmc: "三楼海康",
+          pp: "海康视频存储设备",
+          ip: "10.87.10.166",
+          wlzt: "正常",
+          ypzs: "50",
+          exceptionCount: "2",
+          sykj: "995G/7449G",
+        },
+      ],
+      // 弹出层标题
+      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: "80010",
+          sbmc1: "自助区卷帘门一",
+          pp: " 卷帘门门磁",
+          ip: "巡检主机传感器",
+          wlzt: "2023-12-22 15:01:25",
+          ypzs: "门已打开",
+          status: "在线",
+          
+        },
+        { //自助区卷帘门一
+          taskName: "福建农信",
+          sbmc: "80011",
+          sbmc1: "自助区卷帘门一",
+          pp: " 卷帘门门磁",
+          ip: "巡检主机传感器",
+          wlzt: "2023-12-22 15:01:25",
+          ypzs: "未知",
+          status: "离线",
+          
+        },
+      ];
+      return;
+      this.loading = true;
+      listTask(this.queryParams).then((response) => {
+        this.taskList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+    getDefaultOrg(org) {
+      this.orgName = org.name;
+      this.selectedOrgName = org.shortName;
+    },
+
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.orgName = data.name;
+      this.selectedOrgName = data.shortName;
+      this.handleQuery();
+    },
+    /** 下穿状态改变*/
+    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.$refs["orgTree"].setCheckSub(this.queryParams.checkSub);
+      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 = "添加监控调阅任务";
+    },
+    /** 修改按钮操作 */
+    lookView(row) {
+      this.$refs["infoDialog"].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>
+</style>

+ 353 - 0
src/views/videoRecorder/dialog.vue

@@ -0,0 +1,353 @@
+<template>
+  <div class="edu-training-edit">
+    <DialogCom title="查看监控主机详情" :visible.sync="isShow" width="80%">
+      <div class="page-body">
+        <div class="titleDiv">
+          <div class="line"></div>
+          基本信息
+        </div>
+        <el-descriptions
+          class="margin-top"
+          :column="2"
+          size="medium"
+          border
+          :label-style="labelStyle"
+          :contentStyle="content_style"
+        >
+          <el-descriptions-item labelClassName="gx_info_label" label="设备名称">
+            <!-- {{ formData.taskName }} -->
+            长乐农商行
+          </el-descriptions-item>
+          <el-descriptions-item labelClassName="gx_info_label" label="监控主机">
+            长乐农商行1楼-02主机
+            <!-- <dict-tag
+              :options="dict.type.retrieval_task_status"
+              :value="formData.status"
+            /> -->
+          </el-descriptions-item>
+          <el-descriptions-item labelClassName="gx_info_label" label="网络状态">
+            异常
+            <!-- {{ formData.planStartTime }}-{{ formData.planEndTime }} -->
+          </el-descriptions-item>
+          <el-descriptions-item labelClassName="gx_info_label" label="IP地址">
+            <!-- {{ formData.orgName }} -->
+            10.87.10.166
+          </el-descriptions-item>
+        </el-descriptions>
+        <div class="titleDiv">硬盘状态</div>
+        <div class="divCls">
+          <div class="Fatherprogress" v-for="i in 6" :key="i">
+            <div>
+              <span class="progressName">硬盘({{ i }})</span
+              ><span class="progressMain">3725.90G已用(共3725.90G)</span>
+            </div>
+            <el-progress
+              class="progress"
+              stroke-width="10"
+              :percentage="50"
+            ></el-progress>
+          </div>
+        </div>
+        <el-form
+          :model="formData"
+          size="small"
+          ref="form"
+          :inline="true"
+          label-position="right"
+          label-width="160px"
+          label-suffix=":"
+        >
+          <div class="titleDiv">故障分析结果</div>
+          <el-form-item label="硬盘名称" prop="taskName">
+            <el-input
+              v-model="queryParams.taskName"
+              placeholder="硬盘名称"
+              clearable
+              @keyup.enter.native="handleQuery"
+              maxlength="50"
+            />
+          </el-form-item>
+          <el-form-item label="告警状态" prop="taskName">
+            <el-input
+              v-model="queryParams.taskName"
+              placeholder="告警状态"
+              clearable
+              @keyup.enter.native="handleQuery"
+              maxlength="50"
+            />
+          </el-form-item>
+
+          <el-form-item label="告警时间-恢复时间" prop="planStartTime">
+            <DataRangePicker
+              type="daterange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              :default-time="['00:00:00', '23:59:59']"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              v-model="queryParams.dateRange"
+              :picker-options="pickerOptions"
+            >
+            </DataRangePicker>
+          </el-form-item>
+      
+            <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="mini"
+                  @click="handleQuery"
+                  >搜索
+                </el-button>
+                <el-button
+                  type="primary"
+                  icon="el-icon-refresh"
+                  size="mini"
+                  @click="resetQuery"
+                  >重置
+                </el-button>
+         
+          
+          <div class="extend_mod">
+            <el-table
+              v-loading="loading"
+              :data="formData.taskDataVoList"
+              @selection-change="handleSelectionChange"
+              height="300px"
+              border=""
+            >
+              <el-table-column
+                label="序号"
+                type="index"
+                width="100"
+                align="center"
+              >
+                <template slot-scope="scope">
+                  <span>{{ scope.$index + 1 }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="硬盘序号"
+                align="center"
+                prop="hostName"
+              />
+              <el-table-column
+                label="硬盘名称"
+                align="center"
+                prop="channelName"
+              />
+              <el-table-column label="告警状态" align="center" prop="project">
+                <template slot-scope="scope">
+                  <span :style="{ color: '#ebb665' }">{{
+                    scope.row.project
+                  }}</span>
+                  <!-- <dict-tag
+                    :options="dict.type.core_registration_project"
+                    :value="scope.row.project"
+                  /> -->
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="告警开始时间"
+                align="center"
+                prop="situation"
+              >
+                <!-- <template slot-scope="scope">
+                  <dict-tag
+                    :options="dict.type.core_check_type"
+                    :value="scope.row.situation"
+                  />
+                </template> -->
+              </el-table-column>
+              <el-table-column
+                label="告警恢复时间"
+                align="center"
+                prop="remark"
+              />
+            </el-table>
+          </div>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">关闭</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getEduTask } from "@/api/core/edu/eduTask";
+import { getTask } from "@/api/core/task";
+import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+export default {
+  components: { DataRangePicker },
+  dicts: [
+    "core_registration_project",
+    "core_check_type",
+    "retrieval_task_status",
+  ],
+  data() {
+    const params = this.$route.params;
+    return {
+      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,
+      formData: this.reset(),
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        taskName: null,
+        cycle: null,
+        dateRange: [],
+        planStartTime: null,
+        status: null,
+        roleId: null,
+        checkSub: true,
+      },
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser"]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset(other = {}) {
+      return {
+        id: null,
+        taskName: null,
+        status: null,
+        planStartTime: null,
+        planEndTime: null,
+        orgName: null,
+        roleName: null,
+        retrievalUserName: null,
+        startTime: null,
+        endTime: null,
+        taskDataVoList: [
+          {
+            hostName: "01",
+            channelName: "硬盘01",
+            project: "正在报警",
+            situation: "2024-01-02",
+            remark: "2024-01-03",
+          },
+          {
+            hostName: "02",
+            channelName: "硬盘02",
+            project: "正在报警",
+            situation: "2024-01-01",
+            remark: "2024-01-04",
+          },
+          {
+            hostName: "03",
+            channelName: "硬盘03",
+            project: "正在报警",
+            situation: "2024-01-01",
+            remark: "2024-01-04",
+          },
+          {
+            hostName: "04",
+            channelName: "硬盘04",
+            project: "正在报警",
+            situation: "2024-01-01",
+            remark: "2024-01-04",
+          },
+          {
+            hostName: "05",
+            channelName: "硬盘05",
+            project: "正在报警",
+            situation: "2024-01-01",
+            remark: "2024-01-04",
+          },
+          {
+            hostName: "06",
+            channelName: "硬盘06",
+            project: "正在报警",
+            situation: "2024-01-01",
+            remark: "2024-01-04",
+          },
+        ],
+        ...other,
+      };
+    },
+    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;
+  // .line{
+  //     width: 2px;
+  //     background-color: #008cd6;
+  //     height: 17px;
+  // }
+}
+.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>

+ 435 - 0
src/views/videoRecorder/index.vue

@@ -0,0 +1,435 @@
+<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="组织机构">
+                <org-tree
+                  v-model="queryParams.orgId"
+                  @defaultKey="getDefaultKey"
+                  @defaultOrg="getDefaultOrg"
+                  @checkChange="checkChange"
+                  @click="clickTreeNode"
+                  ref="orgTree"
+                ></org-tree>
+              </el-form-item>
+              <el-form-item label="监控主机" prop="taskName">
+                <el-input
+                  v-model="queryParams.taskName"
+                  placeholder="请输入监控主机名称"
+                  clearable
+                  @keyup.enter.native="handleQuery"
+                  maxlength="50"
+                />
+              </el-form-item>
+
+              <el-form-item label="任务时间" prop="planStartTime">
+                <DataRangePicker
+                  type="daterange"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  :default-time="['00:00:00', '23:59:59']"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  v-model="queryParams.dateRange"
+                  :picker-options="pickerOptions"
+                >
+                </DataRangePicker>
+              </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"
+                  icon="el-icon-download"
+                  size="mini"
+                  @click="handleExport"
+                  v-hasPermi="['core:task:export']"
+                  >导出</el-button
+                >
+              </el-col>
+              <el-col :span="19">
+                <div class="numCls">
+                  <div>监控主机总数:100</div>
+                  <div>硬盘总数:94</div>
+                  <div>
+                    异常总数:<span :style="{ color: '#fb5d70' }">6</span>
+                  </div>
+                </div>
+              </el-col>
+              <right-toolbar
+                :showSearch.sync="showSearch"
+                @queryTable="getList"
+              ></right-toolbar>
+            </el-row>
+          </div>
+
+          <el-table
+            v-loading="loading"
+            :data="taskList"
+            border
+            height="600"
+            size="small"
+          >
+            <el-table-column
+              label="序号"
+              type="index"
+              align="center"
+              width="100"
+            >
+              <template slot-scope="scope">
+                <span>{{
+                  (queryParams.pageNum - 1) * queryParams.pageSize +
+                  scope.$index +
+                  1
+                }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="组织机构"
+              align="center"
+              prop="taskName"
+              width="220"
+            />
+            <el-table-column
+              label="监控主机"
+              align="center"
+              prop="sbmc"
+              width="220"
+              show-overflow-tooltip="true"
+            />
+
+            <el-table-column
+              label="品牌"
+              align="center"
+              prop="pp"
+              width="220"
+            />
+            <el-table-column
+              label="IP地址"
+              align="center"
+              prop="ip"
+              width="160"
+            />
+            <el-table-column label="网络状态" align="center" prop="wlzt">
+              <!-- <template slot-scope="scope">
+                <span>
+                  <dict-tag
+                    :options="dict.type.retrieval_task_status"
+                    :value="scope.row.status"
+                  />
+                </span>
+              </template> -->
+            </el-table-column>
+            <el-table-column
+              label="硬盘总数"
+              align="center"
+              prop="ypzs"
+              
+            >
+              <!-- <template slot-scope="scope">
+                {{ scope.row.planStartTime }}~{{ scope.row.planEndTime }}
+              </template> -->
+            </el-table-column>
+
+            <el-table-column
+              label="异常数量(序号)"
+              align="center"
+              prop="exceptionCount"
+              width="150"
+            />
+            <el-table-column
+              label="剩余空间/总空间"
+              align="center"
+              prop="sykj"
+              width="160"
+            />
+
+            <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
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+          <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 dayjs from "dayjs";
+import { mapGetters } from "vuex";
+export default {
+  components: { OrgTree, DialogInfo, DataRangePicker },
+  name: "Task",
+  dicts: ["sys_access_cycle"],
+  data() {
+    return {
+      // 遮罩层
+      loading: false,
+      // 选中数组
+      ids: [],
+      // 非单个停用
+      single: true,
+      // 非多个停用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 监控调阅任务表格数据
+      taskList: [
+        {
+          taskName: "长乐农商行",
+          sbmc: "三楼海康",
+          pp: "海康视频存储设备",
+          ip: "10.87.10.166",
+          wlzt: "正常",
+          ypzs: "50",
+          exceptionCount: "2",
+          sykj: "995G/7449G",
+        },
+      ],
+      // 弹出层标题
+      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: "长乐农商行1楼-02主机",
+          pp: "海康视频存储设备",
+          ip: "10.87.10.166",
+          wlzt: "正常",
+          ypzs: "50",
+          exceptionCount: "2",
+          sykj: "995G/7449G",
+        },
+        {
+          taskName: "闽侯县联社",
+          sbmc: "闽侯县联社大厅-01主机",
+          pp: "大华视频存储设备",
+          ip: "10.87.10.187",
+          wlzt: "正常",
+          ypzs: "50",
+          exceptionCount: "0",
+          sykj: "0G/1024G",
+        },
+      ];
+      return;
+      this.loading = true;
+      listTask(this.queryParams).then((response) => {
+        this.taskList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+
+    getDefaultOrg(org) {
+      this.orgName = org.name;
+      this.selectedOrgName = org.shortName;
+    },
+
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.orgName = data.name;
+      this.selectedOrgName = data.shortName;
+      this.handleQuery();
+    },
+    /** 下穿状态改变*/
+    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.$refs["orgTree"].setCheckSub(this.queryParams.checkSub);
+      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 = "添加监控调阅任务";
+    },
+    /** 修改按钮操作 */
+    lookView(row) {
+      this.$refs["infoDialog"].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>
+.numCls {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  height: 100%;
+  min-height: 33px;
+  div {
+    margin-right: 10px;
+  }
+}
+</style>