| | |
| | | </RewardInfoCard> |
| | | </RewardInfoCardList> |
| | | <ProTabs v-model="state.tabType" hasBorder class="reward-tabs"> |
| | | <ProTabPane lazy label="消费记录" name="Consume"> |
| | | <ConsumeRecordView></ConsumeRecordView> |
| | | <ProTabPane lazy label="拨付记录" name="Payment"> |
| | | <PaymentRecordView></PaymentRecordView> |
| | | </ProTabPane> |
| | | <template v-if="sceneThree || sceneFour"> |
| | | <ProTabPane lazy label="奖励发放记录" name="RewardGrant"> |
| | | <RewardGrantRecordView></RewardGrantRecordView> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="充值记录" name="Recharge"> |
| | | <RechargeRecordView ref="rechargeRecordRef"></RechargeRecordView> |
| | | </ProTabPane> |
| | | <ProTabPane lazy label="消费记录" name="Consume"> |
| | | <ConsumeRecordView></ConsumeRecordView> |
| | | </ProTabPane> |
| | | </template> |
| | | <ProTabPane lazy label="提现记录" name="Withdrawal" v-if="sceneTwo || sceneFour"> |
| | | <WithdrawalRecordView ref="withdrawalRecordRef"></WithdrawalRecordView> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | </AppContainer> |
| | |
| | | import RewardInfoCardContentItem from '@/components/Reward/RewardInfoCardContentItem.vue'; |
| | | import { setOSSLink, downloadFileByUrl, toThousand, addStarForString } from '@/utils'; |
| | | import ConsumeRecordView from './components/ConsumeRecordView.vue'; |
| | | import RechargeRecordView from './components/RechargeRecordView.vue'; |
| | | import RewardGrantRecordView from './components/RewardGrantRecordView.vue'; |
| | | import WithdrawalRecordView from './components/WithdrawalRecordView.vue'; |
| | | import PaymentRecordView from './components/PaymentRecordView.vue'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { useUser } from '@/hooks'; |
| | | |
| | |
| | | const { user } = useUser(); |
| | | const state = reactive({ ...BaseState }); |
| | | |
| | | const sceneOne = computed(() => { |
| | | return !userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw; |
| | | }); |
| | | const sceneTwo = computed(() => { |
| | | return !userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw; |
| | | }); |
| | | const sceneThree = computed(() => { |
| | | return userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw; |
| | | }); |
| | | const sceneFour = computed(() => { |
| | | return userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw; |
| | | }); |
| | | |
| | | const { isLoading, data: detail } = useQuery({ |
| | | queryKey: ['userServices/getUserAmountShow'], |
| | | queryFn: async () => { |
| New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <Table v-bind="{ ...proTableProps, ...columnsProps }"> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.financeToFileUrl ?? '')" |
| | | preview-btn-text="查看凭证" |
| | | /> |
| | | </template> |
| | | </Table> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { AppContainer, useTable, PreviewBtnV2 } from '@bole-core/components'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { FinanceStatusEnum, FinanceStatusEnumText } from '@/constants'; |
| | | import { useDefineColumns, useUser } from '@/hooks'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'PaymentRecordView', |
| | | }); |
| | | |
| | | const columnsProps = useDefineColumns({ |
| | | columns: [ |
| | | { |
| | | id: '1', |
| | | enCode: 'financeToTime', |
| | | name: '拨付时间', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'financeToAmount', |
| | | name: '拨付金额', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'batchNo', |
| | | name: '拨付批次', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'applyMonth', |
| | | name: '拨付月份', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'financeToStatus', |
| | | name: '拨付状态', |
| | | }, |
| | | ], |
| | | operationBtns: [ |
| | | { |
| | | data: { |
| | | enCode: 'checkBtn', |
| | | name: '查看凭证', |
| | | }, |
| | | }, |
| | | ], |
| | | }); |
| | | |
| | | const { userDetail } = useUser(); |
| | | const BaseState = { |
| | | loading: true, |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.QueryParkCustomerBountyApplyInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | id: userDetail.value?.userId ?? '', |
| | | }; |
| | | let res = await parkBountyApplyServices.getParkCustomerBountyFinanceList(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'financeToTime', order: OrderInputType.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | financeToStatus: { type: 'enum', valueEnum: FinanceStatusEnumText }, |
| | | financeToTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | applyMonth: { type: 'date', format: 'YYYY年MM月' }, |
| | | financeToAmount: { type: 'money' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | </style> |
| | |
| | | defineOperationBtns, |
| | | } from '@bole-core/components'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | // import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { useUser } from '@/hooks'; |
| | | // import { |
| | | // EnterprisePrechargeInComeStatusEnum, |
| | | // EnterprisePrechargeInComeStatusEnumText, |
| | | // EnterpriseRechargeStatusEnum, |
| | | // EnterpriseRechargeStatusEnumText, |
| | | // } from '@/constants'; |
| | | import { |
| | | EnterprisePrechargeInComeStatusEnum, |
| | | EnterprisePrechargeInComeStatusEnumText, |
| | | EnterpriseRechargeStatusEnum, |
| | | EnterpriseRechargeStatusEnumText, |
| | | } from '@/constants'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | |
| | | defineOptions({ |
| New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="state.loading"> |
| | | <AppContainer> |
| | | <Table v-bind="{ ...proTableProps, ...columnsProps }"> |
| | | <template #checkStatus="{ data, row }"> |
| | | <div style="display: flex; justify-content: center; align-items: center"> |
| | | {{ EnterpriseRechargeStatusEnumTextWithdrawal[row.checkStatus] }} |
| | | <el-tooltip |
| | | placement="top" |
| | | v-if="row.checkStatus === EnterpriseRechargeStatusEnum.CheckReject && row.checkRemark" |
| | | :content="row.checkRemark" |
| | | > |
| | | <el-icon color="#ff0000"><WarningFilled /></el-icon> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | <template #operationBtn-checkBtn="{ data, row }"> |
| | | <PreviewBtnV2 |
| | | class="pro-table-operation-btn" |
| | | :url="convertApi2FormUrlBySeparator(row.checkFileUrl ?? '')" |
| | | preview-btn-text="查看凭证" |
| | | /> |
| | | </template> |
| | | </Table> |
| | | </AppContainer> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { AppContainer, useTable, PreviewBtnV2, TextOverTooltip } from '@bole-core/components'; |
| | | import { OrderInputType } from '@bole-core/core'; |
| | | import * as parkBountyApplyServices from '@/services/api/ParkBountyApply'; |
| | | import { useDefineColumns, useUser } from '@/hooks'; |
| | | import { convertApi2FormUrlBySeparator } from '@/utils'; |
| | | import { |
| | | EnterpriseRechargeStatusEnumTextWithdrawal, |
| | | EnterpriseRechargeStatusEnum, |
| | | } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'WithdrawalRecordView', |
| | | }); |
| | | |
| | | const columnsProps = useDefineColumns({ |
| | | columns: [ |
| | | { |
| | | id: '1', |
| | | enCode: 'creationTime', |
| | | name: '申请时间', |
| | | }, |
| | | { |
| | | id: '2', |
| | | enCode: 'amount', |
| | | name: '提现金额', |
| | | }, |
| | | { |
| | | id: '3', |
| | | enCode: 'checkStatus', |
| | | name: '审核状态', |
| | | }, |
| | | { |
| | | id: '4', |
| | | enCode: 'checkTime', |
| | | name: '审核时间', |
| | | }, |
| | | { |
| | | id: '5', |
| | | enCode: 'remainAmount', |
| | | name: '资金余额', |
| | | }, |
| | | ], |
| | | operationBtns: [ |
| | | { |
| | | data: { |
| | | enCode: 'checkBtn', |
| | | name: '查看凭证', |
| | | }, |
| | | }, |
| | | ], |
| | | }); |
| | | |
| | | const route = useRoute(); |
| | | const router = useRouter(); |
| | | const id = route.params.id as string; |
| | | const BaseState = { |
| | | loading: true, |
| | | }; |
| | | |
| | | const state = reactive({ ...BaseState }); |
| | | const { userDetail } = useUser(); |
| | | |
| | | const { |
| | | getDataSource: getList, |
| | | proTableProps, |
| | | paginationState, |
| | | extraParamState, |
| | | } = useTable( |
| | | async ({ pageIndex, pageSize }, extraParamState) => { |
| | | try { |
| | | let params: API.GetEnterpriseDrawWithListInput = { |
| | | pageModel: { |
| | | rows: pageSize, |
| | | page: pageIndex, |
| | | orderInput: extraParamState.orderInput, |
| | | }, |
| | | }; |
| | | let res = await parkBountyApplyServices.getEnterpriseDrawWithList(params, { |
| | | showLoading: !state.loading, |
| | | }); |
| | | return res; |
| | | } catch (error) {} |
| | | }, |
| | | { |
| | | defaultExtraParams: { |
| | | orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], |
| | | }, |
| | | columnsRenderProps: { |
| | | creationTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | checkTime: { type: 'date', format: 'YYYY-MM-DD' }, |
| | | amount: { type: 'money' }, |
| | | remainAmount: { type: 'money' }, |
| | | checkStatus: { type: 'enum', valueEnum: EnterpriseRechargeStatusEnumTextWithdrawal }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | onMounted(async () => { |
| | | await getList(); |
| | | state.loading = false; |
| | | }); |
| | | |
| | | defineExpose({ |
| | | getList, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @use '@/style/common.scss' as *; |
| | | </style> |