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