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

医生编辑,收货人编辑

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