From f67339ba8ff32589b2cbda0be19db932b4b2b121 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 13 二月 2025 15:52:54 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 apps/bMiniApp/config/index.js                              |    4 
 apps/bMiniApp/src/assets/tabbar/icon-home.png              |    0 
 apps/cMiniApp/src/pages/home/index.vue                     |    8 
 apps/bMiniApp/src/assets/tabbar/icon-home-active.png       |    0 
 apps/bMiniApp/src/constants/router.ts                      |    1 
 apps/bMiniApp/src/pages/workbenches/InnerPage.vue          |   13 +
 apps/bMiniApp/src/custom-tab-bar/index.scss                |    8 
 apps/bMiniApp/src/assets/tabbar/icon-mine.png              |    0 
 apps/bMiniApp/src/app.config.ts                            |    8 
 apps/bMiniApp/src/assets/tabbar/icon-mine-active.png       |    0 
 apps/bMiniApp/src/components/Menu/Menu.vue                 |    8 
 apps/bMiniApp/src/components/Menu/menu.scss                |    4 
 apps/bMiniApp/src/assets/home/icon-logo.png                |    0 
 apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue         |   18 +
 apps/bMiniApp/src/pages/home/index.vue                     |  169 +++++++++++++++++++-
 apps/cMiniApp/src/pages/mine/index.vue                     |    2 
 apps/bMiniApp/src/assets/tabbar/icon-task.png              |    0 
 apps/bMiniApp/src/constants/tabBar.ts                      |    1 
 apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue |   47 +++++
 apps/bMiniApp/src/pages/workbenches/workbenches.config.ts  |    3 
 apps/cMiniApp/src/hooks/task.ts                            |    9 
 apps/bMiniApp/src/assets/tabbar/icon-task-active.png       |    0 
 /dev/null                                                  |    0 
 apps/bMiniApp/src/pages/home/constants/index.ts            |    4 
 apps/bMiniApp/src/custom-tab-bar/index.tsx                 |   37 +---
 apps/bMiniApp/src/pages/workbenches/workbenches.vue        |   13 +
 packages/components/src/Card/FlexJobCard.vue               |    1 
 apps/bMiniApp/config/dev.js                                |   16 +-
 apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue         |   57 +++++++
 29 files changed, 357 insertions(+), 74 deletions(-)

diff --git a/apps/bMiniApp/config/dev.js b/apps/bMiniApp/config/dev.js
index 761ccfb..05b5f02 100644
--- a/apps/bMiniApp/config/dev.js
+++ b/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: {},
diff --git a/apps/bMiniApp/config/index.js b/apps/bMiniApp/config/index.js
index bb4c8db..49d75a1 100644
--- a/apps/bMiniApp/config/index.js
+++ b/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(
diff --git a/apps/bMiniApp/src/app.config.ts b/apps/bMiniApp/src/app.config.ts
index 5477fee..f6774a8 100644
--- a/apps/bMiniApp/src/app.config.ts
+++ b/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',
diff --git a/apps/bMiniApp/src/assets/home/icon-logo.png b/apps/bMiniApp/src/assets/home/icon-logo.png
new file mode 100644
index 0000000..084a4b0
--- /dev/null
+++ b/apps/bMiniApp/src/assets/home/icon-logo.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-follow-active.png b/apps/bMiniApp/src/assets/tabbar/icon-follow-active.png
deleted file mode 100644
index 8935690..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-follow-active.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-follow.png b/apps/bMiniApp/src/assets/tabbar/icon-follow.png
deleted file mode 100644
index 1a52d69..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-follow.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-friend-active.png b/apps/bMiniApp/src/assets/tabbar/icon-friend-active.png
deleted file mode 100644
index 9c87699..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-friend-active.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-friend.png b/apps/bMiniApp/src/assets/tabbar/icon-friend.png
deleted file mode 100644
index e7925dd..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-friend.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-home-active.png b/apps/bMiniApp/src/assets/tabbar/icon-home-active.png
index 89b000a..6ac80b1 100644
--- a/apps/bMiniApp/src/assets/tabbar/icon-home-active.png
+++ b/apps/bMiniApp/src/assets/tabbar/icon-home-active.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-home.png b/apps/bMiniApp/src/assets/tabbar/icon-home.png
index 8fcdf1c..76ad785 100644
--- a/apps/bMiniApp/src/assets/tabbar/icon-home.png
+++ b/apps/bMiniApp/src/assets/tabbar/icon-home.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-information-active.png b/apps/bMiniApp/src/assets/tabbar/icon-information-active.png
deleted file mode 100644
index c0d442f..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-information-active.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-information.png b/apps/bMiniApp/src/assets/tabbar/icon-information.png
deleted file mode 100644
index bff15c8..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-information.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-message-active.png b/apps/bMiniApp/src/assets/tabbar/icon-message-active.png
deleted file mode 100644
index fb4e87d..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-message-active.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-message.png b/apps/bMiniApp/src/assets/tabbar/icon-message.png
deleted file mode 100644
index 0635f33..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-message.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-mine-active.png b/apps/bMiniApp/src/assets/tabbar/icon-mine-active.png
index ba19ce1..8e174e6 100644
--- a/apps/bMiniApp/src/assets/tabbar/icon-mine-active.png
+++ b/apps/bMiniApp/src/assets/tabbar/icon-mine-active.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-mine.png b/apps/bMiniApp/src/assets/tabbar/icon-mine.png
index dddc254..d399adb 100644
--- a/apps/bMiniApp/src/assets/tabbar/icon-mine.png
+++ b/apps/bMiniApp/src/assets/tabbar/icon-mine.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-product-active.png b/apps/bMiniApp/src/assets/tabbar/icon-product-active.png
deleted file mode 100644
index a5d9e0c..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-product-active.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-product.png b/apps/bMiniApp/src/assets/tabbar/icon-product.png
deleted file mode 100644
index 7167f0d..0000000
--- a/apps/bMiniApp/src/assets/tabbar/icon-product.png
+++ /dev/null
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-task-active.png b/apps/bMiniApp/src/assets/tabbar/icon-task-active.png
new file mode 100644
index 0000000..7f3906a
--- /dev/null
+++ b/apps/bMiniApp/src/assets/tabbar/icon-task-active.png
Binary files differ
diff --git a/apps/bMiniApp/src/assets/tabbar/icon-task.png b/apps/bMiniApp/src/assets/tabbar/icon-task.png
new file mode 100644
index 0000000..b1ce967
--- /dev/null
+++ b/apps/bMiniApp/src/assets/tabbar/icon-task.png
Binary files differ
diff --git a/apps/bMiniApp/src/components/Menu/Menu.vue b/apps/bMiniApp/src/components/Menu/Menu.vue
index 309ad7d..dbf99e6 100644
--- a/apps/bMiniApp/src/components/Menu/Menu.vue
+++ b/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: {
diff --git a/apps/bMiniApp/src/components/Menu/menu.scss b/apps/bMiniApp/src/components/Menu/menu.scss
index e8fbe15..4641c59 100644
--- a/apps/bMiniApp/src/components/Menu/menu.scss
+++ b/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;
         }
       }
