From 87aa9f965591734418f6ccad00b7182f5f893c6f Mon Sep 17 00:00:00 2001 From: lq Date: Tue, 29 Apr 2025 16:03:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A5=BF=E8=8D=AF=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../western-medicine/components/modal.vue | 62 +++++++++++++++++++ .../product/western-medicine/config/form.ts | 57 +++++++++++++---- 2 files changed, 108 insertions(+), 11 deletions(-) diff --git a/apps/web-antd/src/views/business/product/western-medicine/components/modal.vue b/apps/web-antd/src/views/business/product/western-medicine/components/modal.vue index 6a617540..ecd3f877 100644 --- a/apps/web-antd/src/views/business/product/western-medicine/components/modal.vue +++ b/apps/web-antd/src/views/business/product/western-medicine/components/modal.vue @@ -10,17 +10,51 @@ import { useVbenForm } from '#/adapter/form'; import { createWesternMedicine, updateWesternMedicine } from '../api'; import { modalFormProps } from '../config/form'; +import {getDrugUseList} from "#/views/doctor/doctor-reception/api"; defineOptions({ name: 'FormModelDemo', }); const userStore = useUserStore(); +const drugTime = ref([]); +const drugType = ref([]); +const drugUnit = ref([]); +const drugFrequency = ref([]); +getDrugUseList().then((res) => { + drugTime.value = res.drug_time.map((item) => { + return { + label: item.name, + value: item.id, + }; + }); + drugType.value = res.drug_use_type.map((item) => { + return { + label: item.name, + value: item.id, + }; + }); + drugUnit.value = res.drug_unit.map((item) => { + return { + label: item.name, + value: item.id, + }; + }); + drugFrequency.value = res.drug_use_frequency.map((item) => { + return { + label: item.name, + value: item.id, + }; + }); + return res; +}); + const isUpdate = ref(false); const gridApi = ref(); const [Form, formApi] = useVbenForm(modalFormProps); + const [Modal, modalApi] = useVbenModal({ fullscreenButton: false, draggable: true, @@ -51,8 +85,36 @@ const [Modal, modalApi] = useVbenModal({ onOpenChange(isOpen: boolean) { gridApi.value = isOpen ? modalApi.getData()?.gridApi : null; if (isOpen) { + + formApi.updateSchema([ + { + componentProps: { + options: drugTime.value, + }, + fieldName: 'time_id', + }, + { + componentProps: { + options: drugUnit.value, + }, + fieldName: 'unit_id', + }, + { + componentProps: { + options: drugType.value, + }, + fieldName: 'type_id', + }, + { + componentProps: { + options: drugFrequency.value, + }, + fieldName: 'frequency_id', + }, + ]); const { values, update } = modalApi.getData>(); if (values) { + console.log(values, 'sssssssssssss') isUpdate.value = update; formApi.setValues(values); } diff --git a/apps/web-antd/src/views/business/product/western-medicine/config/form.ts b/apps/web-antd/src/views/business/product/western-medicine/config/form.ts index bdf95004..5d9fd282 100644 --- a/apps/web-antd/src/views/business/product/western-medicine/config/form.ts +++ b/apps/web-antd/src/views/business/product/western-medicine/config/form.ts @@ -1,10 +1,7 @@ -import type { VbenFormProps } from '#/adapter/form'; +import type {VbenFormProps} from '#/adapter/form'; -import { useUserStore } from '@vben/stores'; +import {getSupplierOption} from '#/views/system/supplier/api'; -import { getSupplierOption } from '#/views/system/supplier/api'; - -const userStore = useUserStore(); export const modalFormProps: VbenFormProps = { wrapperClass: 'grid-cols-12', // 24栅格, @@ -64,12 +61,6 @@ export const modalFormProps: VbenFormProps = { api: getSupplierOption, placeholder: '请选择', }, - dependencies: { - disabled() { - return userStore?.userInfo?.roles?.user_type === 3; - }, - triggerFields: ['supplier_id'], - }, fieldName: 'supplier_id', formItemClass: 'col-span-6', label: '所属供应商', @@ -115,6 +106,50 @@ export const modalFormProps: VbenFormProps = { label: '规格', rules: 'required', }, + { + component: 'VbenSelect', + componentProps: { + options: [], + placeholder: '请选择', + }, + fieldName: 'time_id', + formItemClass: 'col-span-6', + label: '使用时间', + rules: 'required', + }, + { + component: 'VbenSelect', + componentProps: { + options: [], + placeholder: '请选择', + }, + fieldName: 'type_id', + formItemClass: 'col-span-6', + label: '使用方法', + rules: 'required', + }, + { + component: 'VbenSelect', + componentProps: { + options: [], + placeholder: '请选择', + }, + fieldName: 'unit_id', + formItemClass: 'col-span-6', + label: '单位', + rules: 'required', + }, + { + component: 'VbenSelect', + componentProps: { + options: [], + placeholder: '请选择', + }, + fieldName: 'frequency_id', + formItemClass: 'col-span-6', + label: '频率', + rules: 'required', + }, { component: 'RadioGroup', componentProps: {