cfofpp 6 mēneši atpakaļ
vecāks
revīzija
af6111794b

+ 6 - 4
src/api/secure/daily-newspaper.js

@@ -2,10 +2,11 @@ import request from "@/utils/request";
 import http from "@/utils/axios";
 
 // 日报列表
-export function getReportDay(date) {
+export function getReportDay(param) {
   return request({
-    url: `/power/report/day?reportDate=${date}`,
+    url: `/power/report/day`,
     method: "get",
+    params: param,
   });
 }
 
@@ -18,10 +19,11 @@ export function dayExport(date) {
   });
 }
 // 周报列表
-export function getReportWeek(startDate, endDate) {
+export function getReportWeek(param) {
   return request({
-    url: `/power/report/week?startDate=${startDate}&endDate=${endDate}`,
+    url: `/power/report/week`,
     method: "get",
+    params: param,
   });
 }
 //周报导出

+ 41 - 0
src/api/secure/pdm-risk-role.js

@@ -0,0 +1,41 @@
+import request from "@/utils/request";
+
+// 风险列表
+export function getRiskRoleList(param) {
+  return request({
+    url: `/power/riskRole/list`,
+    method: "get",
+    params: param,
+  });
+}
+// 详情
+export function getRiskRoleInfo(param) {
+  return request({
+    url: `/power/riskRole/${param}`,
+    method: "get",
+  });
+}
+// 删除
+export function delRiskRole(param) {
+  return request({
+    url: `/power/riskRole/delete/${param}`,
+    method: "get",
+  });
+}
+// 新增
+export function addRiskRole(data) {
+  return request({
+    url: `/power/riskRole/add`,
+    method: "post",
+    data,
+  });
+}
+
+// 更新
+export function updateRiskRole(data) {
+  return request({
+    url: `/power/riskRole/update`,
+    method: "post",
+    data,
+  });
+}

+ 59 - 5
src/views/distributionnetwork/secure/abnormal-data/index.vue

@@ -1,8 +1,25 @@
 <template>
   <div class="app-container">
     <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
-      <el-form-item label="作业类型">
-        <el-input v-model="queryParams.opTypCd" placeholder="请输入"></el-input>
+      <el-form-item label="作业类型" prop="opTypCd">
+        <el-select v-model="queryParams.opTypCd" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in workTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="专业类型" prop="majorTypDsc">
+        <el-select v-model="queryParams.majorTypDsc" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in zyTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="管理单位" prop="mgmtOrgNm">
         <el-input
@@ -23,10 +40,22 @@
         ></el-input>
       </el-form-item>
       <el-form-item label="作业单位" prop="submitOrgNm">
-        <el-input
+        <el-select
+          style="margin-right: 8px"
+          size="mini"
           v-model="queryParams.submitOrgNm"
-          placeholder="请输入"
-        ></el-input>
+          placeholder="请选择"
+          clearable
+        >
+          <el-option label="全部" value=""> </el-option>
+          <el-option
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -139,6 +168,7 @@
 
 <script>
 import { getWorkPlanList } from "@/api/secure/pdm-work-plan";
+import { getWorkUnitList } from "@/api/secure/daily-newspaper";
 export default {
   data() {
     return {
@@ -156,12 +186,36 @@ export default {
         workPrincipNm: "",
         submitOrgNm: "",
       },
+      // 作业类型
+      workTypeList: [],
+      // 专业类型
+      zyTypeList: [],
+      // 作业单位
+      workUnitOptions: [],
     };
   },
   created() {
+    this.getWorkUnit();
+    this.getWorkType();
+    this.getZyType();
     this.getList();
   },
   methods: {
+    // 作业单位
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
+    // 作业类型
+    async getWorkType() {
+      const { data } = await this.getDicts("homework_type");
+      this.workTypeList = data;
+    },
+    // 专业类型
+    async getZyType() {
+      const { data } = await this.getDicts("professional_type");
+      this.zyTypeList = data;
+    },
     /** 查询列表 */
     getList() {
       this.loading = true;

+ 199 - 0
src/views/distributionnetwork/secure/code-maintenance/index.vue

@@ -0,0 +1,199 @@
+<template>
+  <div class="app-container">
+    <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
+      <el-form-item label="编码名称" prop="roleName">
+        <el-input
+          v-model="queryParams.roleName"
+          placeholder="请输入"
+        ></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          >新增</el-button
+        >
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="!selectedRows.length"
+          @click="handleDelete"
+          >删除</el-button
+        >
+      </el-col>
+    </el-row>
+    <div class="table">
+      <el-table
+        ref="renewalTable"
+        v-loading="loading"
+        :data="dataList"
+        @selection-change="handleSelectionChange"
+        row-key="id"
+      >
+        <el-table-column type="selection" width="55" align="center" />
+        <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="roleName"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="编码值"
+          align="center"
+          prop="roleCode"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="描述"
+          prop="roleDes"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="备注"
+          prop="remark"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          align="center"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              >修改</el-button
+            >
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <RiskRoleModel ref="riskRoleModelRef" @refresh="getList()"></RiskRoleModel>
+  </div>
+</template>
+
+<script>
+import { getRiskRoleList, delRiskRole } from "@/api/secure/pdm-risk-role";
+import RiskRoleModel from "../components/RiskRoleModel";
+export default {
+  components: { RiskRoleModel },
+  data() {
+    return {
+      dataList: [],
+      // 遮罩层
+      loading: true,
+      total: 0,
+      // 查询参数
+      queryParams: {
+        roleName: "",
+      },
+      // 选中数组
+      selectedRows: [],
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    // 多选框选中数据
+    handleSelectionChange(selectedRows) {
+      // 记录选择的行
+      this.selectedRows = selectedRows;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.$refs.riskRoleModelRef.openModel({ ...row });
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.$refs.riskRoleModelRef.openModel({});
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const roleIds = row.id || this.selectedRows.map((ite) => ite.id);
+      this.$modal
+        .confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?')
+        .then(function () {
+          return delRiskRole(roleIds);
+        })
+        .then(() => {
+          this.getList();
+          this.selectedRows = [];
+          this.$refs.renewalTable.clearSelection();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+    },
+    /** 查询列表 */
+    getList() {
+      this.loading = true;
+      getRiskRoleList({ ...this.queryParams, riskFlag: "1" }).then(
+        (response) => {
+          this.dataList = response.rows;
+          this.loading = false;
+        }
+      );
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      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>

+ 121 - 0
src/views/distributionnetwork/secure/components/RiskRoleModel.vue

@@ -0,0 +1,121 @@
+<template>
+  <el-drawer
+    :title="title"
+    :before-close="cancelForm"
+    :visible.sync="visible"
+    direction="rtl"
+    ref="drawer"
+  >
+    <div class="demo-drawer__content" style="padding: 0 20px">
+      <el-form :model="form" :rules="rules" ref="form">
+        <el-row :gutter="30">
+          <el-col :span="24">
+            <el-form-item label="编码名称" prop="roleName">
+              <el-input v-model="form.roleName" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="编码值" prop="roleCode">
+              <el-input v-model="form.roleCode" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="描述" prop="roleDes">
+              <el-input v-model="form.roleDes" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div class="demo-drawer__footer" style="text-align: right">
+        <el-button @click="cancelForm">取 消 </el-button>
+        <el-button type="primary" @click="handleSubmit" :loading="loading">{{
+          loading ? "提交中 ..." : "确 定"
+        }}</el-button>
+      </div>
+    </div>
+  </el-drawer>
+</template>
+
+<script>
+import {
+  getRiskRoleInfo,
+  updateRiskRole,
+  addRiskRole,
+} from "@/api/secure/pdm-risk-role";
+export default {
+  data() {
+    return {
+      // 遮罩层
+      visible: false,
+      title: "",
+      form: {
+        roleName: "",
+        roleCode: "",
+        roleDes: "",
+        remark: "",
+      },
+      // 表单校验
+      rules: {
+        roleName: [
+          { required: true, message: "编码名称不能为空", trigger: "blur" },
+        ],
+        roleCode: [
+          { required: true, message: "编码值不能为空", trigger: "blur" },
+        ],
+        roleDes: [{ required: true, message: "描述不能为空", trigger: "blur" }],
+      },
+      loading: false,
+    };
+  },
+  methods: {
+    // 显示弹框
+    async openModel(data, title) {
+      this.title = title;
+      if (data && data.id) {
+        this.title = "编辑";
+        const { data: _data } = await getRiskRoleInfo(data.id);
+        this.form = { ..._data };
+      } else {
+        this.title = "新增";
+      }
+      this.visible = true;
+    },
+    handleSubmit() {
+      if (this.loading) {
+        return;
+      }
+      this.$refs.form.validate((v) => {
+        if (!v) return;
+        this.loading = true;
+        const funMap = {
+          编辑: updateRiskRole,
+          新增: addRiskRole,
+        };
+        funMap[this.title](this.form).then((response) => {
+          this.$modal.msgSuccess("操作成功");
+          this.loading = false;
+          this.visible = false;
+          this.resetForm("form");
+          this.$emit("refresh");
+        });
+      });
+    },
+    cancelForm() {
+      this.loading = false;
+      this.visible = false;
+      this.form = {
+        roleName: "",
+        roleCode: "",
+        roleDes: "",
+        remark: "",
+      };
+      this.resetForm("form");
+    },
+  },
+};
+</script>

+ 42 - 29
src/views/distributionnetwork/secure/components/WorkPlanModel.vue

@@ -1,119 +1,130 @@
 <template>
   <el-drawer
     :title="title"
-    :before-close="handleClose"
+    :before-close="cancelForm"
     :visible.sync="dialog"
-    direction="ttb"
+    direction="rtl"
     ref="drawer"
   >
     <div class="demo-drawer__content" style="padding: 0 20px">
       <el-form :model="form">
         <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业内容">
               <el-input v-model="form.opContent" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业地址">
               <el-input v-model="form.opAddr" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="线路/变电站">
               <el-input v-model="form.subsOrLineId" disabled></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="电压等级">
               <el-input v-model="form.voltLvlCd" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="作业类型">
-              <el-input v-model="form.opTypCd" disabled></el-input>
+              <el-input v-model="form.opTypDsc" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="管理单位">
               <el-input v-model="form.mgmtOrgNm" disabled></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业单位">
               <el-input v-model="form.submitOrgNm" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="工作负责人">
               <el-input v-model="form.workPrincipNm" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="作业班组">
               <el-input v-model="form.workTeamNm" disabled></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业风险">
               <el-input v-model="form.opRiskLvlDsc" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="作业人数">
               <el-input v-model="form.mainBusiOrgOpNum" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业开始时间">
               <el-input v-model="form.planStartWkTm" disabled></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="作业结束时间">
               <el-input v-model="form.planEndTm" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="12">
             <el-form-item label="专业类型">
-              <el-input v-model="form.majorTypCd" disabled></el-input>
+              <el-input v-model="form.majorTypDsc" disabled></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="24" v-if="title == '录入取消原因'">
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="24" v-if="type == 1">
             <el-form-item label="取消原因">
               <el-input
                 type="textarea"
                 :rows="3"
                 placeholder="请输入取消原因"
                 v-model="form.cancelReason"
+                :disabled="title == '明细'"
               />
             </el-form-item>
           </el-col>
-          <el-col :span="24" v-if="title == '录入临时计划原因'">
+          <el-col :span="24" v-if="type == 2">
             <el-form-item label="临时计划原因">
               <el-input
                 type="textarea"
                 :rows="3"
                 placeholder="请输入临时计划原因"
                 v-model="form.planReason"
+                :disabled="title == '明细'"
               />
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <div class="demo-drawer__footer" style="text-align: right">
-        <el-button @click="cancelForm">取 消</el-button>
+        <el-button @click="cancelForm"
+          >{{ title == "明细" ? "关 闭" : "取 消" }}
+        </el-button>
         <el-button
+          v-if="title != '明细'"
           type="primary"
-          @click="$refs.drawer.closeDrawer()"
+          @click="handleClose"
           :loading="loading"
           >{{ loading ? "提交中 ..." : "确 定" }}</el-button
         >
@@ -133,7 +144,7 @@ export default {
         opAddr: "",
         subsOrLineId: "",
         voltLvlCd: "",
-        opTypCd: "",
+        opTypDsc: "",
         mgmtOrgNm: "",
         submitOrgNm: "",
         workPrincipNm: "",
@@ -142,19 +153,21 @@ export default {
         mainBusiOrgOpNum: "",
         planStartWkTm: "",
         planEndTm: "",
-        majorTypCd: "",
+        majorTypDsc: "",
         cancelReason: "",
         planReason: "",
       },
       loading: false,
       dialog: false,
+      type: null, //1作业取消计划  2临时计划
     };
   },
   methods: {
-    openModel(data, title) {
+    openModel(data, title, type) {
       this.form = { ...data };
       this.title = title;
       this.dialog = true;
+      this.type = type;
     },
     handleClose(done) {
       if (this.loading) {

+ 14 - 10
src/views/distributionnetwork/secure/daily-newspaper/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="app-container">
     <el-form size="small" :inline="true">
-      <el-form-item label="日期" prop="menuName">
+      <el-form-item label="日期" prop="reportDate">
         <el-date-picker
-          v-model="dateRange"
+          v-model="queryParams.reportDate"
           style="width: 240px; margin-right: 8px"
           size="mini"
           type="date"
@@ -11,11 +11,11 @@
           :clearable="false"
         ></el-date-picker>
       </el-form-item>
-      <el-form-item label="作业单位" prop="status">
+      <el-form-item label="作业单位" prop="organAbbr">
         <el-select
           style="margin-right: 8px"
           size="mini"
-          v-model="workUnit"
+          v-model="queryParams.organAbbr"
           placeholder="请选择"
           clearable
         >
@@ -115,8 +115,12 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        reportDate: moment()
+          .subtract(1, "days")
+          .endOf("day")
+          .format("YYYYMMDD"),
+        organAbbr: "", // 作业单位
       },
-      workUnit: "", // 作业单位
       workUnitOptions: [],
     };
   },
@@ -138,7 +142,7 @@ export default {
     async handleQuery() {
       this.loading = true;
       const { appointmentList, illegalList, nextDayList, planList } =
-        await getReportDay(this.dateRange);
+        await getReportDay(this.queryParams);
       this.$nextTick(() => {
         this.$refs["violationSituationTableRef"].tableData = illegalList;
         this.$refs["executionStatusTableRef"].tableData = planList;
@@ -149,18 +153,18 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.dateRange = moment()
+      this.queryParams.reportDate = moment()
         .subtract(1, "days")
         .endOf("day")
         .format("YYYYMMDD");
-      this.workUnit = "";
+      this.queryParams.organAbb = "";
       this.handleQuery();
     },
     async onExport() {
-      const res = await dayExport(this.dateRange);
+      const res = await dayExport(this.queryParams.reportDate);
       if (res) {
         const elink = document.createElement("a");
-        elink.download = `日报-${this.dateRange}.xls`;
+        elink.download = `日报-${this.queryParams.reportDate}.xls`;
         elink.style.display = "none";
         const blob = new Blob([res], { type: "application/x-msdownload" });
         elink.href = URL.createObjectURL(blob);

+ 63 - 40
src/views/distributionnetwork/secure/points-ranking/index.vue

@@ -1,17 +1,7 @@
 // 积分排行榜
 <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 size="small" :inline="true">
       <el-form-item>
         <el-button
           type="primary"
@@ -23,33 +13,61 @@
         <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"
-    />
+    </el-form> -->
+    <el-tabs v-model="activeName">
+      <el-tab-pane label="队伍积分排行" name="1">
+        <div class="table">
+          <el-table v-loading="loading" :data="dataList1">
+            <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>
+      </el-tab-pane>
+      <el-tab-pane label="工作负责人积分排行" name="2">
+        <div class="table">
+          <el-table v-loading="loading" :data="dataList2">
+            <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>
+      </el-tab-pane>
+      <el-tab-pane label="作业人员积分排行" name="3">
+        <div class="table">
+          <el-table v-loading="loading" :data="dataList3">
+            <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>
+      </el-tab-pane>
+    </el-tabs>
   </div>
 </template>
 
@@ -62,8 +80,7 @@ export default {
       // 遮罩层
       loading: true,
       total: 0,
-      // 日期范围
-      dateRange: [],
+      activeName: "1",
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -72,6 +89,12 @@ export default {
         dictType: undefined,
         status: undefined,
       },
+      // 队伍
+      dataList1: [],
+      // 工作负责人
+      dataList2: [],
+      // 作业人员
+      dataList3: [],
     };
   },
   created() {
@@ -83,7 +106,7 @@ export default {
       this.loading = true;
       listType(this.addDateRange(this.queryParams, this.dateRange)).then(
         (response) => {
-          this.typeList = response.rows;
+          this.dataList1 = response.rows;
           this.total = response.total;
           this.loading = false;
         }

+ 103 - 16
src/views/distributionnetwork/secure/reason-for-cancellation/index.vue

@@ -1,11 +1,25 @@
 <template>
   <div class="app-container">
     <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
-      <el-form-item label="作业类型" prop="opTypDsc">
-        <el-input
-          v-model="queryParams.opTypDsc"
-          placeholder="请输入"
-        ></el-input>
+      <el-form-item label="作业类型" prop="opTypCd">
+        <el-select v-model="queryParams.opTypCd" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in workTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="专业类型" prop="majorTypDsc">
+        <el-select v-model="queryParams.majorTypDsc" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in zyTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="管理单位" prop="mgmtOrgNm">
         <el-input
@@ -26,10 +40,22 @@
         ></el-input>
       </el-form-item>
       <el-form-item label="作业单位" prop="submitOrgNm">
-        <el-input
+        <el-select
+          style="margin-right: 8px"
+          size="mini"
           v-model="queryParams.submitOrgNm"
-          placeholder="请输入"
-        ></el-input>
+          placeholder="请选择"
+          clearable
+        >
+          <el-option label="全部" value=""> </el-option>
+          <el-option
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -44,8 +70,27 @@
         >
       </el-form-item>
     </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          size="mini"
+          :disabled="!selectedRows.length"
+          @click="handleUpdate(selectedRows[0], '录入取消原因')"
+          >录入取消原因</el-button
+        >
+      </el-col>
+    </el-row>
     <div class="table">
-      <el-table v-loading="loading" :data="dataList">
+      <el-table
+        ref="renewalTable"
+        v-loading="loading"
+        :data="dataList"
+        @selection-change="handleSelectionChange"
+        row-key="id"
+      >
+        <el-table-column type="selection" width="55" align="center" />
         <el-table-column prop="date" label="序号" width="80" align="center">
           <template slot-scope="scope">{{ scope.$index + 1 }}</template>
         </el-table-column>
@@ -70,14 +115,14 @@
         </el-table-column>
         <el-table-column
           label="电压等级"
-          prop="voltLvlCd"
+          prop="voltLvlDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
           label="作业类型"
-          prop="opTypCd"
+          prop="opTypDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
@@ -138,7 +183,7 @@
           :show-overflow-tooltip="true"
         >
         </el-table-column>
-        <el-table-column label="专业类型" align="center" prop="majorTypCd">
+        <el-table-column label="专业类型" align="center" prop="majorTypDsc">
         </el-table-column>
         <el-table-column
           label="取消原因"
@@ -158,8 +203,11 @@
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
-            <el-button size="mini" type="text" @click="handleUpdate(scope.row)"
-              >录入取消原因</el-button
+            <el-button
+              size="mini"
+              type="text"
+              @click="handleUpdate(scope.row, '明细')"
+              >明细</el-button
             >
           </template>
         </el-table-column>
@@ -171,6 +219,7 @@
 
 <script>
 import { getWorkPlanList } from "@/api/secure/pdm-work-plan";
+import { getWorkUnitList } from "@/api/secure/daily-newspaper";
 import WorkPlanModel from "../components/WorkPlanModel.vue";
 export default {
   components: { WorkPlanModel },
@@ -190,15 +239,53 @@ export default {
         workPrincipNm: "",
         submitOrgNm: "",
       },
+      // 选中数组
+      selectedRows: [],
+      // 作业类型
+      workTypeList: [],
+      // 专业类型
+      zyTypeList: [],
+      // 作业单位
+      workUnitOptions: [],
     };
   },
   created() {
+    this.getWorkUnit();
+    this.getWorkType();
+    this.getZyType();
     this.getList();
   },
   methods: {
+    // 作业单位
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
+    // 作业类型
+    async getWorkType() {
+      const { data } = await this.getDicts("homework_type");
+      this.workTypeList = data;
+    },
+    // 专业类型
+    async getZyType() {
+      const { data } = await this.getDicts("professional_type");
+      this.zyTypeList = data;
+    },
+    // 多选框选中数据
+    handleSelectionChange(selectedRows) {
+      if (selectedRows.length > 1) {
+        // 只保留最新选择的项
+        this.$refs.renewalTable.clearSelection();
+        this.$refs.renewalTable.toggleRowSelection(
+          selectedRows[selectedRows.length - 1]
+        );
+      }
+      // 记录选择的行
+      this.selectedRows = selectedRows;
+    },
     /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.$refs.workPlanModelRef.openModel({ ...row }, "录入取消原因");
+    handleUpdate(row, title) {
+      this.$refs.workPlanModelRef.openModel({ ...row }, title, 1);
     },
     /** 查询列表 */
     getList() {

+ 103 - 16
src/views/distributionnetwork/secure/reason-for-the-plan/index.vue

@@ -1,11 +1,25 @@
 <template>
   <div class="app-container">
     <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
-      <el-form-item label="作业类型" prop="opTypDsc">
-        <el-input
-          v-model="queryParams.opTypDsc"
-          placeholder="请输入"
-        ></el-input>
+      <el-form-item label="作业类型" prop="opTypCd">
+        <el-select v-model="queryParams.opTypCd" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in workTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="专业类型" prop="majorTypDsc">
+        <el-select v-model="queryParams.majorTypDsc" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in zyTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="管理单位" prop="mgmtOrgNm">
         <el-input
@@ -26,10 +40,22 @@
         ></el-input>
       </el-form-item>
       <el-form-item label="作业单位" prop="submitOrgNm">
-        <el-input
+        <el-select
+          style="margin-right: 8px"
+          size="mini"
           v-model="queryParams.submitOrgNm"
-          placeholder="请输入"
-        ></el-input>
+          placeholder="请选择"
+          clearable
+        >
+          <el-option label="全部" value=""> </el-option>
+          <el-option
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -44,8 +70,27 @@
         >
       </el-form-item>
     </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          size="mini"
+          :disabled="!selectedRows.length"
+          @click="handleUpdate(selectedRows[0], '录入临时计划原因')"
+          >录入临时计划原因</el-button
+        >
+      </el-col>
+    </el-row>
     <div class="table">
-      <el-table v-loading="loading" :data="dataList">
+      <el-table
+        ref="renewalTable"
+        v-loading="loading"
+        :data="dataList"
+        @selection-change="handleSelectionChange"
+        row-key="id"
+      >
+        <el-table-column type="selection" width="55" align="center" />
         <el-table-column prop="date" label="序号" width="70" align="center">
           <template slot-scope="scope">{{ scope.$index + 1 }}</template>
         </el-table-column>
@@ -70,14 +115,14 @@
         </el-table-column>
         <el-table-column
           label="电压等级"
-          prop="voltLvlCd"
+          prop="voltLvlDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
           label="作业类型"
-          prop="opTypCd"
+          prop="opTypDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
@@ -138,7 +183,7 @@
           :show-overflow-tooltip="true"
         >
         </el-table-column>
-        <el-table-column label="专业类型" align="center" prop="majorTypCd">
+        <el-table-column label="专业类型" align="center" prop="majorTypDsc">
         </el-table-column>
         <el-table-column
           label="临时计划原因"
@@ -152,8 +197,11 @@
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
-            <el-button size="mini" type="text" @click="handleUpdate(scope.row)"
-              >录入临时计划原因</el-button
+            <el-button
+              size="mini"
+              type="text"
+              @click="handleUpdate(scope.row, '明细')"
+              >明细</el-button
             >
           </template>
         </el-table-column>
@@ -165,6 +213,7 @@
 
 <script>
 import { getWorkPlanList } from "@/api/secure/pdm-work-plan";
+import { getWorkUnitList } from "@/api/secure/daily-newspaper";
 import WorkPlanModel from "../components/WorkPlanModel.vue";
 export default {
   components: { WorkPlanModel },
@@ -185,17 +234,55 @@ export default {
         submitOrgNm: "",
       },
       planTypCd: "",
+      // 选中数组
+      selectedRows: [],
+      // 作业类型
+      workTypeList: [],
+      // 专业类型
+      zyTypeList: [],
+      // 作业单位
+      workUnitOptions: [],
     };
   },
   async mounted() {
     const { data } = await this.getDicts("power_plan_typ_cd");
     this.planTypCd = data && data.length ? data[1].dictValue : undefined;
+    this.getWorkUnit();
+    this.getWorkType();
+    this.getZyType();
     this.getList();
   },
   methods: {
+    // 作业单位
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
+    // 作业类型
+    async getWorkType() {
+      const { data } = await this.getDicts("homework_type");
+      this.workTypeList = data;
+    },
+    // 专业类型
+    async getZyType() {
+      const { data } = await this.getDicts("professional_type");
+      this.zyTypeList = data;
+    },
+    // 多选框选中数据
+    handleSelectionChange(selectedRows) {
+      if (selectedRows.length > 1) {
+        // 只保留最新选择的项
+        this.$refs.renewalTable.clearSelection();
+        this.$refs.renewalTable.toggleRowSelection(
+          selectedRows[selectedRows.length - 1]
+        );
+      }
+      // 记录选择的行
+      this.selectedRows = selectedRows;
+    },
     /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.$refs.workPlanModelRef.openModel({ ...row }, "录入临时计划原因");
+    handleUpdate(row, title) {
+      this.$refs.workPlanModelRef.openModel({ ...row }, title, 2);
     },
     /** 查询列表 */
     async getList() {

+ 154 - 54
src/views/distributionnetwork/secure/risk-identification/index.vue

@@ -1,16 +1,61 @@
-// 取消原因
 <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"
+    <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
+      <el-form-item label="作业类型" prop="opTypCd">
+        <el-select v-model="queryParams.opTypCd" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in workTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="专业类型" prop="majorTypDsc">
+        <el-select v-model="queryParams.majorTypDsc" placeholder="请选择">
+          <el-option
+            v-for="(ite, i) in zyTypeList"
+            :key="i"
+            :label="ite.dictLabel"
+            :value="ite.dictValue"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="管理单位" prop="mgmtOrgNm">
+        <el-input
+          v-model="queryParams.mgmtOrgNm"
+          placeholder="请输入"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="作业班组" prop="workTeamNm">
+        <el-input
+          v-model="queryParams.workTeamNm"
+          placeholder="请输入"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="工作负责人" prop="workPrincipNm">
+        <el-input
+          v-model="queryParams.workPrincipNm"
+          placeholder="请输入"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="作业单位" prop="submitOrgNm">
+        <el-select
+          style="margin-right: 8px"
           size="mini"
-          type="date"
-          value-format="yyyyMMdd"
-          :clearable="false"
-        ></el-date-picker>
+          v-model="queryParams.submitOrgNm"
+          placeholder="请选择"
+          clearable
+        >
+          <el-option label="全部" value=""> </el-option>
+          <el-option
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -23,104 +68,131 @@
         <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 ref="renewalTable" v-loading="loading" :data="dataList">
         <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="作业单位"
+          label="作业内容"
           align="center"
-          prop="dictName"
+          prop="opContent"
           :show-overflow-tooltip="true"
         />
         <el-table-column
-          label="作业班组"
+          label="作业地址"
+          align="center"
+          prop="opAddr"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="线路/变电站"
+          prop="subsOrLineId"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="电压等级"
+          prop="voltLvlDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
           label="作业类型"
+          prop="opTypDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
-          label="作业风险"
+          label="管理单位"
+          prop="mgmtOrgNm"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
-          label="电网风险"
+          label="作业单位"
+          prop="submitOrgNm"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
           label="工作负责人"
+          prop="workPrincipNm"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
-          label="作业开始时间"
+          label="作业班组"
+          prop="workTeamNm"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
-          label="作业结束时间"
+          label="作业风险"
+          prop="opRiskLvlDsc"
           align="center"
           :show-overflow-tooltip="true"
         >
         </el-table-column>
         <el-table-column
-          label="工作内容"
+          label="作业人数"
+          prop="mainBusiOrgOpNum"
           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
+          label="作业开始时间"
+          prop="planStartWkTm"
+          align="center"
+          :show-overflow-tooltip="true"
+        >
         </el-table-column>
         <el-table-column
-          label="取消原因"
+          label="作业结束时间"
+          prop="planEndTm"
           align="center"
-          prop="remark"
           :show-overflow-tooltip="true"
-        />
+        >
+        </el-table-column>
+        <el-table-column label="专业类型" align="center" prop="majorTypDsc">
+        </el-table-column>
+        <el-table-column
+          label="风险类别"
+          align="center"
+          prop="riskType"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <div v-for="(ite, i) in riskTypeList" :key="i">
+              <span v-if="ite.roleCode == scope.row.riskType">
+                {{ ite.roleName }}</span
+              >
+            </div>
+          </template>
+        </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";
-
+import { getWorkPlanList } from "@/api/secure/pdm-work-plan";
+import { getWorkUnitList } from "@/api/secure/daily-newspaper";
+import { getRiskRoleList } from "@/api/secure/pdm-risk-role";
 export default {
-  dicts: ["sys_normal_disable"],
   data() {
     return {
+      dataList: [],
       // 遮罩层
       loading: true,
       total: 0,
@@ -128,37 +200,65 @@ export default {
       dateRange: [],
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        dictName: undefined,
-        dictType: undefined,
-        status: undefined,
+        opTypDsc: "",
+        mgmtOrgNm: "",
+        workTeamNm: "",
+        workPrincipNm: "",
+        submitOrgNm: "",
       },
+      // 作业类型
+      workTypeList: [],
+      // 专业类型
+      zyTypeList: [],
+      riskTypeList: [],
+      // 作业单位
+      workUnitOptions: [],
     };
   },
   created() {
+    this.getWorkUnit();
+    this.getRiskTypeList();
+    this.getWorkType();
+    this.getZyType();
     this.getList();
   },
   methods: {
-    /** 查询字典类型列表 */
+    // 作业单位
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
+    // 作业类型
+    async getWorkType() {
+      const { data } = await this.getDicts("homework_type");
+      this.workTypeList = data;
+    },
+    // 专业类型
+    async getZyType() {
+      const { data } = await this.getDicts("professional_type");
+      this.zyTypeList = data;
+    },
+    //风险编码列表
+    async getRiskTypeList() {
+      const { rows } = await getRiskRoleList();
+      this.riskTypeList = rows;
+    },
+    /** 查询列表 */
     getList() {
       this.loading = true;
-      listType(this.addDateRange(this.queryParams, this.dateRange)).then(
+      getWorkPlanList({ ...this.queryParams, riskFlag: "1" }).then(
         (response) => {
-          this.typeList = response.rows;
-          this.total = response.total;
+          this.dataList = response.rows;
           this.loading = false;
         }
       );
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
       this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.dateRange = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },

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

@@ -16,7 +16,7 @@
         <el-select
           style="margin-right: 8px"
           size="mini"
-          v-model="workUnit"
+          v-model="queryParams.organAbbr"
           placeholder="请选择"
           clearable
         >
@@ -129,14 +129,14 @@ export default {
       activeName: "weeklyPlanSituationTableRef",
       // 日期范围
       dateRange: "",
-      startDate: "", // 显示开始时间
-      endDate: "", // 显示结束时间
       total: 0,
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        organAbbr: "", // 作业单位
+        startDate: "", // 显示开始时间
+        endDate: "", // 显示结束时间
       },
-      workUnit: "", // 作业单位
       workUnitOptions: [],
     };
   },
@@ -175,7 +175,7 @@ export default {
     async handleQuery() {
       this.loading = true;
       const { workList, appointmentList, illegalList, nextList, planList } =
-        await getReportWeek(this.startDate, this.endDate);
+        await getReportWeek(this.queryParams);
       this.$nextTick(() => {
         this.$refs["weeklyPlanSituationTableRef"].tableData = planList;
         this.$refs["level3AbovePlansTableRef"].tableData = workList;
@@ -188,7 +188,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.workUnit = "";
+      this.queryParams.organAbb = "";
       // 设置默认为最近的一周
       this.setRecentWeek();
       this.handleQuery();
@@ -204,8 +204,8 @@ export default {
       const endOfWeek = new Date(startOfWeek);
       endOfWeek.setDate(endOfWeek.getDate() + 6);
 
-      this.startDate = this.formatDate(startOfWeek);
-      this.endDate = this.formatDate(endOfWeek);
+      this.queryParams.startDate = this.formatDate(startOfWeek);
+      this.queryParams.endDate = this.formatDate(endOfWeek);
     },
     formatDate(date) {
       const year = date.getFullYear();
@@ -217,7 +217,7 @@ export default {
       const res = await weekExport(this.startDate, this.endDate);
       if (res) {
         const elink = document.createElement("a");
-        elink.download = `周报-${this.startDate}_${this.endDate}.xls`;
+        elink.download = `周报-${this.queryParams.startDate}_${this.queryParams.endDate}.xls`;
         elink.style.display = "none";
         const blob = new Blob([res], { type: "application/x-msdownload" });
         elink.href = URL.createObjectURL(blob);