From df64c34d92cbe8501bbbfe837bc491a47452c0b6 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 09 六月 2025 10:58:19 +0800
Subject: [PATCH] feat(eims): 新增保养工单批量修改功能并优化相关领域对象

---
 eims-ui-mobile/src/pages/repair/req-list.vue |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 87 insertions(+), 38 deletions(-)

diff --git a/eims-ui-mobile/src/pages/repair/req-list.vue b/eims-ui-mobile/src/pages/repair/req-list.vue
index 54209d6..c93a9ea 100644
--- a/eims-ui-mobile/src/pages/repair/req-list.vue
+++ b/eims-ui-mobile/src/pages/repair/req-list.vue
@@ -2,30 +2,27 @@
 {
   layout: 'default',
   needLogin: true,
-  style: {
-    navigationBarTitleText: '璁惧鎶ヤ慨',
-    'app-plus': {
-      titleNView: {
-        buttons: [
-          {
-            text: '鏂板',
-            fontSize: '14px',
-            color: '#FFFFFF',
-          },
-          {
-            text: '',
-            fontSize: '24px',
-            color: '#FFFFFF',
-          },
-        ],
-      },
-    },
-  },
+  style: { navigationBarTitleText: '鎶ヤ慨鍒楄〃', navigationStyle: 'custom' },
 }
 </route>
 <template>
-  <z-paging ref="paging" v-model="dataList" :auto="false" @query="queryList" show-refresher-update-time>
+  <z-paging
+    ref="paging"
+    v-model="dataList"
+    :auto="false"
+    @query="queryList"
+    show-refresher-update-time
+  >
     <template #top>
+      <wd-navbar
+        title="鎶ヤ慨鍒楄〃"
+        left-arrow
+        @click-left="goBack"
+        right-text="鏂板"
+        @click-right="handleClickRight"
+        custom-style="background: #4D80F0;"
+        safeAreaInsetTop
+      ></wd-navbar>
       <wd-drop-menu v-if="!isSelectReq">
         <wd-drop-menu-item
           v-model="reqTypeId"
@@ -33,6 +30,11 @@
           value-key="dictValue"
           :options="reqTypeList"
           @change="handleReqType"
+        />
+        <wd-drop-menu-item
+          v-model="filterDate"
+          :options="filterDateList"
+          @change="handleFilterDate"
         />
         <wd-drop-menu-item
           v-model="status"
@@ -50,7 +52,7 @@
           <view class="flex justify-between items-center">
             <view class="flex items-center menu-title-box">
               <view class="menu-indicator"></view>
-              <text class="ml-1 text-xs">{{ item.code }}</text>
+              <text class="ml-1 text-sm">{{ item.code }}</text>
             </view>
 
             <view>
@@ -112,13 +114,13 @@
                   <text>鎶ヤ慨浜�: {{ item.reqUserName }}</text>
                 </view>
               </view>
-              <view class="text-color-gray text-xs mt-1">
+              <view class="text-color-gray text-sm mt-1">
                 {{ item.location }} {{ item.madeIn }}
               </view>
             </view>
             <view v-if="isSelectReq">
               <wd-button size="small" icon="edit-outline" @click.stop="handleSelectReq(item)">
-                閫変腑
+                鎺ュ崟
               </wd-button>
             </view>
           </view>
@@ -138,6 +140,7 @@
 import { useToast, useMessage } from 'wot-design-uni'
 import { getRepairReqList, delRepairReq } from '@/service/repair'
 import { DICT_REPAIR_REQ_STATUS, DICT_REPAIR_REQ_TYPE, getDictInfo } from '@/service/dict'
+import dayjs from "dayjs";
 
 const message = useMessage()
 const toast = useToast()
@@ -148,6 +151,14 @@
 
 const isSelectReq = ref(false)
 
+const filterDate = ref<string>('2')
+
+const filterDateList = ref<Record<string, any>[]>([
+  { label: '鎵�鏈夋暟鎹�', value: '0' },
+  { label: '褰撳ぉ鏁版嵁', value: '1' },
+  { label: '褰撴湀鏁版嵁', value: '2' },
+])
+
 const reqTypeList = ref<any>([{ dictLabel: '鎵�鏈夌被鍨�', dictValue: -1 }])
 const statusList = ref<any>([{ dictLabel: '鎵�鏈夌姸鎬�', dictValue: -1 }])
 function handleReqType({ value }) {
@@ -156,25 +167,47 @@
 function handleReqStatu({ value }) {
   reloadData()
 }
+function handleFilterDate({ value }) {
+  reloadData()
+}
+
+
 
 const paging = ref(null)
 const dataList = ref([])
 
 const queryList = (pageNum?: number, pageSize?: number) => {
-  const parmams = {
+  const queryParams: any = {
     pageNum,
     pageSize,
     reqType: reqTypeId.value,
     status: status.value,
   }
   if (reqTypeId.value === -1) {
-    delete parmams.reqType
+    delete queryParams.reqType
   }
   if (status.value === -1) {
-    delete parmams.status
+    delete queryParams.status
   }
 
-  getRepairReqList(parmams)
+  if (filterDate.value === '1') {
+    // 鑾峰彇褰撳墠鏃ユ湡
+    const now = dayjs()
+    queryParams.params = {
+      beginReqTime: now.startOf('day').format('YYYY-MM-DD 00:00:00'),
+      endReqTime: now.endOf('day').format('YYYY-MM-DD 23:59:59'),
+    }
+  } else if (filterDate.value === '2') {
+    const now = dayjs()
+    queryParams.params = {
+      beginReqTime: now.startOf('month').format('YYYY-MM-DD 00:00:00'),
+      endReqTime: now.endOf('month').format('YYYY-MM-DD 23:59:59'),
+    }
+  } else {
+    delete queryParams.params
+  }
+
+  getRepairReqList(queryParams)
     .then((res: any) => {
       paging.value.completeByTotal(res.rows, res.total)
     })
@@ -230,10 +263,19 @@
  * @param item
  */
 function handleSelectReq(item: any) {
-  if (isSelectReq.value) {
-    emitSelectReq(item)
-    uni.navigateBack()
-  }
+  // 寮瑰嚭纭鏄惁鎺ュ崟寮圭獥
+  message.confirm({
+    msg: '纭畾鎺ュ崟锛�',
+    title: '鎻愮ず',
+    beforeConfirm: ({ resolve }) => {
+      resolve(true)
+      // 鎺ュ崟閫昏緫澶勭悊
+      if (isSelectReq.value) {
+        emitSelectReq(item)
+        uni.navigateBack()
+      }
+    },
+  })
 }
 
 /**
@@ -246,13 +288,20 @@
   })
 }
 
-onNavigationBarButtonTap((e) => {
-  if (e.index === 0 && !isSelectReq.value) {
-    uni.navigateTo({
-      url: `/pages/repair/repair-add`,
-    })
-  }
-})
+const goBack = () => {
+  uni.navigateBack()
+}
+function handleClickRight() {
+  // if (e.index === 0 && !isSelectReq.value) {
+  //   uni.navigateTo({
+  //     url: `/pages/repair/repair-add`,
+  //   })
+  // }
+
+  uni.navigateTo({
+    url: `/pages/repair/repair-add`,
+  })
+}
 
 const eventChannel = ref<any>()
 onMounted(() => {

--
Gitblit v1.9.3