From f0f22709fb7f9945e5bc246181e21fd0c282e694 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 04 六月 2026 15:51:29 +0800
Subject: [PATCH] 马铃薯app 1.客户往来、供应商往来查询展示修改 2.环境检测页面展示修改

---
 src/pages/inspectionUpload/attachment.vue               |  125 +-----------
 src/pages/inspectionUpload/components/formDia.vue       |  167 +++++-----------
 src/pages/inspectionUpload/upload.vue                   |  251 ++++--------------------
 src/pages/inspectionUpload/components/qrCodeFormDia.vue |   21 +-
 4 files changed, 117 insertions(+), 447 deletions(-)

diff --git a/src/pages/inspectionUpload/attachment.vue b/src/pages/inspectionUpload/attachment.vue
index 058e0d6..6c077c1 100644
--- a/src/pages/inspectionUpload/attachment.vue
+++ b/src/pages/inspectionUpload/attachment.vue
@@ -5,29 +5,11 @@
                 @back="goBack" />
     <!-- 椤甸潰鍐呭 -->
     <view class="attachment-content">
-      <!-- 鍒嗙被鏍囩椤� -->
-      <view class="attachment-tabs">
-        <view class="tab-item"
-              :class="{ active: currentViewType === 'before' }"
-              @click="switchViewType('before')">
-          鐢熶骇鍓� ({{ getAttachmentsByType(0).length }})
-        </view>
-        <view class="tab-item"
-              :class="{ active: currentViewType === 'after' }"
-              @click="switchViewType('after')">
-          鐢熶骇涓� ({{ getAttachmentsByType(1).length }})
-        </view>
-        <view class="tab-item"
-              :class="{ active: currentViewType === 'issue' }"
-              @click="switchViewType('issue')">
-          鐢熶骇鍚� ({{ getAttachmentsByType(2).length }})
-        </view>
-      </view>
-      <!-- 褰撳墠鍒嗙被鐨勯檮浠跺垪琛� -->
+      <!-- 闄勪欢鍒楄〃 -->
       <view class="attachment-list-container">
-        <view v-if="getCurrentViewAttachments().length > 0"
+        <view v-if="attachmentList.length > 0"
               class="attachment-list">
-          <view v-for="(file, index) in getCurrentViewAttachments()"
+          <view v-for="(file, index) in attachmentList"
                 :key="index"
                 class="attachment-item"
                 @click="previewAttachment(file)">
@@ -52,7 +34,7 @@
         </view>
         <view v-else
               class="attachment-empty">
-          <text class="empty-text">璇ュ垎绫绘殏鏃犻檮浠�</text>
+          <text class="empty-text">鏆傛棤闄勪欢</text>
         </view>
       </view>
     </view>
@@ -96,9 +78,6 @@
   // 闄勪欢鍒楄〃
   const attachmentList = ref([]);
 
-  // 褰撳墠鏌ョ湅绫诲瀷
-  const currentViewType = ref("before"); // 'before', 'after', 'issue'
-
   // 瑙嗛棰勮鐩稿叧鐘舵��
   const showVideoDialog = ref(false);
   const currentVideoFile = ref(null);
@@ -122,46 +101,18 @@
     }
   });
 
