Эх сурвалжийг харах

feat(manholeCover): 优化井盖案件结案工单页面搜索功能

- 将单一搜索关键词拆分为工单编号和案件编号两个独立搜索框
- 调整搜索框宽度以适应双输入框布局
- 修复搜索功能,使工单编号和案件编号分别对应各自搜索字段
- 更新已延期状态显示文本为延期待接单
- 添加数据过滤逻辑,仅显示已结案和已驳回状态的工单
- 修正状态标签颜色映射,将延期待接单状态设为警告色
nahida 4 өдөр өмнө
parent
commit
8577da4732

+ 22 - 10
src/views/subSystem/manholeCover/caseHandling/closeWorkOrder.vue

@@ -9,11 +9,19 @@
       </div>
       <div class="flex flex-wrap items-center gap-3">
         <el-input
-          v-model="searchKeyword"
-          placeholder="搜索工单编号/案件编号"
+          v-model="searchOrderNo"
+          placeholder="工单编号"
           clearable
           :prefix-icon="Search"
-          class="w-[260px]"
+          class="w-[140px]"
+          @keyup.enter="loadOrders"
+        />
+        <el-input
+          v-model="searchCaseNo"
+          placeholder="案件编号"
+          clearable
+          :prefix-icon="Search"
+          class="w-[140px]"
           @keyup.enter="loadOrders"
         />
         <el-select v-model="orderLevelFilter" placeholder="优先级" clearable class="w-[120px]">
@@ -161,7 +169,8 @@ import {getManholeWorkOrderDetail, getManholeWorkOrderFinishedPage} from '@/api/
 const orders = ref([])
 const loading = ref(false)
 const detailLoading = ref(false)
-const searchKeyword = ref('')
+const searchOrderNo = ref('')
+const searchCaseNo = ref('')
 const orderLevelFilter = ref('')
 const dateRange = ref([])
 const timeFilter = ref('all')
@@ -197,7 +206,7 @@ function getOrderStatusMeta(status) {
   const map = {
     6: { text: '已结案', tag: 'success' },
     7: { text: '已驳回', tag: 'danger' },
-    9: { text: '延期', tag: 'warning' }
+    9: { text: '延期待接单', tag: 'warning' }
   }
   return map[Number(status)] || { text: '—', tag: 'info' }
 }
@@ -282,19 +291,22 @@ const monthlyCompleted = computed(() => orders.value.filter(item => isWithinRece
 async function loadOrders() {
   loading.value = true
   try {
-    const keyword = searchKeyword.value.trim()
+    const orderNo = searchOrderNo.value.trim()
+    const caseNo = searchCaseNo.value.trim()
     const payload = {
       pageNum: 1,
       pageSize: 200,
       orderLevel: orderLevelFilter.value || undefined,
-      orderNo: keyword || undefined,
-      caseNo: keyword || undefined,
+      orderNo: orderNo || undefined,
+      caseNo: caseNo || undefined,
       startTime: dateRange.value?.[0] ? `${dateRange.value[0]} 00:00:00` : undefined,
       endTime: dateRange.value?.[1] ? `${dateRange.value[1]} 23:59:59` : undefined
     }
     const res = await getManholeWorkOrderFinishedPage(payload)
     const records = Array.isArray(res?.data?.records) ? res.data.records : []
-    orders.value = records.map(normalizeOrder)
+    orders.value = records
+      .filter(item => [6, 7].includes(Number(item.orderStatus)))
+      .map(normalizeOrder)
     currentPage.value = 1
     if (currentOrder.value) {
       const matched = orders.value.find(item => item.orderId === currentOrder.value.orderId)
@@ -346,7 +358,7 @@ function getLogType(operType) {
     6: 'success',
     7: 'danger',
     8: 'warning',
-    9: 'success'
+    9: 'warning'
   }
   return map[Number(operType)] || 'info'
 }