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 @@

{{ item.drug?.source }}

- + - + - +
- + +