From 56ac91c4afadf7735343c8a1eb316d94f748843e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?=
Date: Mon, 18 May 2026 09:13:49 +0800
Subject: [PATCH] =?UTF-8?q?1.=20=E5=AF=B9=E8=B4=A6=E5=8D=95=E3=80=81?=
=?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9A=84=E6=94=B9=E8=89=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/doctor/doctor/api/index.ts | 10 ++
.../doctor/components/BindSubjectsModal.vue | 100 ++++++++++++++++++
.../src/views/doctor/doctor/config/table.ts | 8 +-
.../src/views/doctor/doctor/index.vue | 24 +++++
.../finance/charge-cash-pay-record/index.vue | 2 +-
5 files changed, 142 insertions(+), 2 deletions(-)
create mode 100644 apps/web-antd/src/views/doctor/doctor/components/BindSubjectsModal.vue
diff --git a/apps/web-antd/src/views/doctor/doctor/api/index.ts b/apps/web-antd/src/views/doctor/doctor/api/index.ts
index b563bcf7..f9f3e58e 100644
--- a/apps/web-antd/src/views/doctor/doctor/api/index.ts
+++ b/apps/web-antd/src/views/doctor/doctor/api/index.ts
@@ -15,6 +15,11 @@ export async function getDoctorList(data: any) {
export async function getDepartOptionApi() {
return requestClient.get(`${prefix}depart-option`);
}
+
+/** 诊疗科目下拉(互联网医院组包 subjects_id) */
+export async function getSubjectsOptionApi() {
+ return requestClient.get(`${prefix}subjects-option`);
+}
/**
* 分页查询用户列表
* @param data
@@ -56,6 +61,11 @@ export async function updateDoctorStoreBindApi(data: Record) {
return requestClient.post(`${prefix}update-store-bind`, data);
}
+/** doctor_id 为 su_id,与 update-store-bind 一致 */
+export async function updateDoctorSubjectsBindApi(data: Record) {
+ return requestClient.post(`${prefix}update-subjects-bind`, data);
+}
+
/**
* 新增医生
* @param data
diff --git a/apps/web-antd/src/views/doctor/doctor/components/BindSubjectsModal.vue b/apps/web-antd/src/views/doctor/doctor/components/BindSubjectsModal.vue
new file mode 100644
index 00000000..722c0d51
--- /dev/null
+++ b/apps/web-antd/src/views/doctor/doctor/components/BindSubjectsModal.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/doctor/doctor/config/table.ts b/apps/web-antd/src/views/doctor/doctor/config/table.ts
index f25e28ba..0b778eda 100644
--- a/apps/web-antd/src/views/doctor/doctor/config/table.ts
+++ b/apps/web-antd/src/views/doctor/doctor/config/table.ts
@@ -41,9 +41,15 @@ export const gridOptions: VxeGridProps = {
},
{ field: 'su_id', title: 'wxID' },
{ field: 'stores', title: '所属诊所', slots: { default: 'stores' } },
+ {
+ field: 'subjects',
+ title: '诊疗科目',
+ slots: { default: 'subjects' },
+ minWidth: 120,
+ },
{ field: 'service_user', title: '审核状态', slots: { default: 'service-user' } },
{ field: 'created_at', title: '注册时间' },
- { type: 'html', title: '操作', width: 250, slots: { default: 'action' } },
+ { type: 'html', title: '操作', width: 340, slots: { default: 'action' } },
],
keepSource: true,
pagerConfig: {},
diff --git a/apps/web-antd/src/views/doctor/doctor/index.vue b/apps/web-antd/src/views/doctor/doctor/index.vue
index 897bae27..230beba3 100644
--- a/apps/web-antd/src/views/doctor/doctor/index.vue
+++ b/apps/web-antd/src/views/doctor/doctor/index.vue
@@ -12,6 +12,7 @@ import { TableAction } from '#/components/table-action';
import { auditApi, openPcWindowsApi, refuseApi } from './api';
import BindStore from './components/BindStoreModal.vue';
+import BindSubjects from './components/BindSubjectsModal.vue';
import FormModalDemo from './components/modal.vue';
import { formOptions } from './config/search';
import { gridOptions } from './config/table';
@@ -45,6 +46,10 @@ const [BindStoreModal, BindStoreModalApi] = useVbenModal({
connectedComponent: BindStore,
});
+const [BindSubjectsModal, BindSubjectsModalApi] = useVbenModal({
+ connectedComponent: BindSubjects,
+});
+
const showModal = (data = {}, isUpdate = false) => {
formModalApi.setData({
// 表单值
@@ -64,6 +69,14 @@ const showBindStoreModal = (data: number) => {
BindStoreModalApi.open();
};
+const showBindSubjectsModal = (row: Record) => {
+ BindSubjectsModalApi.setData({
+ values: row,
+ gridApi,
+ });
+ BindSubjectsModalApi.open();
+};
+
const openPcWindows = (id: number) => {
openPcWindowsApi(id).then(() => {
message.success('开通成功!');
@@ -90,6 +103,7 @@ const refuse = (id: number) => {
+
{
{{ item?.store?.name }}
+
+ {{ row.subjects?.name ?? '-' }}
+
已通过
@@ -166,6 +183,13 @@ const refuse = (id: number) => {
// auth: ['doctor', 'sys:role:detail'],
onClick: showBindStoreModal.bind(null, row),
},
+ {
+ label: '绑定诊疗科目',
+ type: 'link',
+ icon: 'uil:edit',
+ size: 'small',
+ onClick: showBindSubjectsModal.bind(null, row),
+ },
{
label: '开通PC端',
type: 'link',
diff --git a/apps/web-antd/src/views/finance/charge-cash-pay-record/index.vue b/apps/web-antd/src/views/finance/charge-cash-pay-record/index.vue
index 2af38f79..2b129995 100644
--- a/apps/web-antd/src/views/finance/charge-cash-pay-record/index.vue
+++ b/apps/web-antd/src/views/finance/charge-cash-pay-record/index.vue
@@ -36,7 +36,7 @@ const initTableAjax = () => {
statistics.value = null;
statistics.value = [
{
- title: '总销售金额',
+ title: '总销代付额',
value: res.count,
icon: 'mdi:cash-multiple',
color: 'text-blue-600',