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

merge: 合并远程分支更新

- 解决合并冲突
- 同步远程分支最新变更
- 保持本地开发进度
wuzhen 1 год назад
Родитель
Сommit
8f7d9fcdc3

+ 6 - 0
backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/domain/vo/HqPmRepairOrderVo.java

@@ -191,6 +191,12 @@ public class HqPmRepairOrderVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date evaluationTime;
 
+    /**
+     * 评价内容
+     */
+    @ExcelProperty(value = "评价内容")
+    private String evaluationContent;
+
     /**
      * 附件数量
      */

+ 14 - 0
backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqPmRepairOrderServiceImpl.java

@@ -66,6 +66,20 @@ public class HqPmRepairOrderServiceImpl implements IHqPmRepairOrderService {
             throw new ServiceException("无权限查看该工单");
         }
 
+        // 补充评价内容(如果存在)
+        try {
+            LambdaQueryWrapper<HqPmServiceEvaluation> evalLqw = Wrappers.lambdaQuery();
+            evalLqw.eq(HqPmServiceEvaluation::getOrderId, id)
+                    .orderByDesc(HqPmServiceEvaluation::getCreateTime)
+                    .last("limit 1");
+            HqPmServiceEvaluation evaluation = serviceEvaluationMapper.selectOne(evalLqw);
+            if (evaluation != null) {
+                orderVo.setEvaluationContent(evaluation.getEvaluationContent());
+            }
+        } catch (Exception e) {
+            log.warn("查询工单评价内容失败: {}", e.getMessage());
+        }
+
         return orderVo;
     }
 

+ 4 - 15
web/src/views/hq/pm/repairOrder/index.vue

@@ -764,7 +764,7 @@
           </el-card>
 
           <!-- 评价信息 -->
-          <el-card class="detail-card" shadow="never" v-if="orderDetail.evaluationScore">
+          <el-card class="detail-card" shadow="never" v-if="orderDetail.evaluationScore || orderDetail.evaluationContent">
             <template #header>
               <div class="card-header">
                 <span class="card-title"
@@ -783,7 +783,6 @@
                 <label>评价时间:</label>
                 <span class="detail-value">{{ orderDetail.evaluationTime || '暂未评价' }}</span>
               </div>
-              <!-- 新增:评价内容展示 -->
               <div class="detail-item full-width" v-if="orderDetail.evaluationContent">
                 <label>评价内容:</label>
                 <span class="detail-value description">{{ orderDetail.evaluationContent }}</span>
@@ -1398,7 +1397,9 @@ const detailDialog = reactive<DialogOption>({
 });
 
 const detailLoading = ref(false);
-const orderDetail = ref<RepairOrderVO>();
+// 扩展 RepairOrderVO 类型以补充评价内容字段,避免模板校验错误
+type RepairOrderVOExt = RepairOrderVO & { evaluationContent?: string };
+const orderDetail = ref<RepairOrderVOExt>();
 
 // 进度查看对话框
 const progressDialog = reactive<DialogOption>({
@@ -2028,18 +2029,6 @@ const handleDetail = async (row: RepairOrderVO) => {
     // 适配不同的响应格式
     orderDetail.value = (res as any).data || res;
 
-    // 如果服务评价内容缺失,则尝试单独拉取
-    if (!orderDetail.value.evaluationContent) {
-      try {
-        const evaRes = await getServiceEvaluation(row.id);
-        if (evaRes && evaRes.data) {
-          orderDetail.value.evaluationContent = evaRes.data.evaluationContent || evaRes.data.evaluationContent;
-        }
-      } catch (e) {
-        console.warn('获取服务评价内容失败', e);
-      }
-    }
-
     // 自动加载附件信息
     if (orderDetail.value.attachmentCount && orderDetail.value.attachmentCount > 0) {
       await loadAttachments(orderDetail.value.id);