Browse Source

移动端问题修复

xukai 5 tháng trước cách đây
mục cha
commit
63fb2f86eb
1 tập tin đã thay đổi với 345 bổ sung97 xóa
  1. 345 97
      src/view/animal/application/components/Application.vue

+ 345 - 97
src/view/animal/application/components/Application.vue

@@ -1,124 +1,285 @@
 <template>
   <div class="application-dialog-container">
-    <el-dialog :title="state.dialog.title" @close="onCancel" :close-on-click-modal="false" v-model="state.dialog.isShowDialog" width="100%">
-      <el-form ref="expertDialogFormRef" :model="state.form" :rules="rules" size="default" label-width="140px" label-position="top">
+    <el-dialog
+      :title="state.dialog.title"
+      @close="onCancel"
+      :close-on-click-modal="false"
+      v-model="state.dialog.isShowDialog"
+      width="100%"
+    >
+      <el-form
+        ref="expertDialogFormRef"
+        :model="state.form"
+        :rules="rules"
+        size="default"
+        label-width="140px"
+        label-position="top"
+      >
         <h4 class="mb8 mt8">基本信息</h4>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="课题名称" prop="projectGroupId">
-              <el-select v-model="state.form.projectGroupId" placeholder="请选择">
-                <el-option v-for="item in projects" :key="item.id" :label="item.projectName" :value="item.id" />
+            <el-form-item
+              label="课题名称"
+              prop="projectGroupId"
+            >
+              <el-select
+                v-model="state.form.projectGroupId"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in projects"
+                  :key="item.id"
+                  :label="item.projectName"
+                  :value="item.id"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="姓名" prop="group">
-              <el-input v-model="userInfos.userName" disabled />
+            <el-form-item
+              label="姓名"
+              prop="group"
+            >
+              <el-input
+                v-model="userInfos.userName"
+                disabled
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
         <h4 class="mb8 mt10">实验动物笼位预约信息</h4>
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="12">
-            <el-form-item label="笼位数量" prop="number">
-              <el-input-number v-model="state.form.number" style="width: 100%" :min="1" />
+            <el-form-item
+              label="笼位数量"
+              prop="number"
+            >
+              <el-input-number
+                v-model="state.form.number"
+                style="width: 100%"
+                :min="1"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="选择时间" prop="startDate">
-              <el-date-picker v-model="state.form.startDate" type="date" placeholder="请选择时间" clearable style="width: 100%" />
+            <el-form-item
+              label="选择时间"
+              prop="startDate"
+            >
+              <el-date-picker
+                v-model="state.form.startDate"
+                type="date"
+                placeholder="请选择时间"
+                clearable
+                style="width: 100%"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="12">
-            <el-form-item label="品种品系" prop="categoryId">
-              <el-select v-model="state.form.categoryId" placeholder="请选择">
-                <el-option v-for="item in animalTypeList" :key="item.id" :label="item.name" :value="item.id" />
+            <el-form-item
+              label="品种品系"
+              prop="categoryId"
+            >
+              <el-select
+                v-model="state.form.categoryId"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in animalTypeList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="级别" prop="level">
-              <el-select v-model="state.form.level" placeholder="请选择">
-                <el-option v-for="item in LeavelList" :key="item.id" :label="item.name" :value="item.id" />
+            <el-form-item
+              label="级别"
+              prop="level"
+            >
+              <el-select
+                v-model="state.form.level"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in LeavelList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                />
               </el-select>
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="数量(雄性+雌性)" prop="maleNumber">
+            <el-form-item
+              label="数量(雄性+雌性)"
+              prop="maleNumber"
+            >
               <div style="width: 100%; display: flex; justify-content: space-between">
-                <el-input-number placeholder="雄性数量" v-model="state.form.maleNumber" :min="0" />
+                <el-input-number
+                  placeholder="雄性数量"
+                  v-model="state.form.maleNumber"
+                  :min="0"
+                />
                 +
