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