From 2d43a1df3f5ba42710e6d21c27d1e13bdb8dfd56 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期一, 24 三月 2025 09:23:08 +0800
Subject: [PATCH] -

---
 src/pages/release/index.vue |  360 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 286 insertions(+), 74 deletions(-)

diff --git a/src/pages/release/index.vue b/src/pages/release/index.vue
index 76c066f..ecf4baa 100644
--- a/src/pages/release/index.vue
+++ b/src/pages/release/index.vue
@@ -1,68 +1,62 @@
 <template>
 	<view class="full-page c-m-b-40">
-		<view class="list c-p-t-10">
-			<up-form labelPosition="left" :model="model1" ref="form1" labelWidth='160rpx'>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="鏍囬" prop="userInfo.name" :borderBottom='false' ref="item1">
-						<up-input v-model="model1.userInfo.name" border="none" placeholder="璇峰~鍐欐嫑宸ラ渶姹�,濡�:璐存爣鎵撳寘"></up-input>
-						<template #right>
+		<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>
+						</template> -->
 					</up-form-item>
-				</view>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="宸ヤ綔鏃堕棿" prop="userInfo.name" :borderBottom='false' ref="item1">
-						<up-input v-model="model1.userInfo.name" border="none" placeholder="濡備粖澶�9:00-浠婂ぉ17:00"></up-input>
+					<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>
-				</view>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="鎬у埆瑕佹眰" prop="userInfo.name" :borderBottom='false' ref="item1">
-
-						<up-tag class='c-p-r-14' text="鐢�" type="warning" plain size="large"></up-tag>
-						<up-tag class='c-p-r-14' text="濂�" type="warning" plain size="large"></up-tag>
-						<up-tag class='c-p-r-14' text="涓嶉檺" type="warning" size="large"></up-tag>
-						<!-- <up-input v-model="model1.userInfo.name" border="none" placeholder="濡備粖澶�9:00-浠婂ぉ17:00"></up-input> -->
+					<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>
-					<view class="c-p-t-20 c-p-b-20">
-						<up-form-item label="骞撮緞闄愬埗" prop="userInfo.name" :borderBottom='false' ref="item1">
-							<up-input v-model="model1.userInfo.name" border="none" placeholder="16~涓嶉檺"></up-input>
-							<up-icon #right name="arrow-right"></up-icon>
-						</up-form-item>
-					</view>
-					<view class="c-p-t-20 c-p-b-20">
-						<up-form-item label="鎷涘伐浜烘暟" prop="userInfo.name" :borderBottom='false' ref="item1">
-							<up-number-box v-model="model1.userInfo.value" @change="valChange"></up-number-box>
-						</up-form-item>
-					</view>
-					<view class="c-p-t-20 c-p-b-20">
-						<up-form-item label="宸ヤ綔鍦扮偣" prop="userInfo.name" :borderBottom='false' ref="item1">
-							<up-input v-model="model1.userInfo.address" border="none"
-								placeholder="濡備粖澶�9:00-浠婂ぉ17:00"></up-input>
-							<up-icon #right name="arrow-right"></up-icon>
-						</up-form-item>
-					</view>
-				</view>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="鑱旂郴鐢佃瘽" prop="userInfo.name" :borderBottom='false' ref="item1">
-						<up-input v-model="model1.userInfo.number" border="none"
-							placeholder="濡備粖澶�9:00-浠婂ぉ17:00"></up-input>
+					<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="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="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>
+					<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="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>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="鏂瑰紡" prop="userInfo.name" :borderBottom='false' ref="item1">
-						<up-tag class='c-p-r-14' text="璁℃椂" type="warning"  size="large"></up-tag>
-						<up-tag class='c-p-r-14' text="璁′欢" type="warning" plain size="large"></up-tag>
-					</up-form-item>
-				</view>
-				<view class="content c-p-20 c-m-t-10 c-m-b-20">
-					<up-form-item label="璁℃椂宸ヤ环" prop="userInfo.name" :borderBottom='false' ref="item1">
-						<up-input v-model="model1.userInfo.xiaoshi" border="none"
-							placeholder="濡備粖澶�9:00-浠婂ぉ17:00">
-							<template #suffix>鍏�/灏忔椂</template></up-input>
-					</up-form-item>
-				</view>
-				<view class="coreshop-bg-white c-m-t-20 c-p-20">
+				<!-- <view class="coreshop-bg-white c-m-t-20 c-p-20">
 					<view class="c-p-b-20 colorgray">
 						鎷涘伐瑕佹眰鎴栫鍒�(鍙閫�)
 					</view>
