| | |
| | | <template> |
| | | <view class="full-page c-m-b-40"> |
| | | <view class="list c-p-t-10"> |
| | | <up-form labelPosition="left" :model="publicJob" ref="form1" labelWidth='160rpx'> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="工作名称" prop="publicJob.orderName" :borderBottom='false' ref="item1"> |
| | | <view class="list"> |
| | | <up-form labelPosition="left" :model="publicJob" ref="formRef" labelWidth='160rpx'> |
| | | <view class="content c-p-l-24"> |
| | | <up-form-item label="工作名称" prop="orderName" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.orderName" border="none" placeholder="请填写工作名称"></up-input> |
| | | <!-- <template #right> |
| | | <up-icon name="arrow-right"></up-icon> |
| | | </template> --> |
| | | </up-form-item> |
| | | </view> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="工作时间" prop="workTime" :borderBottom='false' ref="item1" @click="clickTime"> |
| | | <up-form-item label="工作日期" prop="wordStartTime" required :borderBottom='false' ref="item1" |
| | | @click="clickTime(3)"> |
| | | <up-input v-model="workDate" border="none" readonly placeholder="点击选择工作日期"></up-input> |
| | | <up-icon #right name="arrow-right"></up-icon> |
| | | </up-form-item> |
| | | <up-form-item label="自行安排" prop="startTime" :borderBottom='false' ref="item1" |
| | | v-if="publicJob.workerType==1"> |
| | | <up-checkbox :customStyle="{marginBottom: '8px'}" label="自行安排时间" name="agree" usedAlone |
| | | v-model:checked="publicJob.zixinganpai" /> |
| | | </up-form-item> |
| | | <up-form-item label="工作时间" prop="startTime" required :borderBottom='false' ref="item1" |
| | | v-if="!publicJob.zixinganpai" @click="clickTime(6)"> |
| | | <up-input v-model="workTime" border="none" readonly placeholder="点击选择工作时间"></up-input> |
| | | <up-icon #right name="arrow-right"></up-icon> |
| | | </up-form-item> |
| | | </view> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="用工要求" prop="publicJob.demand" :borderBottom='false' ref="item1"> |
| | | <up-form-item label="用工要求" prop="demand" required :borderBottom='false' ref="item1"> |
| | | <view class="c-p-b-20"> |
| | | <up-textarea v-model="publicJob.demand" border="none" placeholder="请输入用工要求" count |
| | | maxlength='400'></up-textarea> |
| | | </view> |
| | | </up-form-item> |
| | | <view class="c-p-t-20 c-p-b-20"> |
| | | <up-form-item label="招工人数" prop="publicJob.worderCount" :borderBottom='false' ref="item1"> |
| | | <up-number-box v-model="publicJob.worderCount" @change="valChange"></up-number-box> |
| | | </up-form-item> |
| | | </view> |
| | | <view class="c-p-t-20 c-p-b-20"> |
| | | <up-form-item label="工作地点" prop="publicJob.worderAddress" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.worderAddress" border="none" placeholder="请输入工作地点"></up-input> |
| | | <up-icon #right name="arrow-right"></up-icon> |
| | | </up-form-item> |
| | | </view> |
| | | </view> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="联系电话" prop="publicJob.contactPhone" :borderBottom='false' ref="item1"> |
| | | <up-form-item label="招工人数" prop="worderCount" required :borderBottom='false' ref="item1"> |
| | | <up-number-box button-size="24" v-model="publicJob.worderCount"></up-number-box> |
| | | </up-form-item> |
| | | <up-form-item label="工作地点" prop="worderAddress" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.worderAddress" border="none" placeholder="请输入工作地点"></up-input> |
| | | <up-icon #right name="arrow-right"></up-icon> |
| | | </up-form-item> |
| | | <up-form-item label="联系电话" prop="contactPhone" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.contactPhone" border="none" placeholder="请输入联系电话"></up-input> |
| | | </up-form-item> |
| | | </view> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="方式" prop="publicJob.workerType" :borderBottom='false' ref="item1"> |
| | | <up-tag class='c-p-r-14' text="计时" type="warning" :plain='!(publicJob.workerType=="0")' size="large" |
| | | <up-form-item label="方式" prop="workerType" required :borderBottom='false' ref="item1"> |
| | | <up-tag class='c-p-r-14' text="计时" type="warning" :plain='!(publicJob.workerType=="0")' |
| | | @click='changStyle(0)'></up-tag> |
| | | <up-tag class='c-p-r-14' text="计件" type="warning" :plain='!(publicJob.workerType=="1")' size="large" |
| | | <up-tag class='c-p-r-14' text="计件" type="warning" :plain='!(publicJob.workerType=="1")' |
| | | @click='changStyle(1)'></up-tag> |
| | | </up-form-item> |
| | | </view> |
| | | <view class="content c-p-10 c-p-l-24 c-m-t-10 c-m-b-20"> |
| | | <up-form-item label="计时工价" prop="publicJob.workPrice" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.workPrice" border="none" placeholder="请输入工价"> |
| | | <up-form-item :label="publicJob.workerType==0?'计时工价':'计件工价'" prop="workPrice" required |
| | | :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.workPrice" border="none" placeholder="请输入工价" type="digit"> |
| | | <template #suffix>{{publicJob.workerType=="0"?'元/小时':'元/件'}}</template></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="工价上限" prop="workPriceMax" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="publicJob.workPriceMax" border="none" placeholder="请输入工价上限" type="digit"> |
| | | <template #suffix>{{publicJob.workerType=="0"?'元/小时':'元/件'}}</template></up-input> |
| | | </up-form-item> |
| | | </view> |
| | |
| | | </up-form> |
| | | </view> |
| | | <view class="tabbtns"> |
| | | <up-button color='#fece01' class="text-69" text="发布招工" @click="saveOrder"></up-button> |
| | | <up-button color='#fece01' :text="editItem?'修改招工':'发布招工'" :loading='isLoading' :loadingText="editItem?'修改中':'发布中'" |
| | | @click="saveOrder"></up-button> |
| | | </view> |
| | | <!-- <fui-fab :zIndex="10" background='#fff' bottom='250'> |
| | | <fui-icon name="kefu-fill" color='#000'></fui-icon> |
| | | </fui-fab> --> |
| | | <fui-date-picker range :show="datePickerShow" type="5" @change="changePicker" :minDate='minDate' |
| | | @cancel="cancel"></fui-date-picker> |
| | | <fui-date-picker range :show="datePickerShow" :type="dateType" @change="changePicker" :minDate='minDate' |
| | | :start="dateType==6?'8:00':'开始日期'" :value="dateType==6?'8:00':sDate" :end="dateType==6?'18:00':eDate" |
| | | @cancel="cancel" :param='$util.formatDate(new Date())'></fui-date-picker> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | ref, |
| | | reactive, |
| | | getCurrentInstance |
| | | getCurrentInstance, |
| | | onMounted |
| | | } from 'vue'; |
| | | import { |
| | | onLoad, |
| | | onShow |
| | | onShow, |
| | | onReady, |
| | | onHide |
| | | } from "@dcloudio/uni-app"; |
| | | const { |
| | | $upload, |
| | |
| | | useStore |
| | | } from 'vuex' |
| | | onLoad(() => { |
| | | let data = JSON.parse($db.get('userInfo')).userCompany |
| | | let data = $db.get('userInfo').userCompany |
| | | editItem = $db.get('editItem') |
| | | if (data) { |
| | | publicJob.orderUserId = data.id |
| | | publicJob.orderUserId = 5 |
| | | publicJob.worderAddress = data.address |
| | | publicJob.contactPhone = data.phone //联系电话 |
| | | } |
| | | if (editItem) { |
| | | publicJob = reactive(editItem) |
| | | workDate.value = editItem.wordStartTimeName + '至' + editItem.wordEndTimeName |
| | | sDate = editItem.wordStartTimeName |
| | | eDate = editItem.wordEndTimeName |
| | | $db.del('editItem') |
| | | } |
| | | }) |
| | | let rules = { |
| | | orderName: { |
| | | required: true, |
| | | message: '工作名称不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | wordStartTime: { |
| | | required: true, |
| | | message: '工作日期不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | startTime: { |
| | | required: true, |
| | | message: '工作时间不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | demand: { |
| | | required: true, |
| | | message: '用工要求不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | worderAddress: { |
| | | required: true, |
| | | message: '工作地点不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | resume: { |
| | | required: true, |
| | | message: '公司简介不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | contactPhone: { |
| | | required: true, |
| | | message: '联系电话不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | workPrice: { |
| | | type: 'number', |
| | | required: true, |
| | | message: '工价不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | workPriceMax: { |
| | | type: 'number', |
| | | required: true, |
| | | message: '工价上限不能为空', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | } |
| | | const formRef = ref(null); |
| | | onReady(() => { |
| | | formRef.value.setRules(rules); |
| | | }) |
| | | onShow(()=>{ |
| | | console.log('Show-------------',publicJob); |
| | | }) |
| | | onHide(()=>{ |
| | | publicJob = reactive({ |
| | | id: 0, //招工Id |
| | | orderUserId: '', //招工用户id |
| | | orderName: '', //招工名称 |
| | | wordStartTime: '', //工作开始日期 |
| | | wordEndTime: '', //工作结束日期 |
| | | startTime: `${$util.formatDate(new Date())}T08:00:00.000`, //工作开始时间 |
| | | endTime: `${$util.formatDate(new Date())}T18:00:00.000`, //工作结束时间 |
| | | demand: '', //需求 |
| | | zixinganpai: false, //自行安排时间 |
| | | worderCount: 1, //招工人数 |
| | | worderAddress: '', //工作地点 |
| | | contactPhone: '', //联系电话 |
| | | workerType: 0, //工作方式 0计时1计件 |
| | | workPrice: '', //工价 |
| | | }) |
| | | workDate.value = '' |
| | | }) |
| | | onMounted(() => { |
| | | formRef.value.setRules(rules); |
| | | console.log(formRef.value, 'formRef'); // 访问子组件Demo中的属性 |
| | | }); |
| | | let dateType = ref() |
| | | let minDate = $util.formatDate(new Date()) |
| | | let sDate = $util.formatDate(new Date(), null, 1) |
| | | let eDate = '结束日期' |
| | | let longitude = ref(0) |
| | | let latitude = ref(0) |
| | | let workTime = ref('') |
| | | let workDate = ref('') |
| | | let workTime = ref('8:00至18:00') |
| | | const store = useStore() |
| | | let datePickerShow = ref(false) |
| | | const publicJob = reactive({ |
| | | let isLoading = ref(false) |
| | | let editItem = null |
| | | let publicJob = reactive({ |
| | | id: 0, //招工Id |
| | | orderUserId: '', //招工用户id |
| | | orderName: '', //招工名称 |
| | | wordStartTime: '', //工作开始时间 |
| | | wordEndTime: '', //工作结束时间 |
| | | wordStartTime: '', //工作开始日期 |
| | | wordEndTime: '', //工作结束日期 |
| | | startTime: `${$util.formatDate(new Date())}T08:00:00.000`, //工作开始时间 |
| | | endTime: `${$util.formatDate(new Date())}T18:00:00.000`, //工作结束时间 |
| | | demand: '', //需求 |
| | | worderCount: '', //招工人数 |
| | | zixinganpai: false, //自行安排时间 |
| | | worderCount: 1, //招工人数 |
| | | worderAddress: '', //工作地点 |
| | | contactPhone: '', //联系电话 |
| | | workerType: 0, //工作方式 0计时1计件 |
| | |
| | | const style = ref('time') |
| | | const changStyle = (val) => { |
| | | publicJob.workerType = val |
| | | if (val == 0) { |
| | | publicJob.zixinganpai = false |
| | | } |
| | | } |
| | | const clickTime = () => { |
| | | const clickTime = (type) => { |
| | | dateType.value = type |
| | | datePickerShow.value = !datePickerShow.value |
| | | } |
| | | const cancel = () => { |
| | | datePickerShow.value = !datePickerShow.value |
| | | } |
| | | const changePicker = (val) => { |
| | | console.log(val); |
| | | workTime.value = val.startDate.result + '至' + val.endDate.result |
| | | publicJob.wordStartTime = new Date(val.startDate.result) //工作开始时间 |
| | | publicJob.wordEndTime = new Date(val.endDate.result) |
| | | if (dateType.value == 3) { |
| | | workDate.value = val.startDate.result + '至' + val.endDate.result |
| | | // publicJob.wordStartTime = new Date(val.startDate.result) //工作开始时间 |
| | | publicJob.wordStartTime = val.startDate.result //工作开始时间 |
| | | publicJob.wordEndTime = new Date(val.endDate.result) |
| | | } else { |
| | | workTime.value = val.startDate.result + '至' + val.endDate.result |
| | | publicJob.StartTime = `${val.startDate.param}T${val.startDate.result}:00.000` //工作开始时间 |
| | | publicJob.EndTime = `${val.endDate.param}T${val.endDate.result}:00.000` |
| | | } |
| | | } |
| | | const saveOrder = () => { |
| | | // publicJob.worderCount = (+publicJob.worderCount) |
| | | $api.saveOrder(publicJob).then(res => { |
| | | $util.showToast({ |
| | | title: "保存成功!", |
| | | icon: "success" |
| | | }) |
| | | uni.navigateTo({ |
| | | url:'/pages/order/order' |
| | | console.log(publicJob, 'publicJob', publicJob.workPrice); |
| | | formRef.value.validate().then(res => { |
| | | isLoading.value = true |
| | | let time = publicJob.wordStartTime |
| | | publicJob.wordStartTime = new Date(publicJob.wordStartTime) |
| | | $api.saveOrder(publicJob).then(res => { |
| | | if (res.code == 1) { |
| | | if (editItem) { |
| | | uni.navigateBack() |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: '/pages/order/order' |
| | | }) |
| | | } |
| | | $util.showToast({ |
| | | title: editItem?'修改成功!':"保存成功!", |
| | | icon: "success" |
| | | }) |
| | | } else { |
| | | publicJob.wordStartTime = time |
| | | $util.showToast({ |
| | | title: res.error |
| | | }) |
| | | } |
| | | isLoading.value = false |
| | | }) |
| | | }) |
| | | } |