-                <el-input-number placeholder="雌性数量" v-model="state.form.famaleNumber" :min="0" />
+                <el-input-number
+                  placeholder="雌性数量"
+                  v-model="state.form.famaleNumber"
+                  :min="0"
+                />
               </div>
               <div style="width: 100%; margin-top: 10px">
-                <el-input placeholder="总数" v-model="animalNumber" />
+                <el-input
+                  placeholder="总数"
+                  v-model="animalNumber"
+                />
               </div>
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="体重" prop="weight">
-              <el-input-number v-model="state.form.weight" style="width: 100%" :min="0" />
+            <el-form-item
+              label="体重"
+              prop="weight"
+            >
+              <el-input-number
+                v-model="state.form.weight"
+                style="width: 100%"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="周龄" prop="age">
-              <el-input-number v-model="state.form.age" style="width: 100%" :min="0" />
+            <el-form-item
+              label="周龄"
+              prop="age"
+            >
+              <el-input-number
+                v-model="state.form.age"
+                style="width: 100%"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="饲养总天数" prop="feedingDay">
-              <el-input-number v-model="state.form.feedingDay" style="width: 100%" :min="0" />
+            <el-form-item
+              label="饲养总天数"
+              prop="feedingDay"
+            >
+              <el-input-number
+                v-model="state.form.feedingDay"
+                style="width: 100%"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
         <h4 class="mb8 mt20">采购渠道</h4>
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="采购渠道" prop="buyFrom">
+            <el-form-item
+              label="采购渠道"
+              prop="buyFrom"
+            >
               <el-radio-group v-model="state.form.buyFrom">
-                <el-radio :label="ProcurementChannels.PURCHASED_BY_OTHERS" size="large">动物房代购</el-radio>
-                <el-radio :label="ProcurementChannels.PURCHASED_BY_MYSELF" size="large">自行购买</el-radio>
+                <el-radio
+                  :label="ProcurementChannels.PURCHASED_BY_OTHERS"
+                  size="large"
+                >
+                  动物房代购
+                </el-radio>
+                <el-radio
+                  :label="ProcurementChannels.PURCHASED_BY_MYSELF"
+                  size="large"
+                >
+                  自行购买
+                </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="动物到达时间" prop="comeTime">
-              <el-date-picker v-model="state.form.comeTime" type="date" placeholder="请选择到达时间" clearable style="width: 100%" />
+            <el-form-item
+              label="动物到达时间"
+              prop="comeTime"
+            >
+              <el-date-picker
+                v-model="state.form.comeTime"
+                type="date"
+                placeholder="请选择到达时间"
+                clearable
+                style="width: 100%"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="外购来源单位" prop="comeFromUnit">
+            <el-form-item
+              label="外购来源单位"
+              prop="comeFromUnit"
+            >
               <el-input v-model="state.form.comeFromUnit" />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="生产许可证" prop="licenseNumberFile">
+            <el-form-item
+              label="生产许可证"
+              prop="licenseNumberFile"
+            >
               <el-upload
                 v-model:file-list="licenseNumberFileList"
                 class="upload-demo"
@@ -127,7 +288,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.LICENSE_NUMBER)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.LICENSE_NUMBER)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.LICENSE_NUMBER, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -136,9 +297,15 @@
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="近三个月动物质量检测证明" prop="animalTestDateFile">
+            <el-form-item
+              label="近三个月动物质量检测证明"
+              prop="animalTestDateFile"
+            >
               <el-upload
                 v-model:file-list="animalTestDateFileList"
                 class="upload-demo"
@@ -147,7 +314,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.ANIMAL_TEST_DATE)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.ANIMAL_TEST_DATE)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.ANIMAL_TEST_DATE, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -156,9 +323,15 @@
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="近三个月饲养环境检测证明" prop="envTestDateFile">
+            <el-form-item
+              label="近三个月饲养环境检测证明"
+              prop="envTestDateFile"
+            >
               <el-upload
                 v-model:file-list="envTestDateFileList"
                 class="upload-demo"
