zhengyiming
2 天以前 9f79296b830c3c00a3a08dae4326af864a15d0ea
src/views/ServiceChargeManage/components/EditAccountInfoDialog.vue
@@ -8,7 +8,7 @@
    :width="700"
  >
    <ProForm :model="form" ref="dialogForm" label-width="120px">
      <template v-if="form.settlementAccess !== EnumEnterpriseWalletAccess.WeChatPay">
      <template v-if="form.settlementAccess === EnumEnterpriseWalletAccess.PingAnPay">
        <ProFormItemV2
          label="所属银行:"
          prop="bank"
@@ -35,15 +35,62 @@
        </ProFormItemV2>
      </template>
      <ProFormItemV2 label="调整工时:" prop="totalWorkHours">
      <!-- <ProFormItemV2 label="调整工时:" prop="totalWorkHours">
        <ProFormInputNumber
          placeholder="请输入调整工时"
          v-model.trim="form.totalWorkHours"
          :controls="false"
          :min="0"
        ></ProFormInputNumber>
      </ProFormItemV2> -->
      <ProFormItemV2 label="服务费:" prop="serviceFee">
        <ProFormInputNumber
          placeholder="请输入服务费:"
          v-model.trim="form.serviceFee"
          :controls="false"
          :min="0"
          disabled
          unit="元"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2
      <ProFormItemV2 label="超时:" prop="timeoutHours">
        <ProFormInputNumber
          placeholder="请输入超时:"
          v-model.trim="form.timeoutHours"
          :controls="false"
          :min="0"
          unit="小时"
          @change="onTimeoutHoursChange"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2 label="超时费用:" prop="timeoutFee">
        <ProFormInputNumber
          placeholder="请输入超时费用:"
          v-model.trim="form.timeoutFee"
          :controls="false"
          :min="0"
          unit="元"
          @change="onActualSettlementAmountChange"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2 label="其他费用:" prop="otherFee">
        <ProFormInputNumber
          placeholder="请输入其他费用:"
          v-model.trim="form.otherFee"
          :controls="false"
          unit="元"
          @change="onActualSettlementAmountChange"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2 label="结算金额:" prop="settlementAmount" mode="read">
        <ProFormInputNumber
          :modelValue="settlementAmount"
          :controls="false"
          :min="0"
          unit="元"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <!-- <ProFormItemV2
        label="结算金额:"
        prop="settlementAmount"
        :check-rules="[{ message: '请输入结算金额' }]"
@@ -54,7 +101,7 @@
          :controls="false"
          :min="0"
        ></ProFormInputNumber>
      </ProFormItemV2>
      </ProFormItemV2> -->
      <ProFormItemV2
        label="实发金额:"
        prop="actualSettlementAmount"
@@ -65,7 +112,11 @@
          v-model.trim="form.actualSettlementAmount"
          :controls="false"
          :min="0"
          unit="元"
        ></ProFormInputNumber>
      </ProFormItemV2>
      <ProFormItemV2 label="备注:" prop="remark">
        <ProFormTextArea placeholder="请输入备注" v-model="form.remark"></ProFormTextArea>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
@@ -86,6 +137,7 @@
  ProFormItemV2,
  ProFormText,
  UploadUserFile,
  ProFormTextArea,
} from '@bole-core/components';
import { EnumEnterpriseWalletAccess } from '@/constants';
@@ -97,12 +149,18 @@
  title?: string;
  id?: string;
  settlementAmount: number;
  totalWorkHours: number;
  // totalWorkHours: number;
  actualSettlementAmount: number;
  receiveAccount: string;
  bank: string;
  bankBranch?: string;
  settlementAccess: EnumEnterpriseWalletAccess;
  timeoutServiceFee: number;
  serviceFee: number;
  timeoutHours: number;
  timeoutFee: number;
  otherFee: number;
  remark: string;
};
const visible = defineModel({ type: Boolean });
@@ -114,6 +172,21 @@
  (e: 'onCancel'): void;
}>();
const settlementAmount = computed(() => sumSettlementAmount());
function sumSettlementAmount() {
  return (form.value.timeoutFee ?? 0) + (form.value.serviceFee ?? 0) + (form.value.otherFee ?? 0);
}
function onTimeoutHoursChange(val: number) {
  form.value.timeoutFee = form.value.timeoutServiceFee * val;
  onActualSettlementAmountChange();
}
function onActualSettlementAmountChange() {
  form.value.actualSettlementAmount = sumSettlementAmount();
}
const dialogForm = ref<FormInstance>();
function onDialogClose() {