From 24dc7ec489cc2206c69ad26b4c931905ad81bd8a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 17 二月 2025 14:31:52 +0800
Subject: [PATCH] fix: b端

---
 apps/cMiniApp/src/pages/home/index.vue |  101 ++++++++++++++++++++++----------------------------
 1 files changed, 45 insertions(+), 56 deletions(-)

diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue
index 62093b5..6f60143 100644
--- a/apps/cMiniApp/src/pages/home/index.vue
+++ b/apps/cMiniApp/src/pages/home/index.vue
@@ -8,10 +8,15 @@
     <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" />
+          <img :src="IconLocaltion" class="city-btn-icon" />
           <div class="city-btn-text">{{ locationCity }}</div>
         </div>
       </div>
@@ -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:query="queryMenuState"
+              @close="handleMenuSelectClose"
+            ></HomeQueryMenuView>
+          </MenuItem>
         </Menu>
       </template>
     </ProTabs>
@@ -54,45 +57,37 @@
       :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 { setLocationCity } from '@/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';
+import IconLocaltion from '@/assets/task/icon-localtion.png';
 
 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, queryMenuState } = useTaskList(
+  { cityName: locationCity }
+);
+
+onMounted(async () => {
+  try {
+    await setLocationCity();
+  } catch (error) {}
+});
 
 function goCitySelect() {
   Taro.navigateTo({
@@ -107,28 +102,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">
@@ -159,6 +143,11 @@
       padding-left: 36px;
       color: boleGetCssVar('text-color', 'primary');
 
+      .city-btn-icon {
+        width: 40px;
+        height: 40px;
+      }
+
       .city-btn-text {
         max-width: 200px;
         @include ellipsis;

--
Gitblit v1.9.1