From 0333d66e4b397c161c6a44ce1e2a121c2cc41082 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 28 五月 2026 09:20:20 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' into dev_天津_中兴实强

---
 src/pages/inspectionUpload/components/formDia.vue |  228 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 187 insertions(+), 41 deletions(-)

diff --git a/src/pages/inspectionUpload/components/formDia.vue b/src/pages/inspectionUpload/components/formDia.vue
index 6b900cd..62bf40f 100644
--- a/src/pages/inspectionUpload/components/formDia.vue
+++ b/src/pages/inspectionUpload/components/formDia.vue
@@ -8,53 +8,99 @@
   >
     <view class="popup-content">
       <view class="popup-header">
-        <text class="popup-title">涓婁紶</text>
+        <text class="popup-title">宸℃璁板綍涓婁紶</text>
       </view>
       
       <view class="upload-container">
+        <!-- 寮傚父鐘舵�侀�夋嫨 -->
         <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 class="title">宸℃鐘舵��</view>
+          <view class="exception-section">
+            <view class="exception-options">
+              <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" 
+                :class="{ active: hasException === true }"
+                @click="setExceptionStatus(true)"
+              >
+                <u-icon name="close-circle" size="20" color="#ff4d4f"></u-icon>
+                <text class="option-text">瀛樺湪寮傚父</text>
+              </view>
+            </view>
+          </view>
+        </view>
+
+        <!-- 寮傚父鎻忚堪锛堜粎鍦ㄥ紓甯告椂鏄剧ず锛� -->
+        <view class="form-container" v-if="hasException === true">
+          <view class="title">寮傚父鎻忚堪</view>
+          <u-input
+            v-model="exceptionDescription"
+            type="textarea"
+            :maxlength="500"
+            placeholder="璇锋弿杩板紓甯告儏鍐�..."
+            :customStyle="{ padding: '10px', backgroundColor: '#f5f5f5' }"
+          />
         </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>
+        <!-- 涓婁紶鍖哄煙锛堜粎鍦ㄥ紓甯告椂鏄剧ず锛� -->
+        <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>
+
+        <!-- 姝e父鐘舵�佹彁绀� -->
+        <view class="form-container normal-tip" v-if="hasException === false">
+          <u-icon name="info-circle" size="40" color="#52c41a"></u-icon>
+          <text class="tip-text">璁惧杩愯姝e父锛屾棤闇�涓婁紶鐓х墖</text>
         </view>
       </view>
       
@@ -79,6 +125,11 @@
 const afterModelValue = ref([])
 const issueModelValue = ref([])
 const infoData = ref(null)
+
+// 寮傚父鐘舵�侊細null=鏈�夋嫨, false=姝e父, true=寮傚父
+const hasException = ref(null)
+// 寮傚父鎻忚堪
+const exceptionDescription = ref('')
 
 // 璁$畻涓婁紶URL
 const uploadFileUrl = computed(() => {
@@ -196,9 +247,43 @@
   }
 }
 
+// 璁剧疆寮傚父鐘舵��
+const setExceptionStatus = (status) => {
+  hasException.value = status
+}
+
 // 鎻愪氦琛ㄥ崟
 const submitForm = async () => {
   try {
+    // 妫�鏌ユ槸鍚﹂�夋嫨浜嗗贰妫�鐘舵��
+    if (hasException.value === null) {
+      uni.showToast({
+        title: '璇烽�夋嫨宸℃鐘舵��',
+        icon: 'none'
+      })
+      return
+    }
+
+    // 濡傛灉鏄紓甯哥姸鎬侊紝妫�鏌ユ槸鍚︽湁涓婁紶鏂囦欢
+    if (hasException.value === true) {
+      const totalFiles = beforeModelValue.value.length + afterModelValue.value.length + issueModelValue.value.length
+      if (totalFiles === 0) {
+        uni.showToast({
+          title: '璇蜂笂浼犲紓甯哥収鐗�',
+          icon: 'none'
+        })
+        return
+      }
+      // 妫�鏌ユ槸鍚﹀~鍐欎簡寮傚父鎻忚堪
+      if (!exceptionDescription.value.trim()) {
+        uni.showToast({
+          title: '璇峰~鍐欏紓甯告弿杩�',
+          icon: 'none'
+        })
+        return
+      }
+    }
+
     let arr = []
     if (beforeModelValue.value.length > 0) {
       arr.push(...beforeModelValue.value.map(item => ({ ...item, statusType: 0 })))
@@ -212,6 +297,8 @@
     
     // 鎻愪氦鏁版嵁
     infoData.value.storageBlobDTO = arr
+    infoData.value.hasException = hasException.value
+    infoData.value.exceptionDescription = exceptionDescription.value
     await submitInspectionRecord({ ...infoData.value })
     
     uni.showToast({
@@ -238,6 +325,8 @@
   beforeModelValue.value = []
   afterModelValue.value = []
   issueModelValue.value = []
+  hasException.value = null
+  exceptionDescription.value = ''
 }
 
 // 鍏抽棴寮规
@@ -311,4 +400,61 @@
   border-top: 1px solid #f0f0f0;
   background-color: #fafafa;
 }
+
+// 寮傚父鐘舵�侀�夋嫨鏍峰紡
+.exception-section {
+  padding: 10px 0;
+}
+
+.exception-options {
+  display: flex;
+  gap: 15px;
+}
+
+.exception-option {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  gap: 8px;
+  padding: 15px 20px;
+  border: 2px solid #e0e0e0;
+  border-radius: 8px;
+  cursor: pointer;
+  transition: all 0.3s;
+  background-color: #fff;
+  
+  &.active {
+    border-color: #1890ff;
+    background-color: #e6f7ff;
+  }
+  
+  &:active {
+    opacity: 0.8;
+  }
+}
+
+.option-text {
+  font-size: 14px;
+  color: #333;
+  font-weight: 500;
+}
+
+// 姝e父鐘舵�佹彁绀烘牱寮�
+.normal-tip {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 40px 20px;
+  background-color: #f6ffed;
+  border: 1px dashed #b7eb8f;
+  border-radius: 8px;
+  
+  .tip-text {
+    margin-top: 15px;
+    font-size: 14px;
+    color: #52c41a;
+  }
+}
 </style>

--
Gitblit v1.9.3