| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading"> |
| | | <AppScrollContainer> |
| | | <AppContainer> |
| | | <ChunkCell title="结算单详情"> |
| | | <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true"> |
| | | <ProFormCol> |
| | |
| | | <ProFormCol> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="结算金额:" prop="settlementAmount"> |
| | | <ProFormInputNumber v-model="form.settlementAmount"> </ProFormInputNumber> |
| | | <ProFormInputNumber v-model="form.settlementAmount" format-value="money"> |
| | | </ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="8"> |
| | | <ProFormItemV2 label="实发金额:" prop="actualSettlementAmount"> |
| | | <ProFormInputNumber v-model="form.actualSettlementAmount"> </ProFormInputNumber> |
| | | <ProFormInputNumber v-model="form.actualSettlementAmount" format-value="money"> |
| | | </ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | |
| | | </el-steps> |
| | | </div> |
| | | </ChunkCell> --> |
| | | <ChunkCell title="结算名单"> |
| | | <ChunkCell title="结算名单" style="flex: 1"> |
| | | <ProTableQueryFilterBar @on-reset="reset"> |
| | | <template #query> |
| | | <QueryFilterItem> |
| | |
| | | <ProTableV2 |
| | | v-bind="proTableProps" |
| | | :columns="SettlementListColumns" |
| | | :operationBtns="operationBtns" |
| | | :show-operation-column="false" |
| | | :auto-height="false" |
| | | ref="proTable" |
| | | :tableProps="{ |
| | |
| | | > |
| | | </ProTableV2> |
| | | <div class="chuck-add-or-edit-actions"> |
| | | <el-button @click="handleBack">取消</el-button> |
| | | <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit" |
| | | <el-button class="chuck-add-or-edit-actions" @click="handleBack">取消</el-button> |
| | | <el-button |
| | | v-if="!isDetail" |
| | | class="chuck-add-or-edit-actions" |
| | | type="primary" |
| | | @click="handleSubmit" |
| | | >确认</el-button |
| | | > |
| | | </div> |
| | | </ChunkCell> |
| | | </AppScrollContainer> |
| | | </AppContainer> |
| | | <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog> |
| | | </LoadingLayout> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import { |
| | | LoadingLayout, |
| | | AppContainer, |
| | | AppScrollContainer, |
| | | ChunkCell, |
| | | ProForm, |
| | |
| | | import * as taskUserServices from '@/services/api/taskUser'; |
| | | import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue'; |
| | | import { Message } from '@bole-core/core'; |
| | | import { paginateList } from '@/utils'; |
| | | import { paginateList, setOssFileName, toThousand } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'ServiceChargeDetail', |
| | |
| | | ]); |
| | | |
| | | const route = useRoute(); |
| | | const id = (route.query.id as string) ?? ''; |
| | | const id = (route.params.id as string) ?? ''; |
| | | const url = (route.query.url as string) ?? ''; |
| | | |
| | | const isDetail = computed(() => !url); |
| | | |
| | | const form = reactive({ |
| | | name: '', |
| | |
| | | placeholderData: () => ({} as API.GetSettlementTaskQueryResult), |
| | | onSuccess(data) { |
| | | form.name = data.name; |
| | | form.settlementAmount = data.settlementAmount; |
| | | form.actualSettlementAmount = data.actualSettlementAmount; |
| | | form.settlementAmount = data.settlementAmount ?? 0; |
| | | form.actualSettlementAmount = data.actualSettlementAmount ?? 0; |
| | | form.code = data.code; |
| | | form.settlementOrderName = data.settlementOrderName; |
| | | form.settlementOrderTime = data.settlementOrderTime; |
| | | form.settlementOrderName = setOssFileName(data.settlementOrderName); |
| | | form.settlementOrderTime = data.settlementOrderTime ?? ''; |
| | | }, |
| | | enabled: !!id, |
| | | }); |
| | |
| | | }; |
| | | let res = await taskUserServices.getSettlementTaskUsers(params); |
| | | if (extraParamState.keywords) { |
| | | res.data = res.data.filter((item) => { |
| | | res.data = res.data?.filter((item) => { |
| | | return ( |
| | | item.name.includes(extraParamState.keywords) || |
| | | item.contactPhoneNumber.includes(extraParamState.keywords) || |
| | |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | queryKey: ['taskUserServices/getSettlementTaskUsers'], |
| | | columnsRenderProps: {}, |
| | | columnsRenderProps: { |
| | | settlementTime: { type: 'date' }, |
| | | settlementAmount: { type: 'money' }, |
| | | actualSettlementAmount: { type: 'money' }, |
| | | }, |
| | | } |
| | | ); |
| | | |
| | |
| | | let params: API.SureTaskSettlementOrderCommand = { |
| | | taskInfoId: id, |
| | | settlementOrderUrl: url, |
| | | taskInfoUsers: [], |
| | | taskInfoUsers: |
| | | proTableProps.value.tableData?.length > 0 |
| | | ? proTableProps.value.tableData.map( |
| | | (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser) |
| | | ) |
| | | : [], |
| | | }; |
| | | let res = await taskServices.sureTaskSettlementOrder(params); |
| | | if (res) { |