zhengyiming
2025-02-13 2aeb3037ac790c84161a4f6745e0ab7157820a2c
fix: b端
18个文件已修改
9个文件已添加
10个文件已删除
430 ■■■■ 已修改文件
apps/bMiniApp/config/dev.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/config/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/app.config.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/home/icon-logo.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-follow-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-follow.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-friend-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-friend.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-home-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-home.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-information-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-information.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-message-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-message.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-mine-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-mine.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-product-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-product.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-task-active.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/tabbar/icon-task.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/Menu/Menu.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/Menu/menu.scss 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/constants/router.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/constants/tabBar.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/custom-tab-bar/index.scss 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/custom-tab-bar/index.tsx 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/constants/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/home/index.vue 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/workbenches/InnerPage.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/workbenches/workbenches.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/workbenches/workbenches.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/task.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/home/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/config/dev.js
@@ -9,14 +9,14 @@
    OSS_URL: '"https://waterdroptest2.oss-cn-hangzhou.aliyuncs.com/"',
    WEMAP_KEY: 'T2UBZ-N563J-ZCHFF-XDOXN-VCH7S-CJB2T',
  },
  plugins: [
    [
      '@tarojs/plugin-mock',
      {
        mocks: mocks,
      },
    ],
  ],
  // plugins: [
  //   [
  //     '@tarojs/plugin-mock',
  //     {
  //       mocks: mocks,
  //     },
  //   ],
  // ],
  defineConstants: {},
  mini: {},
  h5: {},
