| | |
| | | <QueryFilterItem tip-content="结算状态"> |
| | | <FieldRadio |
| | | v-model="extraParamState.settlementStatus" |
| | | :value-enum="EnumTaskSettlementStatusText" |
| | | :value-enum="EnumStandardOrderSettlementStatusText" |
| | | buttonStyle |
| | | showAllBtn |
| | | @change="getList()" |
| | |
| | | <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> |
| | |
| | | |
| | | <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) => { |
| | | 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); |
| | | async function handleSettlement(row: API.GetStandardOrdersQueryResultItem) { |
| | | try { |
| | | 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); |
| | | } |
| | | }, |
| | | { |
| | | 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 }, |
| | | }, |
| | | } |
| | | ); |
| | | } 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> |