From 2aeb3037ac790c84161a4f6745e0ab7157820a2c Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 13 二月 2025 15:42:07 +0800 Subject: [PATCH] fix: b端 --- apps/cMiniApp/src/pages/home/index.vue | 92 ++++++++++++++++++--------------------------- 1 files changed, 37 insertions(+), 55 deletions(-) diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue index 62093b5..8ec5e32 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,30 @@ :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 _ 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(); function goCitySelect() { Taro.navigateTo({ @@ -107,28 +95,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 +136,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