From 6887129e91d32557c2b57178180329f46df09d12 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 10 三月 2025 13:23:49 +0800
Subject: [PATCH] feat: api

---
 apps/bMiniApp/src/pages/home/index.vue |   96 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 66 insertions(+), 30 deletions(-)

diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index 637899a..83ab4f0 100644
--- a/apps/bMiniApp/src/pages/home/index.vue
+++ b/apps/bMiniApp/src/pages/home/index.vue
@@ -6,20 +6,15 @@
       </div>
     </template>
     <div class="home-header">
-      <!-- <div class="home-searchbar-wrapper">
-        <div class="searchbar-container">
-          <BlSearchbar
-            v-model.trim="searchValue"
-            placeholder="鎼滅储浠诲姟"
-            @search="handleSearch"
-            @change="handleSearch"
-          ></BlSearchbar>
+      <div class="home-searchbar-wrapper">
+        <div class="city-btn-wrapper">
+          <div class="city-btn">
+            <img :src="IconLocaltion" class="city-btn-icon" />
+            <div class="city-btn-text">{{ locationCity }}</div>
+          </div>
         </div>
-        <div class="city-btn" @click="goCitySelect">
-          <img :src="IconLocaltion" class="city-btn-icon" />
-          <div class="city-btn-text">{{ locationCity }}</div>
-        </div>
-      </div> -->
+        <div class="reset-localtion" @click="resetLocation">閲嶆柊瀹氫綅</div>
+      </div>
       <div class="home-banner-wrapper">
         <nut-swiper :auto-play="3000">
           <nut-swiper-item v-for="(item, index) in list" :key="index">
@@ -63,7 +58,7 @@
       :key="queryState.orderType"
     >
       <template #renderItem="{ item }">
-        <!-- <TaskCard @click="goTaskDetail(item)" /> -->
+        <FlexJobCard @click="goFlexJobDetail(item)" :showFooterLeft="false" />
       </template>
     </InfiniteLoading>
   </PageLayoutWithBg>
@@ -76,15 +71,16 @@
 import Taro from '@tarojs/taro';
 import { LocationUtils, trim } from '@12333/utils';
 import IconLogo from '@/assets/home/icon-logo.png';
-import { ProTabs, ProTabPane } from '@12333/components';
+import { ProTabs, ProTabPane, FlexJobCard } from '@12333/components';
 import { HomeOrderType } from './constants';
 import { useInfiniteLoading } from '@12333/hooks';
 import { OrderInputType, Gender } from '@12333/constants';
-import * as orderServices from '@12333/services/api/Order';
+import * as flexWorkerServices from '@12333/services/api/FlexWorker';
 import _ from 'lodash';
 import HomeQueryMenuView from './HomeQueryMenuView.vue';
 import HomeQueryPositionMenuView from './HomeQueryPositionMenuView.vue';
-import IconLocaltion from '@/assets/task/icon-localtion.png';
+import IconLocaltion from '@/assets/home/icon-localtion.png';
+import { setLocationCity } from '@/utils';
 
 const { locationCity } = useUser();
 
@@ -92,6 +88,7 @@
 
 const queryMenuState = reactive({
   gender: '' as any as Gender,
+  age: [15, 65],
 });
 
 const queryPositionState = reactive({
@@ -104,24 +101,25 @@
 
 const { infiniteLoadingProps } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.FrontOrderListInput = {
+    let params: API.GetFlexTaskListInput = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [
-          queryState.orderType === HomeOrderType.Recommend
-            ? { property: 'isRecommend', order: OrderInputType.Desc }
-            : { property: 'lastShelfTime', order: OrderInputType.Desc },
-        ],
+        orderInput: [{ property: 'taskId', order: OrderInputType.Desc }],
       },
     };
 
-    return orderServices.getFrontOrderList(params, {
+    return flexWorkerServices.getFlexTaskWorkerArrangeList(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['orderServices/getFrontOrderList', queryState, queryMenuState, queryPositionState],
+    queryKey: [
+      'flexWorkerServices/getFlexTaskByArrange',
+      queryState,
+      queryMenuState,
+      queryPositionState,
+    ],
   }
 );
 
@@ -148,6 +146,18 @@
 function handleMenuSelectPositionClose() {
   selectPositionItem.value?.toggle?.();
 }
+
+function goFlexJobDetail(item: API.GetFlexTaskListOutput) {
+  Taro.navigateTo({
+    url: `${RouterPath.flexJobDetail}?id=${item.taskId}`,
+  });
+}
+
+async function resetLocation() {
+  try {
+    await setLocationCity();
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss">
@@ -167,14 +177,40 @@
     margin-left: 24px;
   }
 
-  .city-btn {
+  .home-searchbar-wrapper {
+    padding: 32px 0 28px;
     display: flex;
     align-items: center;
 
-    .city-btn-text {
-      max-width: 200px;
-      @include ellipsis;
-      margin-right: 12px;
+    .city-btn-wrapper {
+      flex: 1;
+      min-width: 0;
+
+      .city-btn {
+        display: flex;
+        align-items: center;
+        padding-right: 36px;
+        color: boleGetCssVar('text-color', 'primary');
+
+        .city-btn-icon {
+          width: 40px;
+          height: 40px;
+        }
+
+        .city-btn-text {
+          max-width: 200px;
+          @include ellipsis;
+          margin-left: 12px;
+          font-size: 30px;
+        }
+      }
+    }
+
+    .reset-localtion {
+      font-weight: 400;
+      font-size: 24px;
+      color: boleGetCssVar('color', 'primary');
+      line-height: 28px;
     }
   }
 

--
Gitblit v1.9.1