diff --git a/src/api/corp.js b/src/api/corp.js index 68e950c..2b2748a 100644 --- a/src/api/corp.js +++ b/src/api/corp.js @@ -133,6 +133,14 @@ export async function addCorpDisease({ disease, oldDisease }) { return res; } +export async function getCorpDiseaseList() { + const res = await useCorp({ + type: "getCorpDiseaseList", + corpId: sessionStorage.getItem("corpId"), + }); + return res; +} + export async function getTeamByMainLeaderUserId(params) { const res = await useCorp({ type: "getTeamByMainLeaderUserId", diff --git a/src/views/hlw-drug-manage/drug-detail-drawer.vue b/src/views/hlw-drug-manage/drug-detail-drawer.vue index ad0f75f..40a0b41 100644 --- a/src/views/hlw-drug-manage/drug-detail-drawer.vue +++ b/src/views/hlw-drug-manage/drug-detail-drawer.vue @@ -181,19 +181,19 @@ const diagnosisText = computed(() => diagnosisList.value async function loadDiagnoses() { const requestId = ++diagnosisRequestId; - const ids = Array.isArray(props.data.applicableDiagnosisIds) - ? props.data.applicableDiagnosisIds.map(id => String(id)) + const codes = Array.isArray(props.data.applicableDiagnosisCodes) + ? props.data.applicableDiagnosisCodes.map(code => String(code)) : []; diagnosisList.value = []; - if (!ids.length) return; + if (!codes.length) return; diagnosisLoading.value = true; - const res = await getHlwDiagnosisList({ ids, page: 1, pageSize: Math.max(30, ids.length) }); + const res = await getHlwDiagnosisList({ codes, page: 1, pageSize: Math.max(30, codes.length) }); if (requestId !== diagnosisRequestId) return; diagnosisLoading.value = false; if (res.success) { const list = res.data && Array.isArray(res.data.data) ? res.data.data : []; - const diagnosisMap = new Map(list.map(item => [String(item._id), item])); - diagnosisList.value = ids.map(id => diagnosisMap.get(id)).filter(Boolean); + const diagnosisMap = new Map(list.map(item => [String(item.code), item])); + diagnosisList.value = codes.map(code => diagnosisMap.get(code)).filter(Boolean); } else { ElMessage.error(res.message || '适应诊断加载失败'); } diff --git a/src/views/hlw-drug-manage/drug-drawer.vue b/src/views/hlw-drug-manage/drug-drawer.vue index 6b0a8fa..4063e78 100644 --- a/src/views/hlw-drug-manage/drug-drawer.vue +++ b/src/views/hlw-drug-manage/drug-drawer.vue @@ -45,7 +45,7 @@ - +
@@ -55,17 +55,17 @@
{{ diagnosisLabel(item) }} - +
- {{ diagnosisLabel(item) }} @@ -225,24 +225,24 @@ function diagnosisLabel(item) { } const selectedDiagnosisOptions = computed(() => { - const optionMap = new Map(diagnosisOptions.value.map(item => [String(item._id), item])); - const defaultOptionMap = new Map(diagnosisDefaultOptions.value.map(item => [String(item._id), item])); - return (form.value.applicableDiagnosisIds || []) - .map(id => optionMap.get(String(id)) || defaultOptionMap.get(String(id))) + const optionMap = new Map(diagnosisOptions.value.map(item => [String(item.code), item])); + const defaultOptionMap = new Map(diagnosisDefaultOptions.value.map(item => [String(item.code), item])); + return (form.value.applicableDiagnosisCodes || []) + .map(code => optionMap.get(String(code)) || defaultOptionMap.get(String(code))) .filter(Boolean); }) -function isDiagnosisSelected(id) { - return (form.value.applicableDiagnosisIds || []).some(item => String(item) === String(id)); +function isDiagnosisSelected(code) { + return (form.value.applicableDiagnosisCodes || []).some(item => String(item) === String(code)); } function toggleDiagnosis(item) { - const id = String(item._id); - const selectedIds = (form.value.applicableDiagnosisIds || []).map(itemId => String(itemId)); - const nextIds = selectedIds.includes(id) - ? selectedIds.filter(itemId => itemId !== id) - : [...selectedIds, id]; - changeValue(nextIds, 'applicableDiagnosisIds'); + const code = String(item.code); + const selectedCodes = (form.value.applicableDiagnosisCodes || []).map(itemCode => String(itemCode)); + const nextCodes = selectedCodes.includes(code) + ? selectedCodes.filter(itemCode => itemCode !== code) + : [...selectedCodes, code]; + changeValue(nextCodes, 'applicableDiagnosisCodes'); } function mergeDiagnosisOptions(items = []) { @@ -252,8 +252,8 @@ function mergeDiagnosisOptions(items = []) { } function replaceDiagnosisOptions(items = []) { - const selectedIds = new Set((form.value.applicableDiagnosisIds || []).map(id => String(id))); - const selectedOptions = diagnosisOptions.value.filter(item => selectedIds.has(String(item._id))); + const selectedCodes = new Set((form.value.applicableDiagnosisCodes || []).map(code => String(code))); + const selectedOptions = diagnosisOptions.value.filter(item => selectedCodes.has(String(item.code))); const optionMap = new Map(selectedOptions.map(item => [String(item._id), item])); items.forEach(item => optionMap.set(String(item._id), item)); diagnosisOptions.value = [...optionMap.values()]; @@ -296,14 +296,14 @@ function searchDiagnoses(keyword = '') { async function initializeDiagnoses() { diagnosisOptions.value = []; - const selectedIds = Array.isArray(props.data.applicableDiagnosisIds) - ? props.data.applicableDiagnosisIds.map(id => String(id)) + const selectedCodes = Array.isArray(props.data.applicableDiagnosisCodes) + ? props.data.applicableDiagnosisCodes.map(code => String(code)) : []; const requestId = ++diagnosisRequestId; diagnosisLoading.value = true; const requests = [fetchDiagnoses({}, requestId)]; - if (selectedIds.length) { - requests.push(fetchDiagnoses({ ids: selectedIds, pageSize: Math.max(30, selectedIds.length) }, requestId)); + if (selectedCodes.length) { + requests.push(fetchDiagnoses({ codes: selectedCodes, pageSize: Math.max(30, selectedCodes.length) }, requestId)); } await Promise.all(requests); diagnosisDefaultOptions.value = [...diagnosisOptions.value]; diff --git a/src/views/system/diagnosis.vue b/src/views/system/diagnosis.vue index 4382ce9..9200ff9 100644 --- a/src/views/system/diagnosis.vue +++ b/src/views/system/diagnosis.vue @@ -11,7 +11,7 @@
- + @@ -22,10 +22,6 @@ - - -
@@ -44,54 +40,36 @@