From 137bf2c0666b60cfc0d98b1a9ca7ead860ee4e7c Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 28 十月 2026 17:57:29 +0800
Subject: [PATCH] feat(device,supply,satisfaction): 设备计划改造、耗材采购调整与满意度照片上传

---
 src/views/CNAS/systemManagement/customerSatisfaction/components/formDialog.vue |   49 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/src/views/CNAS/systemManagement/customerSatisfaction/components/formDialog.vue b/src/views/CNAS/systemManagement/customerSatisfaction/components/formDialog.vue
index 8ad497f..b128c19 100644
--- a/src/views/CNAS/systemManagement/customerSatisfaction/components/formDialog.vue
+++ b/src/views/CNAS/systemManagement/customerSatisfaction/components/formDialog.vue
@@ -136,6 +136,17 @@
             </el-input>
           </td>
         </tr>
+        <tr>
+          <td class="td-title">
+            <p>鐓х墖锛�</p>
+          </td>
+          <td class="td-info" colspan="5">
+            <lims-attachment ref="photoAttachment" inline defer-upload accept=".jpg,.jpeg,.png,.gif"
+              :main-id="form.clientSatisfactionId || ''" upload-url="/clientSatisfaction/uploadAttachment"
+              select-url="/clientSatisfaction/selectAttachments" delete-url="/clientSatisfaction/deleteAttachment"
+              id-param="clientSatisfactionId" tip="鏀寔 jpg / png / gif 鐓х墖锛屽彲棰勮锛屾彁浜ゆ椂涓�骞朵笂浼�"></lims-attachment>
+          </td>
+        </tr>
       </table>
       <template #footer><span  class="dialog-footer">
         <el-button @click="closeFormDia">鍙� 娑�</el-button>
@@ -151,10 +162,11 @@
   updateClientSatisfaction
 } from '@/api/cnas/systemManagement/customerSatisfaction.js'
 import { selectCompletedOrders } from '@/api/business/productOrder'
+import limsAttachment from '@/components/Attachment/lims-attachment.vue'
 export default {
   name: 'formDialog',
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {},
+  components: { limsAttachment },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
@@ -287,24 +299,45 @@
       }
       if (this.operationType === 'add') {
         addClientSatisfaction(payload).then(res => {
-          this.editLoad = false
-          this.$message.success('鎻愪氦鎴愬姛')
-          this.closeFormDia()
+          // 鍚庣杩斿洖淇濆瓨鍚庣殑璁板綍锛堝惈鑷id锛夛紝鐢ㄤ簬鎶婃柊澧炴椂鏆傚瓨鐨勭収鐗囦紶涓婂幓
+          const savedId = res.data && res.data.clientSatisfactionId
+          this.finishSave(savedId)
         }).catch(err => {
           console.log('err---', err);
           this.editLoad = false
         })
       } else {
-        updateClientSatisfaction(payload).then(res => {
-          this.editLoad = false
-          this.$message.success('鎻愪氦鎴愬姛')
-          this.closeFormDia()
+        updateClientSatisfaction(payload).then(() => {
+          this.finishSave(this.form.clientSatisfactionId)
         }).catch(err => {
           console.log('err---', err);
           this.editLoad = false
         })
       }
     },
+    // 璁板綍淇濆瓨鎴愬姛鍚庝笂浼犳殏瀛樼収鐗囷紱鐓х墖涓婁紶澶辫触涓嶅奖鍝嶈褰曟湰韬�
+    finishSave(clientSatisfactionId) {
+      this.uploadPendingPhotos(clientSatisfactionId).then(() => {
+        this.editLoad = false
+        this.$message.success('鎻愪氦鎴愬姛')
+        this.closeFormDia()
+      }).catch(err => {
+        console.log('鐓х墖涓婁紶澶辫触', err)
+        this.editLoad = false
+        this.$message.warning('璁板綍宸蹭繚瀛橈紝浣嗙収鐗囦笂浼犲け璐ワ紝璇峰洖鍒板垪琛ㄧ敤鈥滈檮浠垛�濊ˉ鍏呬笂浼�')
+        this.closeFormDia()
+      })
+    },
+    uploadPendingPhotos(clientSatisfactionId) {
+      const attachment = this.$refs.photoAttachment
+      if (!attachment || !attachment.pendingFiles.length) {
+        return Promise.resolve()
+      }
+      if (!clientSatisfactionId) {
+        return Promise.reject(new Error('鏈幏鍙栧埌璁板綍id锛屾棤娉曚笂浼犵収鐗�'))
+      }
+      return attachment.flushPending(clientSatisfactionId)
+    },
     closeFormDia() {
       this.formDia = false;
       this.$emit('closeFormDia')

--
Gitblit v1.9.3