|
@@ -1,29 +1,49 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <el-date-picker
|
|
|
- v-model="dateRange"
|
|
|
- style="width: 240px; margin-right: 8px"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- type="daterange"
|
|
|
- size="mini"
|
|
|
- range-separator="-"
|
|
|
- :clearable="false"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- ></el-date-picker>
|
|
|
- <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 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" />
|
|
@@ -35,21 +55,18 @@
|
|
|
<Level3AbovePlansTable ref="level3AbovePlansTableRef" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane
|
|
|
- v-if="false"
|
|
|
label="下周计划安排情况"
|
|
|
name="nextWeekPlanSituationTableRef"
|
|
|
>
|
|
|
<NextWeekPlanSituationTable ref="nextWeekPlanSituationTableRef" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane
|
|
|
- v-if="false"
|
|
|
label="本周违章查处情况"
|
|
|
name="weeklyViolationSituationTableRef"
|
|
|
>
|
|
|
<WeeklyViolationSituationTable ref="weeklyViolationSituationTableRef" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane
|
|
|
- v-if="false"
|
|
|
label="本周到岗到位履职情况"
|
|
|
name="thoughtfulJobSituationTableRef"
|
|
|
>
|
|
@@ -89,6 +106,7 @@ 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";
|
|
|
export default {
|
|
|
components: {
|
|
|
Level3AbovePlansTable,
|
|
@@ -104,41 +122,94 @@ export default {
|
|
|
return {
|
|
|
activeName: "weeklyPlanSituationTableRef",
|
|
|
// 日期范围
|
|
|
- dateRange: [
|
|
|
- moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD"),
|
|
|
- moment().endOf("day").format("YYYY-MM-DD"),
|
|
|
- ],
|
|
|
+ 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();
|
|
|
+ // this.handleQuery();
|
|
|
},
|
|
|
/** 搜索按钮操作 */
|
|
|
- handleQuery() {
|
|
|
+ async handleQuery() {
|
|
|
+ this.loading = true;
|
|
|
+ const { appointmentList, illegalList, nextList, planList } =
|
|
|
+ await getReportWeek(this.startDate, this.endDate);
|
|
|
this.$nextTick(() => {
|
|
|
- this.$refs[this.activeName].getList(this.dateRange);
|
|
|
+ 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.dateRange = [
|
|
|
- moment().subtract(7, "days").startOf("day").format("YYYY-MM-DD"),
|
|
|
- moment().endOf("day").format("YYYY-MM-DD"),
|
|
|
- ];
|
|
|
+ // 设置默认为最近的一周
|
|
|
+ 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() {},
|
|
|
},
|
|
|
};
|