From ec90cbd7680a6f927cb1cea43f33ab7df6d0864c Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 11 十一月 2025 09:23:22 +0800
Subject: [PATCH] -
---
src/pages/release/index.vue | 270 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 210 insertions(+), 60 deletions(-)
diff --git a/src/pages/release/index.vue b/src/pages/release/index.vue
index a7efc1e..ecf4baa 100644
--- a/src/pages/release/index.vue
+++ b/src/pages/release/index.vue
@@ -1,59 +1,59 @@
<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>
+ <!-- <template #right>
<up-icon name="arrow-right"></up-icon>
- </template>
+ </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"
- @click="toMap">
- <up-input v-model="publicJob.worderAddress" border="none" readonly
- 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='!(style=="time")' size="large"
- @click='changStyle("time")'></up-tag>
- <up-tag class='c-p-r-14' text="璁′欢" type="warning" :plain='!(style=="piece")' size="large"
- @click='changStyle("piece")'></up-tag>
+ <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>
- </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="濡備粖澶�9:00-浠婂ぉ17:00">
- <template #suffix>{{style=="time"?'鍏�/灏忔椂':'鍏�/浠�'}}</template></up-input>
+ <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="coreshop-bg-white c-m-t-20 c-p-20">
@@ -73,13 +73,15 @@
</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"
- @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>
@@ -87,8 +89,15 @@
import {
ref,
reactive,
- getCurrentInstance
+ getCurrentInstance,
+ onMounted
} from 'vue';
+ import {
+ onLoad,
+ onShow,
+ onReady,
+ onHide
+ } from "@dcloudio/uni-app";
const {
$upload,
$api,
@@ -98,43 +107,184 @@
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 workTime = ref('')
+ let workDate = ref('')
+ let workTime = ref('8:00鑷�18:00')
const store = useStore()
let datePickerShow = ref(false)
- const publicJob = reactive({
- id: '', //鎷涘伐Id
+ 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: '', //鎷涘伐浜烘暟
- worderCounted: '', //宸叉嫑宸ヤ汉鏁�
+ zixinganpai: false, //鑷瀹夋帓鏃堕棿
+ worderCount: 1, //鎷涘伐浜烘暟
worderAddress: '', //宸ヤ綔鍦扮偣
contactPhone: '', //鑱旂郴鐢佃瘽
- workerType: '', //宸ヤ綔鏂瑰紡
+ workerType: 0, //宸ヤ綔鏂瑰紡 0璁℃椂1璁′欢
workPrice: '', //宸ヤ环
- orderStatus: '', //鎷涘伐鐘舵��
- orderStatusName: '', //鏄惁閫変腑
- isSelected: '', //鏄惁閫変腑
- isSelectedName: '', //鏄惁閫変腑
})
const style = ref('time')
const changStyle = (val) => {
- style.value = 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);
+ 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 = () => {
- $api.saveOrder(publicJob).then(res => {
-
+ 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 = () => {
--
Gitblit v1.9.1