diff --git a/src/views/cases/index.vue b/src/views/cases/index.vue index 553efb2..4eb805f 100644 --- a/src/views/cases/index.vue +++ b/src/views/cases/index.vue @@ -22,11 +22,26 @@ range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - :picker-options="datePickerOptions" style="width: 100%" /> + + + + {{ shortcut.text }} + + + + + + - - - + + + - - - + + - - @@ -277,7 +292,8 @@ type="text" @click="handleTimeSectionUpdate(scope.row)" :disabled=" - scope.row.reporter_id != userInfo.id || ![1, 5].includes(scope.row.status) + scope.row.reporter_id != userInfo.id || + ![1, 5].includes(scope.row.status) " > {{ scope.row.date_time }} {{ scope.row.time_section }} @@ -473,92 +489,16 @@ export default { // 查询参数 timeType: "date_time", date: [], - datePickerOptions: { - shortcuts: [ - { - text: "今天", - onClick: (picker) => { - const end = new Date(); - const start = new Date(); - picker.$emit("pick", [start, end]); - }, - }, - { - text: "昨天", - onClick: (picker) => { - const end = new Date(); - end.setTime(end.getTime() - 3600 * 1000 * 24); - const start = new Date(end); - picker.$emit("pick", [start, end]); - }, - }, - { - text: "本周", - onClick: (picker) => { - const end = new Date(); - const start = new Date(); - const day = start.getDay(); - start.setDate(start.getDate() - day + (day === 0 ? -6 : 1)); - // 设置结束日期为本周最后一天(周日) - end.setDate(start.getDate() + 6); - end.setHours(23, 59, 59, 999); - picker.$emit("pick", [start, end]); - }, - }, - { - text: "本月", - onClick: (picker) => { - const end = new Date( - new Date().getFullYear(), - new Date().getMonth() + 1, - 0, - 23, - 59, - 59, - 999 - ); - const start = new Date( - new Date().getFullYear(), - new Date().getMonth(), - 1 - ); - picker.$emit("pick", [start, end]); - }, - }, - { - text: "上月", - onClick: (picker) => { - const end = new Date( - new Date().getFullYear(), - new Date().getMonth(), - 0 - ); - const start = new Date( - new Date().getFullYear(), - new Date().getMonth() - 1, - 1 - ); - picker.$emit("pick", [start, end]); - }, - }, - { - text: "今年", - onClick: (picker) => { - const end = new Date( - new Date().getFullYear(), - 11, - 31, - 23, - 59, - 59, - 999 - ); - const start = new Date(new Date().getFullYear(), 0, 1); - picker.$emit("pick", [start, end]); - }, - }, - ], - }, + // 快捷日期选项 + datePickerOptionsShortcuts: [ + { text: "今天", key: "today" }, + { text: "昨天", key: "yesterday" }, + { text: "本周", key: "week" }, + { text: "本月", key: "month" }, + { text: "上月", key: "lastMonth" }, + { text: "今年", key: "year" }, + ], + currentDateShortcut: "", queryParams: { page: 1, size: 10, @@ -590,6 +530,56 @@ export default { this.initDataDictionaries(); }, methods: { + // 快捷日期选择处理 + handleDateShortcut(key) { + let start = new Date(); + let end = new Date(); + switch (key) { + case "today": + break; + case "yesterday": + end.setTime(end.getTime() - 3600 * 1000 * 24); + start = new Date(end); + break; + case "week": + const day = start.getDay(); + start.setDate(start.getDate() - day + (day === 0 ? -6 : 1)); + // 设置结束日期为本周最后一天(周日) + end.setDate(start.getDate() + 6); + end.setHours(23, 59, 59, 999); + break; + case "month": + end = new Date( + new Date().getFullYear(), + new Date().getMonth() + 1, + 0, + 23, + 59, + 59, + 999 + ); + start = new Date(new Date().getFullYear(), new Date().getMonth(), 1); + break; + case "lastMonth": + end = new Date(new Date().getFullYear(), new Date().getMonth(), 0); + start = new Date( + new Date().getFullYear(), + new Date().getMonth() - 1, + 1 + ); + break; + case "year": + end = new Date(new Date().getFullYear(), 11, 31, 23, 59, 59, 999); + start = new Date(new Date().getFullYear(), 0, 1); + break; + default: + break; + } + + this.date = [start, end]; + this.currentDateShortcut = key; + }, + // 初始化数据字典 initDataDictionaries() { this.loadExamRooms(); @@ -642,9 +632,9 @@ export default { // 重置按钮操作 resetQuery() { this.resetForm("queryForm"); - const today = new Date().toISOString().split("T")[0]; this.timeType = "date_time"; - this.date = [today, today]; + this.currentDateShortcut = "today"; + this.handleDateShortcut(this.currentDateShortcut); this.queryParams.patient_type = this.patientTypeList[0].value; // this.queryParams.report_type = this.reportTypeList[0].value; this.handleQuery();