From 22f91e294bee33929e51ecd18f15ff379e0c3664 Mon Sep 17 00:00:00 2001 From: lq Date: Wed, 9 Apr 2025 17:04:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E6=88=90=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=AD=E5=BF=83=20=E5=BE=85=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=9A=E8=AF=8A=E6=89=80=E8=AE=BE=E7=BD=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/store/settings/api/index.ts | 36 ++ .../views/business/store/settings/index.vue | 318 +++++++++++++++ .../components/DiagnosisModal.vue | 35 +- .../components/PrescrtionDetail.vue | 14 +- .../views/doctor/doctor-reception/index.vue | 5 +- .../src/views/doctor/settings/api/index.ts | 36 ++ .../src/views/doctor/settings/index.vue | 383 ++++++++++++++++++ .../web-antd/src/views/system/store/index.vue | 8 +- 8 files changed, 820 insertions(+), 15 deletions(-) create mode 100644 apps/web-antd/src/views/business/store/settings/api/index.ts create mode 100644 apps/web-antd/src/views/business/store/settings/index.vue create mode 100644 apps/web-antd/src/views/doctor/settings/api/index.ts create mode 100644 apps/web-antd/src/views/doctor/settings/index.vue diff --git a/apps/web-antd/src/views/business/store/settings/api/index.ts b/apps/web-antd/src/views/business/store/settings/api/index.ts new file mode 100644 index 00000000..2ba3df45 --- /dev/null +++ b/apps/web-antd/src/views/business/store/settings/api/index.ts @@ -0,0 +1,36 @@ +import { requestClient } from '#/api/request'; + +const prefix = 'store/'; +/** + * 获取当前登录的诊所信息 + * @param data + */ +export async function getStoreInfoApi(data: any) { + return requestClient.get(`${prefix}store-info`, { params: data }); +} +/** + * 获取当前登录的诊所信息 + */ +export async function getDoctorMyDoctorOrderApi() { + return requestClient.get(`${prefix}my-doctor-order`); +} +/** + * 获取当前登录的诊所信息 + */ +export async function getDoctorMyDiseaseListApi() { + return requestClient.get(`${prefix}my-disease-list`); +} +/** + * 保存服务价格 + * @param data + */ +export async function saveServicePriceApi(data: Record) { + return requestClient.post(`${prefix}save-service-price`, data); +} +/** + * 创建医嘱 + * @param content + */ +export async function createDoctorOrderApi(content: string) { + return requestClient.post(`${prefix}create-doctor-order`, { content }); +} diff --git a/apps/web-antd/src/views/business/store/settings/index.vue b/apps/web-antd/src/views/business/store/settings/index.vue new file mode 100644 index 00000000..63746a61 --- /dev/null +++ b/apps/web-antd/src/views/business/store/settings/index.vue @@ -0,0 +1,318 @@ + + + + diff --git a/apps/web-antd/src/views/doctor/doctor-reception/components/DiagnosisModal.vue b/apps/web-antd/src/views/doctor/doctor-reception/components/DiagnosisModal.vue index 295696a2..05b90c9b 100644 --- a/apps/web-antd/src/views/doctor/doctor-reception/components/DiagnosisModal.vue +++ b/apps/web-antd/src/views/doctor/doctor-reception/components/DiagnosisModal.vue @@ -15,12 +15,36 @@ import { import { getDiseaseList, } from '#/views/doctor/doctor-reception/api'; -import { debounce } from 'lodash-es'; // 或者使用自定义防抖函数 +import { debounce } from 'lodash-es'; +import {getDoctorMyDiseaseListApi} from "#/views/doctor/settings/api"; // 或者使用自定义防抖函数 const searchKey = ref(''); const diagnosisList = ref([]); const selectDiagnosisList = ref(''); const setUpdateDiagnosis = ref(); +/** + * 常用诊断列表 + */ +const doctorMyDiseaseList = ref([]); +const getDoctorMyDiseaseList = () => { + getDoctorMyDiseaseListApi().then((res) => { + doctorMyDiseaseList.value = res.map((item) => { + item.disease.isSelect = 0; + if (selectDiagnosisList.value) { + // 把values的字符串转为数组根据,分解 + const valuesArr = selectDiagnosisList.value.split(','); + // 判断valuesArr数组中是否有item.disease.name + valuesArr.forEach((value) => { + if (value === item.disease.name) { + item.disease.isSelect = 1; + } + }); + } + return item; + }); + }); +} + const [Modal, modalApi] = useVbenModal({ fullscreenButton: false, draggable: true, @@ -41,6 +65,7 @@ const [Modal, modalApi] = useVbenModal({ selectDiagnosisList.value = values; } getDiagnosisList(); + getDoctorMyDiseaseList(); } }, }); @@ -111,8 +136,14 @@ function selectDiagnosis(item) { /> +

常用

+ + + + +

搜索结果

- + diff --git a/apps/web-antd/src/views/doctor/doctor-reception/components/PrescrtionDetail.vue b/apps/web-antd/src/views/doctor/doctor-reception/components/PrescrtionDetail.vue index 28cb140c..0581f10d 100644 --- a/apps/web-antd/src/views/doctor/doctor-reception/components/PrescrtionDetail.vue +++ b/apps/web-antd/src/views/doctor/doctor-reception/components/PrescrtionDetail.vue @@ -107,7 +107,7 @@ const decrypt = (str: string) => str; // 简单base64解码示例 处方编号: {{ item.prescription_no }}
普通处方
-

{{ item.content?.doctor.name }} 处方笺

+

{{ item.content?.patient.name }} 处方笺

开具日期: {{ item.created_at }}
@@ -208,9 +208,9 @@ const decrypt = (str: string) => str; // 简单base64解码示例
签名 str; // 简单base64解码示例
签名 str; // 简单base64解码示例
签名 - {{ item.prescription_type === 1 ? '中药处方' : '西药处方' }} / + {{ item.prescription_type === 1 ? '中药处方' : item.prescription_type === 5 ? '产品服务包' : '西药处方' }} / {{ item.category === 1 ? '自费' : '医保' }} 待审核 已通过 未通过 - 无需审核(服务包) + 无需审核 + 无需审核 处方ID:{{ item.id }} diff --git a/apps/web-antd/src/views/doctor/settings/api/index.ts b/apps/web-antd/src/views/doctor/settings/api/index.ts new file mode 100644 index 00000000..9e636f8d --- /dev/null +++ b/apps/web-antd/src/views/doctor/settings/api/index.ts @@ -0,0 +1,36 @@ +import { requestClient } from '#/api/request'; + +const prefix = 'doctor/'; +/** + * 获取当前登录的医生信息 + * @param data + */ +export async function getDoctorMyInfoApi(data: any) { + return requestClient.get(`${prefix}my-info`, { params: data }); +} +/** + * 获取当前登录的医生信息 + */ +export async function getDoctorMyDoctorOrderApi() { + return requestClient.get(`${prefix}my-doctor-order`); +} +/** + * 获取当前登录的医生信息 + */ +export async function getDoctorMyDiseaseListApi() { + return requestClient.get(`${prefix}my-disease-list`); +} +/** + * 保存服务价格 + * @param data + */ +export async function saveServicePriceApi(data: Record) { + return requestClient.post(`${prefix}save-service-price`, data); +} +/** + * 创建医嘱 + * @param content + */ +export async function createDoctorOrderApi(content: string) { + return requestClient.post(`${prefix}create-doctor-order`, { content }); +} diff --git a/apps/web-antd/src/views/doctor/settings/index.vue b/apps/web-antd/src/views/doctor/settings/index.vue new file mode 100644 index 00000000..62283a23 --- /dev/null +++ b/apps/web-antd/src/views/doctor/settings/index.vue @@ -0,0 +1,383 @@ + + + + diff --git a/apps/web-antd/src/views/system/store/index.vue b/apps/web-antd/src/views/system/store/index.vue index 4fca53f0..cc2b71d1 100644 --- a/apps/web-antd/src/views/system/store/index.vue +++ b/apps/web-antd/src/views/system/store/index.vue @@ -5,18 +5,18 @@ import { ref } from 'vue'; import { Page, useVbenModal } from '@vben/common-ui'; +import { useClipboard } from '@vueuse/core'; import { Button, Image, message, Tag } from 'ant-design-vue'; import { useVbenVxeGrid } from '#/adapter/vxe-table'; +import { Icon } from '#/components/icon'; +import QrCodePreview from '#/components/modal/QrCodePreview.vue'; import { TableAction } from '#/components/table-action'; -import {deleteStore, openPcWindowsApiByStore, openQrCodeApi} from './api'; -import { useClipboard } from '@vueuse/core'; +import { deleteStore, openPcWindowsApiByStore, openQrCodeApi } from './api'; import FormModalDemo from './components/modal.vue'; -import QrCodePreview from "#/components/modal/QrCodePreview.vue"; import { formOptions } from './config/search'; import { gridOptions } from './config/table'; -import {Icon} from "#/components/icon"; const hasTopTableDropDownActions = ref(false);