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/upload.vue |  251 +++++++++-----------------------------------------
 1 files changed, 45 insertions(+), 206 deletions(-)

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