From 93a986bc80abdef75923054b9df9adb6e1ccff52 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期二, 08 十月 2024 16:44:08 +0800 Subject: [PATCH] - --- src/pages/release/index.vue | 143 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 116 insertions(+), 27 deletions(-) diff --git a/src/pages/release/index.vue b/src/pages/release/index.vue index 9057028..b0994ce 100644 --- a/src/pages/release/index.vue +++ b/src/pages/release/index.vue @@ -1,46 +1,58 @@ <template> <view class="full-page c-m-b-40"> <view class="list"> - <up-form labelPosition="left" :model="publicJob" ref="form1" labelWidth='160rpx'> + <up-form labelPosition="left" :model="publicJob" ref="formRef" labelWidth='160rpx'> <view class="content c-p-l-24"> - <up-form-item label="宸ヤ綔鍚嶇О" prop="publicJob.orderName" :borderBottom='false' ref="item1"> + <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> - <up-form-item label="宸ヤ綔鏃ユ湡" prop="workDate" :borderBottom='false' ref="item1" @click="clickTime(3)"> + <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="workTime" :borderBottom='false' ref="item1" @click="clickTime(6)"> + <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> - <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> - <up-form-item label="鎷涘伐浜烘暟" prop="publicJob.worderCount" :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="publicJob.worderAddress" :borderBottom='false' ref="item1"> + <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="publicJob.contactPhone" :borderBottom='false' ref="item1"> + <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> - <up-form-item label="鏂瑰紡" prop="publicJob.workerType" :borderBottom='false' ref="item1"> + <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")' @click='changStyle(1)'></up-tag> </up-form-item> - <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> @@ -61,12 +73,14 @@ </up-form> </view> <view class="tabbtns"> - <up-button color='#fece01' class="text-69" text="鍙戝竷鎷涘伐" @click="saveOrder"></up-button> + <up-button color='#fece01' class="text-69" text="鍙戝竷鎷涘伐" :loading='isLoading' loadingText="鍙戝竷涓�" + @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="dateType" @change="changePicker" :minDate='minDate' + :start="dateType==6?'8:00':'寮�濮嬫棩鏈�'" :value="dateType==6?'8:00':sDate" :end="dateType==6?'18:00':'缁撴潫鏃ユ湡'" @cancel="cancel" :param='$util.formatDate(new Date())'></fui-date-picker> </view> </template> @@ -75,11 +89,13 @@ import { ref, reactive, - getCurrentInstance + getCurrentInstance, + onMounted } from 'vue'; import { onLoad, - onShow + onShow, + onReady } from "@dcloudio/uni-app"; const { $upload, @@ -91,31 +107,89 @@ useStore } from 'vuex' onLoad(() => { - let data = JSON.parse($db.get('userInfo')).userCompany + let data = $db.get('userInfo').userCompany if (data) { publicJob.orderUserId = 5 publicJob.worderAddress = data.address publicJob.contactPhone = data.phone //鑱旂郴鐢佃瘽 } }) + 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: { + required: true, + message: '宸ヤ环涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + }, + WorkPriceMax: { + required: true, + message: '宸ヤ环涓婇檺涓嶈兘涓虹┖', + trigger: ['blur', 'change'] + }, + } + const formRef = ref(null); + onReady(() => { + formRef.value.setRules(rules); + }) + onMounted(() => { + formRef.value.setRules(rules); + console.log(formRef.value, 'formRef'); // 璁块棶瀛愮粍浠禗emo涓殑灞炴�� + }); let dateType = ref() let minDate = $util.formatDate(new Date()) + let sDate = $util.formatDate(new Date(), null, 1) let longitude = ref(0) let latitude = ref(0) let workDate = ref('') - let workTime = ref('') + let workTime = ref('8:00鑷�18:00') const store = useStore() let datePickerShow = ref(false) + let isLoading = ref(false) const publicJob = reactive({ id: 0, //鎷涘伐Id orderUserId: '', //鎷涘伐鐢ㄦ埛id orderName: '', //鎷涘伐鍚嶇О wordStartTime: '', //宸ヤ綔寮�濮嬫棩鏈� wordEndTime: '', //宸ヤ綔缁撴潫鏃ユ湡 - StartTime: '', //宸ヤ綔寮�濮嬫椂闂� - EndTime: '', //宸ヤ綔缁撴潫鏃堕棿 + 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璁′欢 @@ -137,7 +211,8 @@ console.log(val); if (dateType.value == 3) { workDate.value = val.startDate.result + '鑷�' + val.endDate.result - publicJob.wordStartTime = new Date(val.startDate.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 @@ -146,13 +221,27 @@ } } const saveOrder = () => { - $api.saveOrder(publicJob).then(res => { - $util.showToast({ - title: "淇濆瓨鎴愬姛锛�", - icon: "success" - }) - uni.navigateTo({ - url: '/pages/order/order' + console.log(publicJob, 'publicJob', !publicJob.wordStartTime); + 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) { + uni.redirectTo({ + url: '/pages/order/order' + }) + $util.showToast({ + title: "淇濆瓨鎴愬姛锛�", + icon: "success" + }) + } else { + publicJob.wordStartTime = time + $util.showToast({ + title: res.msg + }) + } + isLoading.value = false }) }) } -- Gitblit v1.9.1