From 1efdf8fa2f60cc6d9da42b319540d4c2df4b3e0a Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期六, 14 六月 2025 15:13:35 +0800
Subject: [PATCH] refactor(repair): 优化报修相关功能和页面展示

---
 eims-ui-mobile/src/pages/repair/repair-fb.vue     |    4 
 eims-ui-mobile/src/pages/repair/repair-add.vue    |    4 
 eims-ui-mobile/src/components/repair/res-card.vue |   34 ++++++++--
 eims-ui-mobile/src/pages/scan/index.vue           |   10 +-
 eims-ui-mobile/src/components/repair/req-card.vue |    4 
 eims-ui-mobile/src/pages/repair/req-detail.vue    |   16 ++---
 eims-ui-mobile/src/pages/home/index.vue           |   46 +++++++-------
 eims-ui-mobile/src/pages/repair/res-detail.vue    |    2 
 eims-ui-mobile/src/pages/repair/res-list.vue      |    2 
 9 files changed, 68 insertions(+), 54 deletions(-)

diff --git a/eims-ui-mobile/src/components/repair/req-card.vue b/eims-ui-mobile/src/components/repair/req-card.vue
index 3e937c3..a511f91 100644
--- a/eims-ui-mobile/src/components/repair/req-card.vue
+++ b/eims-ui-mobile/src/components/repair/req-card.vue
@@ -61,8 +61,8 @@
             </view>
             <view class="text-color-gray mt-1 text-mini">
               <text>绱ф�ョ▼搴�: </text>
-              <wd-tag type="danger" v-if="item.urgencyLevel === '1'">绱ф��</wd-tag>
-              <wd-tag type="warning" v-else-if="item.urgencyLevel === '2'">涓�鑸�</wd-tag>
+              <wd-tag type="warning" v-if="item.urgencyLevel === '1'">涓�鑸�</wd-tag>
+              <wd-tag type="danger" v-else-if="item.urgencyLevel === '2'">绱ф��</wd-tag>
               <wd-tag type="success" v-else-if="item.urgencyLevel === '3'">鏅��</wd-tag>
             </view>
           </view>
diff --git a/eims-ui-mobile/src/components/repair/res-card.vue b/eims-ui-mobile/src/components/repair/res-card.vue
index 230b442..dd7beb7 100644
--- a/eims-ui-mobile/src/components/repair/res-card.vue
+++ b/eims-ui-mobile/src/components/repair/res-card.vue
@@ -12,6 +12,7 @@
           <wd-tag size="small" v-if="item.status === '1'" type="warning">宸叉帴鍗�</wd-tag>
           <wd-tag size="small" v-else-if="item.status === '2'" type="primary">缁翠慨涓�</wd-tag>
           <wd-tag size="small" v-else-if="item.status === '3'" type="success">宸插畬鎴�</wd-tag>
+          <wd-tag size="small" v-else-if="item.status === '4'" type="default">宸茶瘎浠�</wd-tag>
         </view>
       </view>
     </template>
@@ -67,12 +68,13 @@
         </view>
       </view>
       <view>
-        <template v-if="item.status === '3'">
+        <template v-if="item.status === '3' || item.status === '4'">
           <view class="h-full flex flex-col">
             <wd-button size="small" icon="warn-bold" @click.stop="itemClick(item)">
               璇︽儏
             </wd-button>
             <wd-button
+              v-if="isRequest"
               class="mt-4"
               size="small"
               icon="edit-outline"
@@ -80,6 +82,17 @@
               type="warning"
             >
               {{ item.fbId == null ? '鍐欒瘎浠�' : '鏌ョ湅璇勪环' }}
+            </wd-button>
+            <wd-button
+              v-else
+              class="mt-4"
+              size="small"
+              icon="edit-outline"
+              @click.stop="goToFeedBack(item)"
+              type="warning"
+              :disabled="item.fdId == null"
+            >
+              {{ item.fbId == null ? '鏆傛湭璇勪环' : '鏌ョ湅璇勪环' }}
             </wd-button>
           </view>
         </template>
@@ -121,18 +134,23 @@
 const userStore = useUserStore()
 const message = useMessage()
 const toast = useToast()
-defineProps({
+const defineProps1 = defineProps({
   item: {
     type: Object as () => RepairResVO,
-    required: true
-  }
-})
+    required: true,
+  },
+});
 
 const emit = defineEmits(['click'])
 