apps/bMiniApp/config/index.js
@@ -106,7 +106,9 @@
    },
    webpackChain(chain, webpack) {
      if (process.env.NODE_ENV === 'development') {
        chain.plugin('analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []);
        chain
          .plugin('analyzer')
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{ analyzerPort: 8889 }]);
      }
      chain.plugin('unplugin-auto-import').use(
apps/bMiniApp/src/app.config.ts
@@ -1,6 +1,6 @@
export default defineAppConfig({
  entryPagePath: 'pages/home/index',
  pages: ['pages/home/index', 'pages/mine/index'],
  pages: ['pages/home/index', 'pages/mine/index', 'pages/workbenches/workbenches'],
  requiredPrivateInfos: ['getLocation'],
  permission: {
    'scope.userLocation': {
@@ -26,6 +26,12 @@
        text: '首页',
      },
      {
        pagePath: 'pages/workbenches/workbenches',
        iconPath: 'assets/tabbar/icon-task.png',
        selectedIconPath: 'assets/tabbar/icon-task-active.png',
        text: '工作台',
      },
      {
        pagePath: 'pages/mine/index',
        iconPath: 'assets/tabbar/icon-mine.png',
        selectedIconPath: 'assets/tabbar/icon-mine-active.png',
apps/bMiniApp/src/assets/home/icon-logo.png
apps/bMiniApp/src/assets/tabbar/icon-follow-active.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-follow.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-friend-active.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-friend.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-home-active.png

apps/bMiniApp/src/assets/tabbar/icon-home.png

apps/bMiniApp/src/assets/tabbar/icon-information-active.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-information.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-message-active.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-message.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-mine-active.png

apps/bMiniApp/src/assets/tabbar/icon-mine.png

apps/bMiniApp/src/assets/tabbar/icon-product-active.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-product.png
Binary files differ
apps/bMiniApp/src/assets/tabbar/icon-task-active.png
apps/bMiniApp/src/assets/tabbar/icon-task.png
apps/bMiniApp/src/components/Menu/Menu.vue
@@ -17,8 +17,8 @@
            <view class="nut-menu__title-text">{{ item.renderTitle() }}</view>
            <span class="nut-menu__title-icon">
              <slot name="icon">
                <RectUp v-if="direction === 'up'" :size="12" />
                <RectDown v-else :size="12" />
                <TriangleUp v-if="direction === 'up'" :size="12" />
                <TriangleDown v-else :size="12" />
              </slot>
            </span>
          </view>
@@ -30,7 +30,7 @@
</template>
<script lang="ts">
import Taro, { usePageScroll } from '@tarojs/taro';
import { RectUp, RectDown } from '@nutui/icons-vue-taro';
import { RectUp, RectDown, TriangleDown, TriangleUp } from '@nutui/icons-vue-taro';
import { useTaroRect } from 'senin-mini/hooks';
import './menu.scss';
@@ -40,6 +40,8 @@
  components: {
    RectDown,
    RectUp,
    TriangleDown,
    TriangleUp,
  },
  props: {
    activeColor: {
apps/bMiniApp/src/components/Menu/menu.scss
@@ -4,7 +4,7 @@
  color: boleGetCssVar('text-color', 'primary');
  .nut-menu__title-icon {
    color: #000;
    color: boleGetCssVar('text-color', 'secondary');
  }
  .nut-menu__title.active {
@@ -24,7 +24,7 @@
        flex: none;
        .nut-menu__title-text {
          padding-left: 0;
          font-size: 24rpx;
          font-size: 26rpx;
          color: #000;
        }
      }
apps/bMiniApp/src/constants/router.ts
@@ -7,6 +7,7 @@
  registerForm = '/subpackages/login/registerForm/registerForm',
  home = '/pages/home/index',
  mine = '/pages/mine/index',
  workbenches = '/pages/workbenches/workbenches',
  editRichContent = '/subpackages/editRichContent/editRichContent',
  // userInfo = '/subpackages/setting/userInfo/userInfo',
apps/bMiniApp/src/constants/tabBar.ts
@@ -1,4 +1,5 @@
export const TabBarPageRouter = {
  Home: '/pages/home/index',
  Workbenches: '/pages/workbenches/workbenches',
  Mine: '/pages/mine/index',
};
apps/bMiniApp/src/custom-tab-bar/index.scss
@@ -43,14 +43,14 @@
    }
    .bottom-tab-item-icon {
      width: 40px;
      height: 40px;
      width: 48px;
      height: 48px;
    }
    .bottom-tab-item-text {
      color: #707070;
      font-size: 20px;
      line-height: 24px;
      font-size: 24px;
      line-height: 28px;
    }
    .bottom-tab-item-badge {
apps/bMiniApp/src/custom-tab-bar/index.tsx
@@ -117,7 +117,7 @@
          }}
        >
          <TarBarItem
            text={'homeTitle'}
            text={'首页'}
            icon="../assets/tabbar/icon-home.png"
            activeIcon="../assets/tabbar/icon-home-active.png"
            pagePath={TabBarPageRouter.Home}
@@ -126,40 +126,25 @@
            className="home"
            onClick={switchTab}
          ></TarBarItem>
          {/* <TarBarItem
            text="行业圈"
            icon="../assets/tabbar/icon-friend.png"
            activeIcon="../assets/tabbar/icon-friend-active.png"
            pagePath={TabBarPageRouter.CircleFriend}
            index={1}
            active={system.activeTab === 1}
            className="circleFriend"
            onClick={switchTab}
          ></TarBarItem>
          <div class="bottom-tab-item publish-wrapper" onClick={goPublish}>
            <img class="bottom-tab-item-img-publish" src={IconPublish} />
            <div class="bottom-tab-item-text">发布</div>
          </div>
          <TarBarItem
            text="消息"
            icon="../assets/tabbar/icon-message.png"
            activeIcon="../assets/tabbar/icon-message-active.png"
            pagePath={TabBarPageRouter.Message}
            active={system.activeTab === 2}
            className="message"
            text="工作台"
            icon="../assets/tabbar/icon-task.png"
            activeIcon="../assets/tabbar/icon-task-active.png"
            pagePath={TabBarPageRouter.Workbenches}
            active={system.activeTab === 1}
            className="task"
            onClick={switchTab}
            index={2}
            badge={(isLogin.value && myMessageCount.value?.unReadCount) ?? 0}
          ></TarBarItem> */}
            index={1}
          ></TarBarItem>
          <TarBarItem
            text="我的"
            icon="../assets/tabbar/icon-mine.png"
            activeIcon="../assets/tabbar/icon-mine-active.png"
            pagePath={TabBarPageRouter.Mine}
            active={system.activeTab === 3}
            active={system.activeTab === 2}
            className="mine"
            onClick={switchTab}
            index={3}
            index={2}
          ></TarBarItem>
        </View>
      );
apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
New file
@@ -0,0 +1,57 @@
<template>
  <QueryMenuView @close="handleReset" @confirm="emit('close')" cancelText="重置">
    <div class="home-query-menu-view">
      <QueryMenuItem title="结算方式">
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
      <QueryMenuItem title="员工福利">
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
      <QueryMenuItem title="性别要求">
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
    </div>
  </QueryMenuView>
</template>
<script setup lang="ts">
import { QueryMenuView, QueryMenuItem, ProRadio } from '@12333/components';
import { GenderText } from '@12333/constants';
defineOptions({
  name: 'HomeQueryMenuView',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'reset'): void;
  (e: 'close'): void;
}>();
const query = defineModel<{
  gender: number | string;
}>('query');
const DefaultQuery = {
  ...query.value,
};
function handleReset() {
  for (const key in DefaultQuery) {
    query.value[key] = DefaultQuery[key];
  }
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.home-query-menu-view {
  max-height: 400px;
  padding: 30px;
  overflow: auto;
}
</style>
apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
New file
@@ -0,0 +1,47 @@
<template>
  <QueryMenuView @close="handleReset" @confirm="emit('close')" cancelText="重置">
    <div class="home-query-position-menu-view">
      <PositionSelectView v-model="query.position" />
    </div>
  </QueryMenuView>
</template>
<script setup lang="ts">
import { QueryMenuView, QueryMenuItem, PositionSelectView } from '@12333/components';
import { GenderText } from '@12333/constants';
defineOptions({
  name: 'HomeQueryPositionMenuView',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'reset'): void;
  (e: 'close'): void;
}>();
const query = defineModel<{
  position: any[];
}>('query');
const DefaultQuery = {
  ...query.value,
};
function handleReset() {
  for (const key in DefaultQuery) {
    query.value[key] = DefaultQuery[key];
  }
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.home-query-position-menu-view {
  max-height: 400px;
}
</style>
apps/bMiniApp/src/pages/home/constants/index.ts
New file
@@ -0,0 +1,4 @@
export enum HomeOrderType {
  Recommend = 'Recommend',
  LastShelfTime = 'LastShelfTime',
}
apps/bMiniApp/src/pages/home/index.vue
@@ -1,11 +1,71 @@
<template>
  <PageLayoutWithBg class="index-page-wrapper" :title="'首页'" :need-auth="false">
  <PageLayoutWithBg class="index-page-wrapper" :title="''" :need-auth="false">
    <template #left>
      <div class="menu-btn-wrapper city-btn" @click="goCitySelect">
        <div class="city-btn-text">{{ locationCity }}</div>
        <RectDown :size="12" />
      <div class="menu-btn-wrapper menu-logo">
        <img :src="IconLogo" class="logo" />
      </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>
        <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">
        <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>
    <ProTabs
      v-model="queryState.orderType"
      name="home-tab"
      :showPaneContent="false"
      :showSmile="false"
      class="home-tabs"
      isTransparent
      title-gutter="8"
      title-scroll
    >
      <ProTabPane :title="`推荐`" :pane-key="HomeOrderType.Recommend"></ProTabPane>
      <ProTabPane :title="`最新`" :pane-key="HomeOrderType.LastShelfTime"></ProTabPane>
      <template #right>
        <Menu>
          <MenuItem title="岗位" ref="selectPositionItem">
            <HomeQueryPositionMenuView
              v-model:query="queryPositionState"
              @close="handleMenuSelectPositionClose"
            ></HomeQueryPositionMenuView>
          </MenuItem>
          <MenuItem title="筛选" ref="selectItem">
            <HomeQueryMenuView
              v-model:query="queryMenuState"
              @close="handleMenuSelectClose"
            ></HomeQueryMenuView>
          </MenuItem>
        </Menu>
      </template>
    </ProTabs>
    <InfiniteLoading
      scrollViewClassName="common-infinite-scroll-list home-list"
      v-bind="infiniteLoadingProps"
      :key="queryState.orderType"
    >
      <template #renderItem="{ item }">
        <!-- <TaskCard @click="goTaskDetail(item)" /> -->
      </template>
    </InfiniteLoading>
  </PageLayoutWithBg>
</template>
@@ -14,30 +74,99 @@
import { useUserStore } from '@/stores/modules/user';
import { RectDown } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import { LocationUtils } from '@12333/utils';
import { LocationUtils, trim } from '@12333/utils';
import IconLogo from '@/assets/home/icon-logo.png';
import { ProTabs, ProTabPane } 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 _ from 'lodash';
import HomeQueryMenuView from './HomeQueryMenuView.vue';
import HomeQueryPositionMenuView from './HomeQueryPositionMenuView.vue';
import IconLocaltion from '@/assets/task/icon-localtion.png';
const { locationCity } = useUser();
const userStore = useUserStore();
const queryMenuState = reactive({
  gender: '' as any as Gender,
});
const queryPositionState = reactive({
  position: [],
});
const queryState = reactive({
  orderType: HomeOrderType.Recommend,
});
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 },
        ],
      },
    };
    return orderServices.getFrontOrderList(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['orderServices/getFrontOrderList', queryState, queryMenuState, queryPositionState],
  }
);
function goCitySelect() {
  Taro.navigateTo({
    url: RouterPath.citySelect,
  });
}
// onMounted(async () => {
//   if (!isSetMatchMakingIdentity.value) {
//     Taro.navigateTo({
//       url: RouterPath.toggleMatchMakingIdentity,
//     });
//   }
// });
const list = ref([
  'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg',
  'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg',
  'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg',
  'https://storage.360buyimg.com/jdc-article/fristfabu.jpg',
]);
const selectItem = ref();
const selectPositionItem = ref();
function handleMenuSelectClose() {
  selectItem.value?.toggle?.();
}
function handleMenuSelectPositionClose() {
  selectPositionItem.value?.toggle?.();
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.index-page-wrapper {
  .menu-logo {
    padding: 0;
    .logo {
      width: 96px;
      height: 64px;
    }
  }
  .nut-menu__item + .nut-menu__item {
    margin-left: 24px;
  }
  .city-btn {
    display: flex;
    align-items: center;
@@ -48,5 +177,21 @@
      margin-right: 12px;
    }
  }
  .home-banner-wrapper {
    .banner-img {
      width: 100%;
      height: 260px;
      object-fit: cover;
    }
  }
  .home-header {
    padding: 0 boleGetCssVar('size', 'body-padding-h');
  }
  .home-list {
    @include infiniteLoadingInTabBarPage;
  }
}
</style>
apps/bMiniApp/src/pages/workbenches/InnerPage.vue
New file
@@ -0,0 +1,13 @@
<template>
  <div>InnerPage</div>
</template>
<script setup lang="ts">
defineOptions({
  name: 'InnerPage',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/bMiniApp/src/pages/workbenches/workbenches.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/pages/workbenches/workbenches.vue
New file
@@ -0,0 +1,13 @@
<template>
  <PageLayoutWithBg class="workbenches-page-wrapper" title="工作台">
    <InnerPage />
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'workbenches',
});
</script>
apps/cMiniApp/src/hooks/task.ts
@@ -12,15 +12,14 @@
export function useTaskList() {
  const searchValue = ref('');
  const DefaultQueryState = {
  const queryMenuState = reactive({
    gender: '' as any as Gender,
  };
  });
  const queryState = reactive({
    searchValueTrim: '',
    orderType: HomeOrderType.Recommend,
    companyId: '',
    ...DefaultQueryState,
  });
  const handleSearch = _.debounce(function () {
@@ -46,14 +45,14 @@
      });
    },
    {
      queryKey: ['orderServices/getFrontOrderList', queryState],
      queryKey: ['orderServices/getFrontOrderList', queryState, queryMenuState],
    }
  );
  return {
    searchValue,
    queryState,
    DefaultQueryState,
    queryMenuState,
    handleSearch,
    infiniteLoadingProps,
  };
apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue
@@ -2,13 +2,13 @@
  <QueryMenuView @close="handleReset" @confirm="emit('close')" cancelText="重置">
    <div class="home-query-menu-view">
      <QueryMenuItem title="结算方式">
        <ProRadio v-model="gender" :value-enum="GenderText" show-all-btn></ProRadio>
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
      <QueryMenuItem title="员工福利">
        <ProRadio v-model="gender" :value-enum="GenderText" show-all-btn></ProRadio>
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
      <QueryMenuItem title="性别要求">
        <ProRadio v-model="gender" :value-enum="GenderText" show-all-btn></ProRadio>
        <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio>
      </QueryMenuItem>
    </div>
  </QueryMenuView>
@@ -31,10 +31,18 @@
  (e: 'close'): void;
}>();
const gender = defineModel<number | string>('gender');
const query = defineModel<{
  gender: number | string;
}>('query');
const DefaultQuery = {
  ...query.value,
};
function handleReset() {
  emit('reset');
  for (const key in DefaultQuery) {
    query.value[key] = DefaultQuery[key];
  }
}
</script>
apps/cMiniApp/src/pages/home/index.vue
@@ -44,9 +44,8 @@
        <Menu>
          <MenuItem title="筛选" ref="selectItem">
            <HomeQueryMenuView
              v-model:gender="queryState.gender"
              v-model:query="queryMenuState"
              @close="handleMenuSelectClose"
              @reset="handleMenuSelectReset"
            ></HomeQueryMenuView>
          </MenuItem>
        </Menu>
