From c2463c02a17f92df55ec77ed2da3fb724290c072 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 17:34:30 +0800
Subject: [PATCH] fix: bug

---
 apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue |  143 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 111 insertions(+), 32 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
index 3647a1d..ca0f4ac 100644
--- a/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryMenuState.status"
+    v-model="queryState.paymentStatus"
     name="task-tab"
     :showPaneContent="false"
     class="task-tabs"
@@ -8,64 +8,136 @@
     title-gutter="8"
     title-scroll
   >
-    <ProTabPane :title="`寰呭鏍�(${waitAssignCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
     <ProTabPane
-      :title="`宸插鏍�(${completedAssignCount})`"
-      :pane-key="EnumTaskStatus.Complete"
+      :title="`寰呭鏍�(${waitAuditCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.WaitAudit"
     ></ProTabPane>
     <ProTabPane
-      :title="`宸插彂鏀�(${completedAssignCount})`"
-      :pane-key="EnumTaskStatus.Complete"
+      :title="`宸插鏍�(${completedAuditCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedAudit"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`宸插彂鏀�(${completedReleaseCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedRelease"
     ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
-    scrollViewClassName="common-infinite-scroll-list"
+    scrollViewClassName="common-infinite-scroll-list payroll-manage-list"
     v-bind="infiniteLoadingProps"
-    :key="queryMenuState.status"
+    :key="queryState.paymentStatus"
   >
     <template #renderItem="{ item }">
       <IncomeDetailListItem
-        :title="item.name"
-        :funds="100"
-        :item="dayjs(item.createdTime).format('YYYY-MM-DD HH:mm:ss')"
-        :value="`閽卞寘浣欓锛�${toThousand(item.serviceFee)}`"
-        @click="goPayrollManageDetail(item)"
+        :title="item.code"
+        :funds="item.settlementAmount"
+        :item="item.settlementTime ? dayjs(item.settlementTime).format('YYYY-MM-DD HH:mm:ss') : ''"
+        @click="openPassword(item)"
       >
       </IncomeDetailListItem>
     </template>
   </InfiniteLoading>
+  <nut-short-password
+    v-model="form.password"
+    v-model:visible="form.passwordVisible"
+    @focus="form.showKeyboard = true"
+    tips="璇疯緭鍏�6浣嶆搷浣滃瘑鐮�"
+    desc="鏄庣粏闇�杈撳叆鎿嶄綔瀵嗙爜鎵嶈兘鏌ョ湅"
+    :length="6"
+    @complete="complete"
+  >
+  </nut-short-password>
+  <nut-number-keyboard
+    v-model="form.password"
+    v-model:visible="form.showKeyboard"
+    @blur="form.showKeyboard = false"
+  >
+  </nut-number-keyboard>
 </template>
 
 <script setup lang="ts">
 import { ProTabs, ProTabPane, IncomeDetailListItem } from '@12333/components';
 import Taro from '@tarojs/taro';
 import dayjs from 'dayjs';
-import { toThousand } from '@12333/utils';
-import { EnumTaskStatus } from '@12333/constants';
-import { useTaskList } from '@12333/hooks';
+import { GetSettlementTasksQueryPaymentStatus, EnumPagedListOrder } from '@12333/constants';
+import * as taskServices from '@12333/services/apiV2/task';
+import * as userServices from '@12333/services/apiV2/user';
+import { useInfiniteLoading } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const { queryMenuState, infiniteLoadingProps } = useTaskList({
-  defaultQueryMenuState: {
-    status: EnumTaskStatus.Wait,
+const form = reactive({
+  password: '',
+  passwordVisible: false,
+  showKeyboard: false,
+  id: '',
+});
+
+const queryState = reactive({
+  paymentStatus: GetSettlementTasksQueryPaymentStatus.WaitAudit,
+});
+
+const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
+  ({ pageParam }) => {
+    let params: API.GetSettlementTasksQuery = {
+      pageModel: {
+        rows: 20,
+        page: pageParam,
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      },
+      paymentStatus: queryState.paymentStatus,
+    };
+    return taskServices.getSettlementTasks(params, {
+      showLoading: false,
+    });
   },
+  {
+    queryKey: ['taskServices/getSettlementTasks', queryState],
+  }
+);
+
+const completedAuditCount = computed(() => {
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAuditCount ?? 0;
+});
+const waitAuditCount = computed(() => {
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAuditCount ?? 0;
+});
+const completedReleaseCount = computed(() => {
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedReleaseCount ?? 0;
 });
 
-const completedAssignCount = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAssignCount ?? 0;
-});
-const waitAssignCount = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0;
-});
+function openPassword(item: API.GetSettlementTasksQueryResultItem) {
+  form.passwordVisible = true;
+  form.showKeyboard = true;
+  form.id = item.id;
+}
 
-function goPayrollManageDetail(item: API.GetTaskInfosQueryResultItem) {
+function complete(value: string) {
+  form.passwordVisible = false;
+  buildOperatorToken(value);
+}
+
+async function buildOperatorToken(value: string) {
+  try {
+    let params: API.BuildOperatorTokenCommand = {
+      password: value,
+    };
+    let res = await userServices.buildOperatorToken(params);
+    if (res) {
+      goPayrollManageDetail(form.id, res.operatorToken);
+    }
+  } catch (error) {
+    form.showKeyboard = false;
+  } finally {
+    form.password = '';
+    form.showKeyboard = false;
+  }
+}
+
+async function goPayrollManageDetail(id: string, operatorToken: string) {
   Taro.navigateTo({
-    url: `${RouterPath.payrollManageDetail}?id=${
-      item.id
-    }&date=${'Fri Oct 17 2025 18:49:01 GMT+0800'}`,
+    url: `${RouterPath.payrollManageDetail}?id=${id}&operatorToken=${operatorToken}`,
   });
 }
 </script>
@@ -73,9 +145,16 @@
 <style lang="scss">
 @import '@/styles/common.scss';
 
-.taskManage-page-wrapper {
-  .dark-btn {
-    margin-left: 12px;
+.payrollManage-page-wrapper {
+  .payroll-manage-list {
+    .income-detail-list-item-inner {
+      display: flex;
+      flex-direction: column;
+      background: #ffffff;
+      border-radius: 12px;
+      padding: 40px;
+      margin-bottom: 24px;
+    }
   }
 }
 </style>

--
Gitblit v1.9.1