Просмотр исходного кода

chore: 周报导出&作业单位下拉显示

cfofpp 6 месяцев назад
Родитель
Сommit
255749bdde

+ 15 - 0
src/api/secure/daily-newspaper.js

@@ -24,3 +24,18 @@ export function getReportWeek(startDate, endDate) {
     method: "get",
   });
 }
+//周报导出
+export function weekExport(startDate, endDate) {
+  return request({
+    url: `/power/report/weekExport?startDate=${startDate}&endDate=${endDate}`,
+    method: "post",
+    responseType: "blob",
+  });
+}
+// 作业单位
+export function getWorkUnitList() {
+  return request({
+    url: `/powerdistribution/organ/getAll`,
+    method: "get",
+  });
+}

+ 5 - 5
src/permission.js

@@ -30,11 +30,11 @@ router.beforeEach((to, from, next) => {
             store.dispatch("GenerateRoutes").then((accessRoutes) => {
               // 根据roles权限生成可访问的路由表
               router.addRoutes(accessRoutes); // 动态添加可访问路由表
-              next({
-                path: accessRoutes.length ? accessRoutes[0].path : to.path,
-                replace: true,
-              });
-              // next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
+              // next({
+              //   path: accessRoutes.length ? accessRoutes[0].path : to.path,
+              //   replace: true,
+              // });
+              next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
             });
           })
           .catch((err) => {

+ 20 - 17
src/views/distributionnetwork/secure/daily-newspaper/index.vue

@@ -15,14 +15,16 @@
         <el-select
           style="margin-right: 8px"
           size="mini"
-          v-model="value"
+          v-model="workUnit"
           placeholder="请选择"
+          clearable
         >
+          <el-option label="全部" value=""> </el-option>
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
           >
           </el-option>
         </el-select>
@@ -89,7 +91,11 @@ import OtherSafetySituationsTable from "./components/other-safety-situations-tab
 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";
+import {
+  getReportDay,
+  dayExport,
+  getWorkUnitList,
+} from "@/api/secure/daily-newspaper";
 export default {
   components: {
     ViolationSituationTable,
@@ -110,24 +116,20 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
-      value: "",
-      options: [
-        {
-          value: "选项1",
-          label: "黄金糕",
-        },
-        {
-          value: "选项2",
-          label: "双皮奶",
-        },
-      ],
+      workUnit: "", // 作业单位
+      workUnitOptions: [],
     };
   },
   mounted() {
+    this.getWorkUnit();
     this.handleQuery();
   },
   methods: {
     moment,
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
     handleClick(tab, event) {
       console.log(tab, event, "---------ddd");
       this.activeName = tab.name;
@@ -151,6 +153,7 @@ export default {
         .subtract(1, "days")
         .endOf("day")
         .format("YYYYMMDD");
+      this.workUnit = "";
       this.handleQuery();
     },
     async onExport() {

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

@@ -16,14 +16,16 @@
         <el-select
           style="margin-right: 8px"
           size="mini"
-          v-model="value"
+          v-model="workUnit"
           placeholder="请选择"
+          clearable
         >
+          <el-option label="全部" value=""> </el-option>
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
+            v-for="item in workUnitOptions"
+            :key="item.organAbbr"
+            :label="item.organAbbr"
+            :value="item.organAbbr"
           >
           </el-option>
         </el-select>
@@ -106,7 +108,11 @@ import UpdateOnExternalRisksTable from "./components/update-on-external-risks-ta
 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";
+import {
+  getReportWeek,
+  getWorkUnitList,
+  weekExport,
+} from "@/api/secure/daily-newspaper";
 export default {
   components: {
     Level3AbovePlansTable,
@@ -130,17 +136,8 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
-      value: "",
-      options: [
-        {
-          value: "选项1",
-          label: "黄金糕",
-        },
-        {
-          value: "选项2",
-          label: "双皮奶",
-        },
-      ],
+      workUnit: "", // 作业单位
+      workUnitOptions: [],
     };
   },
   watch: {
@@ -151,10 +148,15 @@ export default {
   mounted() {
     // 设置默认为最近的一周
     this.setRecentWeek();
+    this.getWorkUnit();
     this.handleQuery();
   },
   methods: {
     moment,
+    async getWorkUnit() {
+      const { data } = await getWorkUnitList();
+      this.workUnitOptions = data;
+    },
     setRecentWeek() {
       const today = new Date();
       const diffDays = today.getDay() === 0 ? -6 : 1 - today.getDay(); // 调整到周一作为一周的开始
@@ -186,6 +188,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.workUnit = "";
       // 设置默认为最近的一周
       this.setRecentWeek();
       this.handleQuery();
@@ -210,7 +213,21 @@ export default {
       const day = String(date.getDate()).padStart(2, "0");
       return `${year}${month}${day}`;
     },
-    onExport() {},
+    async onExport() {
+      const res = await weekExport(this.startDate, this.endDate);
+      if (res) {
+        const elink = document.createElement("a");
+        elink.download = `周报-${this.startDate}_${this.endDate}.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>