diff --git a/apps/bMiniApp/src/constants/router.ts b/apps/bMiniApp/src/constants/router.ts
index f71ad29..8aa78f5 100644
--- a/apps/bMiniApp/src/constants/router.ts
+++ b/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',
diff --git a/apps/bMiniApp/src/constants/tabBar.ts b/apps/bMiniApp/src/constants/tabBar.ts
index 405c9bd..977f397 100644
--- a/apps/bMiniApp/src/constants/tabBar.ts
+++ b/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',
 };
diff --git a/apps/bMiniApp/src/custom-tab-bar/index.scss b/apps/bMiniApp/src/custom-tab-bar/index.scss
index 8b60f24..d084602 100644
--- a/apps/bMiniApp/src/custom-tab-bar/index.scss
+++ b/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 {
diff --git a/apps/bMiniApp/src/custom-tab-bar/index.tsx b/apps/bMiniApp/src/custom-tab-bar/index.tsx
index fd1eeda..083f636 100644
--- a/apps/bMiniApp/src/custom-tab-bar/index.tsx
+++ b/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>
       );
diff --git a/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
new file mode 100644
index 0000000..26a6979
--- /dev/null
+++ b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue
@@ -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>
diff --git a/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue b/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
new file mode 100644
index 0000000..14cb778
--- /dev/null
+++ b/apps/bMiniApp/src/pages/home/HomeQueryPositionMenuView.vue
@@ -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>
diff --git a/apps/bMiniApp/src/pages/home/constants/index.ts b/apps/bMiniApp/src/pages/home/constants/index.ts
new file mode 100644
index 0000000..ff9bf0b
--- /dev/null
+++ b/apps/bMiniApp/src/pages/home/constants/index.ts
@@ -0,0 +1,4 @@
+export enum HomeOrderType {
+  Recommend = 'Recommend',
+  LastShelfTime = 'LastShelfTime',
+}
diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index e3d38b0..637899a 100644
--- a/apps/bMiniApp/src/pages/home/index.vue
+++ b/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>
diff --git a/apps/bMiniApp/src/pages/workbenches/InnerPage.vue b/apps/bMiniApp/src/pages/workbenches/InnerPage.vue
new file mode 100644
index 0000000..77f18e3
--- /dev/null
+++ b/apps/bMiniApp/src/pages/workbenches/InnerPage.vue
@@ -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>
diff --git a/apps/bMiniApp/src/pages/workbenches/workbenches.config.ts b/apps/bMiniApp/src/pages/workbenches/workbenches.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/bMiniApp/src/pages/workbenches/workbenches.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+  disableScroll: true,
+});
diff --git a/apps/bMiniApp/src/pages/workbenches/workbenches.vue b/apps/bMiniApp/src/pages/workbenches/workbenches.vue
new file mode 100644
index 0000000..086b9fd
--- /dev/null
+++ b/apps/bMiniApp/src/pages/workbenches/workbenches.vue
@@ -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>
diff --git a/apps/cMiniApp/src/hooks/task.ts b/apps/cMiniApp/src/hooks/task.ts
index 38b1733..36970be 100644
--- a/apps/cMiniApp/src/hooks/task.ts
+++ b/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,
   };
diff --git a/apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue b/apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue
index 3a181c1..26a6979 100644
--- a/apps/cMiniApp/src/pages/home/HomeQueryMenuView.vue
+++ b/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>
 
diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue
index a627853..8ec5e32 100644
--- a/apps/cMiniApp/src/pages/home/index.vue
+++ b/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) {
diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue
index e93c6c9..b1746f9 100644
--- a/apps/cMiniApp/src/pages/mine/index.vue
+++ b/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>
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index 9f30459..6218572 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -169,6 +169,7 @@
     .flexJob-card-footer-right {
       --nut-button-default-font-size: 24px;
       --nut-button-default-height: 52px;
+      --nut-button-default-line-height: 49px;
     }
   }
 }

--
Gitblit v1.9.1