@@ -75,44 +69,262 @@
 					<view class="c-p-b-20">
 						<up-textarea v-model="value1" placeholder="璇疯緭鍏�:鍙互琛ュ厖鎷涘伐瑕佹眰鍜岀鍒�" ></up-textarea>
 					</view>
-				</view>
+				</view> -->
 			</up-form>
 		</view>
 		<view class="tabbtns">
-			<up-button color='#fece01' class="text-69" text="鍙戝竷鎷涘伐"></up-button>
+			<up-button color='#fece01' :text="editItem?'淇敼鎷涘伐':'鍙戝竷鎷涘伐'" :loading='isLoading' :loadingText="editItem?'淇敼涓�':'鍙戝竷涓�'"
+				@click="saveOrder"></up-button>
 		</view>
-		<fui-fab :zIndex="10" background='#fff' bottom='150'>
+		<!-- <fui-fab :zIndex="10" background='#fff' bottom='250'>
 			<fui-icon name="kefu-fill" color='#000'></fui-icon>
-		</fui-fab>
+		</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':eDate"
+			@cancel="cancel" :param='$util.formatDate(new Date())'></fui-date-picker>
 	</view>
 </template>
 
 <script setup>
 	import {
 		ref,
-		reactive
+		reactive,
+		getCurrentInstance,
+		onMounted
 	} from 'vue';
-	const tags = ['鍙棤缁忛獙','鏅氫笂鍖呴キ','鍙鐔熸墜','鎵嬭剼楹诲埄','涓崍鍖呴キ','鍚冮キ涓嶆墸鏃�','涓嶇(娲嬪伐','绂佹鍚哥儫']
-	const value1 = ref('')
-	const model1 = reactive({
-		userInfo: {
-			name: '',
-			sex: '',
-			number: 12345678989,
-			value: 3,
-			address: '鍥涘窛鐪佹垚閮藉競姝︿警鍖虹幆鐞冧笢璺�',
-			xiaoshi:20
+	import {
+		onLoad,
+		onShow,
+		onReady,
+		onHide
+	} from "@dcloudio/uni-app";
+	const {
+		$upload,
+		$api,
+		$util,
+		$db
+	} = getCurrentInstance().appContext.config.globalProperties
+	import {
+		useStore
+	} from 'vuex'
+	onLoad(() => {
+		let data = $db.get('userInfo').userCompany
+		editItem = $db.get('editItem')
+		if (data) {
+			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'); // 璁块棶瀛愮粍浠禗emo涓殑灞炴��
 	});
+	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 workDate = ref('')
+	let workTime = ref('8:00鑷�18:00')
+	const store = useStore()
+	let datePickerShow = ref(false)
+	let isLoading = ref(false)
+	let editItem = null
+	let 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: '', //宸ヤ环
+	})
+
+	const style = ref('time')
+	const changStyle = (val) => {
+		publicJob.workerType = val
+		if (val == 0) {
+			publicJob.zixinganpai = false
+		}
+	}
+	const clickTime = (type) => {
+		dateType.value = type
+		datePickerShow.value = !datePickerShow.value
+	}
+	const cancel = () => {
+		datePickerShow.value = !datePickerShow.value
+	}
+	const changePicker = (val) => {
+		console.log(val);
+		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 = () => {
+		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
+			})
+		})
+	}
+	const toMap = () => {
+		// #ifdef MP-WEIXIN
+		console.log(store, 'store鈥�');
+		const txMapkey = store.state.config.qqMapKey; //浣跨敤鍦ㄨ吘璁綅缃湇鍔$敵璇风殑key
+		const referer = store.state.config.shopName; //璋冪敤鎻掍欢鐨刟pp鐨勫悕绉�
+		const location = JSON.stringify({
+			latitude: publicJob.latitude == "" ? latitude : publicJob.latitude,
+			longitude: publicJob.longitude == "" ? longitude : publicJob.longitude
+		});
+		const category = '';
+
+		wx.navigateTo({
+			url: 'plugin://chooseLocation/index?key=' + txMapkey + '&referer=' + referer +
+				'&location=' +
+				location + '&category=' + category
+		});
+		// #endif
+
+		// #ifdef APP-PLUS || APP-PLUS-NVUE
+		uni.chooseLocation({
+			success: (res) => {
+				console.log(res, 'res');
+			}
+		});
+		// #endif
+	}
 </script>
 
 <style>
-	.list{
-		
-	}
+	.list {}
+
 	.content {
 		width: 100%;
 		box-sizing: border-box;
 		background-color: #fff;
 	}
+
+	.u-textarea {
+		padding: 0 !important;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1