zhaoyun 6 tháng trước cách đây
mục cha
commit
62079f5625
19 tập tin đã thay đổi với 1789 bổ sung0 xóa
  1. 183 0
      src/views/distributionnetwork/secure/abnormal-data/index.vue
  2. 54 0
      src/views/distributionnetwork/secure/daily-newspaper/components/execution-status-table.vue
  3. 66 0
      src/views/distributionnetwork/secure/daily-newspaper/components/other-safety-situations-table.vue
  4. 42 0
      src/views/distributionnetwork/secure/daily-newspaper/components/personnel-duty-status-table.vue
  5. 54 0
      src/views/distributionnetwork/secure/daily-newspaper/components/tomorrow-plan-situation-table.vue
  6. 42 0
      src/views/distributionnetwork/secure/daily-newspaper/components/violation-situation-table.vue
  7. 174 0
      src/views/distributionnetwork/secure/daily-newspaper/index.vue
  8. 121 0
      src/views/distributionnetwork/secure/points-ranking/index.vue
  9. 183 0
      src/views/distributionnetwork/secure/reason-for-cancellation/index.vue
  10. 183 0
      src/views/distributionnetwork/secure/reason-for-the-plan/index.vue
  11. 183 0
      src/views/distributionnetwork/secure/risk-identification/index.vue
  12. 34 0
      src/views/distributionnetwork/secure/weekly-report/components/level3-above-plans-table.vue
  13. 42 0
      src/views/distributionnetwork/secure/weekly-report/components/line-missing-situation-table.vue
  14. 41 0
      src/views/distributionnetwork/secure/weekly-report/components/next-week-plan-situation-table.vue
  15. 49 0
      src/views/distributionnetwork/secure/weekly-report/components/thoughtful-job-situation-table.vue
  16. 26 0
      src/views/distributionnetwork/secure/weekly-report/components/update-on-external-risks-table.vue
  17. 54 0
      src/views/distributionnetwork/secure/weekly-report/components/weekly-plan-situation-table.vue
  18. 41 0
      src/views/distributionnetwork/secure/weekly-report/components/weekly-violation-situation-table.vue
  19. 217 0
      src/views/distributionnetwork/secure/weekly-report/index.vue

+ 183 - 0
src/views/distributionnetwork/secure/abnormal-data/index.vue