@@ -167,7 +340,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.ENV_TEST_DATE)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.ENV_TEST_DATE)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.ENV_TEST_DATE, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -177,28 +350,62 @@
         </el-row>
 
         <h4 class="mb8 mt20">特殊要求和附件</h4>
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="是否有特殊饲养要求" prop="hasFeedingSpecial">
+            <el-form-item
+              label="是否有特殊饲养要求"
+              prop="hasFeedingSpecial"
+            >
               <el-radio-group v-model="state.form.hasFeedingSpecial">
-                <el-radio :label="FeedingSpecial.HAVE_FEEDING_SPECIAL" size="large">有</el-radio>
-                <el-radio :label="FeedingSpecial.NO_FEEDING_SPECIAL" size="large">无</el-radio>
+                <el-radio
+                  :label="FeedingSpecial.HAVE_FEEDING_SPECIAL"
+                  size="large"
+                >
+                  有
+                </el-radio>
+                <el-radio
+                  :label="FeedingSpecial.NO_FEEDING_SPECIAL"
+                  size="large"
+                >
+                  无
+                </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
-          <el-col :span="24" v-if="state.form.hasFeedingSpecial === FeedingSpecial.HAVE_FEEDING_SPECIAL">
-            <el-form-item label="特殊饲养要求" prop="feedingSpecialDesc">
-              <el-input placeholder="输入特殊饲养要求,如每天更换垫料等" v-model="state.form.feedingSpecialDesc" />
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
+          <el-col
+            :span="24"
+            v-if="state.form.hasFeedingSpecial === FeedingSpecial.HAVE_FEEDING_SPECIAL"
+          >
+            <el-form-item
+              label="特殊饲养要求"
+              prop="feedingSpecialDesc"
+            >
+              <el-input
+                placeholder="输入特殊饲养要求,如每天更换垫料等"
+                v-model="state.form.feedingSpecialDesc"
+              />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="笼位预约表" prop="cageAppointFile">
+            <el-form-item
+              label="笼位预约表"
+              prop="cageAppointFile"
+            >
               <el-upload
                 v-model:file-list="cageAppointFileList"
                 class="upload-demo"
@@ -207,7 +414,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.CAGE_APPOINT_FILE)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.CAGE_APPOINT_FILE)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.CAGE_APPOINT_FILE, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -216,9 +423,15 @@
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="伦理审查表" prop="ethicsCheckFile">
+            <el-form-item
+              label="伦理审查表"
+              prop="ethicsCheckFile"
+            >
               <el-upload
                 v-model:file-list="ethicsCheckFileList"
                 class="upload-demo"
@@ -227,7 +440,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.ETHICS_CHECK_FILE)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.ETHICS_CHECK_FILE)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.ETHICS_CHECK_FILE, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -236,9 +449,15 @@
           </el-col>
         </el-row>
 
-        <el-row class="mt10" :gutter="20">
+        <el-row
+          class="mt10"
+          :gutter="20"
+        >
           <el-col :span="24">
-            <el-form-item label="伦理意见表" prop="ethicsAdviceFile">
+            <el-form-item
+              label="伦理意见表"
+              prop="ethicsAdviceFile"
+            >
               <el-upload
                 v-model:file-list="ethicsAdviceFileList"
                 class="upload-demo"
@@ -247,7 +466,7 @@
                 style="width: 100%"
                 :before-upload="beforeAvatarFileUpload"
                 :on-remove="() => handleRemove(UploadFileType.ETHICS_ADVICE_FILE)"
-                :on-success="(res: any) => handleSuccess(res, UploadFileType.ETHICS_ADVICE_FILE)"
+                :on-success="(res: any, file: UploadFile) => handleSuccess(res, UploadFileType.ETHICS_ADVICE_FILE, file)"
               >
                 <el-button type="primary">点击上传</el-button>
                 <div class="el-upload__tip ml10">支持格式:jpg png pdf等,单个文件不超过20MB</div>