-  // 鍔犺浇闄勪欢鏁版嵁
+  // 鍔犺浇闄勪欢鏁版嵁锛堢粺涓�浣跨敤 commonFileListVO锛�
   const loadAttachments = () => {
     const task = taskInfo.value;
     if (!task) return;
 
     attachmentList.value = [];
 
-    // 鍚庣鍙嶆樉瀛楁 (VO浼樺厛)
-    const beforeList = Array.isArray(task?.commonFileListBeforeVO)
-      ? task.commonFileListBeforeVO
-      : Array.isArray(task?.commonFileListBefore)
-      ? task.commonFileListBefore
-      : [];
-
-    const duringList = Array.isArray(task?.commonFileListVO)
+    const fileList = Array.isArray(task?.commonFileListVO)
       ? task.commonFileListVO
-      : Array.isArray(task?.commonFileListAfter)
-      ? task.commonFileListAfter
-      : []; // 鍏煎鏃ч�昏緫鎴栧懡鍚嶄笉涓�鑷�
-
-    const afterList = Array.isArray(task?.commonFileListAfterVO)
-      ? task.commonFileListAfterVO
-      : Array.isArray(task?.commonFileListIssue)
-      ? task.commonFileListIssue
       : [];
 
-    // 濡傛灉 VO 閮芥病鏈夛紝灏濊瘯浠� commonFileList 杩囨护
-    const allList = Array.isArray(task?.commonFileList)
-      ? task.commonFileList
-      : [];
-
-    const finalBefore =
-      beforeList.length > 0 ? beforeList : allList.filter(f => f?.type === 10);
-    const finalDuring =
-      duringList.length > 0 ? duringList : allList.filter(f => f?.type === 11);
-    const finalAfter =
-      afterList.length > 0 ? afterList : allList.filter(f => f?.type === 12);
-
-    const mapToViewFile = (file, viewType) => {
-      // 鍏煎 previewURL, previewUrl, url, downloadURL, downloadUrl
+    attachmentList.value = fileList.map(file => {
       const rawUrl =
         file?.previewURL ||
         file?.previewUrl ||
@@ -173,20 +124,14 @@
 
       return {
         ...file,
-        type: viewType,
-        name:
-          file?.originalFilename || file?.bucketFilename || file?.name || "闄勪欢",
+        name: file?.originalFilename || file?.bucketFilename || file?.name || "闄勪欢",
         bucketFilename: file?.bucketFilename || file?.name,
         originalFilename: file?.originalFilename || file?.name,
         url: u,
         downloadUrl: u,
         size: file?.byteSize || file?.size || 0,
       };
-    };
-
-    attachmentList.value.push(...finalBefore.map(f => mapToViewFile(f, 0)));
-    attachmentList.value.push(...finalDuring.map(f => mapToViewFile(f, 1)));
-    attachmentList.value.push(...finalAfter.map(f => mapToViewFile(f, 2)));
+    });
   };
 
   // 灏嗗悗绔繑鍥炵殑鏂囦欢鍦板潃瑙勮寖鎴愬彲璁块棶URL
@@ -220,30 +165,6 @@
     uni.navigateBack();
   };
 
