From 813aa71b46c10196c06c78c2dfb1c2aceabc79ed Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期五, 08 八月 2025 13:35:50 +0800 Subject: [PATCH] fix: 任务发布 --- apps/bMiniApp/src/pages/home/index.vue | 118 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 86 insertions(+), 32 deletions(-) diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue index 637899a..72f0e72 100644 --- a/apps/bMiniApp/src/pages/home/index.vue +++ b/apps/bMiniApp/src/pages/home/index.vue @@ -6,27 +6,22 @@ </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="home-banner-wrapper"> + <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"> <img :src="item" class="banner-img" draggable="false" /> </nut-swiper-item> </nut-swiper> - </div> + </div> --> </div> <ProTabs v-model="queryState.orderType" @@ -63,7 +58,7 @@ :key="queryState.orderType" > <template #renderItem="{ item }"> - <!-- <TaskCard @click="goTaskDetail(item)" /> --> + <FlexJobCard @click="goFlexJobDetail(item)" :showFooterLeft="false" /> </template> </InfiniteLoading> </PageLayoutWithBg> @@ -76,26 +71,35 @@ 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 { + EnumPagedListOrder, + EnumTaskRecommendStatus, + EnumTaskReleaseStatus, + EnumUserGender, +} from '@12333/constants'; +import * as taskServices from '@12333/services/apiV2/task'; 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(); const userStore = useUserStore(); const queryMenuState = reactive({ - gender: '' as any as Gender, + genderLimit: '' as any as EnumUserGender, + age: [15, 65], + identity: '', + certificateType: '', }); const queryPositionState = reactive({ - position: [], + position: [] as string[], }); const queryState = reactive({ @@ -104,24 +108,36 @@ const { infiniteLoadingProps } = useInfiniteLoading( ({ pageParam }) => { - let params: API.FrontOrderListInput = { + let params: API.GetTaskInfosQuery = { pageModel: { rows: 20, page: pageParam, orderInput: [ queryState.orderType === HomeOrderType.Recommend - ? { property: 'isRecommend', order: OrderInputType.Desc } - : { property: 'lastShelfTime', order: OrderInputType.Desc }, + ? { property: 'createdTime', order: EnumPagedListOrder.Desc } + : {}, ], }, + // keywords: 'string', + // time: '2025-08-08T02:58:58.756Z', + // cityCode: 'string', + // settlementCycle: 10, + // benefitCodes: ['string'], + genderLimit: queryMenuState.genderLimit, + // status: 10, + releaseStatus: EnumTaskReleaseStatus.InProcess, }; - return orderServices.getFrontOrderList(params, { + if (queryState.orderType === HomeOrderType.Recommend) { + params.recommendStatus = EnumTaskRecommendStatus.Yes; + } + + return taskServices.getTaskInfos(params, { showLoading: false, }); }, { - queryKey: ['orderServices/getFrontOrderList', queryState, queryMenuState, queryPositionState], + queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, queryPositionState], } ); @@ -148,6 +164,18 @@ function handleMenuSelectPositionClose() { selectPositionItem.value?.toggle?.(); } + +function goFlexJobDetail(item: API.GetTaskInfosQueryResultItem) { + Taro.navigateTo({ + url: `${RouterPath.flexJobDetail}?id=${item.id}`, + }); +} + +async function resetLocation() { + try { + await setLocationCity(); + } catch (error) {} +} </script> <style lang="scss"> @@ -167,14 +195,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