zhengyiming
4 天以前 23b5582be8bfadad2ef9ee352dc61644474abe55
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,10 +45,10 @@
          <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"
@@ -57,10 +59,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 +77,74 @@
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(
  () => Number(form.timeoutFee ?? 0) + Number(form.serviceFee ?? 0) + Number(form.otherFee ?? 0)
);
const rules = reactive<FormRules>({
  code: [
@@ -101,6 +159,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,16 +173,32 @@
  });
}
const eventChannel = useEventChannel();
async function confirm() {
  try {
    let params: API.SavePersonalUserBankCardCommand = {};
    let res = await userServices.savePersonalUserBankCard(params);
    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) {}
}