wupengfei
8 小时以前 45383d3d3c35934e1986d89bf695afde04ba7d2d
src/views/FinanceManage/OrderSettlementManage.vue
@@ -6,7 +6,7 @@
          <QueryFilterItem tip-content="结算状态">
            <FieldRadio
              v-model="extraParamState.settlementStatus"
              :value-enum="EnumTaskSettlementStatusText"
              :value-enum="EnumStandardOrderSettlementStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -15,10 +15,9 @@
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keywords"
              style="width: 250px"
              style="width: 260px"
              placeholder="订单号/服务名/供应商"
              @on-click-search="getList()"
              @keyup.enter="getList()"
              @on-click-search="getList"
            >
            </SearchInput>
          </QueryFilterItem>
@@ -33,122 +32,78 @@
<script setup lang="ts">
import {
  ProTableQueryFilterBar,
  OperationBtnType,
  ProTableV2,
  SearchInput,
  LoadingLayout,
  AppContainer,
  QueryFilterItem,
  useTable,
  FieldRadio,
  useFormDialog,
  ProTableQueryFilterBar,
  QueryFilterItem,
  FieldRadio,
  SearchInput,
} from '@bole-core/components';
import {
  EnumTaskSettlementStatusText,
  EnumTaskSettlementOrderStatus,
  EnumTaskSettlementStatus,
  EnumTaskCheckReceiveStatus,
} from '@/constants';
import * as taskServices from '@/services/api/task';
import { ModelValueType } from 'element-plus';
import { useAccess } from '@/hooks';
import OrderSettlementDetailDialog from './components/OrderSettlementDetailDialog.vue';
import { useGetStandardOrders } from '@/hooks';
import { EnumStandardOrderSettlementStatusText } from '@/constants';
import * as standardOrderServices from '@/services/api/standardOrder';
import { Message } from '@bole-core/core';
import { toThousand } from '@/utils';
defineOptions({
  name: 'OrderSettlementManage',
});
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role: API.GetSettlementTasksQueryResultItem) => openDialog(role.id),
    },
  },
  settlementBtn: { emits: { onClick: (role) => handleSettlement(role) } },
  detailBtn: { emits: { onClick: (role) => openDialog(role) } },
};
const { column, operationBtns, checkSubModuleItemShow } = useAccess({
const { column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const BaseState = {
  loading: true,
};
const state = reactive({ ...BaseState });
const { getList, proTableProps, paginationState, extraParamState, reset } = useGetStandardOrders({
  isSettlement: true,
});
onMounted(async () => {
  await getList();
  state.loading = false;
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
async function handleSettlement(row: API.GetStandardOrdersQueryResultItem) {
    try {
      let params: API.GetSettlementTasksQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        keywords: extraParamState.keywords,
        settlementStatus: extraParamState.settlementStatus,
      };
      let res = await taskServices.getSettlementTasks(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {
      console.log('error: ', error);
    }
  },
  {
    defaultExtraParams: {
      keywords: '',
      settlementOrderStatus: '' as any as EnumTaskSettlementOrderStatus,
      checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus,
      settlementStatus: '' as any as EnumTaskSettlementStatus,
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['taskServices/getSettlementTasks'],
    columnsRenderProps: {
      settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
    },
  }
    await Message.tipMessage(
      `确认将${toThousand(row.settlementAmount)}元结算给${row.supplierEnterpriseName}吗?`
);
    let params: API.SettlementStandardOrderCommand = {
      id: row.id,
    };
    let res = await standardOrderServices.settlementStandardOrder(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
const { dialogProps, handleAdd, editForm } = useFormDialog({
  onConfirm: handleAddOrEdit,
const { dialogProps, handleEdit, editForm } = useFormDialog({
  defaultFormParams: {
    id: '',
  },
});
function openDialog(id: string) {
  handleAdd({
    id: id,
  });
}
async function handleAddOrEdit() {
  try {
  } catch (error) {}
}
function goDetail(id: string, settlement?: string) {
  router.push({
    name: 'ServiceChargeDetail',
    params: {
      id: id ?? '',
    },
function openDialog(row: API.GetStandardOrdersQueryResultItem) {
  handleEdit({
    id: row.id,
  });
}
</script>