doum
2025-09-15 a1c569d40b5d1d6571a197467a41fd3421c393ce
small-program/pages/demand-hall/demand-hall.vue
@@ -6,7 +6,6 @@
            <text>我的订单</text>
         </view>
      </view>
      <!-- 未登录 -->
      <view class="index-wu" v-if="!isLogin">
         <image src="/static/icon/default_login@2x.png" mode="widthFix"></image>
@@ -18,8 +17,8 @@
      <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>
@@ -27,8 +26,8 @@
         </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>
@@ -36,20 +35,23 @@
         </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>
@@ -58,13 +60,19 @@
                  {{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}}
@@ -75,7 +83,7 @@
                     <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)">
@@ -88,38 +96,50 @@
                     <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="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="[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.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>
@@ -129,13 +149,19 @@
                  {{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}}
@@ -146,7 +172,7 @@
                     <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)">
@@ -160,8 +186,9 @@
                  </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">
@@ -203,11 +230,33 @@
      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 = 5
         }else if(flag =='4'){//接单方已接单
            this.status =2
         }else if(flag =='5'){//接单方进行中
            this.status =3
         }else if(flag =='6'){//接单方已完成
            this.status =4
         }
         this.typeViewId = 0
         if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
            console.log('已登陆')
            this.isLogin = true
            if (this.userInfo && this.userInfo.useIdentity == 1) {
               this.typeViewId = 1
            }
            if (!this.isOnce) {
               this.commentStatus = ''
               this.orderList = []
@@ -219,9 +268,6 @@
            this.isLogin = false
            console.log('未登陆')
         }
         if (this.userInfo && this.userInfo.useIdentity == 1) {
            this.typeViewId = 1
         }
      },
      data() {
         return {
@@ -232,18 +278,19 @@
               { name: '全部', id: '' },
               { name: '已接单', id: 2 },
               { name: '进行中', id: 3 },
               { name: '待支付', id: 5 },
               { name: '已完成', id: 4 },
               { name: '已取消', id: 99 },
               // { name: '已取消', id: 99 },
            ],
            list1: [
               { name: '全部', id: '' },
               { 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: '',
@@ -291,9 +338,9 @@
                  
               })
         },
         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}`
            })
         },
         // 修改
@@ -343,7 +390,8 @@
               page: this.page,
               model: {
                  queryMyOrderType: this.userInfo.useIdentity,
                  status: this.status,
                  status: this.status === 6 ? 4 : this.status,
                  commentStatus: this.status === 6 ? 0 : '',
                  queryLat: this.latitude,
                  queryLgt: this.longitude
               }
@@ -371,13 +419,13 @@
            })
         },
         clickOrderType(id) {
            if (typeof id === 'object') {
               this.status = id[0]
               this.commentStatus = id[1]
            } else {
            // if (typeof id === 5) {
            //    this.status = 5
            //    // this.commentStatus = 0
            // } else {
               this.commentStatus = ''
               this.status = id
            }
            // }
            this.orderList = []
            this.next = true
            this.page = 1
@@ -450,6 +498,15 @@
         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;
@@ -690,7 +747,7 @@
            .active {
               font-weight: 500 !important;
               font-size: 32rpx !important;
               color: #222222 !important;
               color: #00BC12 !important;
            }
            .index-labs-row {
               display: inline-block;
@@ -700,7 +757,7 @@
               font-size: 30rpx;
               color: #666666;
               position: relative;
               margin-right: 62rpx;
               margin-right: 50rpx;
               &:last-child {
                  margin: 0 !important;
               }
@@ -709,7 +766,7 @@
                  bottom: 0;
                  left: 50%;
                  width: 40rpx;
                  height: 2rpx;
                  height: 4rpx;
                  background-color: #00BC12;
                  transform: translate(-50%, 0);
               }