| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components'; |
| | | import { ModelValueType } from 'element-plus'; |
| | | import * as taskUserServices from '@/services/api/taskUser'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as taskServices from '@/services/api/task'; |
| | | import { SettlementReceiveStatusText } from '@/constants'; |
| | | import { downloadFileByUrl, paginateList, setOSSLink } from '@/utils'; |
| | | import { setOssFileName } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'SelltementDetailView', |
| | | }); |
| | | |
| | | const operationBtnMap: Record<string, OperationBtnType> = { |
| | | 'settle-downloadBtn': { |
| | | emits: { onClick: (role) => handleDownload(role) }, |
| | | extraProps: { |
| | | hide: (row: API.GetSettlementTaskUsersQueryResultItem) => !row.ereceiptDownloadOssUrl, |
| | | }, |
| | | 'settle-detailBtn': { |
| | | emits: { onClick: (role) => goDetail(role) }, |
| | | }, |
| | | }; |
| | | |
| | |
| | | const id = route.params?.id as string; |
| | | const BaseState = { |
| | | loading: true, |
| | | settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[], |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | const { isLoading, data, refetch } = useQuery({ |
| | | queryKey: ['taskUserServices/getSettlementTaskUsers', id], |
| | | queryFn: async () => { |
| | | return await taskUserServices.getSettlementTaskUsers( |
| | | { taskInfoId: id }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult), |
| | | onSuccess(res) { |
| | | state.settlementTaskUsers = res.data; |
| | | getList(); |
| | | }, |
| | | enabled: !!id, |
| | | }); |
| | | |
| | | const { |
| | |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let list = [...state.settlementTaskUsers]; |
| | | |
| | | return Promise.resolve({ |
| | | let params: API.GetSettlementTasksQuery = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | totalCount: list.length, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | data: paginateList(list, pageIndex, pageSize), |
| | | taskInfoId: id, |
| | | }; |
| | | let res = await taskServices.getSettlementTasks(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | } catch (error) { |
| | | console.log('error: ', error); |
| | | } |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | keywords: '', |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | queryKey: ['taskUserServices/getSettlementTaskUsers'], |
| | | queryKey: ['taskServices/getSettlementTasks'], |
| | | columnsRenderProps: { |
| | | settlementTime: { type: 'date' }, |
| | | createdTime: { type: 'date' }, |
| | | settlementAmount: { type: 'money' }, |
| | | settlementOrderStatus: { type: 'enum', valueEnum: EnumTaskSettlementOrderStatusText }, |
| | | settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText }, |
| | | checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, |
| | | auditStatus: { type: 'enum', valueEnum: EnumTaskSettlementAuditStatusText }, |
| | | actualSettlementAmount: { type: 'money' }, |
| | | settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText }, |
| | | settlementAmount: { type: 'money' }, |
| | | settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | settlementOrderTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |
| | | settlementOrderName: { |
| | | formatter: (row: API.GetSettlementTasksQueryResultItem) => |
| | | row.settlementOrderName && setOssFileName(row.settlementOrderName), |
| | | }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | function handleDownload(row: API.GetSettlementTaskUsersQueryResultItem) { |
| | | downloadFileByUrl(setOSSLink(row.ereceiptDownloadOssUrl), '结算回单'); |
| | | const router = useRouter(); |
| | | |
| | | function goDetail(row: API.GetSettlementTasksQueryResultItem) { |
| | | router.push({ |
| | | name: 'SelltementDetailInfo', |
| | | params: { |
| | | id: row.id ?? '', |
| | | }, |
| | | }); |
| | | } |
| | | </script> |