From 8ddaa42086bc67dac16ea596d212b79d3b832313 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 12 二月 2025 14:58:45 +0800
Subject: [PATCH] fix: task

---
 apps/cMiniApp/src/pages/home/index.vue |   83 ++++++++++++++---------------------------
 1 files changed, 29 insertions(+), 54 deletions(-)

diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue
index 62093b5..9be0cad 100644
--- a/apps/cMiniApp/src/pages/home/index.vue
+++ b/apps/cMiniApp/src/pages/home/index.vue
@@ -8,7 +8,12 @@
     <div class="home-header">
       <div class="home-searchbar-wrapper">
         <div class="searchbar-container">
-          <BlSearchbar v-model.trim="searchValue" placeholder="鎼滅储浠诲姟"></BlSearchbar>
+          <BlSearchbar
+            v-model.trim="searchValue"
+            placeholder="鎼滅储浠诲姟"
+            @search="handleSearch"
+            @change="handleSearch"
+          ></BlSearchbar>
         </div>
         <div class="city-btn" @click="goCitySelect">
           <Location2 :size="16" />
@@ -27,24 +32,22 @@
       v-model="queryState.orderType"
       name="home-tab"
       :showPaneContent="false"
+      :showSmile="false"
       class="home-tabs"
       isTransparent
-      title-gutter="12"
+      title-gutter="8"
       title-scroll
     >
       <ProTabPane :title="`鎺ㄨ崘`" :pane-key="HomeOrderType.Recommend"></ProTabPane>
       <ProTabPane :title="`鏈�鏂癭" :pane-key="HomeOrderType.LastShelfTime"></ProTabPane>
       <template #right>
         <Menu>
-          <MenuItem
-            v-model="queryState.orderByProperty"
-            title="绛涢��"
-            ref="selectItem"
-            :options="[
-              { text: '鎺掑簭', value: 'userId' },
-              { text: '鎸夊叧娉ㄦ椂闂�', value: 'creationTime' },
-            ]"
-          />
+          <MenuItem title="绛涢��" ref="selectItem">
+            <HomeQueryMenuView
+              v-model:gender="queryState.gender"
+              @close="handleMenuSelectClose"
+            ></HomeQueryMenuView>
+          </MenuItem>
         </Menu>
       </template>
     </ProTabs>
@@ -54,45 +57,28 @@
       :key="queryState.orderType"
     >
       <template #renderItem="{ item }">
-        <TaskCard />
+        <TaskCard @click="goTaskDetail(item)" />
       </template>
     </InfiniteLoading>
   </PageLayoutWithBg>
 </template>
 
 <script setup lang="ts">
-import { useUser } from '@/hooks';
+import { useUser, useTaskList, HomeOrderType } from '@/hooks';
 import { useUserStore } from '@/stores/modules/user';
 import { RectDown, Location2 } from '@nutui/icons-vue-taro';
 import Taro from '@tarojs/taro';
 import { LocationUtils, trim } from '@12333/utils';
 import _ from 'lodash';
 import IconLogo from '@/assets/home/icon-logo.png';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as orderServices from '@12333/services/api/Order';
 import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
-import { HomeOrderType } from './constants';
+import HomeQueryMenuView from './HomeQueryMenuView.vue';
 
 const { locationCity } = useUser();
 
-Taro.usePageScroll(() => {
-  console.log('11', 11);
-});
-
-const searchValue = ref('');
-
-const queryState = reactive({
-  searchValueTrim: '',
-  orderType: HomeOrderType.Recommend,
-  orderByProperty: 'userId',
-});
-
-const handleSearch = _.debounce(function () {
-  queryState.searchValueTrim = trim(searchValue.value);
-}, 300);
-
 const userStore = useUserStore();
+
+const { searchValue, queryState, handleSearch, infiniteLoadingProps } = useTaskList();
 
 function goCitySelect() {
   Taro.navigateTo({
@@ -107,28 +93,17 @@
   'https://storage.360buyimg.com/jdc-article/fristfabu.jpg',
 ]);
 
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.FrontOrderListInput = {
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [
-          queryState.orderType === HomeOrderType.Recommend
-            ? { property: 'isRecommend', order: OrderInputType.Desc }
-            : { property: 'lastShelfTime', order: OrderInputType.Desc },
-        ],
-      },
-    };
+const selectItem = ref();
 
-    return orderServices.getFrontOrderList(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['orderServices/getFrontOrderList', queryState],
-  }
-);
+function handleMenuSelectClose() {
+  selectItem.value?.toggle?.();
+}
+
+function goTaskDetail(item: API.FrontOrderList) {
+  Taro.navigateTo({
+    url: `${RouterPath.taskDetail}?id=${item.id}`,
+  });
+}
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1