提交 775a70aa authored 作者: leon's avatar leon

医生编辑,收货人编辑

上级 1134229d
<template> <template>
<BasicDrawer v-bind="$attrs" @register="registerDrawer" showFooter :title="getTitle" width="600px" @ok="handleSubmit"> <BasicDrawer
<BasicForm @register="registerForm" /> v-bind="$attrs"
@register="registerDrawer"
showFooter
:confirmDisabled="getConfirmDisabled"
:title="getTitle"
width="600px"
@ok="handleSubmit"
>
<a-spin :spinning="isLoading">
<BasicForm @register="registerForm" />
</a-spin>
</BasicDrawer> </BasicDrawer>
</template> </template>
<script lang="ts" setup name="DoctorDrawer"> <script lang="ts" setup name="DoctorDrawer">
...@@ -9,6 +19,9 @@ ...@@ -9,6 +19,9 @@
import { formSchema, StatusValEnum } from './schema'; import { formSchema, StatusValEnum } from './schema';
import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
import * as DoctorApi from '/@/api/system/doctorApi'; import * as DoctorApi from '/@/api/system/doctorApi';
import { useAsyncState } from '@vueuse/core';
import { Hospital } from '/@/api/model/hospital';
import { Doctor } from '/@/api/model/doctor';
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const isUpdate = ref(true); const isUpdate = ref(true);
...@@ -20,6 +33,22 @@ ...@@ -20,6 +33,22 @@
showActionButtonGroup: false, showActionButtonGroup: false,
}); });
// id 查询
const {
state: detail,
isReady: isDetailReady,
isLoading,
execute,
} = useAsyncState(
() => {
return DoctorApi.getById(entityId.value).then((res: Doctor) => res);
},
null,
{
immediate: false,
},
);
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
await resetFields(); await resetFields();
setDrawerProps({ confirmLoading: false }); setDrawerProps({ confirmLoading: false });
...@@ -27,10 +56,20 @@ ...@@ -27,10 +56,20 @@
entityId.value = data?.record?.id; entityId.value = data?.record?.id;
if (unref(isUpdate)) { if (unref(isUpdate)) {
await setFieldsValue({ await execute();
...data.record, if (detail.value) {
hospitalId: { label: data.record.hospitalName, value: data.record.hospitalId }, const formData: any = { ...detail.value };
}); formData.hospitalId = { label: detail.value.hospital.name, value: detail.value.hospital.id };
await setFieldsValue(formData);
}
}
});
const getConfirmDisabled = computed(() => {
if (unref(isUpdate)) {
return !unref(isDetailReady);
} else {
return false;
} }
}); });
......
<template> <template>
<BasicDrawer v-bind="$attrs" @register="registerDrawer" showFooter :title="getTitle" width="600px" @ok="handleSubmit"> <BasicDrawer
<BasicForm @register="registerForm" /> v-bind="$attrs"
@register="registerDrawer"
showFooter
:confirmDisabled="getConfirmDisabled"
:title="getTitle"
width="600px"
@ok="handleSubmit"
>
<a-spin :spinning="isLoading">
<BasicForm @register="registerForm" />
</a-spin>
</BasicDrawer> </BasicDrawer>
</template> </template>
<script lang="ts" setup name="ReceiverDrawer"> <script lang="ts" setup name="ReceiverDrawer">
...@@ -9,6 +19,9 @@ ...@@ -9,6 +19,9 @@
import { formSchema } from './schema'; import { formSchema } from './schema';
import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
import * as ReceiverApi from '/@/api/system/receiverApi'; import * as ReceiverApi from '/@/api/system/receiverApi';
import { StatusValEnum } from '/@/views/system/doctor/schema';
import { useAsyncState } from '@vueuse/core';
import { Doctor } from '/@/api/model/doctor';
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const isUpdate = ref(true); const isUpdate = ref(true);
...@@ -20,6 +33,22 @@ ...@@ -20,6 +33,22 @@
showActionButtonGroup: false, showActionButtonGroup: false,
}); });
// id 查询
const {
state: detail,
isReady: isDetailReady,
isLoading,
execute,
} = useAsyncState(
() => {
return ReceiverApi.getById(entityId.value).then((res: Doctor) => res);
},
null,
{
immediate: false,
},
);
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
await resetFields(); await resetFields();
setDrawerProps({ confirmLoading: false }); setDrawerProps({ confirmLoading: false });
...@@ -27,9 +56,11 @@ ...@@ -27,9 +56,11 @@
entityId.value = data?.record?.id; entityId.value = data?.record?.id;
if (unref(isUpdate)) { if (unref(isUpdate)) {
await setFieldsValue({ await execute();
...data.record, if (detail.value) {
}); const formData: any = { ...detail.value };
await setFieldsValue(formData);
}
} }
}); });
...@@ -39,20 +70,20 @@ ...@@ -39,20 +70,20 @@
try { try {
const values = await validate(); const values = await validate();
setDrawerProps({ confirmLoading: true }); setDrawerProps({ confirmLoading: true });
const { const { ...rest } = values;
...rest
} = values;
const action = !unref(isUpdate) ? ReceiverApi.add : ReceiverApi.update; const action = !unref(isUpdate) ? ReceiverApi.add : ReceiverApi.update;
const data = !unref(isUpdate) const data = !unref(isUpdate)
? { ? {
...rest, ...rest,
} }
: Object.assign({}, : Object.assign(
{ {},
...rest, {
id: unref(entityId), ...rest,
}, id: unref(entityId),
); status: StatusValEnum.PENDING_REVIEW,
},
);
await action(data); await action(data);
closeDrawer(); closeDrawer();
emit('success'); emit('success');
......
...@@ -36,11 +36,8 @@ ...@@ -36,11 +36,8 @@
<a-button v-auth="'AUTH_SYSTEM_RECEIVER:ADD'" type="primary" @click="handleCreate"> 新增</a-button> <a-button v-auth="'AUTH_SYSTEM_RECEIVER:ADD'" type="primary" @click="handleCreate"> 新增</a-button>
</template> </template>
<template #bodyCell="{ column, record, text }"> <template #bodyCell="{ column, record, text }">
<template v-if="column.dataIndex === 'id'"> <template v-if="column.dataIndex === 'status'">
<a @click="handleView(record)"> {{ record.id }} </a> <a-tag :color="StatusColorEnum[text]">{{ StatusEnum[text] }}</a-tag>
</template>
<template v-if="[].includes(column.dataIndex)">
<img :src="text" class="photo" alt="图片" v-if="!!text" />
</template> </template>
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction <TableAction
...@@ -105,10 +102,9 @@ ...@@ -105,10 +102,9 @@
<ReceiverDrawer @register="registerDrawer" @success="handleSuccess" /> <ReceiverDrawer @register="registerDrawer" @success="handleSuccess" />
</div> </div>
</template> </template>
<script lang="ts" setup name="DeviceIndex"> <script lang="ts" setup name="AUTH_SYSTEM_RECEIVER">
import { ref } from 'vue'; import { ref } from 'vue';
import { useGo } from '/@/hooks/web/usePage'; import { useGo } from '/@/hooks/web/usePage';
import { usePermission } from '/@/hooks/web/usePermission';
import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { isObject } from '/@/utils/is'; import { isObject } from '/@/utils/is';
import moment from 'moment'; import moment from 'moment';
...@@ -125,6 +121,8 @@ ...@@ -125,6 +121,8 @@
isShowHandleDelete, isShowHandleDelete,
getVerifyParams, getVerifyParams,
StatusValEnum, StatusValEnum,
StatusColorEnum,
StatusEnum,
} from './schema'; } from './schema';
import { BatchVerifyParams } from '/@/api/model/doctor'; import { BatchVerifyParams } from '/@/api/model/doctor';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
...@@ -242,6 +240,6 @@ ...@@ -242,6 +240,6 @@
}; };
const handleView = (record) => { const handleView = (record) => {
go('/system/receiver/' + record.id); go('/main/system/receiver/' + record.id);
}; };
</script> </script>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论