@@ -256,7 +475,10 @@
           </el-col>
         </el-row>
 
-        <el-checkbox style="margin-top: 30px; margin-bottom: 30px" v-model="safePromise">
+        <el-checkbox
+          style="margin-top: 30px; margin-bottom: 30px"
+          v-model="safePromise"
+        >
           <div class="safePromise">
             本人(以上所述课题的负责人)谨此声明:本项目所包含的实验动物、实验方法、实验材料及试剂无放射性、感染性和化学毒性,所有参与实验人员在实验过程中自愿遵守遵义医科大学附属医院实验动物房的管理制度和操作流程,愿意根据其规定的付费方式向遵义医科大学附属医院实验动物房支付所有的费用。
           </div>
@@ -265,8 +487,20 @@
 
       <template #footer>
         <span class="dialog-footer">
-          <el-button type="info" @click="onCancel" size="default">取 消</el-button>
-          <el-button color="#2c78ff" @click="onSubmit()" size="default">提交</el-button>
+          <el-button
+            type="info"
+            @click="onCancel"
+            size="default"
+          >
+            取 消
+          </el-button>
+          <el-button
+            color="#2c78ff"
+            @click="onSubmit()"
+            size="default"
+          >
+            提交
+          </el-button>
         </span>
       </template>
     </el-dialog>
@@ -304,7 +538,11 @@
     projectGroupId: { required: true, message: '不能为空', trigger: 'change' },
     categoryId: { required: true, message: '不能为空', trigger: 'change' },
     number: { required: true, message: '不能为空', trigger: 'change' },
