From 58401626a684990b90d6922516f4178cd84e6270 Mon Sep 17 00:00:00 2001 From: Jafeng <2998840497@qq.com> Date: Wed, 27 May 2026 16:22:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=AE=A1=E5=88=92=E6=A8=A1=E6=9D=BF=E5=BA=93=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E6=94=B6=E8=97=8F=E5=8A=9F=E8=83=BD=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E4=BC=98=E5=8C=96=E5=9B=9E=E8=AE=BF=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80=E5=8F=8A=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/case/archive-detail.vue | 4 +- .../archive-detail/follow-up-manage-tab.vue | 220 ++++----- pages/case/plan-list.vue | 464 +++++++++++++----- utils/api.js | 2 + 4 files changed, 464 insertions(+), 226 deletions(-) diff --git a/pages/case/archive-detail.vue b/pages/case/archive-detail.vue index 4c52441..88e5ef8 100644 --- a/pages/case/archive-detail.vue +++ b/pages/case/archive-detail.vue @@ -1158,7 +1158,7 @@ const saveAddGroup = async () => { } .tabs-anchor { - height: 1px; + height: 2rpx; } .tab { @@ -1166,7 +1166,7 @@ const saveAddGroup = async () => { text-align: center; height: 88rpx; line-height: 88rpx; - font-size: 30rpx; + font-size: 32rpx; color: #333; position: relative; } diff --git a/pages/case/components/archive-detail/follow-up-manage-tab.vue b/pages/case/components/archive-detail/follow-up-manage-tab.vue index 59dcabc..cab762f 100644 --- a/pages/case/components/archive-detail/follow-up-manage-tab.vue +++ b/pages/case/components/archive-detail/follow-up-manage-tab.vue @@ -118,7 +118,7 @@ /> - + @@ -1298,13 +1298,13 @@ watch( diff --git a/utils/api.js b/utils/api.js index 36d567c..8105dd8 100644 --- a/utils/api.js +++ b/utils/api.js @@ -131,6 +131,8 @@ const urlsConfig = { executeManagementPlanTodo: 'executeManagementPlanTodo', getManagementPlan: 'getManagementPlan', getManagementPlanById: 'getManagementPlanById', + getMyManagementPlanTemplateLibrary: 'getMyManagementPlanTemplateLibrary', + toggleMyFollowupFavorite: 'toggleMyFollowupFavorite', getNextFollowUpTime: 'getNextFollowUpTime', // 服务记录相关接口 getServiceRecord: 'getServiceRecord', From ebac93569bb69d5ef54b9ae78709ee57b9476875 Mon Sep 17 00:00:00 2001 From: Jafeng <2998840497@qq.com> Date: Thu, 28 May 2026 11:35:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E9=9A=90=E8=97=8F=E9=97=A8=E8=AF=8A/?= =?UTF-8?q?=E5=85=A5=E9=99=A2=E8=AF=84=E4=BC=B0=E8=A1=A8=E3=80=81=E5=81=A5?= =?UTF-8?q?=E5=BA=B7=E8=AE=B0=E5=BD=95=E6=A8=A1=E6=9D=BF=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../archive-detail/health-profile-tab.vue | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/pages/case/components/archive-detail/health-profile-tab.vue b/pages/case/components/archive-detail/health-profile-tab.vue index 4d66aaa..3eaa824 100644 --- a/pages/case/components/archive-detail/health-profile-tab.vue +++ b/pages/case/components/archive-detail/health-profile-tab.vue @@ -99,17 +99,20 @@ const { account, doctorInfo } = storeToRefs(accountStore); const { getDoctorInfo } = accountStore; const FALLBACK_TEMPLATE_TYPES = ['outpatient', 'inhospital', 'preConsultationRecord', 'physicalExaminationTemplate']; +const HIDDEN_TEMPLATE_TYPES = new Set(['healthTemplate']); +const HIDDEN_TEMPLATE_NAMES = new Set(['门诊/入院评估表', '健康记录']); const templates = ref([]); -const selectableTemplates = computed(() => templates.value.filter((i) => i && i.templateType && typeof i.name === 'string' && i.name.trim())); +const visibleTemplates = computed(() => templates.value.filter((i) => i && i.templateType && typeof i.name === 'string' && i.name.trim() && !isHiddenTemplate(i))); +const selectableTemplates = computed(() => visibleTemplates.value); const useActionSheet = computed(() => selectableTemplates.value.length > 0 && selectableTemplates.value.length <= 6); const fabPickerDisabled = computed(() => selectableTemplates.value.length === 0 || useActionSheet.value); const templateMap = computed(() => templates.value.reduce((m, t) => { if (t?.templateType) m[String(t.templateType)] = t; return m; }, {})); -const availableTypes = computed(() => (templates.value.length ? [...templates.value.map((i) => i.templateType), 'surveyFill'] : FALLBACK_TEMPLATE_TYPES)); +const availableTypes = computed(() => (templates.value.length ? [...visibleTemplates.value.map((i) => i.templateType), 'surveyFill'] : FALLBACK_TEMPLATE_TYPES)); -const typeRange = computed(() => [{ name: '全部', value: 'ALL' }, ...templates.value.map((t) => ({ name: t.name, value: t.templateType })), { name: '问卷填写', value: 'surveyFill' }]); +const typeRange = computed(() => [{ name: '全部', value: 'ALL' }, ...visibleTemplates.value.map((t) => ({ name: t.name, value: t.templateType })), { name: '问卷填写', value: 'surveyFill' }]); const currentType = ref({ name: '全部', value: 'ALL' }); const records = ref([]); @@ -152,6 +155,23 @@ function getCorpId() { return String(team.corpId || d.corpId || a.corpId || '') || ''; } +function normalizeTemplateName(name) { + return String(name || '').replace(///g, '/').replace(/\s+/g, '').trim(); +} + +function isHiddenTemplate(template) { + const type = String(template?.templateType || ''); + if (HIDDEN_TEMPLATE_TYPES.has(type)) return true; + return HIDDEN_TEMPLATE_NAMES.has(normalizeTemplateName(template?.name)); +} + +function isHiddenRecord(record) { + const rawType = String(record?.medicalType || record?.rawTemplateType || record?.templateType || ''); + if (isHiddenTemplate({ templateType: rawType, name: record?.tempName || record?.medicalTypeName })) return true; + const temp = templateMap.value[rawType]; + return isHiddenTemplate(temp); +} + async function ensureDoctor() { if (doctorInfo.value) return; if (!account.value?.openid) return; @@ -240,7 +260,7 @@ async function loadVisitTemplates() { if (t && name) m[t] = name; return m; }, {}); - const enabled = list.filter((i) => i && i.templateType !== 'healthTemplate' && i.templateStatus !== 'disable'); + const enabled = list.filter((i) => i && i.templateStatus !== 'disable' && !isHiddenTemplate(i)); const typeList = enabled.map((i) => String(i.templateType || '')).filter(Boolean); if (!typeList.length) return; @@ -466,9 +486,11 @@ async function refreshList() { }); // 未互通时,仅展示本团队数据 + const visibleMapped = mapped.filter((i) => !isHiddenRecord(i)); + records.value = !shareAllTeamsForQuery.value && teamId.value - ? mapped.filter((i) => String(i?.teamId || '') === String(teamId.value)) - : mapped; + ? visibleMapped.filter((i) => String(i?.teamId || '') === String(teamId.value)) + : visibleMapped; const creatorIds = mapped .map(