wupengfei
6 天以前 cb4bcf7c64236b7c47e0500f4097a925543d850f
fix: bug
2个文件已添加
2个文件已修改
306 ■■■■■ 已修改文件
src/views/BalanceManage/BalanceManage.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/BalanceManage/components/PaymentRecordView.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/BalanceManage/components/RechargeRecordView.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/BalanceManage/components/WithdrawalRecordView.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/BalanceManage/BalanceManage.vue
@@ -68,8 +68,22 @@
        </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>
@@ -84,6 +98,10 @@
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';
@@ -99,6 +117,19 @@
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 () => {
src/views/BalanceManage/components/PaymentRecordView.vue
New file
@@ -0,0 +1,118 @@
<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>
src/views/BalanceManage/components/RechargeRecordView.vue
@@ -35,14 +35,14 @@
  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({
src/views/BalanceManage/components/WithdrawalRecordView.vue
New file
@@ -0,0 +1,139 @@
<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>