From 35b0f5413a29257c84db247e8f9e8e11279006c9 Mon Sep 17 00:00:00 2001 From: lq Date: Tue, 22 Apr 2025 08:40:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8C=82=E5=8F=B7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prescription/api/index.ts | 0 .../prescription/config/search.ts | 0 .../prescription/config/table.ts | 2 +- .../prescription/index.vue | 34 +---- .../business/order/register/api/index.ts | 10 ++ .../business/order/register/config/search.ts | 38 +++++ .../business/order/register/config/table.ts | 84 +++++++++++ .../views/business/order/register/index.vue | 137 ++++++++++++++++++ .../components/PrescrtionDetail.vue | 5 +- 9 files changed, 275 insertions(+), 35 deletions(-) rename apps/web-antd/src/views/business/{prescriptions => order}/prescription/api/index.ts (100%) rename apps/web-antd/src/views/business/{prescriptions => order}/prescription/config/search.ts (100%) rename apps/web-antd/src/views/business/{prescriptions => order}/prescription/config/table.ts (95%) rename apps/web-antd/src/views/business/{prescriptions => order}/prescription/index.vue (85%) create mode 100644 apps/web-antd/src/views/business/order/register/api/index.ts create mode 100644 apps/web-antd/src/views/business/order/register/config/search.ts create mode 100644 apps/web-antd/src/views/business/order/register/config/table.ts create mode 100644 apps/web-antd/src/views/business/order/register/index.vue diff --git a/apps/web-antd/src/views/business/prescriptions/prescription/api/index.ts b/apps/web-antd/src/views/business/order/prescription/api/index.ts similarity index 100% rename from apps/web-antd/src/views/business/prescriptions/prescription/api/index.ts rename to apps/web-antd/src/views/business/order/prescription/api/index.ts diff --git a/apps/web-antd/src/views/business/prescriptions/prescription/config/search.ts b/apps/web-antd/src/views/business/order/prescription/config/search.ts similarity index 100% rename from apps/web-antd/src/views/business/prescriptions/prescription/config/search.ts rename to apps/web-antd/src/views/business/order/prescription/config/search.ts diff --git a/apps/web-antd/src/views/business/prescriptions/prescription/config/table.ts b/apps/web-antd/src/views/business/order/prescription/config/table.ts similarity index 95% rename from apps/web-antd/src/views/business/prescriptions/prescription/config/table.ts rename to apps/web-antd/src/views/business/order/prescription/config/table.ts index 8ab3f23f..bd7cf0c9 100644 --- a/apps/web-antd/src/views/business/prescriptions/prescription/config/table.ts +++ b/apps/web-antd/src/views/business/order/prescription/config/table.ts @@ -1,6 +1,6 @@ import type { VxeGridProps } from '#/adapter/vxe-table'; -import { getPrescriptionListApi } from '#/views/business/prescriptions/prescription/api'; +import { getPrescriptionListApi } from '../api'; interface RowType { id: string; diff --git a/apps/web-antd/src/views/business/prescriptions/prescription/index.vue b/apps/web-antd/src/views/business/order/prescription/index.vue similarity index 85% rename from apps/web-antd/src/views/business/prescriptions/prescription/index.vue rename to apps/web-antd/src/views/business/order/prescription/index.vue index 663fb09c..9afe5b5c 100644 --- a/apps/web-antd/src/views/business/prescriptions/prescription/index.vue +++ b/apps/web-antd/src/views/business/order/prescription/index.vue @@ -4,14 +4,11 @@ import type { VxeGridListeners } from '#/adapter/vxe-table'; import { ref } from 'vue'; import { - AnalysisOverview, - type AnalysisOverviewItem, Page, useVbenModal, } from '@vben/common-ui'; -import { SvgCakeIcon } from '@vben/icons'; -import { Button, Image, Tag } from 'ant-design-vue'; +import { Button, Tag } from 'ant-design-vue'; import { useVbenVxeGrid } from '#/adapter/vxe-table'; import { TableAction } from '#/components/table-action'; @@ -41,35 +38,6 @@ const [Grid, gridApi] = useVbenVxeGrid({ gridEvents, }); -const infoModal = (data = {}) => { - modalApi.setData({ - // 表单值 - values: data, - gridApi, - }); - modalApi.open(); -}; - -const wareSend = (data = {}) => { - formModalApi.setData({ - // 表单值 - values: { - order_id: data?.id, - order_no: data?.order_no, - }, - gridApi, - }); - formModalApi.open(); -}; -const expandAll = () => { - gridApi.grid?.setAllRowExpand(true); -}; - -const collapseAll = () => { - gridApi.grid?.setAllRowExpand(false); -}; -const overviewItems = ref([]); - const [PrescrtionDetailModal, PrescrtionDetailModalApi] = useVbenModal({ connectedComponent: PrescrtionDetail, }); diff --git a/apps/web-antd/src/views/business/order/register/api/index.ts b/apps/web-antd/src/views/business/order/register/api/index.ts new file mode 100644 index 00000000..d5fe98e3 --- /dev/null +++ b/apps/web-antd/src/views/business/order/register/api/index.ts @@ -0,0 +1,10 @@ +import { requestClient } from '#/api/request'; + +const prefix = 'register/'; +/** + * 分页查询用户列表 + * @param data + */ +export async function getRegisterListApi(data: any) { + return requestClient.get(`${prefix}list`, { params: data }); +} diff --git a/apps/web-antd/src/views/business/order/register/config/search.ts b/apps/web-antd/src/views/business/order/register/config/search.ts new file mode 100644 index 00000000..816dd8c9 --- /dev/null +++ b/apps/web-antd/src/views/business/order/register/config/search.ts @@ -0,0 +1,38 @@ +import type { VbenFormProps } from '#/adapter/form'; + +import dayjs from 'dayjs'; + +export const formOptions: VbenFormProps = { + // 默认展开 + collapsed: false, + schema: [ + { + component: 'VbenInput', + componentProps: { + placeholder: '输入订单号', + }, + defaultValue: '', + fieldName: 'order_no', + label: '订单号', + }, + { + component: 'RangePicker', + componentProps: { + format: 'YYYY-MM-DD', // 确保格式与你需要的一致 + }, + defaultValue: [dayjs().startOf('month'), dayjs()], + fieldName: 'search_time', + label: '时间范围', + }, + ], + // 控制表单是否显示折叠按钮 + showCollapseButton: true, + submitButtonOptions: { + content: '查询', + }, + // 是否在字段值改变时提交表单 + // submitOnChange: true, + // submitOnChange: true, + // 按下回车时是否提交表单 + submitOnEnter: true, +}; diff --git a/apps/web-antd/src/views/business/order/register/config/table.ts b/apps/web-antd/src/views/business/order/register/config/table.ts new file mode 100644 index 00000000..ee38e8e8 --- /dev/null +++ b/apps/web-antd/src/views/business/order/register/config/table.ts @@ -0,0 +1,84 @@ +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { getRegisterListApi } from '../api'; + +interface RowType { + id: string; + name: string; + logo: string; + introduce: string; + created_at: string; +} + +export const gridOptions: VxeGridProps = { + checkboxConfig: { + highlight: true, + labelField: '', + }, + columns: [ + // { type: 'checkbox', width: 60 }, + { field: 'id', align: 'left', title: 'ID' }, + { field: 'order_no', title: '挂号订单号' }, + { field: 'doctor_info.name', title: '开方医生' }, + { field: 'doctor_info.depart.name', title: '科室' }, + { field: 'user_patient.name', title: '就诊人名称' }, + { field: 'store.name', title: '开方诊所' }, + { field: 'prescription', title: '处方', slots: { default: 'prescription'} }, + { field: 'status', title: '状态', slots: { default: 'status' } }, + // { field: 'created_at', title: '下单时间' }, + // { + // type: 'html', + // title: '操作', + // align: 'right', + // slots: { default: 'action' }, + // width: 200, + // }, + ], + keepSource: true, + pagerConfig: {}, + columnConfig: { + useKey: true, + }, + rowConfig: { + useKey: true, + }, + // scrollY: { + // enabled: true, + // gt: 0, + // }, + proxyConfig: { + ajax: { + // 请求后端接口方法 + query: async ({ page }, formValues) => { + return await getRegisterListApi({ + page: page.currentPage, + pageSize: page.pageSize, + ...formValues, + }); + }, + }, + }, + height: 'auto', + border: false, + toolbarConfig: { + // 是否显示搜索表单控制按钮 + // @ts-ignore 正式环境时有完整的类型声明 + search: true, + refresh: true, // 刷新 + print: false, // 打印 + export: false, // 导出 + // custom: true, // 自定义列 + zoom: true, // 最大化最小化 + slots: { + buttons: 'toolbar-buttons', + }, + custom: { + // 自定义列-图标 + icon: 'vxe-icon-menu', + }, + }, + expandConfig: { + // expandAll: true, + }, + showOverflow: false, +}; diff --git a/apps/web-antd/src/views/business/order/register/index.vue b/apps/web-antd/src/views/business/order/register/index.vue new file mode 100644 index 00000000..e15adc54 --- /dev/null +++ b/apps/web-antd/src/views/business/order/register/index.vue @@ -0,0 +1,137 @@ + + + + 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 719ee41e..8e8137f7 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 @@ -204,7 +204,7 @@ const decrypt = (str: string) => str; // 简单base64解码示例 item.doctor_info.identity_info.sign_image }`" alt="签名" - style="width: 120px; height: 50px; display: inline-block" + style="width: 120px; height: 50px; display: inline-block; " /> {{ item.content?.doctor.name }} @@ -277,6 +277,9 @@ const decrypt = (str: string) => str; // 简单base64解码示例