zhengyiming
4 天以前 86fd98273c64b51f3662b3391847a9d5967f68fa
apps/bMiniApp/src/subpackages/payrollManage/payrollChange/InnerPage.vue
@@ -11,28 +11,30 @@
            :max="999999999999"
            :precision="2"
            type="text"
            disabled
          />
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="超时:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="超时:" class="bole-form-item" prop="timeoutHours" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.timeoutHours"
            class="nut-input-text bole-input-text"
            placeholder="请输入超时时长"
            :min="0"
            :max="999999999999"
            :precision="2"
            type="text"
            @change="onTimeoutHoursChange"
          />
          <div class="form-input-unit">小时</div>
        </div>
      </nut-form-item>
      <nut-form-item label="超时费用:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="超时费用:" class="bole-form-item" prop="timeoutFee" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.timeoutFee"
            class="nut-input-text bole-input-text"
            placeholder="请输入超时费用"
            :min="0"
@@ -43,13 +45,12 @@
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="其他费用:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="其他费用:" class="bole-form-item" prop="otherFee" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.otherFee"
            class="nut-input-text bole-input-text"
            placeholder="请输入其他费用"
            :min="0"
            :max="999999999999"
            :precision="2"
            type="text"
@@ -57,10 +58,10 @@
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="开户行:" class="bole-form-item" prop="bank" label-width="90px">
        {{ `结算费用${0}元` }}
      <nut-form-item label="结算金额:" class="bole-form-item" prop="bank" label-width="90px">
        {{ `${settlementAmount}元` }}
      </nut-form-item>
      <nut-form-item label="备注:" class="bole-form-item" prop="remark" label-width="90px">
      <nut-form-item label="备注:" class="bole-form-item alignTop" prop="remark" label-width="90px">
        <nut-textarea v-model="form.remark" rows="4" placeholder="请输入备注"> </nut-textarea>
      </nut-form-item>
    </nut-form>
@@ -75,18 +76,81 @@
import { NumberInput } from '@12333/components';
import { FormValidator, Message } from '@12333/utils';
import * as userServices from '@12333/services/apiV2/user';
import { EnumUserBankCardAccess } from '@12333/constants';
import { EnumEnterpriseWalletAccess, EnumUserBankCardAccess } from '@12333/constants';
import { goBack } from '@/utils';
import Taro from '@tarojs/taro';
import * as taskUserServices from '@12333/services/apiV2/taskUser';
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@12333/services/apiV2/task';
import { useEventChannel } from 'senin-mini/hooks';
defineOptions({
  name: 'InnerPage',
});
const { userDetail, updateUserInfo } = useUser();
const router = Taro.useRouter();
//结算单id
const settleId = router.params?.settleId ?? '';
//人员id
const orderRosterId = router.params?.orderRosterId ?? '';
const operatorToken = router.params?.operatorToken ?? '';
const { isLoading, refetch } = useQuery({
  queryKey: ['taskUserServices/getSettlementTaskUsers', settleId, operatorToken],
  queryFn: async () => {
    let params: API.APIgetSettlementTaskUsersParams = {
      id: settleId,
      operatorToken: operatorToken,
    };
    return await taskUserServices.getSettlementTaskUsers(params, {
      showLoading: false,
    });
  },
  placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
  onSuccess(res) {
    const settlementTaskUser = res.data.find((x) => x.id === orderRosterId);
    if (res?.detail) {
      form.serviceFee = settlementTaskUser?.serviceFee ?? 0;
      form.actualSettlementAmount = settlementTaskUser?.actualSettlementAmount ?? 0;
      form.receiveAccount = settlementTaskUser?.receiveAccount ?? '';
      form.bank = settlementTaskUser?.bank ?? '';
      form.settlementAccess = res?.detail?.settlementAccess;
      form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
      form.timeoutHours = settlementTaskUser?.timeoutHours ?? ('' as any as number);
      form.timeoutFee = settlementTaskUser?.timeoutFee ?? ('' as any as number);
      form.otherFee = settlementTaskUser?.otherFee ?? ('' as any as number);
      form.remark = settlementTaskUser?.remark ?? '';
      // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
      // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
    }
  },
});
const form = reactive({
  serviceFee: '' as any as number,
  actualSettlementAmount: '' as any as number,
  receiveAccount: '',
  bank: '',
  settlementAccess: EnumEnterpriseWalletAccess.PingAnPay,
  timeoutServiceFee: 0,
  timeoutHours: '' as any as number,
  timeoutFee: '' as any as number,
  otherFee: '' as any as number,
  remark: '',
});
const settlementAmount = computed(
  () =>
    getFeeValue(Number(form.timeoutFee ?? 0)) +
    getFeeValue(Number(form.serviceFee ?? 0)) +
    getFeeValue(Number(form.otherFee ?? 0))
);
function getFeeValue(val: number) {
  return val || 0;
}
const rules = reactive<FormRules>({
  code: [
@@ -101,6 +165,10 @@
  verifyCode: [{ required: true, message: '请输入验证码' }],
});
function onTimeoutHoursChange(event: any) {
  form.timeoutFee = form.timeoutServiceFee * event.detail.value;
}
const formRef = ref<any>(null);
function handleConfirm() {
  if (!formRef.value) return;
@@ -111,18 +179,50 @@
  });
}
const eventChannel = useEventChannel();
async function confirm() {
  try {
    let params: API.SavePersonalUserBankCardCommand = {};
    let res = await userServices.savePersonalUserBankCard(params);
    if (res) {
      Message.success('修改成功', {
        onClosed() {
          goBack();
        },
      });
    }
  } catch (error) {}
  let params: API.EditTaskSettlementOrderRosterCommand = {
    id: orderRosterId,
    settlementAmount: settlementAmount.value,
    actualSettlementAmount: form.actualSettlementAmount,
    receiveAccount: form.receiveAccount,
    bank: form.bank,
    // totalWorkHours: editForm.totalWorkHours,
    // bankBranch: editForm.bankBranch,
    serviceFee: form.serviceFee,
    timeoutHours: form.timeoutHours,
    timeoutFee: form.timeoutFee,
    otherFee: form.otherFee,
    remark: form.remark,
  };
  // try {
  //   let params: API.EditTaskSettlementOrderRosterCommand = {
  //     id: orderRosterId,
  //     settlementAmount: settlementAmount.value,
  //     actualSettlementAmount: form.actualSettlementAmount,
  //     receiveAccount: form.receiveAccount,
  //     bank: form.bank,
  //     // totalWorkHours: editForm.totalWorkHours,
  //     // bankBranch: editForm.bankBranch,
  //     serviceFee: form.serviceFee,
  //     timeoutHours: form.timeoutHours,
  //     timeoutFee: form.timeoutFee,
  //     otherFee: form.otherFee,
  //     remark: form.remark,
  //   };
  //   let res = await taskServices.editTaskSettlementOrderRoster(params);
  //   if (res) {
  //     Message.success('修改成功', {
  //       onClosed() {
  //         goBack();
  //       },
  //     });
  //     eventChannel.emit('update');
  //   }
  // } catch (error) {}
  goBack();
  eventChannel.emit('update', params);
}
</script>