From a05917ac185fc87b7c8fb2712fabc2ff633f23f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Fri, 10 Jul 2026 08:42:05 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E7=89=B9=E8=89=B2=E6=96=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E8=BF=AD=E4=BB=A3(=E5=9B=BA=E5=AE=9A=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC)=EF=BC=8C=E5=9B=BA=E5=AE=9A=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=E8=8D=AF?= =?UTF-8?q?=E5=93=81id=EF=BC=88-102=EF=BC=89=EF=BC=8C=E5=90=8E=E6=9C=9F?= =?UTF-8?q?=E4=BC=9A=E8=80=83=E8=99=91=E6=96=B0=E5=A2=9E=E7=89=B9=E8=89=B2?= =?UTF-8?q?=E6=96=B9=E7=9A=84=E6=97=B6=E5=80=99=E8=87=AA=E5=8A=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AA=E7=89=B9=E8=89=B2=E6=96=B9=E8=8D=AF?= =?UTF-8?q?=E5=93=81=202.=20=E9=80=80=E6=AC=BE=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=80=E5=9B=9E=E5=88=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/Code-Standards.md | 10 ++ .../components/cells/OrderUserInfoCell.vue | 148 ++++++++++++++++++ .../order/product-order/config/table.ts | 8 +- .../business/order/product-order/index.vue | 28 +++- .../src/views/doctor/doctor/api/index.ts | 10 ++ .../doctor/components/BindDepartModal.vue | 94 +++++++++++ .../doctor/components/BindTitleModal.vue | 92 +++++++++++ .../doctor/components/DoctorCardModal.vue | 59 ++++--- .../components/cells/DoctorBasicInfoCell.vue | 95 +++++++++++ .../cells/DoctorProfessionalInfoCell.vue | 115 ++++++++++++++ .../src/views/doctor/doctor/config/table.ts | 27 ++-- .../src/views/doctor/doctor/index.vue | 105 ++++++------- 12 files changed, 691 insertions(+), 100 deletions(-) create mode 100644 .cursor/rules/Code-Standards.md create mode 100644 apps/web-antd/src/views/business/order/product-order/components/cells/OrderUserInfoCell.vue create mode 100644 apps/web-antd/src/views/doctor/doctor/components/BindDepartModal.vue create mode 100644 apps/web-antd/src/views/doctor/doctor/components/BindTitleModal.vue create mode 100644 apps/web-antd/src/views/doctor/doctor/components/cells/DoctorBasicInfoCell.vue create mode 100644 apps/web-antd/src/views/doctor/doctor/components/cells/DoctorProfessionalInfoCell.vue diff --git a/.cursor/rules/Code-Standards.md b/.cursor/rules/Code-Standards.md new file mode 100644 index 00000000..9e5c2433 --- /dev/null +++ b/.cursor/rules/Code-Standards.md @@ -0,0 +1,10 @@ +--- +description: +alwaysApply: true +--- + +1. 写代码的时候要补充详细的中文注释(每个方法是干嘛的,为什么要这样写),如果是工作区,则所有项目都适用该规则 +2. 注意不要生成太多的空行,上一部分代码和下一部分代码中间的空行不要大于2行 +3. 有封装好的方法、组件需要复用,不要重复造轮子 +4. 小程序端的抽屉全部需要用page-container来防止用户意外退出页面(记得使用v-if而不是v-show) +5. 数据库的(created_at、updated_at、deleted_at)统一使用时间戳,不要使用字符串,并且我在查询器中一级格式化成字符串了,无需再次格式化 diff --git a/apps/web-antd/src/views/business/order/product-order/components/cells/OrderUserInfoCell.vue b/apps/web-antd/src/views/business/order/product-order/components/cells/OrderUserInfoCell.vue new file mode 100644 index 00000000..fbf9dd5a --- /dev/null +++ b/apps/web-antd/src/views/business/order/product-order/components/cells/OrderUserInfoCell.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/apps/web-antd/src/views/business/order/product-order/config/table.ts b/apps/web-antd/src/views/business/order/product-order/config/table.ts index 02785f04..d6c34657 100644 --- a/apps/web-antd/src/views/business/order/product-order/config/table.ts +++ b/apps/web-antd/src/views/business/order/product-order/config/table.ts @@ -26,10 +26,10 @@ export const gridOptions: VxeGridProps = { slots: { default: 'order-store' }, }, { - field: 'user.avatarUrl', - title: '下单用户信息', - slots: { default: 'avatar' }, - width: 100, + field: 'order_user_info', + title: '用户/医生/就诊人', + slots: { default: 'order-user-info' }, + width: 210, }, { field: 'express_info', diff --git a/apps/web-antd/src/views/business/order/product-order/index.vue b/apps/web-antd/src/views/business/order/product-order/index.vue index 9d3f3d14..9e739c91 100644 --- a/apps/web-antd/src/views/business/order/product-order/index.vue +++ b/apps/web-antd/src/views/business/order/product-order/index.vue @@ -35,8 +35,10 @@ import { getOrderPriceAdjustConfig } from '#/api/order/priceAdjust'; import type { QuickDiscountOption } from '#/utils/pricePercentAdjust'; import { normalizeQuickOptions } from '#/utils/pricePercentAdjust'; import PrescriptionDetail from '#/views/doctor/doctor-reception/components/PrescriptionDetail.vue'; +import DoctorCardModal from '#/views/doctor/doctor/components/DoctorCardModal.vue'; import DetailModal from './components/detail.vue'; +import OrderUserInfoCell from './components/cells/OrderUserInfoCell.vue'; import FormModalDemo from './components/modal.vue'; import ProductOrderExportModal from './components/ProductOrderExportModal.vue'; import Refund from './components/refund.vue'; @@ -198,6 +200,25 @@ const [PrescriptionDetailModal, PrescriptionDetailModalApi] = useVbenModal({ connectedComponent: PrescriptionDetail, }); +const [DoctorCardModals, DoctorCardModalApi] = useVbenModal({ + connectedComponent: DoctorCardModal, +}); + +/** 从订单列表以只读模式打开医生档案 */ +function showOrderDoctorCard(row: Record) { + const doctor = row.doctor; + if (!doctor?.id && !row.su_id && !doctor?.su_id) { + message.warning('该订单无关联医生'); + return; + } + DoctorCardModalApi.setData({ + id: doctor?.id, + su_id: row.su_id ?? doctor?.su_id, + readonly: true, + }); + DoctorCardModalApi.open(); +} + const [TraceDrawer, traceDrawerApi] = useVbenDrawer({ connectedComponent: OrderTraceDrawer, }); @@ -501,6 +522,7 @@ const openOrderAmountVerify = () => { + @@ -547,10 +569,8 @@ const openOrderAmountVerify = () => { -