From f3274a6594094d4419a0538ebc16d4601be4ef9d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 21 八月 2025 17:16:30 +0800
Subject: [PATCH] feat: 实名

---
 apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue           |   32 +++++++++-
 apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue         |   33 +++-------
 apps/bMiniApp/.eslintrc-auto-import.json                                   |    3 
 apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue         |    7 +
 apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue   |    2 
 apps/bMiniApp/auto-imports.d.ts                                            |    1 
 apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue              |   21 +++---
 apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue             |    2 
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue                |   13 ++++
 packages/components/src/Card/MineAgreementSignCard.vue                     |   35 +++--------
 apps/cMiniApp/src/hooks/access.ts                                          |   13 +++
 apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue |    2 
 apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue         |    2 
 apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue            |   11 +++
 14 files changed, 105 insertions(+), 72 deletions(-)

diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json
index be7295f..8d2ca3b 100644
--- a/apps/bMiniApp/.eslintrc-auto-import.json
+++ b/apps/bMiniApp/.eslintrc-auto-import.json
@@ -120,6 +120,7 @@
     "EnumTaskStatus": true,
     "EnumUserGender": true,
     "EnumUserStatus": true,
-    "EnumUserType": true
+    "EnumUserType": true,
+    "useAccessAuthentication": true
   }
 }
diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts
index 92fbd7a..a16c0b0 100644
--- a/apps/bMiniApp/auto-imports.d.ts
+++ b/apps/bMiniApp/auto-imports.d.ts
@@ -91,6 +91,7 @@
   const toValue: typeof import('vue')['toValue']
   const triggerRef: typeof import('vue')['triggerRef']
   const unref: typeof import('vue')['unref']
+  const useAccessAuthentication: typeof import('./src/hooks/access')['useAccessAuthentication']
   const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin']
   const useAttrs: typeof import('vue')['useAttrs']
   const useAuth: typeof import('./src/hooks/user')['useAuth']
diff --git a/apps/cMiniApp/src/hooks/access.ts b/apps/cMiniApp/src/hooks/access.ts
index 1631ceb..88bd89c 100644
--- a/apps/cMiniApp/src/hooks/access.ts
+++ b/apps/cMiniApp/src/hooks/access.ts
@@ -24,12 +24,21 @@
   return _fn as T;
 }
 
