| | |
| | | <view class="list-item-row" @click="show = true"> |
| | | <view class="list-item-row-label">用工时间<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <text>{{form.startDate ? form.startDate + ' 至 ' + form.endDate + ' (' + form.priceNum1 + '天) ' : '请选择'}}</text> |
| | | <text>{{form.startDate ? form.startDate + ' 至 ' + form.endDate + ' (' + workDays + '天) ' : '请选择'}}</text> |
| | | <u-icon name="arrow-right" color="#111111" size="16"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row" @click="selectAddress()"> |
| | | <view class="list-item-row-label">用工地点<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <text>{{form.location ? form.location : '请选择'}}</text> |
| | | <u-icon name="arrow-right" color="#111111" size="16"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">地点描述</view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.locationRemark" placeholder="请输入" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>需求</text> |
| | | </view> |
| | | <view class="list-item-row" @click="show1 = true"> |
| | | <view class="list-item-row-label">包装品种<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <text>{{form.categoryName ? form.categoryName : '请选择'}}</text> |
| | | <u-icon name="arrow-right" color="#111111" size="16"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">用工数量<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input type="number" v-model="form.priceNum2" @blur="getPrice" placeholder="请输入" /> |
| | | <text>人</text> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row" v-if="viewStatus"> |
| | | <view class="list-item-row-label">需求补充</view> |
| | | <view class="list-item-row-val"> |
| | | <textarea v-model="form.supplement" cols="30" rows="10" placeholder="如果有特殊要求,请在此处说明" maxlength="200"></textarea> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row" v-if="viewStatus"> |
| | | <view class="list-item-row-label">图片</view> |
| | | <view class="list-item-row-upload"> |
| | | <view class="upload-item" v-for="(item, index) in form.multifileList" :key="index"> |
| | | <image :src="item.url" mode="widthFix"></image> |
| | | <image class="upload-item-dele" @click="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image> |
| | | |
| | | <template v-if="!(info.type !== 2 && info.status === 2)"> |
| | | <view class="list-item-row" @click="selectAddress()"> |
| | | <view class="list-item-row-label">用工地点<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <text style="width:80%;">{{form.location ? form.location : '请选择'}}</text> |
| | | <u-icon name="arrow-right" color="#111111" size="16"></u-icon> |
| | | </view> |
| | | <view class="upload-item" @click="uploadImg"> |
| | | <u-icon name="plus" color="#999999" size="24"></u-icon> |
| | | <text>点击上传</text> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">地点描述</view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.locationRemark" placeholder="请输入" /> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | </view> |
| | | <template v-if="!(info.type !== 2 && info.status === 2)"> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>需求</text> |
| | | </view> |
| | | <view class="list-item-row" @click="show1 = true"> |
| | | <view class="list-item-row-label">包装品种<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <text>{{form.categoryName ? form.categoryName : '请选择'}}</text> |
| | | <u-icon name="arrow-right" color="#111111" size="16"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row" > |
| | | <view class="list-item-row-label">需求补充</view> |
| | | <view class="list-item-row-val"> |
| | | <textarea v-model="form.supplement" cols="30" rows="10" placeholder="如果有特殊要求,请在此处说明" maxlength="200"></textarea> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row" > |
| | | <view class="list-item-row-label">图片</view> |
| | | <view class="list-item-row-upload"> |
| | | <view class="upload-item" v-for="(item, index) in form.multifileList" :key="index"> |
| | | <image :src="item.url || item.fileurlFull" mode="widthFix"></image> |
| | | <image class="upload-item-dele" @click="form.multifileList.splice(index, 1)" src="/static/icon/ic_delete1@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="upload-item" @click="uploadImg"> |
| | | <u-icon name="plus" color="#999999" size="24"></u-icon> |
| | | <text>点击上传</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="list-item-zk" @click="viewStatus = !viewStatus"> |
| | | <text>{{viewStatus ? '收起' : '补充需求'}}</text> |
| | | <u-icon :name="viewStatus ? 'arrow-up' : 'arrow-down'" color="#00BC12" size="16"></u-icon> |
| | | </view> --> |
| | | </view> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>费用</text> |
| | | </view> |
| | | <view class="list-item-cate"> |
| | | <view :class="form.carType === item.id ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in settlementType" :key="index" @click="clickType(item.id)">{{item.name}}</view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label" v-if="form.carType === 0">用工天数</view> |
| | | <view class="list-item-row-label" v-if="form.carType === 1">工作时长<b>*</b></view> |
| | | <view class="list-item-row-label" v-if="form.carType === 2">包装重量<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input v-model="form.priceNum1" :disabled="form.carType === 0" @blur="getPrice" type="digit" placeholder="请输入" /> |
| | | <text v-if="form.carType === 0">天</text> |
| | | <text v-if="form.carType === 1">小时</text> |
| | | <text v-if="form.carType === 2">斤</text> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">用工数量<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input type="digit" v-model="form.priceNum2" @blur="getPrice" placeholder="请输入" /> |
| | | <text>人</text> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">费用标准<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input v-model="form.price" type="digit" @blur="getPrice" placeholder="请输入" /> |
| | | <text>{{form.priceUnit}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-zk" @click="viewStatus = !viewStatus"> |
| | | <text>{{viewStatus ? '收起' : '补充需求'}}</text> |
| | | <u-icon :name="viewStatus ? 'arrow-up' : 'arrow-down'" color="#00BC12" size="16"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>费用</text> |
| | | </view> |
| | | <view class="list-item-cate"> |
| | | <view :class="form.carType === item.id ? 'list-item-cate-item active' : 'list-item-cate-item'" v-for="(item, index) in settlementType" :key="index" @click="clickType(item.id)">{{item.name}}</view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">天数</view> |
| | | <view class="list-item-row-val"> |
| | | <input v-model="form.priceNum1" disabled @blur="getPrice" type="number" placeholder="请输入" /> |
| | | <text>天</text> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>联系人信息</text> |
| | | <text class="list-item-label-info">默认发单方联系方式,可修改联系人</text> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">联系人姓名</view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.linkName" placeholder="请补充" /> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">联系电话<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.linkPhone" maxlength="11" placeholder="请补充" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">费用标准<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input v-model="form.price" type="number" @blur="getPrice" placeholder="请输入" /> |
| | | <text>{{form.priceUnit}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="list-item"> |
| | | <view class="list-item-label"> |
| | | <view class="list-item-label-x"></view> |
| | | <text>联系人信息</text> |
| | | <text class="list-item-label-info">默认发单方联系方式,可修改联系人</text> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">联系人姓名</view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.linkName" placeholder="请补充" /> |
| | | </view> |
| | | </view> |
| | | <view class="list-item-row"> |
| | | <view class="list-item-row-label">联系电话<b>*</b></view> |
| | | <view class="list-item-row-val"> |
| | | <input type="text" v-model="form.linkPhone" maxlength="11" placeholder="请补充" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | </view> |
| | | <view style="width: 100%; height: calc(214rpx + env(safe-area-inset-bottom));"></view> |
| | | <view class="footer"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="footer-bottom"> |
| | | <div class="footer-bottom-btn" @click="submit"> |
| | | <text>立即下单</text> |
| | | <text>(服务完成后付款)</text> |
| | | <div class="footer-bottom-btn" @click="submit" > |
| | | <text>{{form.id?'确认修改':'立即下单'}}</text> |
| | | <text v-if="!form.id">(服务完成后付款)</text> |
| | | </div> |
| | | </view> |
| | | <view style="width: 100%; height: env(safe-area-inset-bottom);"></view> |
| | |
| | | :show="show" |
| | | color="#00BC12" |
| | | mode="range" |
| | | :allowSameDay="true" |
| | | @close="show = false" |
| | | @confirm="confirmDate" /> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | info: {}, |
| | | show: false, |
| | | show1: false, |
| | | form: { |
| | | id: null, |
| | | days: '', |
| | | startDate: '', |
| | | endDate: '', |
| | |
| | | }, |
| | | settlementType: [ |
| | | { name: '按天付费', id: 0 }, |
| | | { name: '按次付费', id: 1 }, |
| | | { name: '按小时付费', id: 1 }, |
| | | { name: '按重量付费', id: 2 } |
| | | ], |
| | | cateList: [], |
| | | viewStatus: false |
| | | viewStatus: true, |
| | | workDays: 0 |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | | this.form.linkPhone = this.userInfo.telephone |
| | | this.form.priceNum1 = option.days |
| | | this.form.startDate = option.startDate |
| | | this.form.endDate = option.endDate |
| | | this.form.lat = option.latitude |
| | | this.form.lgt = option.longitude |
| | | this.form.location = option.address |
| | | this.form.workType = option.workType |
| | | if (option.id) { |
| | | this.form.id = option.id |
| | | this.$u.api.getDetail({ |
| | | orderId: option.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | for (const key in this.form) { |
| | | this.form[key] = res.data[key] |
| | | } |
| | | this.form.days = res.data.totalDays |
| | | this.form.price = Number(this.form.price) / 100 |
| | | if (!this.form.multifileList) { |
| | | this.form.multifileList = [] |
| | | } |
| | | this.workDays = res.data.totalDays |
| | | // this.clickType() |
| | | } |
| | | |
| | | }) |
| | | } else { |
| | | this.form.linkName = this.userInfo.name |
| | | this.form.linkPhone = this.userInfo.telephone |
| | | this.form.priceNum1 = option.days |
| | | this.form.startDate = option.startDate |
| | | this.form.endDate = option.endDate |
| | | this.form.lat = option.latitude |
| | | this.form.lgt = option.longitude |
| | | this.form.location = option.address |
| | | this.form.workType = option.workType |
| | | this.form.days = option.days |
| | | this.workDays = option.days |
| | | } |
| | | this.getCateList() |
| | | }, |
| | | methods: { |
| | |
| | | if (!this.form.categoryId) { |
| | | return uni.showToast({ title: '请选择分拣品种', icon: 'none' }) |
| | | } |
| | | if (this.form.carType !=0 && !this.form.priceNum1) { |
| | | var t = this.form.carType ==1?"工作时长":"包装重量" |
| | | return uni.showToast({ title: '请输入'+t, icon: 'none' }) |
| | | } |
| | | if (!this.form.priceNum2) { |
| | | return uni.showToast({ title: '请输入用工数量', icon: 'none' }) |
| | | } |
| | | if (!this.form.price) { |
| | | return uni.showToast({ title: '请输入费用标准', icon: 'none' }) |
| | | } |
| | | } |
| | | if (!this.form.linkPhone) { |
| | | return uni.showToast({ title: '请输入联系电话', icon: 'none' }) |
| | | } |
| | | this.$u.api.release({ ...this.form, price: Number(this.form.price) * 100 }) |
| | | .then(res => { |
| | | if (res.code == 200) { |
| | | uni.navigateTo({ |
| | | url: `/pages/success/success?orderId=${res.data.id}` |
| | | }) |
| | | } |
| | | }) |
| | | if (!this.form.id) { |
| | | this.$u.api.release({ ...this.form, price: Number(this.form.price) * 100 }) |
| | | .then(res => { |
| | | if (res.code == 200) { |
| | | uni.navigateTo({ |
| | | url: `/pages/success/success?orderId=${res.data.id}` |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | this.$u.api.updateOrder({ ...this.form, price: Number(this.form.price) * 100 }) |
| | | .then(res => { |
| | | if (res.code == 200) { |
| | | if (res.code == 200) { |
| | | uni.showToast({ title: '编辑成功', icon: 'success', mask: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | uni.navigateBack({ delta: 1 }); |
| | | // uni.$emit('refresh') |
| | | }, 1500) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // 计算金额 |
| | | getPrice() { |
| | |
| | | this.$u.api.getTotal({ |
| | | price: Number(this.form.price) * 100, |
| | | priceNum1: this.form.priceNum1, |
| | | priceNum2: this.form.priceNum2, |
| | | priceNum2: this.form.priceNum2, |
| | | type: this.form.type, |
| | | carType:this.form.carType , |
| | | workType: this.form.workType |
| | | }).then(res => { |
| | | this.form.estimatedAccount = res.data |
| | | if (res.code === 200) { |
| | | this.form.estimatedAccount = res.data |
| | | } |
| | | |
| | | }) |
| | | } |
| | | }, |
| | | confirmDate(e) { |
| | | this.form.startDate = e[0] |
| | | this.form.endDate = e[e.length - 1] |
| | | this.form.days = e.length; |
| | | let time = this.form.startDate == this.form.endDate ? 1 : 0 |
| | | this.workDays = e.length - time; |
| | | if (this.form.carType === 0) { |
| | | this.form.priceNum1 = e.length - time; |
| | | } |
| | | this.show = false |
| | | this.getPrice() |
| | | }, |
| | | selectAddress() { |
| | | uni.chooseLocation({ |
| | | success: (res) => { |
| | | this.form.lat = res.latitude |
| | | this.form.lgt = res.longitude |
| | | this.form.address = res.address |
| | | this.form.address =res.name || res.address |
| | | } |
| | | }); |
| | | }, |
| | |
| | | this.form.carType = id |
| | | if (id === 0) { |
| | | this.form.priceUnit = '元/人/天' |
| | | } else { |
| | | this.form.priceNum1 = this.workDays |
| | | } else if (id === 1) { |
| | | this.form.priceUnit = '元/人/小时' |
| | | this.form.priceNum1 = '' |
| | | } else { |
| | | this.form.priceUnit = '元/斤' |
| | | this.form.priceNum1 = '' |
| | | } |
| | | }, |
| | | confirmCategary(e) { |
| | |
| | | this.$u.api.getCategoryList({ |
| | | type: 0 |
| | | }).then(res => { |
| | | this.cateList = [res.data] |
| | | if (res.code === 200) { |
| | | this.cateList = [res.data] |
| | | } |
| | | }) |
| | | }, |
| | | uploadImg() { |