<template>
|
<ContentScrollView :paddingH="false">
|
<nut-form :model-value="form" ref="formRef" :rules="rules">
|
<nut-form-item
|
label="业务描述:"
|
class="bole-form-item labelTop"
|
prop="jobIntroduction"
|
required
|
>
|
<div class="publish-del-btn-wrapper">
|
<div class="publish-del-btn" @click="form.jobIntroduction = ''">
|
<Del2 />
|
清空
|
</div>
|
</div>
|
<nut-textarea
|
placeholder="请输入"
|
placeholderClass="bole-input-text-placeholder"
|
autoSize
|
class="bole-input-textarea jobIntroduction-textarea"
|
v-model="form.jobIntroduction"
|
:max-length="200"
|
show-word-limit
|
>
|
</nut-textarea>
|
</nut-form-item>
|
<nut-form-item label="工作环境:" class="bole-form-item labelTop" prop="src">
|
<Uploader v-model:file-list="form.src" :maximum="9" class="bole-uploader"> </Uploader>
|
</nut-form-item>
|
<nut-form-item label="同步发送至行业圈:" class="bole-form-item" prop="isSyncCircleFriend">
|
<nut-checkbox v-model="form.isSyncCircleFriend"></nut-checkbox>
|
</nut-form-item>
|
</nut-form>
|
</ContentScrollView>
|
<PageFooter :isOnlyAction="false">
|
<PageFooterBtn type="primary" plain @click="goToPrevious()">上一步</PageFooterBtn>
|
<PageFooterBtn type="primary" @click="handleSubmit()">发布</PageFooterBtn>
|
</PageFooter>
|
</template>
|
|
<script setup lang="ts">
|
import { usePublishOrderContext } from './context';
|
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
|
import { useParkOrHRCategoryList, useUser } from '@/hooks';
|
import { OrderStatus, EditorType, HireType, CycleTypeEnumUnitText } from '@12333/constants';
|
import { useAllAreaList } from '@12333/hooks';
|
import * as orderServices from '@12333/services/api/Order';
|
import { goBack } from '@/utils';
|
import { Message, convertFormUrl2Api, isFileAllUploaded } from '@12333/utils';
|
import { Del2 } from '@nutui/icons-vue-taro';
|
|
defineOptions({
|
name: 'PublishOrderStep3',
|
});
|
|
const { orderCategory } = useParkOrHRCategoryList();
|
|
const { userDetail } = useUser();
|
const { findAreaNameFromCode } = useAllAreaList();
|
|
const { goToPrevious, form, orderId, isEdit } = usePublishOrderContext();
|
|
const rules = reactive<FormRules>({
|
jobIntroduction: [{ required: true, message: '请输入业务描述' }],
|
});
|
|
watch(
|
() => form.src,
|
() => {
|
console.log('form.src: ', form.src);
|
}
|
);
|
|
const formRef = ref<any>(null);
|
|
function handleSubmit() {
|
if (!formRef.value) return;
|
formRef.value.validate().then(({ valid, errors }: any) => {
|
if (valid) {
|
handleCreateOrUpdate();
|
}
|
});
|
}
|
|
async function handleCreateOrUpdate() {
|
try {
|
if (!isFileAllUploaded(form.src)) {
|
Message.error('存在未上传完成的文件');
|
return;
|
}
|
let params: API.CreateOrUpdateOrderinput = {
|
name: form.name,
|
categoryId: orderCategory?.value?.id ?? '',
|
userId: userDetail.value.userId ?? '',
|
status: OrderStatus.WaitToAudit,
|
hireType: form.hireType,
|
hireNumber: form.hireNumber,
|
hireEndNumber: form.hireType === HireType.hireNumber ? form.hireNumber : form.hireEndNumber,
|
ageStart: form.ageStart,
|
ageEnd: form.ageEnd,
|
sexRequirement: form.sexRequirement,
|
manNumber: form.manNumber,
|
womanNumber: form.womanNumber,
|
rebateRemark: '返费时长',
|
provinceCode: form.areaList[0],
|
provinceName: findAreaNameFromCode(form.areaList[0]),
|
cityCode: form.areaList[1] || 0,
|
cityName: findAreaNameFromCode(form.areaList[1]),
|
countyCode: form.areaList[2] || 0,
|
countyName: findAreaNameFromCode(form.areaList[2]),
|
jobIntroduction: form.jobIntroduction,
|
externalcontactType: form.externalcontactType,
|
externalcontactNumber: form.externalcontactNumber,
|
salaryType: form.salaryType,
|
isSyncCircleFriend: form.isSyncCircleFriend,
|
src: convertFormUrl2Api(form.src),
|
supplierRefundList: [
|
{
|
rebateMode: form.rebateMode,
|
rebateTime: form.rebateTime,
|
supplierProfit: form.supplierProfit,
|
supplierProfitUint: form.cycleType,
|
cycleType: form.cycleType,
|
sequence: 1,
|
},
|
],
|
industryTypeId: form.industryTypeId,
|
integratedSalary: form.integratedSalary,
|
salaryTimeType: form.salaryTimeType,
|
};
|
if (isEdit.value) {
|
params.id = orderId;
|
}
|
let res = await orderServices.createOrUpdateOrder(params);
|
if (res) {
|
Message.success(isEdit.value ? '编辑成功' : '发布成功', {
|
onClosed() {
|
goBack();
|
},
|
});
|
}
|
} catch (error) {
|
console.log('error: ', error);
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.publish-del-btn-wrapper {
|
text-align: right;
|
margin-bottom: 12px;
|
|
.publish-del-btn {
|
font-size: 28px;
|
display: inline-block;
|
color: boleGetCssVar('text-color', 'primary');
|
vertical-align: middle;
|
cursor: pointer;
|
|
.nutui-iconfont {
|
color: boleGetCssVar('color', 'primary');
|
vertical-align: middle;
|
}
|
}
|
}
|
|
.jobIntroduction-textarea {
|
height: 600px !important;
|
}
|
</style>
|