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