| | |
| | | <div class="form-input-unit">{{ BillingMethodEnumUnit[form.billingMethod] }}</div> |
| | | </div> |
| | | </nut-form-item> |
| | | <template |
| | | v-if=" |
| | | form.billingMethod === EnumBillingMethod.Hour || |
| | | form.billingMethod === EnumBillingMethod.Day |
| | | " |
| | | > |
| | | <template v-if="form.billingMethod === EnumBillingMethod.Hour"> |
| | | <nut-form-item |
| | | label="核定工时:" |
| | | class="bole-form-item" |
| | |
| | | v-if="form.billingMethod === EnumBillingMethod.Piece" |
| | | label="总件数:" |
| | | class="bole-form-item" |
| | | prop="totalPieces" |
| | | prop="totalPieceQuantity" |
| | | label-width="90" |
| | | > |
| | | <div class="bole-form-input-wrapper"> |
| | | <NumberInput |
| | | v-model.trim="form.totalPieces" |
| | | v-model.trim="form.totalPieceQuantity" |
| | | class="nut-input-text bole-input-text" |
| | | placeholder="请输入任务总件数" |
| | | :min="0" |
| | |
| | | <nut-checkbox |
| | | v-for="(val, key) in EnumTaskCheckReceiveMethodText" |
| | | :key="key" |
| | | :label="key as any" |
| | | :label="Number(key) as any" |
| | | > |
| | | {{ val }} |
| | | </nut-checkbox> |
| | |
| | | prop="totalServiceFee" |
| | | label-width="110px" |
| | | > |
| | | {{ form.totalServiceFee }} |
| | | {{ `${toThousand(form.totalServiceFee)}元` }} |
| | | </nut-form-item> |
| | | </nut-form> |
| | | </ContentScrollView> |
| | |
| | | ChooseInputWithAreaPicker, |
| | | ChooseInputWithCheckbox, |
| | | } from '@12333/components'; |
| | | import { FormValidator, Message } from '@12333/utils'; |
| | | import { FormValidator, Message, toThousand } from '@12333/utils'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import Taro from '@tarojs/taro'; |
| | |
| | | applyBeginTime: '', |
| | | applyEndTime: '', |
| | | settlementAccess: '' as any as EnumEnterpriseWalletAccess, |
| | | totalPieces: '' as any as number, |
| | | totalPieceQuantity: '' as any as number, |
| | | |
| | | totalServiceFee: null as number, |
| | | }); |
| | |
| | | supplierEnterpriseId: [{ required: true, message: '请选择供应商' }], |
| | | name: [{ required: true, message: '请输入任务名称' }], |
| | | needPeopleNumber: [{ required: true, message: '请输入需求人数' }], |
| | | totalPieces: [{ required: true, message: '请输入任务总件数' }], |
| | | totalPieceQuantity: [{ required: true, message: '请输入任务总件数' }], |
| | | verifyWorkHours: [{ required: true, message: '请输入核定工时' }], |
| | | timeoutServiceFee: [{ required: true, message: '请输入超时服务费' }], |
| | | genderLimit: [{ required: true, message: '请选择性别要求' }], |
| | |
| | | form.needPeopleNumber = data.needPeopleNumber; |
| | | form.billingMethod = data.billingMethod; |
| | | form.serviceFee = data.serviceFee; |
| | | form.totalPieceQuantity = data.totalPieceQuantity; |
| | | form.settlementCycle = data.settlementCycle; |
| | | form.settlementDate = data.settlementDate; |
| | | form.benefits = (data.benefits ?? []).map((item) => item.benefitCode); |
| | |
| | | }, |
| | | }); |
| | | |
| | | async function calcTaskTotalServiceFee() { |
| | | try { |
| | | let params: API.CalcTaskTotalServiceFeeCommand = { |
| | | billingMethod: form.billingMethod, |
| | | serviceFee: form.serviceFee, |
| | | verifyWorkHours: form.verifyWorkHours, |
| | | totalPieceQuantity: form.totalPieceQuantity, |
| | | needPeopleNumber: form.needPeopleNumber, |
| | | beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'), |
| | | endTime: dayjs(form.endTime).format('YYYY-MM-DD 23:59:59'), |
| | | }; |
| | | let res = await taskServices.calcTaskTotalServiceFee(params); |
| | | if (res) { |
| | | form.serviceFee = res.totalServiceFee; |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | const formRef = ref<any>(null); |
| | | function handleConfirm() { |
| | | if (!formRef.value) return; |
| | |
| | | |
| | | async function confirm() { |
| | | try { |
| | | await calcTaskTotalServiceFee(); |
| | | |
| | | let params: API.SaveTaskInfoCommand = { |
| | | supplierEnterpriseId: form.supplierEnterpriseId, |
| | | name: form.name, |
| | | needPeopleNumber: form.needPeopleNumber, |
| | | billingMethod: form.billingMethod, |
| | | serviceFee: form.serviceFee, |
| | | totalPieceQuantity: form.totalPieceQuantity, |
| | | settlementCycle: form.settlementCycle, |
| | | settlementDate: form.settlementDate ? form.settlementDate : 0, |
| | | benefits: form.benefits, |
| | |
| | | if (isCopy) { |
| | | params.id = ''; |
| | | } |
| | | let res = await taskServices.saveTaskInfo(params); |
| | | let res = await taskServices.saveTaskInfo(params, { skipErrorHandler: true }); |
| | | if (res) { |
| | | Message.success(isEdit && !isCopy ? '编辑成功' : '发布成功', { |
| | | onClosed() { |
| | |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } catch (error) { |
| | | if (error?.info?.errorCode == 'BalanceNotEnough') { |
| | | await Message.confirm({ |
| | | message: `您当前账户余额不足,暂时无法发布任务,请登录客户端后台充值后操作`, |
| | | showCancelBtn: false, |
| | | }); |
| | | } else { |
| | | Message.error(error); |
| | | } |
| | | } |
| | | } |
| | | |
| | | function timeChange() { |