| | |
| | | <AppContainer> |
| | | <PageFormLayout title="基本信息"> |
| | | <ProForm :model="form" ref="productFormRef" label-width="110px" :is-read="isDetail"> |
| | | <ProFormItemV2 |
| | | label="供应商:" |
| | | prop="supplierEnterpriseId" |
| | | :check-rules="[{ message: '请选择供应商' }]" |
| | | > |
| | | <ProFormSelect |
| | | v-model="form.supplierEnterpriseId" |
| | | :value-enum="supplierEnterpriseSelect" |
| | | placeholder="请选择供应商" |
| | | ></ProFormSelect> |
| | | </ProFormItemV2> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="需求人数:" |
| | | prop="needPeopleNumber" |
| | | :check-rules="[{ message: '请输入需求人数' }]" |
| | | > |
| | | <ProFormInputNumber |
| | | :controls="false" |
| | | v-model="form.needPeopleNumber" |
| | | placeholder="请输入需求人数" |
| | | :min="0" |
| | | :max="999999999999" |
| | | :precision="0" |
| | | unit="人" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | </ProFormCol> |
| | | <ProFormCol> |
| | | <ProFormColItem :span="12"> |
| | | <ProFormItemV2 |
| | | label="服务费:" |
| | | prop="billingMethod" |
| | | :check-rules="[ |
| | |
| | | if (!form.billingMethod) { |
| | | callback(new Error('请选择服务费类型')); |
| | | } |
| | | if (!form.serviceFee) { |
| | | if (!form.serviceFee && form.billingMethod !== EnumBillingMethod.Face) { |
| | | callback(new Error('请输入服务费')); |
| | | } |
| | | callback(); |
| | |
| | | :value-enum="EnumBillingMethodText" |
| | | :showExtra="true" |
| | | :button-style="false" |
| | | :disabled="feeCannotEdit" |
| | | > |
| | | <template #extra> |
| | | <ProFormInputNumber |
| | | v-if="form.billingMethod !== EnumBillingMethod.Face" |
| | | :controls="false" |
| | | v-model="form.serviceFee" |
| | | placeholder="请输入" |
| | | :min="0" |
| | | :max="999999999999" |
| | | :unit="EnumBillingMethodUnitText[form.billingMethod]" |
| | | :disabled="feeCannotEdit" |
| | | ></ProFormInputNumber> |
| | | </template> |
| | | </RadioWithExtra> |
| | |
| | | prop="verifyWorkHours" |
| | | :check-rules="[{ message: '请输入核定工时' }]" |
| | | > |
| | | <span v-if="isDetail && !form.verifyWorkHours"></span> |
| | | <ProFormInputNumber |
| | | v-else |
| | | :controls="false" |
| | | v-model="form.verifyWorkHours" |
| | | placeholder="请输入核定工时" |
| | | :min="0" |
| | | :max="999999999999" |
| | | unit="小时/天" |
| | | :disabled="feeCannotEdit" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | prop="timeoutServiceFee" |
| | | :check-rules="[{ message: '请输入超时服务费' }]" |
| | | > |
| | | <span v-if="isDetail && !form.timeoutServiceFee"></span> |
| | | <ProFormInputNumber |
| | | v-else |
| | | :controls="false" |
| | | v-model="form.timeoutServiceFee" |
| | | placeholder="请输入超时服务费" |
| | | :min="0" |
| | | :max="999999999999" |
| | | unit="元/小时" |
| | | :disabled="feeCannotEdit" |
| | | ></ProFormInputNumber> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | :value-enum="EnumSettlementCycleText" |
| | | :button-style="false" |
| | | @change="handleSettlementCycleChange" |
| | | :disabled="feeCannotEdit" |
| | | ></ProFormRadio> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :disabled-date="disabledDate" |
| | | @change="handleTimeChange" |
| | | ></ProFormDatePicker> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | |
| | | const id = route.params.id as string; |
| | | const isEdit = !!id; |
| | | |
| | | const { settlementAccessList } = useEnterpriseWalletAccessSelect(); |
| | | const { supplierEnterpriseSelect } = useGetSupplierEnterpriseSelect(); |
| | | |
| | | function disabledDate(time: Date) { |
| | | return dayjs(time).isBefore(dayjs(), 'day'); |
| | | } |
| | | |
| | | function disabledapplyDate(time: Date) { |
| | | return dayjs(time).isBefore(form.time[0], 'day'); |
| | | return dayjs(time).isAfter(dayjs(form.time[1]), 'day') || dayjs(time).isBefore(dayjs(), 'day'); |
| | | } |
| | | |
| | | const feeCannotEdit = computed(() => { |
| | | return dayjs().isAfter(form.time[0], 'second') && isEdit; |
| | | }); |
| | | |
| | | const eventContext = useGlobalEventContext(); |
| | | |
| | |
| | | }); |
| | | |
| | | const form = reactive({ |
| | | supplierEnterpriseId: '', |
| | | name: '', |
| | | needPeopleNumber: null as number, |
| | | billingMethod: EnumBillingMethod.Day, |
| | | serviceFee: null, |
| | | settlementCycle: EnumSettlementCycle.Day, |
| | |
| | | settlementAccess: '' as any as EnumEnterpriseWalletAccess, |
| | | }); |
| | | |
| | | const { settlementAccessList } = useEnterpriseWalletAccessSelect({ |
| | | supplierEnterpriseId: computed(() => form.supplierEnterpriseId), |
| | | }); |
| | | |
| | | const { isLoading } = useQuery({ |
| | | queryKey: ['taskServices/getTaskInfo', id], |
| | | queryFn: async () => { |
| | |
| | | }, |
| | | placeholderData: () => ({} as API.GetTaskInfoQueryResult), |
| | | onSuccess(data) { |
| | | form.supplierEnterpriseId = data.supplierEnterpriseId; |
| | | form.name = data.name; |
| | | form.needPeopleNumber = data.needPeopleNumber; |
| | | form.billingMethod = data.billingMethod; |
| | | form.serviceFee = data.serviceFee; |
| | | form.settlementCycle = data.settlementCycle; |
| | |
| | | form.settlementDate = null as number; |
| | | } |
| | | |
| | | function handleTimeChange() { |
| | | form.applyTime = [] as unknown as ModelValueType; |
| | | } |
| | | |
| | | function handleBack() { |
| | | closeViewPush(route, { |
| | | name: 'TaskManageList', |
| | |
| | | async function submit() { |
| | | try { |
| | | let params: API.SaveTaskInfoCommand = { |
| | | supplierEnterpriseId: form.supplierEnterpriseId, |
| | | name: form.name, |
| | | needPeopleNumber: form.needPeopleNumber, |
| | | billingMethod: form.billingMethod, |
| | | serviceFee: form.serviceFee, |
| | | settlementCycle: form.settlementCycle, |