Просмотр исходного кода

护理技术档案部分优化

XU 4 месяцев назад
Родитель
Сommit
3d30d4d006

+ 12 - 3
src/api/technology-archives/technology-archives.js

@@ -599,6 +599,14 @@ export function selectHLImage1(socialNo) {
     })
 }
 
+// 查询字典
+export function selectHLDictInfo() {
+    return request({
+        url: '/hltechnologyArchives/selectDictInfo',
+        method: 'get',
+        params: { },
+    })
+}
 
 // 保存护理技术文档基本信息
 export function saveTechnologyArchivesHLMain(data) {
@@ -889,7 +897,7 @@ export function delTechnologyArchivesHL7ByCode(socialNo, approvalTime) {
     })
 }
 
-// 查询技术文档9
+// 查询培训考核情况
 export function selectTechnologyArchivesHL9() {
     return request({
         url: '/hltechnologyArchives/selectTechnologyArchivesHL9',
@@ -898,7 +906,7 @@ export function selectTechnologyArchivesHL9() {
     })
 }
 
-// 保存技术文档9
+// 保存培训考核情况
 export function saveTechnologyArchivesHL9(data) {
     return request({
         url: '/hltechnologyArchives/saveTechnologyArchivesHL9',
@@ -907,7 +915,7 @@ export function saveTechnologyArchivesHL9(data) {
     })
 }
 
-// 根据serialNo, id删除技术文档9
+// 根据serialNo, id删除培训考核情况
 export function delTechnologyArchivesHL9ByCode(socialNo, id) {
     return request({
         url: '/hltechnologyArchives/delTechnologyArchivesHL9ByCode',
@@ -934,6 +942,7 @@ export function selectTechnologyArchivesHLInfo(data) {
     })
 }
 
+//导出护理档案全部信息
 export function exportMultiTechnologyArchives(params) {
     ElMessageBox.prompt('导出文件名字', '提示', {
         confirmButtonText: '确定',

+ 132 - 139
src/views/technology-archives/HLTechnologyArchivesMain.vue

@@ -230,7 +230,7 @@
                 <el-row>
                   <el-col :span="6">
                     <el-form-item label="现有资格证书编码" prop="existingCertificate">
-                      <el-input v-model="baseInfoForm.existingCertificate" maxlength="40" show-word-limit placeholder="请填写医师资格证书编码"/>
+                      <el-input v-model="baseInfoForm.existingCertificate" maxlength="40" show-word-limit placeholder="请填写现有资格证书编码"/>
                     </el-form-item>
                   </el-col>
                   <el-col :span="6">
@@ -241,7 +241,7 @@
                   </el-col>
                   <el-col :span="6">
                     <el-form-item label="护士执业证书编码" prop="nursePracticingCertificate">
-                      <el-input v-model="baseInfoForm.nursePracticingCertificate" maxlength="40" show-word-limit placeholder="请填写医师执业证书编码"/>
+                      <el-input v-model="baseInfoForm.nursePracticingCertificate" maxlength="40" show-word-limit placeholder="请填写护士执业证书编码"/>
                     </el-form-item>
                   </el-col>
                   <el-col :span="6">
@@ -314,7 +314,7 @@
           <div class="layout_display_flex_y">
             <div class="layout_flex_1-y">
               <el-table :data="hlfirstData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlfirstKey">
-                <el-table-column type="index" label="序号" width="100" />
+                <el-table-column prop="id" type="index" label="序号" width="100" />
                 <el-table-column prop="socialNo" label="身份证号" width="200">
                   <template v-slot="scope">
                     <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
@@ -379,11 +379,11 @@
                     <div v-else class="demo-image__preview">
                       <el-image
                         style="width: 100px; height: 100px"
-                        :src="url"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="srcList"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -461,53 +461,6 @@
                     <span v-else>{{ scope.row.workTime }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="image" label="受聘证书" min-width="180" >
-                  <template v-slot="scope">
-                    <div v-if="scope.row.isEdit">
-                      <el-upload
-                          ref="upload"
-                          v-model:file-list="hl2fileList"
-                          list-type="picture-card"
-                          :action="apiUrl + `/hltechnologyArchives/putHL2CertificateImage?socialNo=` + scope.row.socialNo + `&id=` + scope.row.id"
-                          :headers="header"
-                          :on-success="hl2uploadSuccess"
-                          :on-preview="handlePreviewhl2"
-                          :on-remove="handleRemove"
-                          :before-upload="beforeUpload"
-                          :auto-upload="false"
-                          :multiple
-                          :show-file-list="true"
-                      >
-                        <el-icon> <Plus /></el-icon>
-                        <template #tip>
-                          <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
-                        </template>
-                      </el-upload>
-                      <el-button style="margin-top: 10px" type="success" icon="Upload" @click="hl4submitUpload(scope.row)">上传到服务器</el-button>
-                      <el-dialog v-model="dialogVisible" append-to-body >
-                        <img w-full :src="dialogImageUrl"  />
-                      </el-dialog>
-                    </div>
-                    <div v-else class="demo-image__preview">
-                      <el-image
-                        style="width: 100px; height: 100px"
-                        :src="workurl"
-                        :zoom-rate="1.2"
-                        :max-scale="7"
-                        :min-scale="0.2"
-                        :preview-src-list="hl2srcList"
-                        :preview-teleported="true"
-                        fit="cover"
-                      />
-                  </div>
-                  </template>
-                </el-table-column>
-                <!-- <el-table-column prop="speciality" label="专业">
-                  <template v-slot="scope">
-                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.speciality"></el-input>
-                    <span v-else>{{ scope.row.speciality }}</span>
-                  </template>
-                </el-table-column> -->
                 <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
                   <template #default="scope">
                     <el-button type="primary" size="small" v-if="!scope.row.isEdit"
@@ -692,8 +645,9 @@
                           ref="upload"
                           v-model:file-list="hl4fileList"
                           list-type="picture-card"
-                          :action="apiUrl + `/hltechnologyArchives/putHL4CertificateImage?socialNo=` + scope.row.socialNo + `&name=` + scope.row.name"
+                          :action="apiUrl + `/hltechnologyArchives/putHL4CertificateImage` "
                           :headers="header"
+                          :data="{ socialNo: scope.row.socialNo, name: scope.row.name }"
                           :on-success="hl4uploadSuccess"
                           :on-preview="handlePreviewhl4"
                           :on-remove="handleRemove"
@@ -714,12 +668,12 @@
                     </div>
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="trainingurl"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="hl4srcList"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -1456,12 +1410,12 @@
                     </div>
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="holidayurl"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="hl7srcList"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -1534,7 +1488,7 @@ import {
   saveTechnologyArchivesHL6,
   saveTechnologyArchivesHL7,
   saveTechnologyArchivesHL9,
-  selectDictInfo,
+  selectHLDictInfo,
   selectHLEmployeeInfo,
   selectTechnologyArchives10,
   selectTechnologyArchives12,
@@ -1578,7 +1532,7 @@ onMounted(() => {
         selectHLImage1(baseInfoForm.value.socialNo)
           .then((res1) => {
             console.log(res1)
-            if(res1.data.image1){
+            if(res1.data.image1 && res1.data != null){
               personalimageurl.value = res1.data.image1
               personalsrcList.value = [res1.data.image1]
             }else{
@@ -1644,7 +1598,7 @@ const queryEmployeeInfo = () => {
       }
       selectHLImage1(baseInfoForm.value.socialNo)
           .then((res1) => {
-            if(res1.data.image1){
+            if(res1.data.image1 && res1.data !=null){
               personalimageurl.value = res1.data.image1
               personalsrcList.value = [res1.data.image1]
             }else{
@@ -1654,7 +1608,7 @@ const queryEmployeeInfo = () => {
     })
 }
 const queryDictInfo = () => {
-  selectDictInfo()
+  selectHLDictInfo()
     .then((res) => {
       if (res) {
         dictData.value = res
@@ -1901,27 +1855,40 @@ const queryTechnologyArchives14 = () => {
         fourteenthData.value = []
       })
 }
-const imageList1 = ref([])
 const queryTechnologyArchiveshl1 = () => {
   selectTechnologyArchivesHL1()
     .then((res) => {
-      res.forEach(row => {
-        // 是否标记
-        row['isEdit'] = false
-        // 是否新增
-        row['isAdd'] = false
+      // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
         selectHL1Image(row.socialNo, row.getTime)
-          .then((res1)=>{
-            imageList1.value = res1.data.image.split(',')
-            for(let i=0; i<imageList1.value.length; i++){
-              srcList.value[i] = uploadurl + imageList1.value[i]
-            }
-            url.value = srcList.value[0]
-            console.log(res1.data.image.length)
-            console.log(srcList.value[0])
-        })
-      }) 
-      hlfirstData.value = res
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
+          })
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+      )).then(() => {
+        hlfirstData.value = processedRows
+      });
     })
     .catch(() => {
       hlfirstData.value = []
@@ -1935,13 +1902,13 @@ const queryTechnologyArchiveshl2 = () => {
           row['isEdit'] = false
           // 是否新增
           row['isAdd'] = false
-          selectHL2Image(row.socialNo, row.workTime)
-            .then((res1)=>{
-              workurl.value = row.image
-              hl2srcList.value = [res1.data.image]
-              console.log(row)
-              console.log(hl2srcList.value)
-          })
+          // selectHL2Image(row.socialNo, row.workTime)
+          //   .then((res1)=>{
+          //     workurl.value = row.image
+          //     hl2srcList.value = [res1.data.image]
+          //     console.log(row)
+          //     console.log(hl2srcList.value)
+          // })
         })
         hlsecondData.value = res
       })
@@ -1967,20 +1934,37 @@ const queryTechnologyArchiveshl3 = () => {
 const queryTechnologyArchiveshl4 = () => {
   selectTechnologyArchivesHL4()
       .then((res) => {
-        res.forEach(row => {
-          // 是否标记
-          row['isEdit'] = false
-          // 是否新增
-          row['isAdd'] = false
-          selectHL4Image(row.socialNo, row.id)
-            .then((res1)=>{
-              trainingurl.value = row.image
-              hl4srcList.value = [res1.data.image]
-              console.log(row)
-              console.log(res1.data.image)
+      // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+      
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
+        selectHL4Image(row.socialNo, row.id)
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(row)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
           })
-        })
-        hlfourthData.value = res
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+        )).then(() => {
+          hlfourthData.value = processedRows
+        });
       })
       .catch(() => {
         hlfourthData.value = []
@@ -2016,27 +2000,40 @@ const queryTechnologyArchiveshl6 = () => {
         hlsixthData.value = []
       })
 }
-const imageList7 = ref([])
 const queryTechnologyArchiveshl7 = () => {
   selectTechnologyArchivesHL7()
       .then((res) => {
-        res.forEach(row => {
-          // 是否标记
-          row['isEdit'] = false
-          // 是否新增
-          row['isAdd'] = false
-          selectHL7Image(row.socialNo, row.id)
-          .then((res1)=>{
-            imageList7.value = res1.data.image.split(',')
-            for(let i=0; i<imageList7.value.length; i++){
-              hl7srcList.value[i] = uploadurl + imageList7.value[i]
-            }
-            holidayurl.value = hl7srcList.value[0]
-            console.log(res1.data.image.length)
-            console.log(hl7srcList.value[0])
-        })
-        })
-        hlseventhData.value = res
+      // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
+        selectHL7Image(row.socialNo, row.id)
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
+          })
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+        )).then(() => {
+          hlseventhData.value = processedRows
+        });
       })
       .catch(() => {
         hlseventhData.value = []
@@ -2421,11 +2418,6 @@ function uploadSuccess1(response: any, uploadFile: UploadFile) {
   }
 }
 
-//查看图片
-const srcList = ref([])
-const url = ref("")
-
-
 // 保存
 const updatehlfirstInfo = (row) => {
   if (!row.socialNo || !row.getTime) {
@@ -2532,7 +2524,7 @@ const deletehlfirstInfo = (row) => {
     distinguishCancelAndClose: true,
     dangerouslyUseHTMLString: true
   }).then(() => {
-    delTechnologyArchivesHL6ByCode(row.socialNo, row.getTime).then((res) => {
+    delTechnologyArchivesHL1ByCode(row.socialNo, row.getTime).then((res) => {
       ElMessage({
         type: "success",
         message: res.cg,
@@ -2674,7 +2666,7 @@ const callSavehlsecondInfo = (row) => {
           showClose: true,
         });
         queryTechnologyArchiveshl2()
-        setHL2Image(row.socialNo,row.workTime,hl2url.value)
+        // setHL2Image(row.socialNo,row.workTime,hl2url.value)
         hl2fileList.value = []  
       })
     }).catch((action) => {
@@ -3431,6 +3423,7 @@ const hl4submitUpload = (row) => {
   if(row.isOversize && !row.isJPG){
     row.isUpload = false
   }else{
+    upload.value!.action = `${apiUrl}/hltechnologyArchives/putHL4CertificateImage?socialNo=${row.socialNo}&name=${row.name}`
     upload.value!.submit();
     row.isUpload = true 
   }
@@ -3438,26 +3431,29 @@ const hl4submitUpload = (row) => {
 
 //上传图片
 const hl4fileList = ref([])
- 
+
+const hl4urls = ref([])
 const hl4url = ref("")
-function hl4uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {
-  hl4url.value = response.data.data.path
+function hl4uploadSuccess(response: any, uploadFile: UploadFile) {
+  console.log(response.data.urls.length)
+  hl4urls.value.push(response.data.urls)  
+  console.log(hl4urls.value)
+  hl4url.value = hl4urls.value.join(",") 
+  console.log(hl4url.value)
   const index = XEUtils.findLastIndexOf(hl4fileList.value, (item: UploadUserFile) => {
     return item.uid === uploadFile.uid;
   })
   if (response.code === 200) {
-    hl4fileList.value[index].url = uploadurl + hl4url.value
+    for(let i=0; i<hl4urls.value.length; i++){
+      hl4fileList.value[index].url = uploadurl + hl4urls.value[i]
+    }
     ElMessage.success("上传成功");
   } else {
-    hl4fileList.value[index].status = 'fail'
+    fileList.value[index].status = 'fail'
     ElMessage.error("上传失败");
   }
 }
 
-//查看图片
-const hl4srcList = ref([])
-const trainingurl = ref("")
-
 // 保存
 const updatehlfourthInfo = (row) => {
   if (!row.socialNo) {
@@ -3521,7 +3517,8 @@ const callSavehlfourthInfo = (row) => {
           showClose: true,
         });
         setHL4Image(row.socialNo,row.beginTime,hl4url.value)
-        hl4fileList.value = []  
+        hl4fileList.value = [] 
+        hl4urls.value = []
         queryTechnologyArchiveshl4()
       })
     }).catch((action) => {
@@ -3819,10 +3816,6 @@ function hl7uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: Up
 
 }
 
-//查看图片
-const hl7srcList = ref([])
-const holidayurl = ref("")
-
 
 // 保存
 const updatehlseventhInfo = (row) => {

+ 132 - 79
src/views/technology-archives/TechnologyArchivesMain.vue

@@ -293,12 +293,12 @@
                     <!-- <span v-else>{{ scope.row.image }}</span> -->
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="srcurl1"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="srcList1"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -396,14 +396,14 @@
                     </div>
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="srcurl2"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="srcList2"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
-                        fit="cover" 
+                        fit="cover"
                       />
                     </div>
                     <!-- <span v-else>{{ scope.row.image }}</span> -->
@@ -592,12 +592,12 @@
                     </div>
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="trainingurl"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="trainingsrcList"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -919,12 +919,12 @@
                     </div>
                     <div v-else class="demo-image__preview">
                       <el-image
-                        style="width: 100px; height: 100px"
-                        :src="examineurl"
+                      style="width: 100px; height: 100px"
+                        :src="scope.row.url"
                         :zoom-rate="1.2"
                         :max-scale="7"
                         :min-scale="0.2"
-                        :preview-src-list="examinesrcList"
+                        :preview-src-list="scope.row.srcList"
                         :preview-teleported="true"
                         fit="cover"
                       />
@@ -1463,27 +1463,40 @@ let thirteenthKey = ref(1)
 const thirteenthData = ref([])
 let fourteenthKey = ref(1)
 const fourteenthData = ref([])
-const imageList1 = ref([])
 const queryTechnologyArchives1 = () => {
   selectTechnologyArchives1()
     .then((res) => {
-      res.forEach(row => {
-        // 是否标记
-        row['isEdit'] = false
-        // 是否新增
-        row['isAdd'] = false
+     // 为每行初始化图片数据属性
+     const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
         selectImage1(row.socialNo, row.getTime)
-          .then((res1)=>{
-            imageList1.value = res1.data.image.split(',')
-            for(let i=0; i<imageList1.value.length; i++){
-              srcList1.value[i] = uploadurl + imageList1.value[i]
-            }
-            srcurl1.value = srcList1.value[0]
-            console.log(res1.data.image.length)
-            console.log(srcList1.value[0])
-        })
-      }) 
-      firstData.value = res
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
+          })
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+      )).then(() => {
+       firstData.value = processedRows
+      });
     })
     .catch(() => {
       firstData.value = []
@@ -1493,23 +1506,37 @@ const imageList2 = ref([])
 const queryTechnologyArchives2 = () => {
   selectTechnologyArchives2()
     .then((res) => {
-      res.forEach(row => {
-        // 是否标记
-        row['isEdit'] = false
-        // 是否新增
-        row['isAdd'] = false
+       // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
         selectImage2(row.socialNo, row.no)
-          .then((res1)=>{
-            imageList2.value = res1.data.image.split(',')
-            for(let i=0; i<imageList2.value.length; i++){
-              srcList2.value[i] = uploadurl + imageList2.value[i]
-            }
-            srcurl2.value = srcList2.value[0]
-            console.log(res1.data.image.length)
-            console.log(srcList2.value[0])
-        })
-      })
-      secondData.value = res
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
+          })
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+      )).then(() => {
+       secondData.value = processedRows
+      });
     })
     .catch(() => {
       secondData.value = []
@@ -1530,27 +1557,40 @@ const queryTechnologyArchives3 = () => {
       thirdData.value = []
     })
 }
-const imageList4 = ref([])
 const queryTechnologyArchives4 = () => {
   selectTechnologyArchives4()
     .then((res) => {
-      res.forEach(row => {
-        // 是否标记
-        row['isEdit'] = false
-        // 是否新增
-        row['isAdd'] = false
+       // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
         selectTrainingImage(row.socialNo, row.id)
-            .then((res1)=>{
-              imageList4.value = res1.data.image.split(',')
-            for(let i=0; i<imageList4.value.length; i++){
-              trainingsrcList.value[i] = uploadurl + imageList4.value[i]
-            }
-            trainingurl.value = trainingsrcList.value[0]
-            console.log(res1.data.image.length)
-            console.log(trainingsrcList.value[0])
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
           })
-      })
-      fourthData.value = res
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+      )).then(() => {
+       fourthData.value = processedRows
+      });
     })
     .catch(() => {
       fourthData.value = []
@@ -1601,27 +1641,40 @@ const queryTechnologyArchives7 = () => {
       seventhData.value = []
     })
 }
-const imageList9 = ref([])
 const queryTechnologyArchives9 = () => {
   selectTechnologyArchives9()
     .then((res) => {
-      res.forEach(row => {
-        // 是否标记
-        row['isEdit'] = false
-        // 是否新增
-        row['isAdd'] = false
+       // 为每行初始化图片数据属性
+      const processedRows = res.map(row => {
+        // 使用响应式对象
+        return reactive({
+          ...row,
+          isEdit: false,
+          isAdd: false,
+          imageList: [], // 存储分割后的图片名
+          srcList: [],   // 存储完整图片URL
+          url: ''        // 当前显示的图片URL
+        });
+      });
+
+      // 并行处理所有图片请求
+      Promise.all(processedRows.map(row => 
         selectExamineImage(row.socialNo, row.id)
-          .then((res1)=>{
-            imageList9.value = res1.data.image.split(',')
-          for(let i=0; i<imageList9.value.length; i++){
-            examinesrcList.value[i] = uploadurl + imageList9.value[i]
-          }
-          examineurl.value = examinesrcList.value[0]
-          console.log(res1.data.image.length)
-          console.log(examinesrcList.value[0])
-        })
-      })
-      ninthData.value = res
+          .then(res1 => {
+            // 处理图片数据,过滤空值
+            console.log(res1)
+            const images = res1.data.image.split(',').filter(img => img.trim());
+            row.imageList = images;
+            row.srcList = images.map(img => uploadurl + img);
+            row.url = row.srcList[0] || ''; // 默认显示第一张图
+          })
+          .catch(() => {
+            row.srcList = []
+            row.url = ''
+          })
+      )).then(() => {
+       ninthData.value = processedRows
+      });
     })
     .catch(() => {
       ninthData.value = []