wms-antdvue/.svn/pristine/b6/b6d5d8e9a7a1797ca0974cb2086654e6a5cce051.svn-base
2024-11-07 16:33:03 +08:00

382 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<PageWrapper>
<div class="n-layout-page-header">
<a-card :bordered="false" title="高级表单">
当一次性提交大量数据时,可使用高级表单,根据自身情况选择是否使用 BasicForm
组件,以下布局支持自适应
</a-card>
</div>
<a-form
ref="formRef"
:labelCol="{ span: 5 }"
:model="formValue"
:rules="rules"
label-placement="left"
>
<a-card
:bordered="false"
class="mt-4 proCard"
title="预约信息"
:bodyStyle="{ padding: '30px 20px 20px' }"
>
<a-row :gutter="[16, 16]">
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约姓名" name="name">
<a-input v-model:value="formValue.name" placeholder="输入姓名" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约号码" name="mobile">
<a-input v-model:value="formValue.mobile" placeholder="电话号码" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约时间" name="datetime">
<a-date-picker class="w-full" v-model:value="formValue.datetime" type="datetime" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约医生" name="doctor">
<a-select
v-model:value="formValue.doctor"
:options="doctorList"
placeholder="请选择预约医生"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约事项" name="matter">
<a-select
v-model:value="formValue.matter"
:options="matterList"
multiple
placeholder="请选择预约事项"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约备注" name="remark">
<a-input v-model:value="formValue.remark" placeholder="请输入预约备注" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="预约备注" name="remark">
<a-input v-model:value="formValue.remark" placeholder="请输入预约备注" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="出生日期" name="dateBirth">
<a-date-picker class="w-full" v-model:value="formValue.dateBirth" type="datetime" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="性别" name="sex">
<a-radio-group v-model:value="formValue.sex" name="sex">
<a-space>
<a-radio :value="1">男</a-radio>
<a-radio :value="2">女</a-radio>
</a-space>
</a-radio-group>
</a-form-item>
</a-col>
<!-- <div style="margin-left: 80px">-->
<!-- <a-space>-->
<!-- <a-button type="primary" @click="formSubmit">提交预约</a-button>-->
<!-- <a-button @click="resetForm">重置</a-button>-->
<!-- </a-space>-->
<!-- </div>-->
</a-row>
</a-card>
<a-card
:bordered="false"
class="mt-4 proCard"
title="就诊信息"
:bodyStyle="{ padding: '30px 20px 20px' }"
>
<a-row :gutter="[16, 16]">
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="过敏史" name="allergiChistory">
<a-input v-model:value="formValue.allergiChistory" placeholder="请输入过敏史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="既往史" name="pastHistory">
<a-input v-model:value="formValue.pastHistory" placeholder="请输入既往史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="传染史" name="contagion">
<a-input v-model:value="formValue.contagion" placeholder="请输入传染史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="身份证号" name="idNo">
<a-input v-model:value="formValue.idNo" placeholder="请输入身份证号" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="介绍人" name="introducer">
<a-input v-model:value="formValue.introducer" placeholder="请输入介绍人" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="就诊医生" name="seeDoctor">
<a-select
v-model:value="formValue.seeDoctor"
:options="doctorList"
placeholder="请选择就诊医生"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="初诊日期" name="firstDatetime">
<a-date-picker
class="w-full"
v-model:value="formValue.firstDatetime"
type="datetime"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="近次复诊" name="subsequent">
<a-date-picker class="w-full" v-model:value="formValue.subsequent" type="datetime" />
</a-form-item>
</a-col>
<!-- <a-col>-->
<!-- <a-form-item label="图片" name="img">-->
<!-- <BasicUpload-->
<!-- v-model:value="uploadList"-->
<!-- :action="`${uploadUrl}/v1.0/files`"-->
<!-- :data="{ type: 0 }"-->
<!-- :headers="uploadHeaders"-->
<!-- :height="100"-->
<!-- :width="100"-->
<!-- helpText="单个文件不超过20MB最多只能上传10个文件"-->
<!-- name="files"-->
<!-- @uploadChange="uploadChange"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
</a-row>
</a-card>
<a-card
:bordered="false"
class="mt-4 proCard"
title="就诊信息"
:bodyStyle="{ padding: '30px 20px 20px' }"
>
<a-row :gutter="[16, 16]">
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="过敏史" name="allergiChistory">
<a-input v-model:value="formValue.allergiChistory" placeholder="请输入过敏史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="既往史" name="pastHistory">
<a-input v-model:value="formValue.pastHistory" placeholder="请输入既往史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="传染史" name="contagion">
<a-input v-model:value="formValue.contagion" placeholder="请输入传染史" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="身份证号" name="idNo">
<a-input v-model:value="formValue.idNo" placeholder="请输入身份证号" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="介绍人" name="introducer">
<a-input v-model:value="formValue.introducer" placeholder="请输入介绍人" />
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="就诊医生" name="seeDoctor">
<a-select
v-model:value="formValue.seeDoctor"
:options="doctorList"
placeholder="请选择就诊医生"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="初诊日期" name="firstDatetime">
<a-date-picker
class="w-full"
v-model:value="formValue.firstDatetime"
type="datetime"
/>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="6">
<a-form-item label="近次复诊" name="subsequent">
<a-date-picker class="w-full" v-model:value="formValue.subsequent" type="datetime" />
</a-form-item>
</a-col>
<!-- <a-col>-->
<!-- <a-form-item label="图片" name="img">-->
<!-- <BasicUpload-->
<!-- v-model:value="uploadList"-->
<!-- :action="`${uploadUrl}/v1.0/files`"-->
<!-- :data="{ type: 0 }"-->
<!-- :headers="uploadHeaders"-->
<!-- :height="100"-->
<!-- :width="100"-->
<!-- helpText="单个文件不超过20MB最多只能上传10个文件"-->
<!-- name="files"-->
<!-- @uploadChange="uploadChange"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
</a-row>
</a-card>
</a-form>
<template #rightFooter>
<a-space>
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" @click="formSubmit">提交</a-button>
</a-space>
</template>
</PageWrapper>
</template>
<script lang="ts" setup>
import { ref, unref, reactive } from 'vue';
import { PageWrapper } from '@/components/Page';
import { message } from 'ant-design-vue';
import { BasicUpload } from '@/components/Upload';
import { useGlobSetting } from '@/hooks/setting';
import { error } from '@/utils/log';
const globSetting = useGlobSetting();
const matterList = [
{
label: '种牙',
value: 1,
},
{
label: '补牙',
value: 2,
},
{
label: '根管',
value: 3,
},
];
const doctorList = [
{
label: '李医生',
value: 1,
},
{
label: '黄医生',
value: 2,
},
{
label: '张医生',
value: 3,
},
];
const rules = {
name: {
required: true,
message: '请输入预约姓名',
trigger: 'blur',
},
remark: {
required: true,
message: '请输入预约备注',
trigger: 'blur',
},
mobile: {
required: true,
message: '请输入预约电话号码',
trigger: ['input'],
},
datetime: {
required: true,
type: 'number',
message: '请选择预约时间',
trigger: ['blur', 'change'],
},
seeDoctor: {
required: true,
type: 'number',
message: '请选择就诊时间',
trigger: ['blur', 'change'],
},
firstDatetime: {
required: true,
type: 'number',
message: '请选择初诊时间',
trigger: ['blur', 'change'],
},
doctor: {
required: true,
type: 'number',
message: '请选择预约医生',
trigger: 'change',
},
};
const formRef: any = ref(null);
const { uploadUrl } = globSetting;
const defaultValueRef = () => ({
name: '',
mobile: '',
remark: '',
sex: 1,
matter: null,
doctor: null,
datetime: undefined,
});
let formValue = reactive(defaultValueRef());
const uploadList = ref([
'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
]);
const uploadHeaders = reactive({
platform: 'miniPrograms',
timestamp: new Date().getTime(),
token: 'Q6fFCuhc1vkKn5JNFWaCLf6gRAc5n0LQHd08dSnG4qo=',
});
function formSubmit() {
formRef.value
.validate()
.then(() => {
message.success('验证成功');
})
.catch((error) => {
console.log('error', error);
message.error('验证失败,请填写完整信息');
});
}
function resetForm() {
formRef.value.resetFields();
formValue = Object.assign(unref(formValue), defaultValueRef());
}
function uploadChange(list: string[]) {
console.log(list);
}
</script>