wupengfei
1 天以前 d32cd83674f9b0db0154e6228807e658539f8cd0
src/views/FinanceManage/components/BalanceDetailDialog.vue
@@ -1,15 +1,16 @@
<template>
  <ProDialog title="余额明细" v-model="visible" destroy-on-close draggable>
  <ProDialog title="余额明细" v-model="visible" destroy-on-close draggable width="1200px">
    <ProDialogTableWrapper :height="500">
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem>
            <FieldSelect
              v-model="extraParamState.status"
              :valueEnum="[]"
              v-model="extraParamState.type"
              :valueEnum="EnumUserWalletTransactionTypeText"
              clearable
              filterable
              placeholder="交易类型"
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem tip-content="查询日期">
@@ -25,9 +26,25 @@
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2 v-bind="proTableProps" :columns="columns" :showOperationColumn="false">
      <ProTableV2 v-bind="proTableProps" :columns="columns" :operationBtns="operationBtns">
        <template #income="{ row }">
          <div style="color: #67c23a" v-if="row.type === EnumUserWalletTransactionType.Income">
            {{ `+${toThousand(row.amount)}` }}
          </div>
          <div v-else>/</div>
        </template>
        <template #outcome="{ row }">
          <div style="color: #f56c6c" v-if="row.type === EnumUserWalletTransactionType.Withdraw">
            {{ toThousand(row.amount) }}
          </div>
          <div v-else>/</div>
        </template>
        <template #account="{ row }">
          {{ `${row.receiveAccount} - ${row.receiveName}` }}
        </template>
      </ProTableV2>
    </ProDialogTableWrapper>
    <FinanceDetailDialog v-bind="dialogProps"></FinanceDetailDialog>
  </ProDialog>
</template>
@@ -42,9 +59,14 @@
  FieldSelect,
  ProTableV2,
  ProTableQueryFilterBar,
  useFormDialog,
  defineOperationBtns,
} from '@bole-core/components';
import * as enterpriseServices from '@/services/api/enterprise';
import * as userServices from '@/services/api/user';
import { ModelValueType } from 'element-plus';
import { format, toThousand } from '@/utils';
import { EnumUserWalletTransactionTypeText, EnumUserWalletTransactionType } from '@/constants';
import FinanceDetailDialog from './FinanceDetailDialog.vue';
defineOptions({
  name: 'FinanceDetailDialog',
@@ -65,33 +87,48 @@
const columns = defineColumns([
  {
    id: '1',
    enCode: 'name',
    enCode: 'transDate',
    name: '交易时间',
  },
  {
    id: '2',
    enCode: 'name',
    enCode: 'income',
    name: '收入',
    width: 100,
  },
  {
    id: '3',
    enCode: 'name',
    enCode: 'outcome',
    name: '支出',
    width: 100,
  },
  {
    id: '4',
    enCode: 'name',
    enCode: 'balance',
    name: '账户余额',
    width: 100,
  },
  {
    id: '4',
    enCode: 'name',
    id: '5',
    enCode: 'account',
    name: '对方帐号/户名',
  },
  {
    id: '4',
    enCode: 'name',
    id: '6',
    enCode: 'purpose',
    name: '用途',
  },
]);
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '明细',
    },
    emits: {
      onClick: (role) => openDialog(role),
    },
  },
]);
@@ -99,6 +136,8 @@
  () => visible.value,
  (value) => {
    if (value) {
      extraParamState.type = '' as any as EnumUserWalletTransactionType;
      extraParamState.creationTime = [] as unknown as ModelValueType;
      getList();
    }
  }
@@ -113,27 +152,45 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterprisesQuery = {
      let params: API.GetPersonalUserTransactionsQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        // searchKeys: extraParamState.keyword,
        createdTimeStart: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
        createdTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
        type: extraParamState.type,
        userId: form.value.id,
      };
      let res = await enterpriseServices.getEnterprises(params);
      let res = await userServices.getPersonalUserTransactions(params);
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      status: '',
      type: '' as any as EnumUserWalletTransactionType,
      creationTime: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    columnsRenderProps: {},
    columnsRenderProps: {
      transDate: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
      balance: { type: 'money' },
    },
  }
);
const { dialogProps, handleEdit, editForm } = useFormDialog({
  defaultFormParams: {
    id: '',
  },
});
function openDialog(row: API.GetPersonalUserTransactionsQueryResultItem) {
  handleEdit({
    id: row.id,
  });
}
</script>
<style lang="scss" scoped>