@@ -80,7 +79,7 @@
const userStore = useUserStore();
const { searchValue, queryState, handleSearch, infiniteLoadingProps, DefaultQueryState } =
const { searchValue, queryState, handleSearch, infiniteLoadingProps, queryMenuState } =
  useTaskList();
function goCitySelect() {
@@ -100,9 +99,6 @@
function handleMenuSelectClose() {
  selectItem.value?.toggle?.();
}
function handleMenuSelectReset() {
  Object.assign(queryState, { ...DefaultQueryState });
}
function goTaskDetail(item: API.FrontOrderList) {
apps/cMiniApp/src/pages/mine/index.vue
@@ -82,7 +82,7 @@
        <ListItem :icon="IconCollect" title="我收藏的任务" @click="goMineCollectTask"></ListItem>
        <ListItem :icon="IconAgreement" title="协议签约" @click="goMineAgreementSign"></ListItem>
        <ListItem :icon="IconSetting" title="设置" @click="goSetting"></ListItem>
        <ListItem :icon="IconRecruit" title="我要招人/用人" @click="goSetting"></ListItem>
        <!-- <ListItem :icon="IconRecruit" title="我要招人/用人" @click="goSetting"></ListItem> -->
      </List>
    </ContentScrollView>
  </PageLayoutWithBg>