Files
xk-admin/apps/web-antd/src/views/business/warehouse-drug-management/admin/components/modal.vue
lq 920b47aace
Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CI / CI OK (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
fix: 删除无用命名,更新了一些细节
2025-08-28 11:00:39 +08:00

134 lines
3.1 KiB
Vue

<script lang="ts" setup>
import { ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { useUserStore } from '@vben/stores';
import { message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
import {
createWarehouseDrugManagement,
updateWarehouseDrugManagement,
} from '../api';
import { modalFormProps } from '../config/form';
import {getDrugUseList} from "#/views/doctor/doctor-reception/api";
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,
onCancel() {
modalApi.close();
},
onConfirm: async () => {
formApi.validate().then(async (e: any) => {
if (e.valid) {
const values = await formApi.getValues();
modalApi.setState({ loading: true, confirmLoading: true });
const submitApi = isUpdate.value
? updateWarehouseDrugManagement
: createWarehouseDrugManagement;
submitApi(values)
.then(() => {
message.success('保存成功');
gridApi.value?.reload();
modalApi.close();
})
.finally(() => {
modalApi.setState({ loading: false, confirmLoading: false });
});
}
});
await formApi.validateAndSubmitForm();
},
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<Record<string, any>>();
if (values) {
console.log(values, 'sssssssssssss')
isUpdate.value = update;
formApi.setValues(values);
}
}
},
});
</script>
<template>
<Modal
:title="`${isUpdate === true ? '编辑' : '新增'}西(中成)药`"
class="w-[30%]"
>
<Form />
</Modal>
</template>