diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue
index 6437bc09..310420df 100644
--- a/apps/web-antd/src/layouts/basic.vue
+++ b/apps/web-antd/src/layouts/basic.vue
@@ -4,9 +4,11 @@ import type { NotificationItem } from '@vben/layouts';
import { computed, ref, watch } from 'vue';
import { AuthenticationLoginExpiredModal } from '@vben/common-ui';
+
// import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants';
import { useWatermark } from '@vben/hooks';
// import { BookOpenText, CircleHelp, MdiGithub } from '@vben/icons';
+// import { CircleHelp } from '@vben/icons';
import {
BasicLayout,
LockScreen,
@@ -65,6 +67,13 @@ const menus = computed(() => [
// TODO 后续放个人中心
// {
// handler: () => {
+ // UpdatePasswordModalApi.open();
+ // },
+ // icon: 'carbon:password',
+ // text: '修改密码',
+ // },
+ // {
+ // handler: () => {
// openWindow(VBEN_DOC_URL, {
// target: '_blank',
// });
@@ -158,5 +167,6 @@ watch(
+
diff --git a/apps/web-antd/src/layouts/components/UpdatePasswordModal.vue b/apps/web-antd/src/layouts/components/UpdatePasswordModal.vue
new file mode 100644
index 00000000..f0ce645f
--- /dev/null
+++ b/apps/web-antd/src/layouts/components/UpdatePasswordModal.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/layouts/config/form.ts b/apps/web-antd/src/layouts/config/form.ts
new file mode 100644
index 00000000..28b23c71
--- /dev/null
+++ b/apps/web-antd/src/layouts/config/form.ts
@@ -0,0 +1,105 @@
+import type { VbenFormProps } from '#/adapter/form';
+
+import { z } from '#/adapter/form';
+
+const defaultPassword = '';
+
+export const passwordModalForm: VbenFormProps = {
+ wrapperClass: 'grid-cols-12', // 24栅格,
+ commonConfig: {
+ formItemClass: 'col-span-12',
+ // 所有表单项
+ componentProps: {
+ class: 'w-full',
+ },
+ },
+ // handleSubmit: onSubmit,
+ layout: 'horizontal',
+ schema: [
+ {
+ fieldName: 'password',
+ label: '旧的密码',
+ component: 'InputPassword',
+ help: '5-18位数字、字母、特殊字符组成。',
+ componentProps: {
+ placeholder: '请输入密码',
+ allowClear: true,
+ },
+ defaultValue: defaultPassword,
+ rules: z
+ .string()
+ .regex(
+ /^(?=.*[A-Z0-9])(?=.*[!@#$%^&*])[A-Z0-9!@#$%^&*]{5,18}$/i,
+ '密码由5-18位数字、字母、特殊字符组成。',
+ ),
+ dependencies: {
+ if({ id }) {
+ return !id;
+ },
+ triggerFields: ['id'],
+ },
+ // formItemClass: 'col-span-6',
+ },
+ {
+ fieldName: 'new_password',
+ label: '新的密码',
+ component: 'InputPassword',
+ help: '5-18位数字、字母、特殊字符组成。',
+ componentProps: {
+ placeholder: '请输入密码',
+ allowClear: true,
+ },
+ defaultValue: defaultPassword,
+ rules: z
+ .string()
+ .regex(
+ /^(?=.*[A-Z0-9])(?=.*[!@#$%^&*])[A-Z0-9!@#$%^&*]{5,18}$/i,
+ '密码由5-18位数字、字母、特殊字符组成。',
+ ),
+ dependencies: {
+ if({ id }) {
+ return !id;
+ },
+ triggerFields: ['id'],
+ },
+ // formItemClass: 'col-span-6',
+ },
+ {
+ fieldName: 'new_password_confirmation',
+ label: '确认密码',
+ component: 'InputPassword',
+ componentProps: {
+ placeholder: '请输入确认密码',
+ allowClear: true,
+ },
+ defaultValue: defaultPassword,
+ rules: z
+ .string()
+ .regex(/[\w!@#$%^&*]{5,18}/, '密码由5-18位数字、字母、特殊字符组成。'),
+ dependencies: {
+ if({ id }) {
+ return !id;
+ },
+ triggerFields: ['id', 'confirmPassword'],
+ rules: (values) => {
+ return z
+ .string()
+ .regex(
+ /[\w!@#$%^&*]{5,18}/,
+ '密码由5-18位数字、字母、特殊字符组成。',
+ )
+ .refine(
+ (confirmPassword) => {
+ return confirmPassword === values.new_password;
+ },
+ {
+ message: '确认密码必须与密码一致',
+ },
+ );
+ },
+ },
+ // formItemClass: 'col-span-6',
+ },
+ ],
+ showDefaultActions: false,
+};
diff --git a/apps/web-antd/src/views/_core/authentication/login.vue b/apps/web-antd/src/views/_core/authentication/login.vue
index 63711140..f97983d8 100644
--- a/apps/web-antd/src/views/_core/authentication/login.vue
+++ b/apps/web-antd/src/views/_core/authentication/login.vue
@@ -136,13 +136,13 @@ const formSchema = computed((): VbenFormSchema[] => {
message: $t('authentication.codeTip', [CODE_LENGTH]),
}),
},
- {
- component: markRaw(SliderCaptcha),
- fieldName: 'captcha',
- rules: z.boolean().refine((value) => value, {
- message: $t('authentication.verifyRequiredTip'),
- }),
- },
+ // {
+ // component: markRaw(SliderCaptcha),
+ // fieldName: 'captcha',
+ // rules: z.boolean().refine((value) => value, {
+ // message: $t('authentication.verifyRequiredTip'),
+ // }),
+ // },
];
});
diff --git a/apps/web-antd/src/views/dashboard/workspace/index.vue b/apps/web-antd/src/views/dashboard/workspace/index.vue
index 2c532c02..3515f328 100644
--- a/apps/web-antd/src/views/dashboard/workspace/index.vue
+++ b/apps/web-antd/src/views/dashboard/workspace/index.vue
@@ -142,6 +142,12 @@ const quickNavItems: WorkbenchQuickNavItem[] = [
title: '供应商管理',
url: '/supplier',
},
+ {
+ color: '#00d8ff',
+ icon: 'ion:bar-chart-outline',
+ title: '接诊',
+ url: '/doctor/reception',
+ },
];
const todoItems = ref([
@@ -177,6 +183,12 @@ const todoItems = ref([
},
]);
const trendItems: WorkbenchTrendItem[] = [
+ {
+ avatar: 'svg:logo',
+ content: `医生开方功能上线啦!`,
+ date: '2025-3-11',
+ title: '萧康云医',
+ },
{
avatar: 'svg:logo',
content: `萧康云医上线啦!`,
diff --git a/apps/web-antd/src/views/doctor/doctor-reception/api/index.ts b/apps/web-antd/src/views/doctor/doctor-reception/api/index.ts
index c4cbb9e7..d9cf06c2 100644
--- a/apps/web-antd/src/views/doctor/doctor-reception/api/index.ts
+++ b/apps/web-antd/src/views/doctor/doctor-reception/api/index.ts
@@ -46,6 +46,22 @@ export async function getUseWayList() {
return requestClient.get(`${prefix}drug-use-way-list`, {});
}
+/**
+ * 获取疾病列表
+ */
+export async function getDiseaseList(name:string) {
+ return requestClient.get(`${prefix}disease-list`, { params: {
+ name
+ } });
+}
+
+/**
+ * 获取疾病列表
+ */
+export async function getDoctorOrderList() {
+ return requestClient.get(`${prefix}doctor-order-list`);
+}
+
/**
* 接诊
*/
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
new file mode 100644
index 00000000..35612e2f
--- /dev/null
+++ b/apps/web-antd/src/views/doctor/doctor-reception/components/DiagnosisModal.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/doctor/doctor-reception/components/DoctorOrderModal.vue b/apps/web-antd/src/views/doctor/doctor-reception/components/DoctorOrderModal.vue
new file mode 100644
index 00000000..68a8c817
--- /dev/null
+++ b/apps/web-antd/src/views/doctor/doctor-reception/components/DoctorOrderModal.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/doctor/doctor-reception/components/WesternModal.vue b/apps/web-antd/src/views/doctor/doctor-reception/components/WesternModal.vue
index 1de5b093..bab2a076 100644
--- a/apps/web-antd/src/views/doctor/doctor-reception/components/WesternModal.vue
+++ b/apps/web-antd/src/views/doctor/doctor-reception/components/WesternModal.vue
@@ -1,5 +1,5 @@
-
+
+
getDrugListByWesternModal(e.target.value)"
@search="getDrugListByWesternModal"
/>
+
-
-
-
-
-
-
-
-
+
+
-
-
-
+ {{ value.name }}
+
+
-
-
+
+
+
-
{{ item.drug?.source }}
-
+
-
+
-
+
-
+
+
+