wupengfei
2025-11-13 f251855688664c719801a535221df5876208fdbc
src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -74,12 +74,18 @@
            >
              <el-button text type="primary" class="pro-table-operation-btn">导入</el-button>
            </BlFileUpload> -->
            <el-button type="primary" link @click="handleExport()">导出</el-button>
            <el-button
              v-if="checkSubModuleItemShow('pageButton', 'exportBtn')"
              type="primary"
              link
              @click="handleExport()"
              >导出</el-button
            >
          </template>
        </ProTableQueryFilterBar>
        <ProTableV2
          v-bind="proTableProps"
          :columns="SettlementListColumns"
          :columns="column"
          :operationBtns="operationBtns"
          :auto-height="false"
          ref="proTable"
@@ -90,7 +96,7 @@
        </ProTableV2>
        <div class="chuck-add-or-edit-actions">
          <el-button class="chuck-add-or-edit-actions" @click="handleBack">取消</el-button>
          <!-- <el-button
          <el-button
            v-if="
              isSettlement &&
              (!form.auditStatus || form.auditStatus !== EnumTaskSettlementAuditStatus.Pass)
@@ -98,10 +104,10 @@
            class="chuck-add-or-edit-actions"
            type="primary"
            @click="handleSubmit()"
            >结算申请</el-button
          > -->
            >结算确认</el-button
          >
          <el-button
            v-if="isSettlement"
            v-if="isSettlement && form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
            class="chuck-add-or-edit-actions"
            type="primary"
            @click="handleSubmit()"
@@ -139,7 +145,6 @@
  BlFileUpload,
  UploadUserFile,
} from '@bole-core/components';
import { SettlementListColumns } from './constants';
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@/services/api/task';
import * as taskUserServices from '@/services/api/taskUser';
@@ -164,25 +169,22 @@
const { closeViewPush } = useRouteView();
const eventContext = useGlobalEventContext();
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'editBtn',
      name: '编辑',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  editBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
        row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
        !(
          (row.settlementReceiveStatus === SettlementReceiveStatus.Refunded &&
            form.auditStatus === EnumTaskSettlementAuditStatus.Pass) ||
          form.auditStatus === EnumTaskSettlementAuditStatus.Wait
        ),
    },
  },
  {
    data: {
      enCode: 'editBtn',
      name: '重新结算',
    },
  reSettleBtn: {
    emits: {
      onClick: (role) => againSureTaskSettlementOrderRoster(role),
    },
@@ -191,7 +193,11 @@
        row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
    },
  },
]);
};
const { column, operationBtns, checkSubModuleItemShow } = useAccess({
  operationBtnMap,
});
const route = useRoute();
const id = (route.params.id as string) ?? '';
const settlement = (route.query.settlement as string) ?? '';
@@ -495,7 +501,31 @@
});
async function handleSettle() {
  sureTaskSettlementOrder();
  auditTaskSettlement();
}
async function auditTaskSettlement() {
  try {
    let params: API.AuditTaskSettlementCommand = {
      id: id,
      auditStatus: EnumTaskSettlementAuditStatus.Pass,
      rosters: form.settlementTaskUsers.map((item) => ({
        id: item.id,
        serviceFee: item.serviceFee,
        timeoutHours: item.timeoutHours,
        timeoutFee: item.timeoutFee,
        otherFee: item.otherFee,
        remark: item.remark,
        settlementAmount: item.settlementAmount,
      })),
    };
    let res = await taskServices.auditTaskSettlement(params);
    if (res) {
      Message.successMessage('操作成功');
      eventContext.emit('sureTaskSettlementOrder');
      handleBack();
    }
  } catch (error) {}
}
async function sureTaskSettlementOrder() {