From fb243f3345c6f3ed7e7c8c2d98c39b5afc782b9a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 10:24:40 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

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

diff --git a/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
new file mode 100644
index 0000000..317f62a
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
@@ -0,0 +1,147 @@
+<template>
+  <ProTabs
+    v-model="queryState.paymentStatus"
+    name="task-tab"
+    :showPaneContent="false"
+    class="task-tabs"
+    isTransparent
+    title-gutter="8"
+    title-scroll
+  >
+    <ProTabPane
+      :title="`寰呭鏍�(${waitAuditCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.WaitAudit"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`宸插鏍�(${completedAuditCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedAudit"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`宸插彂鏀�(${completedReleaseCount})`"
+      :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedRelease"
+    ></ProTabPane>
+  </ProTabs>
+  <InfiniteLoading
+    scrollViewClassName="common-infinite-scroll-list"
+    v-bind="infiniteLoadingProps"
+    :key="queryState.paymentStatus"
+  >
+    <template #renderItem="{ item }">
+      <IncomeDetailListItem
+        :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 { 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 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;
+});
+
+function openPassword(item: API.GetSettlementTasksQueryResultItem) {
+  form.passwordVisible = true;
+  form.showKeyboard = true;
+  form.id = item.id;
+}
+
+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=${id}&operatorToken=${operatorToken}`,
+  });
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>

--
Gitblit v1.9.1