|  |  |  | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | <QueryFilterItem> | 
|---|
|  |  |  | <!-- <QueryFilterItem> | 
|---|
|  |  |  | <FieldDatePicker | 
|---|
|  |  |  | v-model="extraParamState.time" | 
|---|
|  |  |  | type="daterange" | 
|---|
|  |  |  | 
|---|
|  |  |  | @change="getList()" | 
|---|
|  |  |  | tooltipContent="创建时间" | 
|---|
|  |  |  | ></FieldDatePicker> | 
|---|
|  |  |  | </QueryFilterItem> | 
|---|
|  |  |  | </QueryFilterItem> --> | 
|---|
|  |  |  | <QueryFilterItem> | 
|---|
|  |  |  | <SearchInput | 
|---|
|  |  |  | v-model="extraParamState.keywords" | 
|---|
|  |  |  | 
|---|
|  |  |  | <template #btn> | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | <!-- <el-button type="primary" @click="handleDownloadTemplate()">导出</el-button> --> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </ProTableQueryFilterBar> | 
|---|
|  |  |  | <ProTableV2 | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #operationBtn-uploadBtn="{ row }"> | 
|---|
|  |  |  | <BlFileUpload | 
|---|
|  |  |  | v-if="row.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait" | 
|---|
|  |  |  | v-model:file-url="editForm.settlementUrl" | 
|---|
|  |  |  | ref="uploadRef" | 
|---|
|  |  |  | :showTip="false" | 
|---|
|  |  |  | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | <template #operationBtn-reUploadBtn="{ data, row }"> | 
|---|
|  |  |  | <BlFileUpload | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | row.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && | 
|---|
|  |  |  | row.settlementStatus === EnumTaskSettlementStatus.Wait | 
|---|
|  |  |  | " | 
|---|
|  |  |  | v-model:file-url="editForm.settlementUrl" | 
|---|
|  |  |  | ref="uploadRef" | 
|---|
|  |  |  | :showTip="false" | 
|---|
|  |  |  | 
|---|
|  |  |  | EnumTaskSettlementOrderStatus, | 
|---|
|  |  |  | EnumTaskSettlementStatus, | 
|---|
|  |  |  | } from '@/constants'; | 
|---|
|  |  |  | import { downloadFileByUrl } from '@/utils'; | 
|---|
|  |  |  | import { downloadFileByUrl, setOssFileName } from '@/utils'; | 
|---|
|  |  |  | import * as taskServices from '@/services/api/task'; | 
|---|
|  |  |  | import { ModelValueType } from 'element-plus'; | 
|---|
|  |  |  | import UploadStatementDialog from './components/UploadStatementDialog.vue'; | 
|---|
|  |  |  | 
|---|
|  |  |  | const operationBtns = defineOperationBtns([ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 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) => openSettleDialog(role), | 
|---|
|  |  |  | onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleDialog(role), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: () => false, | 
|---|
|  |  |  | hide: (role: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | !( | 
|---|
|  |  |  | role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Completed && | 
|---|
|  |  |  | role.settlementStatus === EnumTaskSettlementStatus.Wait | 
|---|
|  |  |  | ), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | emits: { | 
|---|
|  |  |  | onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: (role: API.GetSettlementTasksQueryResultItem) => | 
|---|
|  |  |  | role.settlementOrderStatus === EnumTaskSettlementOrderStatus.Wait, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | 
|---|
|  |  |  | onClick: (role) => handleExport(role), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | extraProps: { | 
|---|
|  |  |  | hide: () => false, | 
|---|
|  |  |  | hide: () => true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ]); | 
|---|
|  |  |  | 
|---|
|  |  |  | settlementAmount: { type: 'money' }, | 
|---|
|  |  |  | settlementTime: { 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), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function handleAddOrEdit() { | 
|---|
|  |  |  | goDetail(editForm.id, editForm.settlementUrl[0]?.url); | 
|---|
|  |  |  | goDetail(editForm.id, editForm.settlementUrl[0]?.path); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | code: '', | 
|---|
|  |  |  | settlementUserCount: 0, | 
|---|
|  |  |  | settlementAmount: 0, | 
|---|
|  |  |  | actualSettlementAmount: 0, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | id: row.id, | 
|---|
|  |  |  | name: row.name, | 
|---|
|  |  |  | code: row.code, | 
|---|
|  |  |  | settlementUserCount: row.settlementUserCount, | 
|---|
|  |  |  | settlementAmount: row.settlementAmount, | 
|---|
|  |  |  | settlementUserCount: row.settlementUserCount ?? 0, | 
|---|
|  |  |  | actualSettlementAmount: row.actualSettlementAmount ?? 0, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | async function handleRecall(row: API.GetSettlementTasksQueryResultItem) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Message.tipMessage('确认要撤回吗?'); | 
|---|
|  |  |  | await Message.tipMessage('确认要撤回吗?'); | 
|---|
|  |  |  | let params: API.RevokeTaskSettlementOrderCommand = { | 
|---|
|  |  |  | taskInfoId: row.id, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | 
|---|
|  |  |  | response: UploadUserFile & { file: File & { uid: number } }, | 
|---|
|  |  |  | row: API.GetSettlementTasksQueryResultItem | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | if (response.url) { | 
|---|
|  |  |  | goDetail(row.id, response.url); | 
|---|
|  |  |  | if (response.path) { | 
|---|
|  |  |  | goDetail(row.id, response.path); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goDetail(id: string, url?: string) { | 
|---|
|  |  |  | router.push({ | 
|---|
|  |  |  | async function goDetail(id: string, url?: string) { | 
|---|
|  |  |  | await router.push({ | 
|---|
|  |  |  | name: 'ServiceChargeDetail', | 
|---|
|  |  |  | query: { | 
|---|
|  |  |  | params: { | 
|---|
|  |  |  | id: id, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | query: { | 
|---|
|  |  |  | url: url ? url : '', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | editForm.settlementUrl = [] as UploadUserFile[]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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> | 
|---|