-function handleClick(item) {
-  emit('click', item)
-}
+// 浣跨敤璁$畻灞炴�э紝鍒ゆ柇褰撳墠鐢ㄦ埛鏄笉鏄姹備汉
+const isRequest = computed(() => {
+  if (defineProps1.item) {
+    console.log('isRequest', defineProps1.item.reqUser === userStore.userInfo.userId)
+    return userStore.userInfo.userId === defineProps1.item.reqUser
+  }
+  return false
+})
 
 /**
  * 寮�濮嬬淮淇�
diff --git a/eims-ui-mobile/src/pages/home/index.vue b/eims-ui-mobile/src/pages/home/index.vue
index 52dcd4e..94dae84 100644
--- a/eims-ui-mobile/src/pages/home/index.vue
+++ b/eims-ui-mobile/src/pages/home/index.vue
@@ -80,29 +80,29 @@
           </view>
         </wd-card>
       </view>
-      <view class="bg-white mt-2">
-        <wd-card type="rectangle">
-          <template #title>
-            <view class="flex items-center menu-title-box">
-              <view class="menu-indicator"></view>
-              <view class="ml-1 text-sm">蹇嵎鎿嶄綔</view>
-            </view>
-          </template>
-          <wd-grid :column="4">
-            <wd-grid-item
-              use-slot
-              class="flex justify-center items-center"
-              v-for="(item, index) in commonMenu"
-              :key="item.id"
-              @click.stop="goItemPage(item)"
-              v-show="!(isLeader() && item.custom)"
-            >
-              <image class="slot-img text-center" :src="item.icon" />
-              <text>{{ item.name }}</text>
-            </wd-grid-item>
-          </wd-grid>
-        </wd-card>
-      </view>
+<!--      <view class="bg-white mt-2">-->
+<!--        <wd-card type="rectangle">-->
+<!--          <template #title>-->
+<!--            <view class="flex items-center menu-title-box">-->
+<!--              <view class="menu-indicator"></view>-->
+<!--              <view class="ml-1 text-sm">蹇嵎鎿嶄綔</view>-->
+<!--            </view>-->
+<!--          </template>-->
+<!--          <wd-grid :column="4">-->
+<!--            <wd-grid-item-->
+<!--              use-slot-->
+<!--              class="flex justify-center items-center"-->
+<!--              v-for="(item, index) in commonMenu"-->
+<!--              :key="item.id"-->
+<!--              @click.stop="goItemPage(item)"-->
+<!--              v-show="!(isLeader() && item.custom)"-->
+<!--            >-->
+<!--              <image class="slot-img text-center" :src="item.icon" />-->
+<!--              <text>{{ item.name }}</text>-->
+<!--            </wd-grid-item>-->
+<!--          </wd-grid>-->
+<!--        </wd-card>-->
+<!--      </view>-->
       <view class="bg-white mt-2">
         <wd-card type="rectangle">
           <template #title>
diff --git a/eims-ui-mobile/src/pages/repair/repair-add.vue b/eims-ui-mobile/src/pages/repair/repair-add.vue
index 1a05452..af4caaf 100644
--- a/eims-ui-mobile/src/pages/repair/repair-add.vue
+++ b/eims-ui-mobile/src/pages/repair/repair-add.vue
@@ -24,7 +24,7 @@
           :columns="reqList"
           label-key="dictLabel"
           value-key="dictValue"
-          label="鏁呴殰绫诲瀷"
+          label="鎶ヤ慨绫诲瀷"
           v-model="model.reqType"
           @confirm="handleConfirmReqType"
           :disabled="reqTypeDis"
@@ -339,7 +339,7 @@
     .then((res: any) => {
       if (res?.code === 200) {
         toast.success(res?.msg)
-        uni.$emit('req-list-refresh')
+        uni.$emit('list-refresh')
         setTimeout(() => {
           uni.navigateBack()
         }, 1500)
diff --git a/eims-ui-mobile/src/pages/repair/repair-fb.vue b/eims-ui-mobile/src/pages/repair/repair-fb.vue
index 38a6d05..dd5a6ef 100644
--- a/eims-ui-mobile/src/pages/repair/repair-fb.vue
+++ b/eims-ui-mobile/src/pages/repair/repair-fb.vue
@@ -206,7 +206,7 @@
             icon: 'none',
           })
           uni.navigateBack()
-          uni.$emit('res-list-refresh')
+          uni.$emit('list-refresh')
         }
       })
       .catch((res) => {})
@@ -219,7 +219,7 @@
             icon: 'none',
           })
           uni.navigateBack()
-          uni.$emit('res-list-refresh')
+          uni.$emit('list-refresh')
         }
       })
       .catch((res) => {})
diff --git a/eims-ui-mobile/src/pages/repair/req-detail.vue b/eims-ui-mobile/src/pages/repair/req-detail.vue
index 987569c..db805c6 100644
--- a/eims-ui-mobile/src/pages/repair/req-detail.vue
+++ b/eims-ui-mobile/src/pages/repair/req-detail.vue
@@ -78,8 +78,8 @@
           <text>{{ repairReq.reqUserName }}</text>
         </wd-cell>
         <wd-cell title="绱ф�ョ▼搴�" title-width="200rpx">
-          <wd-tag type="danger" v-if="repairReq.urgencyLevel === '1'">绱ф��</wd-tag>
-          <wd-tag type="warning" v-else-if="repairReq.urgencyLevel === '2'">涓�鑸�</wd-tag>
+          <wd-tag type="danger" v-if="repairReq.urgencyLevel === '2'">绱ф��</wd-tag>
+          <wd-tag type="warning" v-else-if="repairReq.urgencyLevel === '1'">涓�鑸�</wd-tag>
           <wd-tag type="success" v-else-if="repairReq.urgencyLevel === '3'">鏅��</wd-tag>
         </wd-cell>
       </wd-cell-group>
@@ -94,9 +94,9 @@
       <!-- 鏁呴殰鍥剧墖 -->
       <wd-cell-group v-if="repairReq.faultPicture" custom-class="mt-2" title="鏁呴殰鍥剧墖" use-slot border>
         <view class="image-box">
-          <image 
-            class="fault-image" 
-            :src="repairReq.faultPicture" 
+          <image
+            class="fault-image"
+            :src="repairReq.faultPicture"
             mode="aspectFit"
             @click="previewImage"
           />
@@ -215,9 +215,7 @@
 
 .description-box {
   padding: 24rpx;
-  background-color: #f9f9f9;
   border-radius: 8rpx;
-  margin: 16rpx;
   color: #666666;
   line-height: 1.6;
 }
@@ -229,8 +227,6 @@
 }
 
 .fault-image {
-  width: 80%;
-  height: 400rpx;
   border-radius: 8rpx;
   box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
 }
@@ -249,4 +245,4 @@
   color: #333333;
   font-weight: 500;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/eims-ui-mobile/src/pages/repair/res-detail.vue b/eims-ui-mobile/src/pages/repair/res-detail.vue
index ddd618f..73f7f0e 100644
--- a/eims-ui-mobile/src/pages/repair/res-detail.vue
+++ b/eims-ui-mobile/src/pages/repair/res-detail.vue
@@ -309,7 +309,7 @@
     .then((res: any) => {
       resolve(true)
       toastSucces()
-      uni.$emit('res-list-refresh')
+      uni.$emit('list-refresh')
       uni.navigateBack()
     })
     .catch((res) => {
diff --git a/eims-ui-mobile/src/pages/repair/res-list.vue b/eims-ui-mobile/src/pages/repair/res-list.vue
index e782d72..c458516 100644
--- a/eims-ui-mobile/src/pages/repair/res-list.vue
+++ b/eims-ui-mobile/src/pages/repair/res-list.vue
@@ -43,7 +43,7 @@
     </template>
 
     <view class="bg-base">
-      <res-card v-for="(item, index) in dataList" :key="item.id" :item="item" @click="handleResClick" />
+      <res-card v-for="item in dataList" :key="item.id" :item="item" />
     </view>
   </z-paging>
 </template>
diff --git a/eims-ui-mobile/src/pages/scan/index.vue b/eims-ui-mobile/src/pages/scan/index.vue
index eecf651..d8fca76 100644
--- a/eims-ui-mobile/src/pages/scan/index.vue
+++ b/eims-ui-mobile/src/pages/scan/index.vue
@@ -67,7 +67,7 @@
       <view class="h-[10px] bg-base"></view>
       <wd-tabs v-model="tab">
 
-        <wd-tab title="缁翠慨璇锋眰">
+        <wd-tab title="鎶ヤ慨鍗�">
           <view class="h-[10px] bg-base"></view>
           <!-- 缁翠慨璇锋眰鍖哄煙 -->
           <view class="mt-2" v-if="reqList.length > 0">
@@ -149,7 +149,7 @@
         exist.value = true
         Object.assign(model, res)
         // 鍔犺浇缁翠慨璇锋眰鍜岀淮淇崟鏁版嵁
-        loadRepairData(res.equId)
+        loadRepairData()
       } else {
         toast.error('鏈煡璇㈠埌璇ヨ祫浜х紪鍙风浉鍏虫暟鎹紒')
       }
@@ -161,10 +161,10 @@
 }
 
 // 鍔犺浇缁翠慨璇锋眰鍜岀淮淇崟鏁版嵁
-function loadRepairData(equId: string | number) {
+function loadRepairData() {
   // 鍔犺浇鏈帴鍗曠殑缁翠慨璇锋眰
   getRepairReqList({
-    equId,
+    equId: model.equId,
     status: '0',
   }).then((res: any) => {
     if (res?.rows) {
@@ -174,7 +174,7 @@
 
   // 鍔犺浇鏈畬鎴愮殑缁翠慨鍗�
   const params = {
-    equId,
+    equId: model.equId,
     params: {
       status: '0,1,2',
     },

--
Gitblit v1.9.3