-  // 鍒囨崲鏌ョ湅绫诲瀷
-  const switchViewType = type => {
-    currentViewType.value = type;
-  };
-
-  // 鏍规嵁type鑾峰彇瀵瑰簲鍒嗙被鐨勯檮浠�
-  const getAttachmentsByType = typeValue => {
-    return attachmentList.value.filter(file => file.type === typeValue) || [];
-  };
-
-  // 鑾峰彇褰撳墠鏌ョ湅绫诲瀷鐨勯檮浠�
-  const getCurrentViewAttachments = () => {
-    switch (currentViewType.value) {
-      case "before":
-        return getAttachmentsByType(0);
-      case "after":
-        return getAttachmentsByType(1);
-      case "issue":
-        return getAttachmentsByType(2);
-      default:
-        return [];
-    }
-  };
-
   // 鍒ゆ柇鏄惁涓哄浘鐗囨枃浠�
   const isImageFile = file => {
     if (file.contentType && file.contentType.startsWith("image/")) {
@@ -259,7 +180,7 @@
   // 棰勮闄勪欢
   const previewAttachment = file => {
     if (isImageFile(file)) {
-      const imageUrls = getCurrentViewAttachments()
+      const imageUrls = attachmentList.value
         .filter(f => isImageFile(f))
         .map(f => f.url || f.downloadUrl);
 
@@ -309,32 +230,6 @@
 
   .attachment-content {
     padding: 15px;
-  }
-
-  /* 鏍囩椤垫牱寮� */
-  .attachment-tabs {
-    display: flex;
-    background: #fff;
-    border-radius: 12px;
-    margin-bottom: 15px;
-    padding: 4px;
-    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
-  }
-
-  .tab-item {
-    flex: 1;
-    text-align: center;
-    padding: 12px 8px;
-    font-size: 14px;
-    color: #666;
-    border-radius: 8px;
-    transition: all 0.3s ease;
-  }
-
-  .tab-item.active {
-    background: #409eff;
-    color: #fff;
-    font-weight: 500;
   }
 
   /* 闄勪欢鍒楄〃鏍峰紡 */
diff --git a/src/pages/inspectionUpload/components/formDia.vue b/src/pages/inspectionUpload/components/formDia.vue
index 62bf40f..6ff1f12 100644
--- a/src/pages/inspectionUpload/components/formDia.vue
+++ b/src/pages/inspectionUpload/components/formDia.vue
@@ -1,7 +1,7 @@
 <template>
-  <u-popup 
-    v-model="dialogVisitable" 
-    mode="center" 
+  <u-popup
+    v-model="dialogVisitable"
+    mode="center"
     :round="10"
     :closeable="true"
     @close="cancel"
@@ -10,23 +10,23 @@
       <view class="popup-header">
         <text class="popup-title">宸℃璁板綍涓婁紶</text>
       </view>
-      
+
       <view class="upload-container">
         <!-- 寮傚父鐘舵�侀�夋嫨 -->
         <view class="form-container">
           <view class="title">宸℃鐘舵��</view>
           <view class="exception-section">
             <view class="exception-options">
-              <view 
-                class="exception-option" 
+              <view
+                class="exception-option"
                 :class="{ active: hasException === false }"
                 @click="setExceptionStatus(false)"
               >
                 <u-icon name="checkmark-circle" size="20" color="#52c41a"></u-icon>
                 <text class="option-text">姝e父</text>
               </view>
-              <view 
-                class="exception-option" 
+              <view
+                class="exception-option"
                 :class="{ active: hasException === true }"
                 @click="setExceptionStatus(true)"
               >
@@ -48,54 +48,23 @@
             :customStyle="{ padding: '10px', backgroundColor: '#f5f5f5' }"
           />
         </view>
-        
+
         <!-- 涓婁紶鍖哄煙锛堜粎鍦ㄥ紓甯告椂鏄剧ず锛� -->
-        <template v-if="hasException === true">
-          <view class="form-container">
-            <view class="title">鐢熶骇鍓�</view>
-            <u-upload
-              :fileList="beforeModelValue"
-              @afterRead="afterRead"
-              @delete="deleteFile"
-              name="before"
-              multiple
-              :maxCount="10"
-              :maxSize="5 * 1024 * 1024"
-              accept="image/*"
-              :previewFullImage="true"
-            ></u-upload>
-          </view>
-          
-          <view class="form-container">
-            <view class="title">鐢熶骇鍚�</view>
-            <u-upload
-              :fileList="afterModelValue"
-              @afterRead="afterRead"
-              @delete="deleteFile"
-              name="after"
-              multiple
-              :maxCount="10"
-              :maxSize="5 * 1024 * 1024"
-              accept="image/*"
-              :previewFullImage="true"
-            ></u-upload>
-          </view>
-          
-          <view class="form-container">
-            <view class="title">鐢熶骇闂</view>
-            <u-upload
-              :fileList="issueModelValue"
-              @afterRead="afterRead"
-              @delete="deleteFile"
-              name="issue"
-              multiple
-              :maxCount="10"
-              :maxSize="5 * 1024 * 1024"
-              accept="image/*"
-              :previewFullImage="true"
-            ></u-upload>
-          </view>
-        </template>
+        <view class="form-container" v-if="hasException === true">
+          <view class="title">涓婁紶闄勪欢</view>
+          <text class="upload-count">宸蹭笂浼�: {{ fileList.length }}涓枃浠�</text>
+          <u-upload
+            :fileList="fileList"
+            @afterRead="afterRead"
+            @delete="deleteFile"
+            name="attachment"
+            multiple
+            :maxCount="30"
+            :maxSize="5 * 1024 * 1024"
+            accept="image/*"
+            :previewFullImage="true"
+          ></u-upload>
+        </view>
 
         <!-- 姝e父鐘舵�佹彁绀� -->
         <view class="form-container normal-tip" v-if="hasException === false">
@@ -103,7 +72,7 @@
           <text class="tip-text">璁惧杩愯姝e父锛屾棤闇�涓婁紶鐓х墖</text>
         </view>
       </view>
-      
+
       <view class="popup-footer">
         <u-button @click="cancel" :customStyle="{ marginRight: '10px' }">鍙栨秷</u-button>
         <u-button type="primary" @click="submitForm">淇濆瓨</u-button>
@@ -121,9 +90,7 @@
 const emit = defineEmits(['closeDia'])
 
 const dialogVisitable = ref(false)
-const beforeModelValue = ref([])
-const afterModelValue = ref([])
-const issueModelValue = ref([])
+const fileList = ref([])
 const infoData = ref(null)
 
 // 寮傚父鐘舵�侊細null=鏈�夋嫨, false=姝e父, true=寮傚父
@@ -134,13 +101,13 @@
 // 璁$畻涓婁紶URL
 const uploadFileUrl = computed(() => {
   let baseUrl = '';
-  
+
   if (process.env.VUE_APP_BASE_API) {
     baseUrl = process.env.VUE_APP_BASE_API;
   } else {
     baseUrl = config.baseUrl;
   }
-  
+
   return baseUrl + '/file/upload';
 })
 
@@ -203,29 +170,12 @@
 
 // 鏂囦欢涓婁紶澶勭悊
 const afterRead = (event) => {
-  const { name, file } = event
-  
-  // 鏍规嵁涓婁紶绫诲瀷璁剧疆涓嶅悓鐨則ype鍊�
-  let typeValue = 10 // 榛樿鍊�
-  if (name === 'before') {
-    typeValue = 10 // 鐢熶骇鍓�
-  } else if (name === 'after') {
-    typeValue = 11 // 鐢熶骇涓�
-  } else if (name === 'issue') {
-    typeValue = 12 // 鐢熶骇鍚�
-  }
-
+  const { file } = event
   const files = Array.isArray(file) ? file : [file]
   Promise.resolve().then(async () => {
     for (const f of files) {
-      const uploaded = await uploadSingleFile(f, typeValue)
-      if (name === 'before') {
-        beforeModelValue.value.push(uploaded)
-      } else if (name === 'after') {
-        afterModelValue.value.push(uploaded)
-      } else if (name === 'issue') {
-        issueModelValue.value.push(uploaded)
-      }
+      const uploaded = await uploadSingleFile(f, 10)
+      fileList.value.push(uploaded)
     }
     uni.showToast({ title: '涓婁紶鎴愬姛', icon: 'success' })
   }).catch((err) => {
@@ -236,15 +186,8 @@
 
 // 鍒犻櫎鏂囦欢
 const deleteFile = (event) => {
-  const { name, index } = event
-  
-  if (name === 'before') {
-    beforeModelValue.value.splice(index, 1)
-  } else if (name === 'after') {
-    afterModelValue.value.splice(index, 1)
-  } else if (name === 'issue') {
-    issueModelValue.value.splice(index, 1)
-  }
+  const { index } = event
+  fileList.value.splice(index, 1)
 }
 
 // 璁剧疆寮傚父鐘舵��
@@ -266,8 +209,7 @@
 
     // 濡傛灉鏄紓甯哥姸鎬侊紝妫�鏌ユ槸鍚︽湁涓婁紶鏂囦欢
     if (hasException.value === true) {
-      const totalFiles = beforeModelValue.value.length + afterModelValue.value.length + issueModelValue.value.length
-      if (totalFiles === 0) {
+      if (fileList.value.length === 0) {
         uni.showToast({
           title: '璇蜂笂浼犲紓甯哥収鐗�',
           icon: 'none'
@@ -284,28 +226,17 @@
       }
     }
 
-    let arr = []
-    if (beforeModelValue.value.length > 0) {
-      arr.push(...beforeModelValue.value.map(item => ({ ...item, statusType: 0 })))
-    }
-    if (afterModelValue.value.length > 0) {
-      arr.push(...afterModelValue.value.map(item => ({ ...item, statusType: 1 })))
-    }
-    if (issueModelValue.value.length > 0) {
-      arr.push(...issueModelValue.value.map(item => ({ ...item, statusType: 2 })))
-    }
-    
     // 鎻愪氦鏁版嵁
-    infoData.value.storageBlobDTO = arr
+    infoData.value.commonFileListDTO = fileList.value
     infoData.value.hasException = hasException.value
     infoData.value.exceptionDescription = exceptionDescription.value
     await submitInspectionRecord({ ...infoData.value })
-    
+
     uni.showToast({
       title: '鎻愪氦鎴愬姛',
       icon: 'success'
     })
-    
+
     cancel()
   } catch (error) {
     console.error('鎻愪氦澶辫触:', error)
@@ -320,11 +251,9 @@
 const openDialog = async (row) => {
   infoData.value = row
   dialogVisitable.value = true
-  
+
   // 娓呯┖涔嬪墠鐨勬暟鎹�
-  beforeModelValue.value = []
-  afterModelValue.value = []
-  issueModelValue.value = []
+  fileList.value = []
   hasException.value = null
   exceptionDescription.value = ''
 }
@@ -367,10 +296,18 @@
 
 .form-container {
   margin-bottom: 20px;
-  
+
   &:last-child {
     margin-bottom: 0;
   }
+}
+
+.upload-count {
+  display: block;
+  font-size: 12px;
+  color: #999;
+  margin-bottom: 8px;
+  padding-left: 10px;
 }
 
 .title {
@@ -381,7 +318,7 @@
   padding-left: 10px;
   position: relative;
   margin: 6px 0 10px;
-  
+
   &::before {
     content: "";
     position: absolute;
@@ -423,12 +360,12 @@
   cursor: pointer;
   transition: all 0.3s;
   background-color: #fff;
-  
+
   &.active {
     border-color: #1890ff;
     background-color: #e6f7ff;
   }
-  
+
   &:active {
     opacity: 0.8;
   }
@@ -450,7 +387,7 @@
   background-color: #f6ffed;
   border: 1px dashed #b7eb8f;
   border-radius: 8px;
-  
+
   .tip-text {
     margin-top: 15px;
     font-size: 14px;
diff --git a/src/pages/inspectionUpload/components/qrCodeFormDia.vue b/src/pages/inspectionUpload/components/qrCodeFormDia.vue
index bcf30ef..ccc0e4d 100644
--- a/src/pages/inspectionUpload/components/qrCodeFormDia.vue
+++ b/src/pages/inspectionUpload/components/qrCodeFormDia.vue
@@ -40,16 +40,15 @@
             </u-input>
           </u-form-item>
           
-          <u-form-item label="闄勪欢" prop="storageBlobDTO" labelWidth="80">
+          <u-form-item label="闄勪欢" prop="commonFileListDTO" labelWidth="80">
             <view class="upload-container">
               <ImageUpload
-                v-model="form.storageBlobDTO"
+                v-model="form.commonFileListDTO"
                 :limit="10"
                 :fileSize="50"
                 :fileType="['jpg', 'jpeg', 'png', 'mp4', 'mov']"
                 :maxVideoDuration="60"
-                :statusType="0"
-                @update:modelValue="handleStorageBlobUpdate"
+                @update:modelValue="handleFileListUpdate"
               />
             </view>
           </u-form-item>
@@ -116,7 +115,7 @@
   scannerName: '',
   scannerId: '',
   scanTime: '',
-  storageBlobDTO: [],
+  commonFileListDTO: [],
   qrCode: {
     id: ''
   }
@@ -144,9 +143,9 @@
   }
 })
 
-// 澶勭悊storageBlobDTO鏁版嵁鏇存柊
-const handleStorageBlobUpdate = (value) => {
-  form.storageBlobDTO = value || []
+// 澶勭悊commonFileListDTO鏁版嵁鏇存柊
+const handleFileListUpdate = (value) => {
+  form.commonFileListDTO = value || []
 }
 
 // 鑾峰彇褰撳墠浣嶇疆
@@ -259,7 +258,7 @@
   form.deviceName = row.deviceName || ''
   form.location = row.location || ''
   form.qrCodeId = row.qrCodeId
-  form.storageBlobDTO = []
+  form.commonFileListDTO = []
   console.log('寮规琛ㄥ崟鏁版嵁:', form)
   
   // 寮哄埗鏇存柊瑙嗗浘
@@ -308,8 +307,8 @@
       scannerName: form.scannerName,
       scannerId: form.scannerId,
       scanTime: form.scanTime,
-      storageBlobDTO: form.storageBlobDTO.map(file => ({
-        id: file.id, // 娣诲姞id瀛楁
+      commonFileListDTO: form.commonFileListDTO.map(file => ({
+        id: file.id,
         url: file.url,
         bucketFilename: file.bucketFilename || file.name,
         downloadUrl: file.downloadUrl || file.url,
diff --git a/src/pages/inspectionUpload/upload.vue b/src/pages/inspectionUpload/upload.vue
index 27ba41f..d29cd67 100644
--- a/src/pages/inspectionUpload/upload.vue
+++ b/src/pages/inspectionUpload/upload.vue
@@ -57,33 +57,16 @@
                   maxlength="500"
                   placeholder="璇锋弿杩板紓甯告儏鍐�..." />
       </view>
-      <!-- 鍒嗙被鏍囩椤碉紙浠呭湪寮傚父鏃舵樉绀猴級 -->
+      <!-- 涓婁紶鍖哄煙锛堜粎鍦ㄥ紓甯告椂鏄剧ず锛� -->
       <view class="section-card"
             v-if="hasException === true">
-        <view class="upload-tabs">
-          <view class="tab-item"
-                :class="{ active: currentUploadType === 'before' }"
-                @click="switchUploadType('before')">
-            鐢熶骇鍓�
-          </view>
-          <view class="tab-item"
-                :class="{ active: currentUploadType === 'after' }"
-                @click="switchUploadType('after')">
-            鐢熶骇涓�
-          </view>
-          <view class="tab-item"
-                :class="{ active: currentUploadType === 'issue' }"
-                @click="switchUploadType('issue')">
-            鐢熶骇鍚�
-          </view>
-        </view>
-        <!-- 褰撳墠鍒嗙被鐨勪笂浼犲尯鍩� -->
+        <view class="section-title">涓婁紶闄勪欢</view>
         <view class="upload-area">
           <view class="upload-buttons">
             <u-button type="primary"
                       @click="chooseMedia('image')"
                       :loading="uploading"
-                      :disabled="getCurrentFiles().length >= uploadConfig.limit"
+                      :disabled="fileList.length >= uploadConfig.limit"
                       :customStyle="{ marginRight: '10px', flex: 1 }">
               <u-icon name="camera"
                       size="18"
@@ -94,7 +77,7 @@
             <u-button type="success"
                       @click="chooseMedia('video')"
                       :loading="uploading"
-                      :disabled="getCurrentFiles().length >= uploadConfig.limit"
+                      :disabled="fileList.length >= uploadConfig.limit"
                       :customStyle="{ flex: 1 }">
               <uni-icons type="videocam"
                          size="18"
@@ -110,10 +93,10 @@
                              :showText="true"
                              activeColor="#409eff"></u-line-progress>
           </view>
-          <!-- 褰撳墠鍒嗙被鐨勬枃浠跺垪琛� -->
-          <view v-if="getCurrentFiles().length > 0"
+          <!-- 鏂囦欢鍒楄〃 -->
+          <view v-if="fileList.length > 0"
                 class="file-list">
-            <view v-for="(file, index) in getCurrentFiles()"
+            <view v-for="(file, index) in fileList"
                   :key="index"
                   class="file-item">
               <view class="file-preview-container">
@@ -129,7 +112,6 @@
                              style="margin-right: 5px"></uni-icons>
                   <text class="video-text">瑙嗛</text>
                 </view>
-                <!-- 鍒犻櫎鎸夐挳 -->
                 <view class="delete-btn"
                       @click="removeFile(index)">
                   <u-icon name="close"
@@ -143,18 +125,13 @@
               </view>
             </view>
           </view>
-          <view v-if="getCurrentFiles().length === 0"
+          <view v-if="fileList.length === 0"
                 class="empty-state">
-            <text>璇烽�夋嫨瑕佷笂浼犵殑{{ getUploadTypeText() }}鍥剧墖鎴栬棰�</text>
+            <text>璇烽�夋嫨瑕佷笂浼犵殑鍥剧墖鎴栬棰�</text>
           </view>
         </view>
-        <!-- 缁熻淇℃伅 -->
         <view class="upload-summary">
-          <text class="summary-text">
-            鐢熶骇鍓�: {{ beforeModelValue.length }}涓枃浠� |
-            鐢熶骇涓�: {{ afterModelValue.length }}涓枃浠� |
-            鐢熶骇鍚�: {{ issueModelValue.length }}涓枃浠�
-          </text>
+          <text class="summary-text">宸蹭笂浼�: {{ fileList.length }}涓枃浠�</text>
         </view>
       </view>
       <!-- 姝e父鐘舵�佹彁绀� -->
@@ -197,13 +174,8 @@
   const uploading = ref(false);
   const uploadProgress = ref(0);
 
-  // 涓変釜鍒嗙被鐨勪笂浼犵姸鎬�
-  const beforeModelValue = ref([]); // 鐢熶骇鍓�
-  const afterModelValue = ref([]); // 鐢熶骇涓�
-  const issueModelValue = ref([]); // 鐢熶骇鍚�
-
-  // 褰撳墠婵�娲荤殑涓婁紶绫诲瀷
-  const currentUploadType = ref("before"); // 'before', 'after', 'issue'
+  // 缁熶竴鐨勬枃浠跺垪琛�
+  const fileList = ref([]);
 
   // 寮傚父鐘舵��
   const hasException = ref(null); // null: 鏈�夋嫨, true: 瀛樺湪寮傚父, false: 姝e父
@@ -232,73 +204,37 @@
         const info = JSON.parse(decodeURIComponent(options.taskInfo));
         taskInfo.value = info;
 
-        // 鍥炴樉閫昏緫锛氫粠 taskInfo 涓仮澶嶅凡涓婁紶鐨勬枃浠�
-        const mapFiles = list => {
-          if (!list || !Array.isArray(list)) return [];
-          return list.map(item => {
-            // 澶勭悊 URL锛屽幓闄ゅ彲鑳界殑绌烘牸
-            const finalUrl = (item.url || item.previewURL || "").trim();
-            // 鑷姩鎺ㄦ柇鏂囦欢绫诲瀷
-            let fileType = item.type;
-            if (!fileType && item.contentType) {
-              fileType = item.contentType.startsWith("video") ? "video" : "image";
-            } else if (!fileType) {
-              fileType = "image"; // 榛樿鍥剧墖
-            }
+        // 鍥炴樉閫昏緫锛氫粠 commonFileListVO 鎭㈠宸蹭笂浼犵殑鏂囦欢
+        const fileVOList = Array.isArray(info.commonFileListVO) ? info.commonFileListVO : [];
+        fileList.value = fileVOList.map(item => {
+          const finalUrl = (item.url || item.previewURL || "").trim();
+          let fileType = item.type;
+          if (!fileType && item.contentType) {
+            fileType = item.contentType.startsWith("video") ? "video" : "image";
+          } else if (!fileType) {
+            fileType = "image";
+          }
+          return {
+            ...item,
+            url: finalUrl,
+            name: item.name || item.originalFilename,
+            tempId: item.tempId || item.id || item.tempFileId,
+            size: item.size || item.byteSize || 0,
+            type: fileType,
+            status: "success",
+          };
+        });
 
-            return {
-              ...item,
-              url: finalUrl,
-              name: item.name || item.originalFilename,
-              tempId: item.tempId || item.id || item.tempFileId,
-              size: item.size || item.byteSize || 0, // 鏄犲皠澶у皬瀛楁
-              type: fileType,
-              status: "success",
-            };
-          });
-        };
-
-        // 淇瀛楁鏄犲皠锛欱eforeVO(鐢熶骇鍓�), VO(鐢熶骇涓�), AfterVO(鐢熶骇鍚�)
-        if (
-          info.commonFileListBeforeVO &&
-          Array.isArray(info.commonFileListBeforeVO)
-        ) {
-          beforeModelValue.value = mapFiles(info.commonFileListBeforeVO);
-        }
-        console.log(beforeModelValue.value, "beforeModelValue");
-
-        if (info.commonFileListVO && Array.isArray(info.commonFileListVO)) {
-          afterModelValue.value = mapFiles(info.commonFileListVO);
-        }
-        if (
-          info.commonFileListAfterVO &&
-          Array.isArray(info.commonFileListAfterVO)
-        ) {
-          issueModelValue.value = mapFiles(info.commonFileListAfterVO);
-        }
-
-        // 濡傛灉鏈夊紓甯告弿杩帮紝涔熸仮澶�
         if (info.abnormalDescription) {
           abnormalDescription.value = info.abnormalDescription;
         }
-        // 濡傛灉鏈夊紓甯哥姸鎬侊紝涔熸仮澶�
         if (info.hasException !== undefined && info.hasException !== null) {
           hasException.value = info.hasException;
-        } else if (
-          info.inspectionResult !== undefined &&
-          info.inspectionResult !== null
-        ) {
-          // 0-寮傚父锛�1-姝e父
+        } else if (info.inspectionResult !== undefined && info.inspectionResult !== null) {
           hasException.value = String(info.inspectionResult) === "0";
         }
 
-        // 鑷姩鍏滃簳锛氬鏋滃瓨鍦ㄥ凡涓婁紶鏂囦欢锛屽垯蹇呯劧鏄紓甯哥姸鎬侊紝纭繚 UI 姝e父鏄剧ず
-        if (
-          !hasException.value &&
-          (beforeModelValue.value.length > 0 ||
-            afterModelValue.value.length > 0 ||
-            issueModelValue.value.length > 0)
-        ) {
+        if (!hasException.value && fileList.value.length > 0) {
           hasException.value = true;
         }
       } catch (e) {
@@ -310,39 +246,6 @@
   // 杩斿洖涓婁竴椤�
   const goBack = () => {
     uni.navigateBack();
-  };
-
-  // 鍒囨崲涓婁紶绫诲瀷
-  const switchUploadType = type => {
-    currentUploadType.value = type;
-  };
-
-  // 鑾峰彇褰撳墠鍒嗙被鐨勬枃浠跺垪琛�
-  const getCurrentFiles = () => {
-    switch (currentUploadType.value) {
-      case "before":
-        return beforeModelValue.value || [];
-      case "after":
-        return afterModelValue.value || [];
-      case "issue":
-        return issueModelValue.value || [];
-      default:
-        return [];
-    }
-  };
-
-  // 鑾峰彇涓婁紶绫诲瀷鏂囨湰
-  const getUploadTypeText = () => {
-    switch (currentUploadType.value) {
-      case "before":
-        return "鐢熶骇鍓�";
-      case "after":
-        return "鐢熶骇涓�";
-      case "issue":
-        return "鐢熶骇鍚�";
-      default:
-        return "";
-    }
   };
 
   // 璁剧疆寮傚父鐘舵��
@@ -360,14 +263,8 @@
         inspector: taskInfo.value?.inspector,
         hasException: hasException.value,
         inspectionResult: hasException.value ? 0 : 1, // 0-寮傚父锛�1-姝e父
-        commonFileListBeforeDTO: beforeModelValue.value,
-        commonFileListDTO: afterModelValue.value,
-        commonFileListAfterDTO: issueModelValue.value,
-        uploadedFiles: {
-          before: beforeModelValue.value,
-          after: afterModelValue.value,
-          issue: issueModelValue.value,
-        },
+        commonFileListDTO: fileList.value,
+        uploadedFiles: fileList.value,
       };
 
       uni.setStorageSync("repairTaskInfo", JSON.stringify(taskData));
@@ -398,11 +295,7 @@
 
       // 濡傛灉鏄紓甯哥姸鎬侊紝妫�鏌ユ槸鍚︽湁涓婁紶鏂囦欢鍜屾弿杩�
       if (hasException.value === true) {
-        const totalFiles =
-          beforeModelValue.value.length +
-          afterModelValue.value.length +
-          issueModelValue.value.length;
-        if (totalFiles === 0) {
+        if (fileList.value.length === 0) {
           uni.showToast({
             title: "璇蜂笂浼犲紓甯哥収鐗�",
             icon: "none",
@@ -425,17 +318,10 @@
         mask: true,
       });
 
-      // 鎸夌収閫昏緫鍚堝苟鎵�鏈夊垎绫荤殑鏂囦欢鐢ㄤ簬鎻愬彇ID
-      const allFiles = [
-        ...beforeModelValue.value,
-        ...afterModelValue.value,
-        ...issueModelValue.value,
-      ];
-
       // 浼犵粰鍚庣鐨勪复鏃舵枃浠禝D鍒楄〃
       let tempFileIds = [];
-      if (allFiles.length > 0) {
-        tempFileIds = allFiles
+      if (fileList.value.length > 0) {
+        tempFileIds = fileList.value
           .map(item => item?.tempId ?? item?.tempFileId ?? item?.id)
           .filter(v => v !== undefined && v !== null && v !== "");
       }
@@ -443,9 +329,7 @@
       // 鎻愪氦鏁版嵁
       const submitData = {
         ...taskInfo.value,
-        commonFileListBeforeDTO: beforeModelValue.value, // 鐢熶骇鍓�
-        commonFileListDTO: afterModelValue.value, // 鐢熶骇涓�
-        commonFileListAfterDTO: issueModelValue.value, // 鐢熶骇鍚�
+        commonFileListDTO: fileList.value,
         hasException: hasException.value,
         inspectionResult: hasException.value ? 0 : 1, // 0-寮傚父锛�1-姝e父
         abnormalDescription: abnormalDescription.value,
@@ -498,7 +382,7 @@
 
   // 鎷嶇収/鎷嶈棰�
   const chooseMedia = type => {
-    if (getCurrentFiles().length >= uploadConfig.limit) {
+    if (fileList.value.length >= uploadConfig.limit) {
       uni.showToast({
         title: `鏈�澶氬彧鑳介�夋嫨${uploadConfig.limit}涓枃浠禶,
         icon: "none",
@@ -506,7 +390,7 @@
       return;
     }
 
-    const remaining = uploadConfig.limit - getCurrentFiles().length;
+    const remaining = uploadConfig.limit - fileList.value.length;
 
     // 浼樺厛浣跨敤 chooseMedia
     if (typeof uni.chooseMedia === "function") {
@@ -612,7 +496,7 @@
         Authorization: `Bearer ${token}`,
       },
       formData: {
-        type: getTabType(),
+        type: 10,
       },
       success: res => {
         try {
@@ -638,14 +522,7 @@
               status: "success",
             };
 
-            // 鏍规嵁褰撳墠绫诲瀷娣诲姞鍒板搴旀暟缁�
-            if (currentUploadType.value === "before") {
-              beforeModelValue.value.push(uploadedFile);
-            } else if (currentUploadType.value === "after") {
-              afterModelValue.value.push(uploadedFile);
-            } else if (currentUploadType.value === "issue") {
-              issueModelValue.value.push(uploadedFile);
-            }
+            fileList.value.push(uploadedFile);
 
             uni.showToast({ title: "涓婁紶鎴愬姛", icon: "success" });
           } else {
@@ -670,23 +547,9 @@
     });
   };
 
-  // 鑾峰彇type鍊�
-  const getTabType = () => {
-    switch (currentUploadType.value) {
-      case "before":
-        return 10;
-      case "after":
-        return 11;
-      case "issue":
-        return 12;
-      default:
-        return 10;
-    }
-  };
-
   // 鍒犻櫎鏂囦欢
   const removeFile = index => {
-    const files = getCurrentFiles();
+    const files = fileList.value;
     files.splice(index, 1);
   };
 </script>
@@ -810,30 +673,6 @@
     outline: none;
     border-color: #409eff;
     background: #fff;
-  }
-
-  /* 鍒嗙被鏍囩椤� */
-  .upload-tabs {
-    display: flex;
-    gap: 10px;
-    margin-bottom: 15px;
-  }
-
-  .tab-item {
-    flex: 1;
-    padding: 10px;
-    text-align: center;
-    background: #f5f5f5;
-    border-radius: 6px;
-    font-size: 13px;
-    color: #666;
-    cursor: pointer;
-    transition: all 0.3s;
-  }
-
-  .tab-item.active {
-    background: #409eff;
-    color: #fff;
   }
 
   /* 涓婁紶鍖哄煙 */

--
Gitblit v1.9.3