-    startDate: { required: true, message: '不能为空', trigger: 'change' }
+    startDate: { required: true, message: '不能为空', trigger: 'change' },
+    maleNumber: { required: true, message: '不能为空', trigger: 'change' },
+    weight: { required: true, message: '不能为空', trigger: 'change' },
+    buyFrom: { required: true, message: '不能为空', trigger: 'change' },
+    comeFromUnit: { required: true, message: '不能为空', trigger: 'change' },
   }
 
   const animalNumber = computed(() => {
@@ -339,14 +577,14 @@
       buyFrom: ProcurementChannels.PURCHASED_BY_OTHERS,
       comeTime: '',
       comeFromUnit: '',
-      licenseNumberFile: '',
-      animalTestDateFile: '',
-      envTestDateFile: '',
+      licenseNumberFile: [],
+      animalTestDateFile: [],
+      envTestDateFile: [],
       hasFeedingSpecial: FeedingSpecial.HAVE_FEEDING_SPECIAL,
       feedingSpecialDesc: '',
-      cageAppointFile: '',
-      ethicsCheckFile: '',
-      ethicsAdviceFile: ''
+      cageAppointFile: [],
+      ethicsCheckFile: [],
+      ethicsAdviceFile: [],
     },
     safePromise: false,
     safeRead: false,
@@ -354,12 +592,15 @@
       isShowDialog: false,
       type: '',
       title: '',
-      submitTxt: ''
-    }
+      submitTxt: '',
+    },
   })
 
   const getDicts = () => {
-    Promise.all([platAnimalCageApplicationApi.getAnimalTypeList({}), platAnimalCageApplicationApi.getProjectGroup({})]).then(([animalType, projectGroup]) => {
+    Promise.all([
+      platAnimalCageApplicationApi.getAnimalTypeList({}),
+      platAnimalCageApplicationApi.getProjectGroup({}),
+    ]).then(([animalType, projectGroup]) => {
       animalTypeList.value = animalType.data
       if (projectGroup && projectGroup.data) {
         projectGroupList.value = projectGroup.data
@@ -399,38 +640,39 @@
   const handleRemove = (type: UploadFileType) => {
     if (type === UploadFileType.LICENSE_NUMBER) {
       licenseNumberFileList.value = []
-      state.form.licenseNumberFile = ''
+      state.form.licenseNumberFile = []
     } else if (type === UploadFileType.ANIMAL_TEST_DATE) {
       animalTestDateFileList.value = []
-      state.form.animalTestDateFile = ''
+      state.form.animalTestDateFile = []
     } else if (type === UploadFileType.ENV_TEST_DATE) {
       envTestDateFileList.value = []
-      state.form.envTestDateFile = ''
+      state.form.envTestDateFile = []
     } else if (type === UploadFileType.CAGE_APPOINT_FILE) {
       cageAppointFileList.value = []
-      state.form.cageAppointFile = ''
+      state.form.cageAppointFile = []
     } else if (type === UploadFileType.ETHICS_CHECK_FILE) {
       ethicsCheckFileList.value = []
-      state.form.ethicsCheckFile = ''
+      state.form.ethicsCheckFile = []
     } else if (type === UploadFileType.ETHICS_ADVICE_FILE) {
       ethicsAdviceFileList.value = []
-      state.form.ethicsAdviceFile = ''
+      state.form.ethicsAdviceFile = []
     }
   }
 
-  const handleSuccess = (res: { Data: string }, type: UploadFileType) => {
+  const handleSuccess = (res: { Data: string }, type: UploadFileType, file: UploadFile) => {
+    console.log('ressss', res, file)
     if (type === UploadFileType.LICENSE_NUMBER) {
-      state.form.licenseNumberFile = res?.Data || ''
+      state.form.licenseNumberFile = [{ name: file.name, url: res?.Data }]
     } else if (type === UploadFileType.ANIMAL_TEST_DATE) {
-      state.form.animalTestDateFile = res?.Data || ''
+      state.form.animalTestDateFile = [{ name: file.name, url: res?.Data }]
     } else if (type === UploadFileType.ENV_TEST_DATE) {
-      state.form.envTestDateFile = res?.Data || ''
+      state.form.envTestDateFile = [{ name: file.name, url: res?.Data }]
     } else if (type === UploadFileType.CAGE_APPOINT_FILE) {
-      state.form.cageAppointFile = res?.Data || ''
+      state.form.cageAppointFile = [{ name: file.name, url: res?.Data }]
     } else if (type === UploadFileType.ETHICS_CHECK_FILE) {
-      state.form.ethicsCheckFile = res?.Data || ''
+      state.form.ethicsCheckFile = [{ name: file.name, url: res?.Data }]
     } else if (type === UploadFileType.ETHICS_ADVICE_FILE) {
-      state.form.ethicsAdviceFile = res?.Data || ''
+      state.form.ethicsAdviceFile = [{ name: file.name, url: res?.Data }]
     }
   }
 
@@ -446,10 +688,16 @@
 
       const params = {
         ...deepClone(state.form),
-        categoryId: state.form.categoryId ? Number(state.form.categoryId) : null,
         categoryName: animalTypeList.value.find((item) => item.id == state.form.categoryId)?.name,
         projectGroupName: projects.value.find((item) => item.id == state.form.projectGroupId)?.projectName,
-        startDate: dayjs(state.form.startDate).format('YYYY-MM-DD')
+        startDate: dayjs(state.form.startDate).format('YYYY-MM-DD'),
+        comeTime: state.form.comeTime ? dayjs(state.form.comeTime).format('YYYY-MM-DD') : '',
+        licenseNumberFile: JSON.stringify(state.form.licenseNumberFile),
+        animalTestDateFile: JSON.stringify(state.form.animalTestDateFile),
+        envTestDateFile: JSON.stringify(state.form.envTestDateFile),
+        cageAppointFile: JSON.stringify(state.form.cageAppointFile),
+        ethicsCheckFile: JSON.stringify(state.form.ethicsCheckFile),
+        ethicsAdviceFile: JSON.stringify(state.form.ethicsAdviceFile),
       }
 
       Object.entries(params).forEach(([key, value]) => {
@@ -469,7 +717,7 @@
 
   // 暴露变量
   defineExpose({
-    openDialog
+    openDialog,
   })
 </script>
 <style lang="scss" scoped>