|  |  |  | 
|---|
|  |  |  | <AppContainer> | 
|---|
|  |  |  | <ProTableQueryFilterBar @on-reset="reset"> | 
|---|
|  |  |  | <template #query> | 
|---|
|  |  |  | <QueryFilterItem tip-content="结算单状态"> | 
|---|
|  |  |  | <QueryFilterItem tip-content="验收状态"> | 
|---|
|  |  |  | <FieldRadio | 
|---|
|  |  |  | v-model="extraParamState.flexEnterpriseSettingStatus" | 
|---|
|  |  |  | :value-enum="[ | 
|---|
|  |  |  | { label: '已安排', value: 1 }, | 
|---|
|  |  |  | { label: '待安排', value: 0 }, | 
|---|
|  |  |  | ]" | 
|---|
|  |  |  | v-model="extraParamState.checkReceiveStatus" | 
|---|
|  |  |  | :value-enum="EnumTaskCheckReceiveStatusTextForFilter" | 
|---|
|  |  |  | buttonStyle | 
|---|
|  |  |  | showAllBtn | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem tip-content="结算状态"> | 
|---|
|  |  |  | <FieldRadio | 
|---|
|  |  |  | v-model="extraParamState.flexEnterpriseSettingStatus" | 
|---|
|  |  |  | :value-enum="[ | 
|---|
|  |  |  | { label: '已安排', value: 1 }, | 
|---|
|  |  |  | { label: '待安排', value: 0 }, | 
|---|
|  |  |  | ]" | 
|---|
|  |  |  | v-model="extraParamState.settlementStatus" | 
|---|
|  |  |  | :value-enum="EnumTaskSettlementStatusText" | 
|---|
|  |  |  | buttonStyle | 
|---|
|  |  |  | showAllBtn | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem> | 
|---|
|  |  |  | <FieldDatePicker | 
|---|
|  |  |  | v-model="extraParamState.flexEnterpriseSettingStatus" | 
|---|
|  |  |  | v-model="extraParamState.time" | 
|---|
|  |  |  | type="daterange" | 
|---|
|  |  |  | range-separator="~" | 
|---|
|  |  |  | start-placeholder="起始日期" | 
|---|
|  |  |  | end-placeholder="截止日期" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | tooltipContent="创建时间" | 
|---|
|  |  |  | tooltipContent="结算时间" | 
|---|
|  |  |  | ></FieldDatePicker> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem> | 
|---|
|  |  |  | <SearchInput | 
|---|
|  |  |  | v-model="extraParamState.searchWord" | 
|---|
|  |  |  | v-model="extraParamState.keywords" | 
|---|
|  |  |  | style="width: 250px" | 
|---|
|  |  |  | placeholder="任务名称" | 
|---|
|  |  |  | @on-click-search="getList" | 
|---|
|  |  |  | @on-click-search="getList()" | 
|---|
|  |  |  | @keyup.enter="getList()" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </SearchInput> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <template #btn> | 
|---|
|  |  |  | <el-button type="primary" link @click="handleDownloadTemplate()">结算单模板</el-button> | 
|---|
|  |  |  | <BlFileUpload | 
|---|
|  |  |  | :limitFileSize="10" | 
|---|
|  |  |  | accept="xls,xlsx" | 
|---|
|  |  |  | :showTip="false" | 
|---|
|  |  |  | :show-file-list="false" | 
|---|
|  |  |  | :on-success="handleUploadSuccess" | 
|---|
|  |  |  | style="margin-right: 10px; margin-left: 10px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #default> | 
|---|
|  |  |  | <el-button type="primary">上传结算单</el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </BlFileUpload> | 
|---|
|  |  |  | <el-button type="primary" @click="handleDownloadTemplate()">导出</el-button> | 
|---|
|  |  |  | <!-- <el-button type="primary" link @click="handleDownloadTemplate()">结算单模板</el-button> --> | 
|---|
|  |  |  | <!-- <el-button type="primary" @click="handleAdd()">上传结算单</el-button> --> | 
|---|
|  |  |  | <!-- <el-button type="primary" @click="handleDownloadTemplate()">导出</el-button> --> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </ProTableQueryFilterBar> | 
|---|
|  |  |  | <ProTableV2 | 
|---|
|  |  |  | 
|---|
|  |  |  | :columns="ServiceChargeManageColumns" | 
|---|
|  |  |  | :operationBtns="operationBtns" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #operationBtn-uploadBtn="{ data, row }"> | 
|---|
|  |  |  | <!-- <template #operationBtn-uploadBtn="{ row }"> | 
|---|
|  |  |  | <BlFileUpload | 
|---|
|  |  |  | v-model:file-url="row.fileUrl" | 
|---|
|  |  |  | :limitFileSize="2" | 
|---|
|  |  |  | :limit="1" | 
|---|
|  |  |  | accept="doc,docx" | 
|---|
|  |  |  | v-model:file-url="editForm.settlementUrl" | 
|---|
|  |  |  | ref="uploadRef" | 
|---|
|  |  |  | :showTip="false" | 
|---|
|  |  |  | :on-success="(response) => handleUpload(response, row)" | 
|---|
|  |  |  | :show-file-list="false" | 
|---|
|  |  |  | class="pro-table-operation-btn upload-style-btn" | 
|---|
|  |  |  | :on-success="(event) => handleUploadSuccess(event, row)" | 
|---|
|  |  |  | :limitFileSize="null" | 
|---|
|  |  |  | :limit="1" | 
|---|
|  |  |  | accept="xlsx,xls" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button link type="primary">上传</el-button> | 
|---|
|  |  |  | <el-button text type="primary" class="pro-table-operation-btn">上传</el-button> | 
|---|
|  |  |  | </BlFileUpload> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <template #operationBtn-reUploadBtn="{ data, row }"> | 
|---|
|  |  |  | <BlFileUpload | 
|---|
|  |  |  | v-model:file-url="editForm.settlementUrl" | 
|---|
|  |  |  | ref="uploadRef" | 
|---|
|  |  |  | :showTip="false" | 
|---|
|  |  |  | :show-file-list="false" | 
|---|
|  |  |  | class="pro-table-operation-btn upload-style-btn" | 
|---|
|  |  |  | :on-success="(event) => handleUploadSuccess(event, row)" | 
|---|
|  |  |  | :limitFileSize="null" | 
|---|
|  |  |  | :limit="1" | 
|---|
|  |  |  | accept="xlsx,xls" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button text type="primary" class="pro-table-operation-btn">重新上传</el-button> | 
|---|
|  |  |  | </BlFileUpload> | 
|---|
|  |  |  | </template> --> | 
|---|
|  |  |  | </ProTableV2> | 
|---|
|  |  |  | </AppContainer> | 
|---|
|  |  |  | <UploadStatementDialog v-bind="dialogProps" /> | 
|---|
|  |  |  | <!-- <SettleDetailDialog v-bind="dialogSettleProps" /> --> | 
|---|
|  |  |  | <RechargeEnterpriseWalletDialog v-bind="dialogRechargeProps" /> | 
|---|
|  |  |  | <SettlMethodDialog v-bind="dialogSettlMethodProps" /> | 
|---|
|  |  |  | </LoadingLayout> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | FieldDatePicker, | 
|---|
|  |  |  | FieldRadio, | 
|---|
|  |  |  | defineOperationBtns, | 
|---|
|  |  |  | BlFileUpload, | 
|---|
|  |  |  | useFormDialog, | 
|---|
|  |  |  | UploadUserFile, | 
|---|
|  |  |  | BlFileUpload, | 
|---|
|  |  |  | } from '@bole-core/components'; | 
|---|
|  |  |  | import { ServiceChargeManageColumns } from './constants'; | 
|---|
|  |  |  | import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; | 
|---|
|  |  |  | import { downloadFileByUrl } from '@/utils'; | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | EnumTaskSettlementStatusText, | 
|---|
|  |  |  | EnumTaskSettlementOrderStatusText, | 
|---|
|  |  |  | EnumTaskSettlementOrderStatus, | 
|---|
|  |  |  | EnumTaskSettlementStatus, | 
|---|
|  |  |  | EnumTaskCheckReceiveStatusText, | 
|---|
|  |  |  | EnumTaskCheckReceiveStatusTextForFilter, | 
|---|
|  |  |  | EnumTaskCheckReceiveStatus, | 
|---|
|  |  |  | } from '@/constants'; | 
|---|
|  |  |  | import { downloadFileByUrl, format, setOssFileName } from '@/utils'; | 
|---|
|  |  |  | import * as taskServices from '@/services/api/task'; | 
|---|
|  |  |  | import { ModelValueType } from 'element-plus'; | 
|---|
|  |  |  | import UploadStatementDialog from './components/UploadStatementDialog.vue'; | 
|---|
|  |  |  | import SettleDetailDialog from './components/SettleDetailDialog.vue'; | 
|---|
|  |  |  | import SettlMethodDialog from './components/SettlMethodDialog.vue'; | 
|---|
|  |  |  | import RechargeEnterpriseWalletDialog from './components/RechargeEnterpriseWalletDialog.vue'; | 
|---|
|  |  |  | import { Message } from '@bole-core/core'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'ServiceChargeManageList', | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const operationBtns = defineOperationBtns([ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | enCode: 'uploadBtn', | 
|---|
|  |  |  | name: '上传', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   data: { | 
|---|
|  |  |  | //     enCode: 'uploadBtn', | 
|---|
|  |  |  | //     name: '上传', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | //   extraProps: { | 
|---|
|  |  |  | //     hide: (row: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | //       row.settlementOrderStatus !== EnumTaskSettlementOrderStatus.Wait, | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   data: { | 
|---|
|  |  |  | //     enCode: 'reUploadBtn', | 
|---|
|  |  |  | //     name: '重新上传', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | //   extraProps: { | 
|---|
|  |  |  | //     hide: (row: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | //       !( | 
|---|
|  |  |  | //         row.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && | 
|---|
|  |  |  | //         row.settlementStatus === EnumTaskSettlementStatus.Wait | 
|---|
|  |  |  | //       ), | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | enCode: 'settleBtn', | 
|---|
|  |  |  | name: '结算', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => goSettle(role), | 
|---|
|  |  |  | onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleMethodDialog(role), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (role: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | !( | 
|---|
|  |  |  | role.settlementStatus === EnumTaskSettlementStatus.Wait && | 
|---|
|  |  |  | role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | enCode: 'recallBtn', | 
|---|
|  |  |  | name: '撤回', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => handleRecall(role), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (role: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | !( | 
|---|
|  |  |  | role.settlementStatus === EnumTaskSettlementStatus.InProcess && | 
|---|
|  |  |  | role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //   data: { | 
|---|
|  |  |  | //     enCode: 'settleAuditBtn', | 
|---|
|  |  |  | //     name: '结算审核', | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | //   emits: { | 
|---|
|  |  |  | //     onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id, 'settlement'), | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | //   extraProps: { | 
|---|
|  |  |  | //     hide: (role: API.GetSettlementTasksQueryResultItem) => role.auditStatus !== null, | 
|---|
|  |  |  | //   }, | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | enCode: 'detailBtn', | 
|---|
|  |  |  | name: '详情', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => goDetail(role), | 
|---|
|  |  |  | onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // extraProps: { | 
|---|
|  |  |  | //   hide: (role: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | //     role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait, | 
|---|
|  |  |  | // }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role) => handleExport(role), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: () => true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ]); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const router = useRouter(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { userDetail } = useUser(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const eventContext = useGlobalEventContext(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | eventContext.addEvent('sureTaskSettlementOrder', () => { | 
|---|
|  |  |  | getList(paginationState.pageIndex); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const BaseState = { | 
|---|
|  |  |  | loading: true, | 
|---|
|  |  |  | 
|---|
|  |  |  | } = useTable( | 
|---|
|  |  |  | async ({ pageIndex, pageSize }, extraParamState) => { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.GetFlexEnterpriseInput = { | 
|---|
|  |  |  | let params: API.GetSettlementTasksQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: pageSize, | 
|---|
|  |  |  | page: pageIndex, | 
|---|
|  |  |  | orderInput: extraParamState.orderInput, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, | 
|---|
|  |  |  | searchWord: extraParamState.searchWord, | 
|---|
|  |  |  | keywords: extraParamState.keywords, | 
|---|
|  |  |  | checkReceiveStatus: extraParamState.checkReceiveStatus, | 
|---|
|  |  |  | settlementStatus: extraParamState.settlementStatus, | 
|---|
|  |  |  | settlementTimeBegin: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), | 
|---|
|  |  |  | settlementTimeEnd: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { | 
|---|
|  |  |  | let res = await taskServices.getSettlementTasks(params, { | 
|---|
|  |  |  | showLoading: !state.loading, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | defaultExtraParams: { | 
|---|
|  |  |  | searchWord: '', | 
|---|
|  |  |  | 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 }], | 
|---|
|  |  |  | flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], | 
|---|
|  |  |  | columnsRenderProps: {}, | 
|---|
|  |  |  | queryKey: ['taskServices/getSettlementTasks'], | 
|---|
|  |  |  | columnsRenderProps: { | 
|---|
|  |  |  | settlementOrderStatus: { type: 'enum', valueEnum: EnumTaskSettlementOrderStatusText }, | 
|---|
|  |  |  | settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText }, | 
|---|
|  |  |  | checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, | 
|---|
|  |  |  | auditStatus: { type: 'enum', valueEnum: EnumTaskSettlementAuditStatusText }, | 
|---|
|  |  |  | actualSettlementAmount: { type: 'money' }, | 
|---|
|  |  |  | settlementAmount: { type: 'money' }, | 
|---|
|  |  |  | settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, | 
|---|
|  |  |  | createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, | 
|---|
|  |  |  | settlementOrderTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, | 
|---|
|  |  |  | settlementOrderName: { | 
|---|
|  |  |  | formatter: (row: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | row.settlementOrderName && setOssFileName(row.settlementOrderName), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goSettle(row) { | 
|---|
|  |  |  | router.push({ | 
|---|
|  |  |  | name: 'ServiceChargeSettle', | 
|---|
|  |  |  | params: { | 
|---|
|  |  |  | id: row.id, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | const { dialogProps, handleAdd, editForm } = useFormDialog({ | 
|---|
|  |  |  | onConfirm: handleAddOrEdit, | 
|---|
|  |  |  | defaultFormParams: { | 
|---|
|  |  |  | code: '', | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | settlementUrl: [] as UploadUserFile[], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function handleAddOrEdit() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.ImportTaskSettlementOrderRostersCommand = { | 
|---|
|  |  |  | id: editForm.id, | 
|---|
|  |  |  | url: editForm.settlementUrl[0]?.path, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | let res = await taskServices.importTaskSettlementOrderRosters(params); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | goSettlementDetail(editForm.id, editForm.settlementUrl[0]?.path); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | dialogProps: dialogSettleProps, | 
|---|
|  |  |  | handleEdit: handleSettleEdit, | 
|---|
|  |  |  | editForm: settleEditForm, | 
|---|
|  |  |  | } = useFormDialog({ | 
|---|
|  |  |  | onConfirm: handleSettle, | 
|---|
|  |  |  | defaultFormParams: { | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | code: '', | 
|---|
|  |  |  | settlementUserCount: 0, | 
|---|
|  |  |  | actualSettlementAmount: 0, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function handleSettle() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | let params: API.SureTaskSettlementCommand = { | 
|---|
|  |  |  | taskInfoId: settleEditForm.id, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | let res = await taskServices.sureTaskSettlement(params, { | 
|---|
|  |  |  | skipErrorHandler: true, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | Message.successMessage('操作成功'); | 
|---|
|  |  |  | getList(paginationState.pageIndex); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) { | 
|---|
|  |  |  | if (error?.info?.errorCode == 's510') { | 
|---|
|  |  |  | handleRechargeAdd(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | dialogProps: dialogRechargeProps, | 
|---|
|  |  |  | handleAdd: handleRechargeAdd, | 
|---|
|  |  |  | editForm: rechargeEditForm, | 
|---|
|  |  |  | } = useFormDialog({ | 
|---|
|  |  |  | defaultFormParams: { | 
|---|
|  |  |  | access: EnumEnterpriseWalletAccess.Alipay, | 
|---|
|  |  |  | amount: null as number, | 
|---|
|  |  |  | remark: '', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function openSettleDialog(row: API.GetSettlementTasksQueryResultItem) { | 
|---|
|  |  |  | handleSettleEdit({ | 
|---|
|  |  |  | id: row.id, | 
|---|
|  |  |  | name: row.name, | 
|---|
|  |  |  | code: row.code, | 
|---|
|  |  |  | settlementUserCount: row.settlementUserCount ?? 0, | 
|---|
|  |  |  | actualSettlementAmount: row.actualSettlementAmount ?? 0, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goDetail(row) { | 
|---|
|  |  |  | async function handleRecall(row: API.GetSettlementTasksQueryResultItem) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | await Message.tipMessage('确认要撤回吗?'); | 
|---|
|  |  |  | let params: API.RevokeTaskSettlementOrderCommand = { | 
|---|
|  |  |  | taskInfoId: row.id, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | let res = await taskServices.revokeTaskSettlementOrder(params); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | Message.successMessage('操作成功'); | 
|---|
|  |  |  | getList(paginationState.pageIndex); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleUploadSuccess( | 
|---|
|  |  |  | response: UploadUserFile & { file: File & { uid: number } }, | 
|---|
|  |  |  | row: API.GetSettlementTasksQueryResultItem | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | if (response.path) { | 
|---|
|  |  |  | goSettlementDetail(row.id, response.path); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function goSettlementDetail(id: string, url?: string) { | 
|---|
|  |  |  | await router.push({ | 
|---|
|  |  |  | name: 'ServiceChargeDetail', | 
|---|
|  |  |  | params: { | 
|---|
|  |  |  | id: id, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | editForm.settlementUrl = [] as UploadUserFile[]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | dialogProps: dialogSettlMethodProps, | 
|---|
|  |  |  | handleAdd: handleSettlMethodAdd, | 
|---|
|  |  |  | editForm: settlMethodEditForm, | 
|---|
|  |  |  | } = useFormDialog({ | 
|---|
|  |  |  | onConfirm: handleSettlMethod, | 
|---|
|  |  |  | defaultFormParams: { | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | settlementAccess: '' as any as EnumEnterpriseWalletAccess, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function openSettleMethodDialog(row: API.GetSettlementTasksQueryResultItem) { | 
|---|
|  |  |  | // handleSettlMethodAdd({ | 
|---|
|  |  |  | //   id: row.id, | 
|---|
|  |  |  | //   settlementAccess: '' as any as EnumEnterpriseWalletAccess, | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | goDetail(row.id, 'settlement'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function handleSettlMethod() { | 
|---|
|  |  |  | goDetail(settlMethodEditForm.id, 'settlement'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goDetail(id: string, settlement?: string) { | 
|---|
|  |  |  | router.push({ | 
|---|
|  |  |  | name: 'ServiceChargeDetail', | 
|---|
|  |  |  | params: { | 
|---|
|  |  |  | id: row.id, | 
|---|
|  |  |  | id: id ?? '', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | query: { | 
|---|
|  |  |  | settlement: settlement ? settlement : '', | 
|---|
|  |  |  | // settlementAccess: settlementAccess ? settlementAccess : '', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleUploadSuccess(response: UploadUserFile) {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleUpload(val, row) { | 
|---|
|  |  |  | console.log('val: ', val); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleExport(val) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function handleDownloadTemplate() { | 
|---|
|  |  |  | downloadFileByUrl('', '结算单模板'); | 
|---|
|  |  |  | downloadFileByUrl( | 
|---|
|  |  |  | 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E7%BB%93%E7%AE%97%E5%8D%95%E6%A8%A1%E6%9D%BF.xlsx', | 
|---|
|  |  |  | '结算单模板' | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|