-export function useAccessReal<T extends (...args: any[]) => any>(fn: T) {
+type UseAccessRealOptions = {
+  message?: string;
+};
+
+export function useAccessReal<T extends (...args: any[]) => any>(
+  fn: T,
+  options: UseAccessRealOptions = { message: '璇峰墠寰�瀹炲悕璁よ瘉' }
+) {
+  const { message } = options;
+  console.log('message: ', message);
   const { isCertified } = useUser();
 
   const _fn = useAccessLogin((...args2) => {
     if (!isCertified.value) {
-      Message.confirm({ message: '璇峰墠寰�瀹炲悕璁よ瘉' }).then(() => {
+      Message.confirm({ message: message }).then(() => {
         Taro.navigateTo({
           url: `${RouterPath.authenticationHome}`,
         });
diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
index 7909b96..a2a8fdd 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
@@ -19,13 +19,7 @@
     :key="queryState.mineAgreementSignType"
   >
     <template #renderItem="{ item }">
-      <MineAgreementSignCard @click="goDetail">
-        <template #actions>
-          <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }">
-            {{ TaskStatusText[10] }}
-          </div>
-        </template>
-      </MineAgreementSignCard>
+      <MineAgreementSignCard @click="goDetail"> </MineAgreementSignCard>
     </template>
   </InfiniteLoading>
 </template>
@@ -33,10 +27,10 @@
 <script setup lang="ts">
 import { MineAgreementSignCard, ProTabs, ProTabPane } from '@12333/components';
 import { useUserStore } from '@/stores/modules/user';
-import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants';
+import { TaskStatus } from '@/constants';
 import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { EnumPagedListOrder } from '@12333/constants';
+import * as taskServices from '@12333/services/apiV2/task';
 import Taro from '@tarojs/taro';
 
 defineOptions({
@@ -55,20 +49,16 @@
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [
-          queryState.mineAgreementSignType === TaskStatus.All
-            ? { property: 'creationTime', order: OrderInputType.Desc }
-            : { property: 'lastShelfTime', order: OrderInputType.Desc },
-        ],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
     };
 
-    return flexWorkerServices.getFlexTaskByArrange(params, {
+    return taskServices.getPersonalHireTaskInfos(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
+    queryKey: ['taskServices/getPersonalHireTaskInfos', queryState],
   }
 );
 
@@ -82,10 +72,7 @@
 <style lang="scss">
 @import '@/styles/common.scss';
 
-.mineAgreementSign-page-wrapper {
-  .task-card-actions-text {
-    font-size: 24px;
-    line-height: 42px;
-  }
-}
+// .mineAgreementSign-page-wrapper {
+//
+// }
 </style>
diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue
index cbb5fe1..3bf5d51 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'鍗忚绛剧害'" developing>
+  <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'鍗忚绛剧害'">
     <InnerPage></InnerPage>
   </PageLayoutWithBg>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
index 0382b05..cd161c7 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
@@ -93,7 +93,7 @@
 
 const userStore = useUserStore();
 
-function goToSign() {}
+const goToSign = useAccessReal(() => {});
 </script>
 
 <style lang="scss">
diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index 66fd069..3c3f8db 100644
--- a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -23,10 +23,10 @@
       </template>
     </InfiniteLoading>
   </ContentScrollView>
-  <!-- <div class="taskCheckDetail-tips-wrapper">
+  <div class="taskCheckDetail-tips-wrapper" v-if="!isBindBankCard">
     <div class="taskCheckDetail-tips-text">鎮ㄥ皻鏈粦瀹氶摱琛屽崱锛屾殏鏃舵棤娉曠粨绠楁湇鍔¤垂</div>
-    <div class="taskCheckDetail-tips-btn">绔嬪嵆缁戝畾閾惰鍗′俊鎭�</div>
-  </div> -->
+    <div class="taskCheckDetail-tips-btn" @click="goBindBankCard">绔嬪嵆缁戝畾閾惰鍗′俊鎭�</div>
+  </div>
 </template>
 
 <script setup lang="ts">
@@ -43,6 +43,18 @@
 const id = route.params?.id as string;
 
 const { infiniteLoadingProps } = useCheckReceiveTaskUserSubmits({ id: id });
+
+const isBindBankCard = computed(
+  () =>
+    infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.enterpriseEmployeeUser
+      ?.isBindBankCard
+);
+
+function goBindBankCard() {
+  Taro.navigateTo({
+    url: `${RouterPath.unboundBankCard}`,
+  });
+}
 </script>
 
 <style lang="scss">
@@ -56,5 +68,19 @@
     margin-bottom: 16px;
     color: boleGetCssVar('text-color', 'primary');
   }
+
+  .taskCheckDetail-tips-wrapper {
+    text-align: center;
+    font-size: 24px;
+    line-height: 32px;
+
+    .taskCheckDetail-tips-text {
+      color: boleGetCssVar('text-color', 'secondary');
+    }
+
+    .taskCheckDetail-tips-btn {
+      color: boleGetCssVar('color', 'primary');
+    }
+  }
 }
 </style>
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index a10ccc6..58fd1fc 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -121,7 +121,12 @@
         :isFlex="false"
         @click="handleCall"
       ></PageFooterAction>
-      <PageFooterBtn v-if="from === 'sign'" type="primary" disabled>
+      <PageFooterBtn
+        v-if="from === 'sign'"
+        type="primary"
+        :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
+        @click="handleSign"
+      >
         {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
       </PageFooterBtn>
       <PageFooterBtn
@@ -176,6 +181,7 @@
   GetPersonalHireTaskInfosQueryStatusColor,
   GetTaskInfoQueryResultHireButtonText,
   GetTaskInfoQueryResultHireButton,
+  GetTaskInfoQueryResultApplyButton,
 } from '@12333/constants';
 import { useAccessLogin } from '@/hooks';
 
@@ -275,6 +281,11 @@
     url: `${RouterPath.taskSubmitCheck}?id=${id}`,
   });
 }
+function handleSign() {
+  // Taro.navigateTo({
+  //   url: `${RouterPath}?id=${id}`,
+  // });
+}
 
 function goMap() {
   Taro.openLocation({
diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
index b33d8d1..93e590f 100644
--- a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
@@ -9,6 +9,7 @@
             format="YYYY骞碝鏈�"
             :max-date="nowDate"
           />
+          <IconFont name="triangle-down" class="income-detail-time-picker-icon"></IconFont>
         </div>
       </template>
     </IncomeDetailListItem>
@@ -25,6 +26,7 @@
 <script setup lang="ts">
 import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components';
 import { useUserStore } from '@/stores/modules/user';
+import { IconFont } from '@nutui/icons-vue-taro';
 import Taro from '@tarojs/taro';
 import dayjs from 'dayjs';
 
@@ -50,9 +52,12 @@
 
 .incomeDetail-page-wrapper {
   .income-detail-time-picker {
+    position: relative;
+
     .nut-input {
       border-bottom: none;
       padding: 0;
+      width: 100%;
 
       .input-text {
         font-size: 20px;
@@ -64,6 +69,12 @@
         display: none;
       }
     }
+
+    .income-detail-time-picker-icon {
+      position: absolute;
+      top: 12px;
+      left: 220px;
+    }
   }
 }
 </style>
diff --git a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue
index b8b35c9..9141308 100644
--- a/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout class="incomeDetail-page-wrapper" :title="'鏀跺叆鏄庣粏'" developing>
+  <PageLayout class="incomeDetail-page-wrapper" :title="'鏀跺叆鏄庣粏'">
     <InnerPage></InnerPage>
   </PageLayout>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
index 28ae10b..bae21d2 100644
--- a/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -21,7 +21,7 @@
   name: 'InnerPage',
 });
 
-const userStore = useUserStore();
+const { isCertified } = useUser();
 
 const isBinding = ref(false);
 
@@ -30,16 +30,15 @@
     url: `${RouterPath.incomeDetail}`,
   });
 }
-function goBankBind() {
-  // Message.confirm({ message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' }).then(() => {
-  //   Taro.navigateTo({
-  //     url: `${RouterPath.authenticationHome}`,
-  //   });
-  // });
-  Taro.navigateTo({
-    url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
-  });
-}
+
+const goBankBind = useAccessReal(
+  () => {
+    Taro.navigateTo({
+      url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
+    });
+  },
+  { message: '瀹屾垚瀹炲悕璁よ瘉鍚庢墠鍙繘琛岄摱琛屽崱缁戝畾' }
+);
 </script>
 
 <style lang="scss">
diff --git a/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue b/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue
index 1d0382e..2a730f7 100644
--- a/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/mineWallet/mineWallet.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout class="mineWallet-page-wrapper" :title="'鎴戠殑閽卞寘'" developing>
+  <PageLayout class="mineWallet-page-wrapper" :title="'鎴戠殑閽卞寘'">
     <InnerPage></InnerPage>
   </PageLayout>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue
index fd5fbd0..f458fa7 100644
--- a/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/wallet/unboundBankCard/InnerPage.vue
@@ -51,10 +51,10 @@
 import { VerificationCodeBusinessType } from '@12333/constants';
 import * as commonServices from '@12333/services/api/Common';
 import Taro from '@tarojs/taro';
-import { useQuery } from '@tanstack/vue-query';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
 
 const userResumeServices = {};
-
+const queryClient = useQueryClient();
 defineOptions({
   name: 'InnerPage',
 });
@@ -124,6 +124,9 @@
           Taro.navigateTo({
             url: `${RouterPath.mineCurriculumVitae}`,
           });
+          queryClient.invalidateQueries([
+            'taskCheckReceiveServices/getCheckReceiveTaskUserSubmits',
+          ]);
         },
       });
     }
