| | |
| | | :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" |
| | |
| | | <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" |
| | |
| | | <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> |
| | |
| | | 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: [ |
| | |
| | | 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; |
| | |
| | | }); |
| | | } |
| | | |
| | | 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) {} |
| | | } |