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

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

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

Loading…
Cancel
Save