diff --git a/packages/components/src/Card/MineAgreementSignCard.vue b/packages/components/src/Card/MineAgreementSignCard.vue
index 406d63e..87d8e5e 100644
--- a/packages/components/src/Card/MineAgreementSignCard.vue
+++ b/packages/components/src/Card/MineAgreementSignCard.vue
@@ -4,20 +4,17 @@
       <div class="task-card-title">瀹佹尝浜哄姏鏃犲咖浜哄姏璧勬簮鏈夐檺鍏徃</div>
     </div>
     <div class="task-card-footer">
-      <div class="task-card-left">
-        <div class="task-card-time">2024.11.20 - 2025.11.19</div>
+      <div class="task-card-actions" :style="{ color: '#FF4D4F' }">
+        {{ '寰呯绾�' }}
       </div>
-      <div class="task-card-actions">
-        <slot name="actions">
-          <nut-button type="primary">鎶ュ悕</nut-button>
-        </slot>
-      </div>
+      <img :src="IconArrow" class="task-card-arrow" />
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
 import { CommonTaskCardProps } from './card';
+import IconArrow from '@/assets/setting/icon-arrow.png';
 
 defineOptions({
   name: 'MineAgreementSignCard',
@@ -54,30 +51,18 @@
     }
   }
 
-  .task-card-time {
-    font-size: 24px;
-    color: boleGetCssVar('text-color', 'secondary');
-    line-height: 36px;
-    margin-bottom: 6px;
-  }
-
   .task-card-footer {
     display: flex;
     align-items: center;
-
-    .task-card-left {
-      flex: 1;
-      min-width: 0;
-      display: flex;
-      align-items: center;
-    }
+    justify-content: space-between;
 
     .task-card-actions {
-      --nut-button-default-font-size: 24px;
+      font-size: 24px;
+    }
 
-      .nut-button {
-        height: 26px;
-      }
+    .task-card-arrow {
+      width: 24px;
+      height: 24px;
     }
   }
 }

--
Gitblit v1.9.1