病例库-日期范围-快捷方式修改

病例库-详情-检查结果-问题修复
main
ysn 5 days ago
parent 6767c048f0
commit 3fd7b850d2
  1. 66
      src/views/cases/detail.vue
  2. 43
      src/views/cases/index.vue

@ -816,6 +816,7 @@ export default {
equipments: [],
positions: [],
experts: [],
negative: 1, // 1=0=
},
//
originalForm: null,
@ -906,8 +907,10 @@ export default {
// ==================== IndexedDB SystemSettingDialog HiUTalkStoreDB ====================
_openIDB() {
return new Promise((resolve, reject) => {
const req = indexedDB.open('HiUTalkStoreDB', 1);
req.onupgradeneeded = () => { req.result.createObjectStore('handles'); };
const req = indexedDB.open("HiUTalkStoreDB", 1);
req.onupgradeneeded = () => {
req.result.createObjectStore("handles");
};
req.onsuccess = () => resolve(req.result);
req.onerror = () => reject(req.error);
});
@ -915,31 +918,48 @@ export default {
async _getStoredDirHandle(key) {
const db = await this._openIDB();
return new Promise((resolve, reject) => {
const tx = db.transaction('handles', 'readonly');
const req = tx.objectStore('handles').get(key);
req.onsuccess = () => { db.close(); resolve(req.result); };
req.onerror = () => { db.close(); reject(req.error); };
const tx = db.transaction("handles", "readonly");
const req = tx.objectStore("handles").get(key);
req.onsuccess = () => {
db.close();
resolve(req.result);
};
req.onerror = () => {
db.close();
reject(req.error);
};
});
},
// 使 videoPath
async handleOpenFile() {
// 使 videoPath
try {
const dirHandle = await this._getStoredDirHandle('screenshot_dir');
const dirHandle = await this._getStoredDirHandle("screenshot_dir");
if (dirHandle && window.showOpenFilePicker) {
//
let perm = await dirHandle.queryPermission({ mode: 'read' });
if (perm !== 'granted') {
perm = await dirHandle.requestPermission({ mode: 'read' });
let perm = await dirHandle.queryPermission({ mode: "read" });
if (perm !== "granted") {
perm = await dirHandle.requestPermission({ mode: "read" });
}
if (perm === 'granted') {
if (perm === "granted") {
const fileHandles = await window.showOpenFilePicker({
startIn: dirHandle,
multiple: true,
types: [{
description: 'Images',
accept: { 'image/*': ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp'] },
}],
types: [
{
description: "Images",
accept: {
"image/*": [
".png",
".jpg",
".jpeg",
".gif",
".bmp",
".webp",
],
},
},
],
});
//
for (const fileHandle of fileHandles) {
@ -950,8 +970,11 @@ export default {
}
}
} catch (e) {
if (e.name === 'AbortError') return; //
console.warn('基于系统设置目录的文件选择器不可用,降级使用默认文件选择:', e);
if (e.name === "AbortError") return; //
console.warn(
"基于系统设置目录的文件选择器不可用,降级使用默认文件选择:",
e
);
}
// 使 input
this.$refs.fileInput.click();
@ -1104,6 +1127,7 @@ export default {
if (this.form.reviewer_id === 0) {
this.form.reviewer_id = "";
}
this.form.negative = this.form.negative === 0 ? 0 : 1;
//
this.originalForm = JSON.parse(JSON.stringify(this.form));
this.getReviewers();
@ -1144,7 +1168,7 @@ export default {
patient_type: form.patient_type || 0,
request_doctor: form.request_doctor || "",
reviewer_id: form.reviewer_id || 0,
negative: form.negative ? 0 : 1,
negative: form.negative === 0 ? 0 : 1,
position_text: form.position_text || "",
text_comment: form.text_comment || "",
text_conclusion: form.text_conclusion || "",
@ -1316,7 +1340,11 @@ export default {
},
// -/
openTemplateDialog(form) {
this.newTemplateForm = { ...form, tpl_id: form.id || "",part_id:form.part_id || "" };
this.newTemplateForm = {
...form,
tpl_id: form.id || "",
part_id: form.part_id || "",
};
this.templateDialogOpen = true;
this.loadTemplateTree();
},

@ -36,7 +36,6 @@
"
size="mini"
@click="handleDateShortcut(shortcut.key)"
class="date-shortcut-btn"
>
{{ shortcut.text }}
</el-button>
@ -458,6 +457,7 @@ import {
} from "@/api/cases/index.js";
import CaseFormDialog from "./components/CaseFormDialog.vue";
import { mapGetters } from "vuex";
import dayjs from "dayjs";
export default {
name: "Cases",
@ -532,51 +532,36 @@ export default {
methods: {
//
handleDateShortcut(key) {
let start = new Date();
let end = new Date();
let start = dayjs();
let end = dayjs();
switch (key) {
case "today":
break;
case "yesterday":
end.setTime(end.getTime() - 3600 * 1000 * 24);
start = new Date(end);
start = dayjs().subtract(1, "day");
end = dayjs().subtract(1, "day");
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);
start = dayjs().day(1);
end = dayjs().day(7);
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);
start = dayjs().startOf("month");
end = dayjs().endOf("month");
break;
case "lastMonth":
end = new Date(new Date().getFullYear(), new Date().getMonth(), 0);
start = new Date(
new Date().getFullYear(),
new Date().getMonth() - 1,
1
);
start = dayjs().subtract(1, "month").startOf("month");
end = dayjs().subtract(1, "month").endOf("month");
break;
case "year":
end = new Date(new Date().getFullYear(), 11, 31, 23, 59, 59, 999);
start = new Date(new Date().getFullYear(), 0, 1);
start = dayjs().startOf("year");
end = dayjs().endOf("year");
break;
default:
break;
}
this.date = [start, end];
this.date = [start.format("YYYY-MM-DD"), end.format("YYYY-MM-DD")];
this.currentDateShortcut = key;
},

Loading…
Cancel
Save