@@ -0,0 +1,183 @@
+// 取消原因
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="作业日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div class="table">
+      <el-table v-loading="loading" :data="typeList">
+        <el-table-column prop="date" label="序号" width="80" align="center">
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+        </el-table-column>
+        <el-table-column label="管理单位" align="center" prop="dictId" />
+        <el-table-column
+          label="作业单位"
+          align="center"
+          prop="dictName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="作业班组"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业类型"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="电网风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作负责人"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业开始时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业结束时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作内容"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column label="工作执行状态" align="center" prop="status">
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_normal_disable"
+              :value="scope.row.status"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="取消原因"
+          align="center"
+          prop="remark"
+          :show-overflow-tooltip="true"
+        />
+      </el-table>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listType } from "@/api/system/dict/type";
+
+export default {
+  dicts: ["sys_normal_disable"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dictName: undefined,
+        dictType: undefined,
+        status: undefined,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.table {
+  height: calc(100% - 150px);
+}
+::v-deep {
+  .el-table {
+    height: 100%;
+    width: 100%;
+    .el-table__body-wrapper {
+      width: 100% !important;
+      height: calc(100% - 50px) !important; // 表格高度减去表头的高度
+      overflow-y: scroll;
+    }
+  }
+}
+</style>

+ 54 - 0
src/views/distributionnetwork/secure/daily-newspaper/components/execution-status-table.vue

@@ -0,0 +1,54 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column prop="total" label="作业信息总数" align="center">
+    </el-table-column>
+    <el-table-column label="周计划" align="center">
+      <el-table-column prop="weekSum" label="周计划总数" align="center">
+      </el-table-column>
+      <el-table-column prop="weekCancelSum" label="周计划取消数" align="center">
+      </el-table-column>
+      <el-table-column prop="weekRatio" label="周计划执行率" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="临时计划数" align="center">
+      <el-table-column prop="temporarySum" label="临时计划总数" align="center">
+      </el-table-column>
+      <el-table-column
+        prop="temporaryCancelSum"
+        label="临时计划取消数"
+        align="center"
+      >
+      </el-table-column>
+      <el-table-column
+        prop="temporaryRatio"
+        label="临时计划执行率"
+        align="center"
+      >
+      </el-table-column>
+      <el-table-column
+        prop="temporaryPlanRatio"
+        label="临时计划率"
+        align="center"
+      >
+      </el-table-column>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 66 - 0
src/views/distributionnetwork/secure/daily-newspaper/components/other-safety-situations-table.vue

@@ -0,0 +1,66 @@
+<template>
+  <el-table :data="tableData" border v-loading="loading" style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="name" label="单位" align="center"> </el-table-column>
+    <el-table-column label="配网故障情况" align="center">
+      <el-table-column prop="address" label="整线故障数量" align="center">
+      </el-table-column>
+      <el-table-column prop="address" label="支线故障数量" align="center">
+      </el-table-column>
+      <el-table-column prop="address" label="主动消缺数量" align="center">
+      </el-table-column>
+      <el-table-column prop="address" label="主动消缺明细" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="三零统计" align="center">
+      <el-table-column prop="address" label="本月连续天数" align="center">
+      </el-table-column>
+      <el-table-column prop="address" label="本月累计天数" align="center">
+      </el-table-column>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      loading: true,
+      tableData: [
+        {
+          date: "2016-05-02",
+          name: "王小虎",
+          address: "上海市普陀区金沙江路 1518 弄",
+        },
+        {
+          date: "2016-05-04",
+          name: "王小虎",
+          address: "上海市普陀区金沙江路 1517 弄",
+        },
+        {
+          date: "2016-05-01",
+          name: "王小虎",
+          address: "上海市普陀区金沙江路 1519 弄",
+        },
+        {
+          date: "2016-05-03",
+          name: "王小虎",
+          address: "上海市普陀区金沙江路 1516 弄",
+        },
+      ],
+    };
+  },
+  methods: {
+    getList(dateRange) {
+      this.loading = true;
+      setTimeout(() => {
+        this.loading = false;
+      }, 2000);
+    },
+  },
+};
+</script>
+
+<style></style>

+ 42 - 0
src/views/distributionnetwork/secure/daily-newspaper/components/personnel-duty-status-table.vue

@@ -0,0 +1,42 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column prop="bossSum" label="领导督察次数" align="center">
+    </el-table-column>
+    <el-table-column prop="manageSum" label="管理人员督察次数" align="center">
+    </el-table-column>
+    <el-table-column prop="absentSum" label="未履职现场数量" align="center">
+    </el-table-column>
+    <el-table-column prop="absentDetail" label="未履职现场明细" align="center">
+    </el-table-column>
+    <el-table-column
+      prop="absentBadSum"
+      label="城区履职不到位现场数量"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="absentBadDetail"
+      label="履职不到位现场明细"
+      align="center"
+    >
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 54 - 0
src/views/distributionnetwork/secure/daily-newspaper/components/tomorrow-plan-situation-table.vue

@@ -0,0 +1,54 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="单位名称" align="center">
+    </el-table-column>
+    <el-table-column label="作业类型" align="center">
+      <el-table-column prop="workType1Sum" label="倒闸操作" align="center">
+      </el-table-column>
+      <el-table-column prop="workType2Sum" label="配网工程" align="center">
+      </el-table-column>
+      <el-table-column prop="workType3Sum" label="业扩杆迁" align="center">
+      </el-table-column>
+      <el-table-column prop="workType4Sum" label="运维检修" align="center">
+      </el-table-column>
+      <el-table-column prop="workType5Sum" label="其他" align="center">
+      </el-table-column>
+      <el-table-column prop="workTotal" label="总计" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column
+      prop="temporaryPlanSum"
+      label="临时计划数量"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column prop="elePlanSum" label="带电作业数量" align="center">
+    </el-table-column>
+    <el-table-column label="作业风险等级" align="center">
+      <el-table-column prop="planLeve3" label="三级" align="center">
+      </el-table-column>
+      <el-table-column prop="planLeve4" label="四级" align="center">
+      </el-table-column>
+      <el-table-column prop="planLeve5" label="五级" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column prop="checkDetail" label="重点关注检修面" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 42 - 0
src/views/distributionnetwork/secure/daily-newspaper/components/violation-situation-table.vue

