From d85a4f9a626eaba7f3201e905692bfca36e571eb Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 09 十二月 2025 13:43:05 +0800
Subject: [PATCH] fix: bug

---
 src/views/DataReport/DistributionDetailReport.vue |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/src/views/DataReport/DistributionDetailReport.vue b/src/views/DataReport/DistributionDetailReport.vue
new file mode 100644
index 0000000..6ccf6ba
--- /dev/null
+++ b/src/views/DataReport/DistributionDetailReport.vue
@@ -0,0 +1,116 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableQueryFilterBar @on-reset="reset">
+        <template #query>
+          <QueryFilterItem>
+            <FieldDatePicker
+              v-model="extraParamState.time"
+              type="daterange"
+              range-separator="~"
+              start-placeholder="璧峰鏃ユ湡"
+              end-placeholder="鎴鏃ユ湡"
+              clearable
+              @change="getList()"
+              tooltipContent="鏃ユ湡"
+            ></FieldDatePicker>
+          </QueryFilterItem>
+        </template>
+      </ProTableQueryFilterBar>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  ProTableQueryFilterBar,
+  ProTableV2,
+  LoadingLayout,
+  AppContainer,
+  QueryFilterItem,
+  useTable,
+  FieldDatePicker,
+} from '@bole-core/components';
+import * as taskServices from '@/services/api/task';
+import { ModelValueType } from 'element-plus';
+import { downloadFileByUrl, format, OrderUtils, setOSSLink } from '@/utils';
+
+defineOptions({
+  name: 'DistributionDetailReport',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  downloadBtn: {
+    emits: {
+      onClick: (role) => handleDownload(role),
+    },
+    extraProps: {
+      hide: (row: API.GetTaskSettlementReleaseReportsQueryResultItem) => !row.url,
+    },
+  },
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
+
+const router = useRouter();
+
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetTaskSettlementReleaseReportsQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        startMonth: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        endMonth: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+      };
+
+      let res = await taskServices.getTaskSettlementReleaseReports(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {
+      console.log('error: ', error);
+    }
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'month', order: EnumPagedListOrder.Desc }],
+      time: [] as unknown as ModelValueType,
+    },
+    queryKey: ['taskServices/getTaskSettlementReleaseReports'],
+    columnsRenderProps: {
+      amount: { type: 'money' },
+      month: { type: 'date', format: 'YYYY-M' },
+      createdTime: { type: 'date' },
+    },
+  }
+);
+
+async function handleDownload(row: API.GetTaskSettlementReleaseReportsQueryResultItem) {
+  downloadFileByUrl(setOSSLink(row.url));
+}
+</script>

--
Gitblit v1.9.1