From 186234cb3833e620aa0ae46212fe337eb2d6e77d Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 13 三月 2025 13:07:02 +0800 Subject: [PATCH] feat: 接口对接 --- 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