| | |
| | | <text>我的订单</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 未登录 --> |
| | | <view class="index-wu" v-if="!isLogin"> |
| | | <image src="/static/icon/default_login@2x.png" mode="widthFix"></image> |
| | |
| | | <template v-else> |
| | | <!-- 发单方 --> |
| | | <view class="index-labs" v-if="typeViewId === 0" :style="{ top: statusbarHeight + navHeight + 'px' }"> |
| | | <scroll-view scroll-x class="scroll-view_H"> |
| | | <view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :key="index" @click="clickOrderType(item.id)"> |
| | | <scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status"> |
| | | <view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)"> |
| | | {{item.name}} |
| | | <view class="index-labs-row-x" v-if="item.id === status"></view> |
| | | <view class="index-labs-row-x" v-if=" item.id === status"></view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | <!-- 接单方 --> |
| | | <view class="index-labs" v-if="typeViewId === 1" :style="{ top: statusbarHeight + navHeight + 'px' }"> |
| | | <scroll-view scroll-x class="scroll-view_H"> |
| | | <view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :key="index" @click="clickOrderType(item.id)"> |
| | | <scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status"> |
| | | <view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)"> |
| | | {{item.name}} |
| | | <view class="index-labs-row-x" v-if="item.id === status"></view> |
| | | <view class="index-labs-row-x" v-if=" item.id === status "></view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | <!-- 发单方 --> |
| | | <view class="index-list" v-if="typeViewId === 0"> |
| | | <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)"> |
| | | <view class="index-list-wu" v-if="orderList.length === 0"> |
| | | <text>已加载全部数据</text> |
| | | </view> |
| | | <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else> |
| | | <view class="index-list-item-head"> |
| | | <view class="index-list-item-head-l"> |
| | | <view class="xoam"></view> |
| | | <text v-if="item.type === 0 && item.workType === 0">用工单 - 采摘工</text> |
| | | <text v-else-if="item.type === 0 && item.workType === 1">用工单 - 分拣工</text> |
| | | <text v-else-if="item.type === 0 && item.workType === 2">用工单 - 包装工</text> |
| | | <text v-else-if="item.type === 1">运货单-{{item.categoryName}}-{{item.carUnit}}</text> |
| | | <text v-else-if="item.type === 1">运货单 - {{item.categoryName}}</text> |
| | | <text v-else-if="item.type === 2">订餐单</text> |
| | | </view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 1">待接单方接单</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">待支付</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 1">待接单</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 2">已接单</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 3">进行中</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 2 && item.isUpdate === 1">已修改,待接单方确认</view> |
| | | <view class="index-list-item-head-r hui" v-if="item.status === 4 && item.commentStatus !== 0">已完成</view> |
| | | <view class="index-list-item-head-r hui" v-if="item.status === 99">已取消</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 4 && item.commentStatus === 0">待评价</view> |
| | |
| | | {{item.categoryName}}|{{item.priceNum1}}斤 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1"> |
| | | {{item.categoryName}}|{{item.priceNum1}}人 |
| | | {{item.categoryName}}|{{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2"> |
| | | {{item.categoryName}}|{{item.priceNum1}}人 |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0"> |
| | | {{item.categoryName}}|{{item.priceNum1}}天 | {{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1"> |
| | | {{item.categoryName}}|{{item.priceNum1}}小时 | {{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2"> |
| | | {{item.categoryName}}|{{item.priceNum1}}斤 | {{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 1"> |
| | | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}天 |
| | | {{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}{{item.carType === 0?"天":"次"}} |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 2"> |
| | | {{item.wayInfoCopy}} |
| | |
| | | <image src="/static/icon/ic_qidian@2x.png" mode="widthFix" v-if="i === 0"></image> |
| | | <image src="/static/icon/ic_jingguo@2x.png" mode="widthFix" v-else-if="i !== 0 && i !== item.wayInfo.length - 1"></image> |
| | | <image src="/static/icon/ic_zhongdian@2x.png" mode="widthFix" v-else-if="i === item.wayInfo.length - 1"></image> |
| | | <text>{{item.location}}</text> |
| | | <text>{{address.location}}</text> |
| | | </view> |
| | | </view> |
| | | <template v-if="[0, 2].includes(item.type)"> |
| | |
| | | <text>{{item.startDate}} 至 {{item.endDate}}({{item.totalDays}}天)</text> |
| | | </view> |
| | | </template> |
| | | <view class="index-list-item-price"> |
| | | <text>预估:</text> |
| | | <text>¥{{item.estimatedAccount / 100}}</text> |
| | | <view class="index-list-item-price"> |
| | | <text v-if="item.status==4 || item.type==2">已支付:</text> |
| | | <text v-if="item.status!=4&& item.type!=2">预估:</text> |
| | | <text>¥{{item.payAccount / 100}}</text> |
| | | </view> |
| | | <view class="eidt"> |
| | | <view></view> |
| | | <view> |
| | | <view class="eidt-tips" v-if="item.status === 2 && item.isUpdate == 1"><text>已修改,待接单方确认</text></view> |
| | | <view class="eidt-tips" v-if="item.status === 5"> |
| | | <image src="/static/icon/ic_tip@2x.png" mode="widthFix"></image> |
| | | <text>接单方已确认费用,请支付</text> |
| | | </view> |
| | | </view> |
| | | <view class="eidt-right"> |
| | | <view class="eidt-close" v-if="[0,1,2].includes(item.status)" @click.stop="orderId = item.id, show = true">取消订单</view> |
| | | <view class="eidt-phone" v-if="[2].includes(item.status)">联系师傅</view> |
| | | <view class="eidt-phone" v-if="item.status === 4 && item.commentStatus === 0">评价订单</view> |
| | | <view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2" @click.stop="jumpEdit(item)">修改订单</view> |
| | | <view class="eidt-btn" v-if="(item.type === 2 && item.status === 0) || (item.type === 2 && item.status === 3)" @click.stop="jumpEdit(item)">继续支付</view> |
| | | <view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2 && item.isUpdate!=1" @click.stop="jumpEdit(item)">修改订单</view> |
| | | <view class="eidt-btn" v-if="(item.type == 2 && item.status === 0)" @click.stop="jumpDesc(item,1)">继续支付</view> |
| | | <!-- <view class="eidt-btn" v-if="item.status === 2" @click.stop="startJobs(item.id)">开始作业</view> --> |
| | | <view class="eidt-btn" v-if="item.status === 3" @click.stop="jumpDesc(item)">完成并支付</view> |
| | | <view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item,2)">立即支付</view> |
| | | <view class="eidt-btn" v-if="item.type == 2 && item.status === 3" @click.stop="jumpDesc(item)">完成作业</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 接单方 --> |
| | | <view class="index-list" v-if="typeViewId === 1"> |
| | | <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)"> |
| | | <view class="index-list-wu" v-if="orderList.length === 0"> |
| | | <text>已加载全部数据</text> |
| | | </view> |
| | | <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else> |
| | | <view class="index-list-item-head"> |
| | | <view class="index-list-item-head-l"> |
| | | <view class="xoam"></view> |
| | | <text v-if="item.type === 0 && item.workType === 0">用工单 - 采摘工</text> |
| | | <text v-else-if="item.type === 0 && item.workType === 1">用工单 - 分拣工</text> |
| | | <text v-else-if="item.type === 0 && item.workType === 2">用工单 - 包装工</text> |
| | | <text v-else-if="item.type === 1">运货单-{{item.categoryName}}-{{item.carUnit}}</text> |
| | | <text v-else-if="item.type === 1">运货单 - {{item.categoryName}}</text> |
| | | <text v-else-if="item.type === 2">订餐单</text> |
| | | <view class="tips" v-if="item.acceptType === 1">系统派单</view> |
| | | <view class="tips1" v-if="item.acceptType === 0">自主抢单</view> |
| | | <view class="tips" v-if="item.acceptType === 1">派单</view> |
| | | <view class="tips1" v-if="item.acceptType === 0">抢单</view> |
| | | </view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">待支付</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 2">已接单</view> |
| | | <view class="index-list-item-head-r" v-if="item.status === 3">进行中</view> |
| | | <view class="index-list-item-head-r hui" v-if="item.status === 4">已完成</view> |
| | |
| | | {{item.categoryName}}|{{item.priceNum1}}斤 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1"> |
| | | {{item.categoryName}}|{{item.priceNum1}}人 |
| | | {{item.categoryName}}|{{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2"> |
| | | {{item.categoryName}}|{{item.priceNum1}}人 |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0"> |
| | | {{item.categoryName}}|{{item.priceNum1}}天 |{{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1"> |
| | | {{item.categoryName}}|{{item.priceNum1}}小时 |{{item.priceNum2}}人 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2"> |
| | | {{item.categoryName}}|{{item.priceNum1}}斤 |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 1"> |
| | | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}天 |
| | | {{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}{{item.carType === 0?"天":"次"}} |
| | | </view> |
| | | <view class="index-list-item-info" v-if="item.type === 2"> |
| | | {{item.wayInfoCopy}} |
| | |
| | | <image src="/static/icon/ic_qidian@2x.png" mode="widthFix" v-if="i === 0"></image> |
| | | <image src="/static/icon/ic_jingguo@2x.png" mode="widthFix" v-else-if="i !== 0 && i !== item.wayInfo.length - 1"></image> |
| | | <image src="/static/icon/ic_zhongdian@2x.png" mode="widthFix" v-else-if="i === item.wayInfo.length - 1"></image> |
| | | <text>{{item.location}}</text> |
| | | <text>{{address.location}}</text> |
| | | </view> |
| | | </view> |
| | | <template v-if="[0, 2].includes(item.type)"> |
| | |
| | | </view> |
| | | </template> |
| | | <view class="index-list-item-price"> |
| | | <text>预估:</text> |
| | | <text>¥{{item.estimatedAccount / 100}}</text> |
| | | <text v-if="item.status==4">已支付:</text> |
| | | <text v-if="item.status!=4">预估:</text> |
| | | <text>¥{{item.payAccount / 100}}</text> |
| | | </view> |
| | | <view class="eidt"> |
| | | <view class="eidt-tips" v-if="item.isUpdate === 1"> |
| | |
| | | computed: { |
| | | ...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid', 'latitude', 'longitude']) |
| | | }, |
| | | onShow(options) { |
| | | async onShow(options) { |
| | | var flag = getApp().globalData.orderStatus |
| | | console.log(getApp().globalData,"=====================================") |
| | | // this.status = '' |
| | | // this.commentStatus='' |
| | | // status: this.status === 5 ? 4 : this.status, |
| | | // commentStatus: this.status === 5 ? 0 : '', |
| | | if(flag =='1'){//发单方待接单 |
| | | this.status = 1 |
| | | }else if(flag =='2'){//发单方进行中 |
| | | this.status = 3 |
| | | }else if(flag =='3'){//发单方待评价 |
| | | this.status = 6 |
| | | }else if(flag =='4'){//接单方已接单 |
| | | this.status =2 |
| | | }else if(flag =='5'){//接单方进行中 |
| | | this.status =3 |
| | | }else if(flag =='6'){//接单方已完成 |
| | | this.status =4 |
| | | }else if(flag =='0'){ |
| | | this.status = -1 |
| | | } |
| | | console.log(getApp().globalData,this.status ,"=====================================") |
| | | this.typeViewId = 0 |
| | | if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){ |
| | | console.log('已登陆') |
| | | this.isLogin = true |
| | | /* this.getOrderList() |
| | | if (!this.isOnce) { |
| | | this.commentStatus = '' |
| | | this.orderList = [] |
| | | this.next = true |
| | | this.page = 1 |
| | | this.getOrderList() |
| | | } |
| | | } */ |
| | | } else { |
| | | this.isLogin = false |
| | | console.log('未登陆') |
| | | } |
| | | if (this.userInfo && this.userInfo.useIdentity == 1) { |
| | | this.typeViewId = 1 |
| | | if(this.isLogin){ |
| | | if(this.typeViewId !== this.userInfo.useIdentity || flag !=null){ |
| | | this.typeViewId = this.userInfo.useIdentity || 0 |
| | | //如果发生 |
| | | this.initOrderList() |
| | | }else{ |
| | | //如果未发生变化不刷新 |
| | | this.typeViewId = this.userInfo.useIdentity || 0 |
| | | if(!this.orderList || !this.orderList.length){ |
| | | this.initOrderList() |
| | | }else{ |
| | | if( this.tempOrderId){ |
| | | this.getOrderData() |
| | | } |
| | | } |
| | | console.log('this.tempOrderId',this.tempOrderId) |
| | | } |
| | | } |
| | | getApp().globalData.orderStatus =null |
| | | }, |
| | | data() { |
| | | return { |
| | | show: false, |
| | | isLogin: false, |
| | | typeViewId: 0, |
| | | typeViewId: -1, |
| | | tempOrderId:null, |
| | | list: [ |
| | | { name: '全部', id: '' }, |
| | | { name: '全部', id: -1 }, |
| | | { name: '已接单', id: 2 }, |
| | | { name: '进行中', id: 3 }, |
| | | { name: '待支付', id: 5 }, |
| | | { name: '已完成', id: 4 }, |
| | | { name: '已取消', id: 99 }, |
| | | // { name: '已取消', id: 99 }, |
| | | ], |
| | | list1: [ |
| | | { name: '全部', id: '' }, |
| | | { name: '全部', id: -1 }, |
| | | { name: '待支付', id: 0 }, |
| | | { name: '待接单', id: 1 }, |
| | | { name: '已接单', id: 2 }, |
| | | { name: '进行中', id: 3 }, |
| | | { name: '进行中', id: 3 }, |
| | | { name: '已完成', id: 4 }, |
| | | { name: '已取消', id: 99 }, |
| | | { name: '待评价', id: [4, 0] } |
| | | { name: '待评价', id: 6 } |
| | | ], |
| | | orderId: null, |
| | | status: '', |
| | | commentStatus: '', |
| | | |
| | | status: -1, |
| | | commentStatus: '', |
| | | next: true, |
| | | page: 1, |
| | | orderList: [], |
| | |
| | | }, |
| | | async onLoad() { |
| | | await this.$onLaunched; |
| | | uni.$on('refresh', (data) => { |
| | | /* uni.$on('refresh', (data) => { |
| | | console.log('我的订单页刷新'); |
| | | this.status = '' |
| | | this.commentStatus = '' |
| | |
| | | this.next = true |
| | | this.page = 1 |
| | | this.getOrderList() |
| | | }) |
| | | this.getOrderList() |
| | | }) */ |
| | | |
| | | }, |
| | | onReachBottom() { |
| | | this.getOrderList() |
| | | if(this.isLogin){ |
| | | this.getOrderList() |
| | | } |
| | | }, |
| | | methods: { |
| | | toLogin() { |
| | | uni.navigateTo({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | }, |
| | | initOrderList() { |
| | | this.commentStatus = '' |
| | | this.orderList = [] |
| | | this.next = true |
| | | this.page = 1 |
| | | this.getOrderList() |
| | | }, |
| | | startJobs(orderId) { |
| | | this.$u.api.begin({ orderId }) |
| | |
| | | |
| | | }) |
| | | }, |
| | | jumpDesc(item) { |
| | | jumpDesc(item,flag) { |
| | | uni.navigateTo({ |
| | | url: `/pages/order-details/order-details?id=${item.id}` |
| | | url: `/pages/order-details/order-details?id=${item.id}&flag=${flag}` |
| | | }) |
| | | this.tempOrderId = item.id |
| | | }, |
| | | // 修改 |
| | | jumpEdit(item) { |
| | | this.tempOrderId =item.id |
| | | if (item.type === 0 && item.workType === 0) { |
| | | uni.navigateTo({ |
| | | url: `/pages/using-workers/using-workers?id=${item.id}` |
| | |
| | | this.next = true |
| | | this.page = 1 |
| | | this.getOrderList() |
| | | } |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | phoneCall(phoneNumber) { |
| | | uni.makePhoneCall({ |
| | | phoneNumber |
| | | }); |
| | | }, |
| | | getOrderData(){ |
| | | var that = this |
| | | var param ={ orderId:that.tempOrderId} |
| | | this.$u.api.getDetail(param).then(res =>{ |
| | | if(res.code ===200 && res.data){ |
| | | var isDel = false |
| | | var tempIndex = -1 |
| | | that.orderList.forEach((item,index) =>{ |
| | | if(item.id == res.data.id){ |
| | | item.status = res.data.status |
| | | item.isUpdate = res.data.isUpdate |
| | | item.commentStatus = res.data.commentStatus |
| | | tempIndex = index |
| | | } |
| | | |
| | | }) |
| | | if(tempIndex > -1 ){ |
| | | console.log(tempIndex,that.status,res.data.status,"===================") |
| | | if(that.status >=0 ){ |
| | | //如果有标签页 |
| | | if(that.status ===6 && res.data.commentStatus == 1){ |
| | | isDel =true |
| | | console.log(tempIndex,that.status,res.data.status,"==================1") |
| | | }else if(that.status !=6 && that.status !== res.data.status){ |
| | | isDel =true |
| | | console.log(tempIndex,that.status,res.data.status,"===================2") |
| | | } |
| | | } |
| | | if(isDel){ |
| | | console.log(tempIndex,that.status,res.data.status,"===================3") |
| | | that.orderList.splice(tempIndex,1) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 订单分页 |
| | | getOrderList() { |
| | |
| | | page: this.page, |
| | | model: { |
| | | queryMyOrderType: this.userInfo.useIdentity, |
| | | status: this.status, |
| | | status: this.status === 6 ? 4 : (this.status ==-1?"":this.status), |
| | | commentStatus: this.status === 6 ? 0 : '', |
| | | queryLat: this.latitude, |
| | | queryLgt: this.longitude |
| | | } |
| | |
| | | item.wayInfo = JSON.parse(item.wayInfo) |
| | | } |
| | | }) |
| | | this.orderList = [...this.orderList, ...res.data.records] |
| | | |
| | | if (this.orderList.length === res.data.total) { |
| | | this.orderList = [...this.orderList, ...res.data.records] |
| | | if (this.orderList.length >= res.data.total) { |
| | | this.next = false |
| | | } else { |
| | | this.page += 1 |
| | | } |
| | | }) |
| | | }, |
| | | clickOrderType(id) { |
| | | if (typeof id === 'object') { |
| | | this.status = id[0] |
| | | this.commentStatus = id[1] |
| | | } else { |
| | | this.commentStatus = '' |
| | | this.status = id |
| | | } |
| | | clickOrderType(id) { |
| | | this.commentStatus = '' |
| | | this.status = id |
| | | this.orderList = [] |
| | | this.next = true |
| | | this.page = 1 |
| | |
| | | width: 100%; |
| | | padding: 20rpx 30rpx; |
| | | box-sizing: border-box; |
| | | .index-list-wu { |
| | | width: 100%; |
| | | margin-top: 40rpx; |
| | | text-align: center; |
| | | text { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .index-list-item { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | |
| | | .active { |
| | | font-weight: 500 !important; |
| | | font-size: 32rpx !important; |
| | | color: #222222 !important; |
| | | color: #00BC12 !important; |
| | | } |
| | | .index-labs-row { |
| | | display: inline-block; |
| | |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | position: relative; |
| | | margin-right: 62rpx; |
| | | margin-right: 50rpx; |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | |
| | | bottom: 0; |
| | | left: 50%; |
| | | width: 40rpx; |
| | | height: 2rpx; |
| | | height: 4rpx; |
| | | background-color: #00BC12; |
| | | transform: translate(-50%, 0); |
| | | } |