@@ -0,0 +1,42 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column label="省公司查处违章" align="center">
+      <el-table-column prop="provinceNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="provinceNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="市公司查处违章" align="center">
+      <el-table-column prop="cityNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="cityNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="县公司查处违章" align="center">
+      <el-table-column prop="countyNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="countyNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column prop="remark" label="保障体系自查问题" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 174 - 0
src/views/distributionnetwork/secure/daily-newspaper/index.vue

@@ -0,0 +1,174 @@
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="作业单位" prop="status">
+        <el-select
+          style="margin-right: 8px"
+          size="mini"
+          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-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div v-loading="loading">
+      <el-tabs v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="违章查处情况" name="violationSituationTableRef">
+          <ViolationSituationTable ref="violationSituationTableRef" />
+        </el-tab-pane>
+        <el-tab-pane label="作业计划执行情况" name="executionStatusTableRef">
+          <ExecutionStatusTable ref="executionStatusTableRef" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="人员到岗到位履职情况"
+          name="personnelDutyStatusTableRef"
+        >
+          <PersonnelDutyStatusTable ref="personnelDutyStatusTableRef" />
+        </el-tab-pane>
+        <el-tab-pane
+          v-if="false"
+          label="其他重要情况"
+          name="otherSafetySituationsTableRef"
+        >
+          <OtherSafetySituationsTable ref="otherSafetySituationsTableRef" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="明日作业计划安排情况"
+          name="tomorrowPlanSituationTableRef"
+        >
+          <TomorrowPlanSituationTable ref="tomorrowPlanSituationTableRef" />
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="handleQuery"
+    />
+  </div>
+</template>
+
+<script>
+import ViolationSituationTable from "./components/violation-situation-table.vue";
+import ExecutionStatusTable from "./components/execution-status-table.vue";
+import OtherSafetySituationsTable from "./components/other-safety-situations-table.vue";
+import TomorrowPlanSituationTable from "./components/tomorrow-plan-situation-table.vue";
+import PersonnelDutyStatusTable from "./components/personnel-duty-status-table.vue";
+import moment from "moment";
+import { getReportDay, dayExport } from "@/api/secure/daily-newspaper";
+export default {
+  components: {
+    ViolationSituationTable,
+    ExecutionStatusTable,
+    OtherSafetySituationsTable,
+    TomorrowPlanSituationTable,
+    PersonnelDutyStatusTable,
+  },
+  name: "daily",
+  data() {
+    return {
+      activeName: "violationSituationTableRef",
+      // 日期范围
+      dateRange: moment().subtract(1, "days").endOf("day").format("YYYYMMDD"),
+      total: 0,
+      loading: false,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      value: "",
+      options: [
+        {
+          value: "选项1",
+          label: "黄金糕",
+        },
+        {
+          value: "选项2",
+          label: "双皮奶",
+        },
+      ],
+    };
+  },
+  mounted() {
+    this.handleQuery();
+  },
+  methods: {
+    moment,
+    handleClick(tab, event) {
+      console.log(tab, event, "---------ddd");
+      this.activeName = tab.name;
+    },
+    /** 搜索按钮操作 */
+    async handleQuery() {
+      this.loading = true;
+      const { appointmentList, illegalList, nextDayList, planList } =
+        await getReportDay(this.dateRange);
+      this.$nextTick(() => {
+        this.$refs["violationSituationTableRef"].tableData = illegalList;
+        this.$refs["executionStatusTableRef"].tableData = planList;
+        this.$refs["personnelDutyStatusTableRef"].tableData = appointmentList;
+        this.$refs["tomorrowPlanSituationTableRef"].tableData = nextDayList;
+      });
+      this.loading = false;
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = moment()
+        .subtract(1, "days")
+        .endOf("day")
+        .format("YYYYMMDD");
+      this.handleQuery();
+    },
+    async onExport() {
+      const res = await dayExport(this.dateRange);
+      if (res) {
+        const elink = document.createElement("a");
+        elink.download = `日报-${this.dateRange}.xls`;
+        elink.style.display = "none";
+        const blob = new Blob([res], { type: "application/x-msdownload" });
+        elink.href = URL.createObjectURL(blob);
+        document.body.appendChild(elink);
+        elink.click();
+        document.body.removeChild(elink);
+      } else {
+        this.$message.error("导出异常请联系管理员");
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped></style>

+ 121 - 0
src/views/distributionnetwork/secure/points-ranking/index.vue

@@ -0,0 +1,121 @@
+// 积分排行榜
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <!-- <el-form-item label="作业日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item> -->
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div class="table">
+      <el-table v-loading="loading" :data="typeList">
+        <el-table-column prop="date" label="序号" width="80" align="center">
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+        </el-table-column>
+        <el-table-column prop="date" label="排名" align="center">
+        </el-table-column>
+        <el-table-column prop="name" label="单位" align="center">
+        </el-table-column>
+        <el-table-column prop="name" label="工作负责人" align="center">
+        </el-table-column>
+        <el-table-column prop="address" label="积分" align="center">
+        </el-table-column>
+      </el-table>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listType } from "@/api/system/dict/type";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dictName: undefined,
+        dictType: undefined,
+        status: undefined,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.table {
+  height: calc(100% - 150px);
+}
+::v-deep {
+  .el-table {
+    height: 100%;
+    width: 100%;
+    .el-table__body-wrapper {
+      width: 100% !important;
+      height: calc(100% - 50px) !important; // 表格高度减去表头的高度
+      overflow-y: scroll;
+    }
+  }
+}
+</style>

+ 183 - 0
src/views/distributionnetwork/secure/reason-for-cancellation/index.vue

@@ -0,0 +1,183 @@
+// 取消原因
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="作业日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div class="table">
+      <el-table v-loading="loading" :data="typeList">
+        <el-table-column prop="date" label="序号" width="80" align="center">
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+        </el-table-column>
+        <el-table-column label="管理单位" align="center" prop="dictId" />
+        <el-table-column
+          label="作业单位"
+          align="center"
+          prop="dictName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="作业班组"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业类型"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="电网风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作负责人"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业开始时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业结束时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作内容"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column label="工作执行状态" align="center" prop="status">
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_normal_disable"
+              :value="scope.row.status"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="取消原因"
+          align="center"
+          prop="remark"
+          :show-overflow-tooltip="true"
+        />
+      </el-table>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listType } from "@/api/system/dict/type";
+
+export default {
+  dicts: ["sys_normal_disable"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dictName: undefined,
+        dictType: undefined,
+        status: undefined,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.table {
+  height: calc(100% - 150px);
+}
+::v-deep {
+  .el-table {
+    height: 100%;
+    width: 100%;
+    .el-table__body-wrapper {
+      width: 100% !important;
+      height: calc(100% - 50px) !important; // 表格高度减去表头的高度
+      overflow-y: scroll;
+    }
+  }
+}
+</style>

+ 183 - 0
src/views/distributionnetwork/secure/reason-for-the-plan/index.vue

@@ -0,0 +1,183 @@
+// 取消原因
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="作业日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div class="table">
+      <el-table v-loading="loading" :data="typeList">
+        <el-table-column prop="date" label="序号" width="80" align="center">
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+        </el-table-column>
+        <el-table-column label="管理单位" align="center" prop="dictId" />
+        <el-table-column
+          label="作业单位"
+          align="center"
+          prop="dictName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="作业班组"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业类型"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="电网风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作负责人"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业开始时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业结束时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作内容"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column label="工作执行状态" align="center" prop="status">
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_normal_disable"
+              :value="scope.row.status"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="临时计划原因"
+          align="center"
+          prop="remark"
+          :show-overflow-tooltip="true"
+        />
+      </el-table>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listType } from "@/api/system/dict/type";
+
+export default {
+  dicts: ["sys_normal_disable"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dictName: undefined,
+        dictType: undefined,
+        status: undefined,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.table {
+  height: calc(100% - 150px);
+}
+::v-deep {
+  .el-table {
+    height: 100%;
+    width: 100%;
+    .el-table__body-wrapper {
+      width: 100% !important;
+      height: calc(100% - 50px) !important; // 表格高度减去表头的高度
+      overflow-y: scroll;
+    }
+  }
+}
+</style>

+ 183 - 0
src/views/distributionnetwork/secure/risk-identification/index.vue

@@ -0,0 +1,183 @@
+// 取消原因
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="作业日期" prop="menuName">
+        <el-date-picker
+          v-model="dateRange"
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          type="date"
+          value-format="yyyyMMdd"
+          :clearable="false"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div class="table">
+      <el-table v-loading="loading" :data="typeList">
+        <el-table-column prop="date" label="序号" width="80" align="center">
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+        </el-table-column>
+        <el-table-column label="管理单位" align="center" prop="dictId" />
+        <el-table-column
+          label="作业单位"
+          align="center"
+          prop="dictName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="作业班组"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业类型"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="电网风险"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作负责人"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业开始时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="作业结束时间"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="工作内容"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column label="工作执行状态" align="center" prop="status">
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_normal_disable"
+              :value="scope.row.status"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="取消原因"
+          align="center"
+          prop="remark"
+          :show-overflow-tooltip="true"
+        />
+      </el-table>
+    </div>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listType } from "@/api/system/dict/type";
+
+export default {
+  dicts: ["sys_normal_disable"],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dictName: undefined,
+        dictType: undefined,
+        status: undefined,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.table {
+  height: calc(100% - 150px);
+}
+::v-deep {
+  .el-table {
+    height: 100%;
+    width: 100%;
+    .el-table__body-wrapper {
+      width: 100% !important;
+      height: calc(100% - 50px) !important; // 表格高度减去表头的高度
+      overflow-y: scroll;
+    }
+  }
+}
+</style>

+ 34 - 0
src/views/distributionnetwork/secure/weekly-report/components/level3-above-plans-table.vue

@@ -0,0 +1,34 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="name" label="工作内容" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="风险等级" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="作业时间" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="施工单位" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="运维单位" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="专业部门" align="center">
+    </el-table-column>
+    <el-table-column prop="name" label="到岗到位安排" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 42 - 0
src/views/distributionnetwork/secure/weekly-report/components/line-missing-situation-table.vue

@@ -0,0 +1,42 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="name" label="单位" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="address" label="馈线数量(条)" align="center">
+    </el-table-column>
+    <el-table-column
+      prop="address"
+      label="杆号牌缺失目前已排查线路条数"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="address"
+      label="杆号牌缺失待排查线路条数"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column prop="address" label="排查完成率" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="缺失杆号牌块数" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="已完成整改块数" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="整改率" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 41 - 0
src/views/distributionnetwork/secure/weekly-report/components/next-week-plan-situation-table.vue

@@ -0,0 +1,41 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="company" label="单位名称" align="center">
+    </el-table-column>
+    <el-table-column label="作业类型" align="center">
+      <el-table-column prop="workType1Sum" label="倒闸操作" align="center">
+      </el-table-column>
+      <el-table-column prop="workType2Sum" label="配网工程" align="center">
+      </el-table-column>
+      <el-table-column prop="workType3Sum" label="运维检修" align="center">
+      </el-table-column>
+      <el-table-column prop="workTotal" label="总计" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column prop="elePlanSum" label="带电作业数量" align="center">
+    </el-table-column>
+    <el-table-column label="作业风险等级" align="center">
+      <el-table-column prop="planLeve3" label="三级" align="center">
+      </el-table-column>
+      <el-table-column prop="planLeve4" label="四级" align="center">
+      </el-table-column>
+      <el-table-column prop="planLeve5" label="五级" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column prop="checkDetail" label="重点关注检修面" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 49 - 0
src/views/distributionnetwork/secure/weekly-report/components/thoughtful-job-situation-table.vue

@@ -0,0 +1,49 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column label="督查现场数量" align="center">
+      <el-table-column prop="checkNum3" label="三级风险" align="center">
+      </el-table-column>
+      <el-table-column prop="checkNum4" label="四级风险" align="center">
+      </el-table-column>
+      <el-table-column prop="checkNum5" label="五级风险" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column prop="bossSum" label="领导现场督查次数" align="center">
+    </el-table-column>
+    <el-table-column
+      prop="manageSum"
+      label="专业管理人员督查次数"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column prop="problemSum" label="发现问题数量" align="center">
+    </el-table-column>
+    <el-table-column
+      prop="absentSum"
+      label="督查履职不到位现场数量"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="cityCheckSum"
+      label="市公司查处问题数量"
+      align="center"
+    >
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 26 - 0
src/views/distributionnetwork/secure/weekly-report/components/update-on-external-risks-table.vue

@@ -0,0 +1,26 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="name" label="单位" align="center"> </el-table-column>
+    <el-table-column prop="address" label="外触隐患" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="已治理" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="完成率" align="center">
+    </el-table-column>
+    <el-table-column prop="address" label="备注" align="center">
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 54 - 0
src/views/distributionnetwork/secure/weekly-report/components/weekly-plan-situation-table.vue

@@ -0,0 +1,54 @@
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column prop="total" label="作业信息总数" align="center">
+    </el-table-column>
+    <el-table-column label="周计划" align="center">
+      <el-table-column prop="weekSum" label="周计划总数" align="center">
+      </el-table-column>
+      <el-table-column prop="weekCancelSum" label="周计划取消数" align="center">
+      </el-table-column>
+      <el-table-column prop="weekRatio" label="周计划执行率" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="临时计划数" align="center">
+      <el-table-column prop="temporarySum" label="临时计划总数" align="center">
+      </el-table-column>
+      <el-table-column
+        prop="temporaryCancelSum"
+        label="临时计划取消数"
+        align="center"
+      >
+      </el-table-column>
+      <el-table-column
+        prop="temporaryRatio"
+        label="临时计划执行率"
+        align="center"
+      >
+      </el-table-column>
+      <el-table-column
+        prop="temporaryPlanRatio"
+        label="临时计划率"
+        align="center"
+      >
+      </el-table-column>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 41 - 0
src/views/distributionnetwork/secure/weekly-report/components/weekly-violation-situation-table.vue

@@ -0,0 +1,41 @@
+
+<template>
+  <el-table :data="tableData" border style="width: 100%">
+    <el-table-column prop="date" label="序号" width="80" align="center">
+      <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+    </el-table-column>
+    <el-table-column prop="company" label="作业单位" align="center">
+    </el-table-column>
+    <el-table-column label="省公司查处违章" align="center">
+      <el-table-column prop="provinceNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="provinceNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="市公司查处违章" align="center">
+      <el-table-column prop="cityNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="cityNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="县公司查处违章" align="center">
+      <el-table-column prop="countyNum1" label="严重" align="center">
+      </el-table-column>
+      <el-table-column prop="countyNum2" label="一般" align="center">
+      </el-table-column>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+    };
+  },
+  methods: {},
+};
+</script>
+
+<style></style>

+ 217 - 0
src/views/distributionnetwork/secure/weekly-report/index.vue

@@ -0,0 +1,217 @@
+<template>
+  <div class="app-container">
+    <el-form size="small" :inline="true">
+      <el-form-item label="日期" prop="menuName">
+        <el-date-picker
+          style="width: 240px; margin-right: 8px"
+          size="mini"
+          v-model="dateRange"
+          type="week"
+          format="yyyy 第 WW 周"
+          placeholder="选择周"
+          :picker-options="{ firstDayOfWeek: 1 }"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="作业单位" prop="status">
+        <el-select
+          style="margin-right: 8px"
+          size="mini"
+          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-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button icon="el-icon-download" size="mini" @click="onExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="本周计划执行情况" name="weeklyPlanSituationTableRef">
+        <WeeklyPlanSituationTable ref="weeklyPlanSituationTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        label="三级及以上作业风险计划"
+        name="level3AbovePlansTableRef"
+      >
+        <Level3AbovePlansTable ref="level3AbovePlansTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        label="下周计划安排情况"
+        name="nextWeekPlanSituationTableRef"
+      >
+        <NextWeekPlanSituationTable ref="nextWeekPlanSituationTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        label="本周违章查处情况"
+        name="weeklyViolationSituationTableRef"
+      >
+        <WeeklyViolationSituationTable ref="weeklyViolationSituationTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        label="本周到岗到位履职情况"
+        name="thoughtfulJobSituationTableRef"
+      >
+        <ThoughtfulJobSituationTable ref="thoughtfulJobSituationTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        v-if="false"
+        label="防外人触电隐患排查"
+        name="updateOnExternalRisksTableRef"
+      >
+        <UpdateOnExternalRisksTable ref="updateOnExternalRisksTableRef" />
+      </el-tab-pane>
+      <el-tab-pane
+        v-if="false"
+        label="线路杆号牌缺失情况"
+        name="lineMissingSituationTableRef"
+      >
+        <LineMissingSituationTable ref="lineMissingSituationTableRef" />
+      </el-tab-pane>
+    </el-tabs>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="handleQuery"
+    />
+  </div>
+</template>
+
+<script>
+import Level3AbovePlansTable from "./components/level3-above-plans-table.vue";
+import LineMissingSituationTable from "./components/line-missing-situation-table.vue";
+import NextWeekPlanSituationTable from "./components/next-week-plan-situation-table.vue";
+import ThoughtfulJobSituationTable from "./components/thoughtful-job-situation-table.vue";
+import UpdateOnExternalRisksTable from "./components/update-on-external-risks-table.vue";
+import WeeklyPlanSituationTable from "./components/weekly-plan-situation-table.vue";
+import WeeklyViolationSituationTable from "./components/weekly-violation-situation-table.vue";
+import moment from "moment";
+import { getReportWeek } from "@/api/secure/daily-newspaper";
+export default {
+  components: {
+    Level3AbovePlansTable,
+    LineMissingSituationTable,
+    NextWeekPlanSituationTable,
+    ThoughtfulJobSituationTable,
+    UpdateOnExternalRisksTable,
+    WeeklyPlanSituationTable,
+    WeeklyViolationSituationTable,
+  },
+  name: "weekly-report",
+  data() {
+    return {
+      activeName: "weeklyPlanSituationTableRef",
+      // 日期范围
+      dateRange: "",
+      startDate: "", // 显示开始时间
+      endDate: "", // 显示结束时间
+      total: 0,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      value: "",
+      options: [
+        {
+          value: "选项1",
+          label: "黄金糕",
+        },
+        {
+          value: "选项2",
+          label: "双皮奶",
+        },
+      ],
+    };
+  },
+  watch: {
+    dateRange(newVal) {
+      this.calculateStartAndEndDates(newVal);
+    },
+  },
+  mounted() {
+    // 设置默认为最近的一周
+    this.setRecentWeek();
+    this.handleQuery();
+  },
+  methods: {
+    moment,
+    setRecentWeek() {
+      const today = new Date();
+      const diffDays = today.getDay() === 0 ? -6 : 1 - today.getDay(); // 调整到周一作为一周的开始
+      const startOfWeek = new Date(today);
+      startOfWeek.setDate(today.getDate() + diffDays);
+      this.dateRange = startOfWeek;
+
+      this.calculateStartAndEndDates(startOfWeek);
+    },
+    handleClick(tab, event) {
+      console.log(tab, event, "---------ddd");
+      this.activeName = tab.name;
+      // this.handleQuery();
+    },
+    /** 搜索按钮操作 */
+    async handleQuery() {
+      this.loading = true;
+      const { appointmentList, illegalList, nextList, planList } =
+        await getReportWeek(this.startDate, this.endDate);
+      this.$nextTick(() => {
+        this.$refs["weeklyPlanSituationTableRef"].tableData = planList;
+        this.$refs["level3AbovePlansTableRef"].tableData = [];
+        this.$refs["nextWeekPlanSituationTableRef"].tableData = nextList;
+        this.$refs["weeklyViolationSituationTableRef"].tableData = illegalList;
+        this.$refs["thoughtfulJobSituationTableRef"].tableData =
+          appointmentList;
+      });
+      this.loading = false;
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      // 设置默认为最近的一周
+      this.setRecentWeek();
+      this.handleQuery();
+    },
+    calculateStartAndEndDates(date) {
+      if (!date) return;
+
+      const startOfWeek = new Date(date.getTime());
+      const dayOfWeek = startOfWeek.getDay();
+      const diffDays = dayOfWeek === 0 ? -6 : 1 - dayOfWeek; // 调整到周一作为一周的开始
+      startOfWeek.setDate(startOfWeek.getDate() + diffDays);
+
+      const endOfWeek = new Date(startOfWeek);
+      endOfWeek.setDate(endOfWeek.getDate() + 6);
+
+      this.startDate = this.formatDate(startOfWeek);
+      this.endDate = this.formatDate(endOfWeek);
+    },
+    formatDate(date) {
+      const year = date.getFullYear();
+      const month = String(date.getMonth() + 1).padStart(2, "0");
+      const day = String(date.getDate()).padStart(2, "0");
+      return `${year}${month}${day}`;
+    },
+    onExport() {},
+  },
+};
+</script>
+<style lang="scss" scoped></style>