doum
2025-09-05 77b52c06afdb843ee67c6e938afab0458143d76f
small-program/pages/index/index.vue
@@ -20,69 +20,77 @@
            </view>
         </view>
         <view class="index-j-list">
            <view class="index-list-item" v-if="orderList" v-for="(item, index) in orderList" :key="index">
               <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 === 2">订餐单</text>
            <view class="index-list-item" v-if="orderList && orderList.length" v-for="(item, index) in orderList" :key="index">
               <view  @click="goOrderDetail(item.id)">
                  <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}}</text>
                        <text v-else-if="item.type === 2">订餐单</text>
                     </view>
                     <view class="index-list-item-head-r">{{item.distance}}km</view>
                  </view>
                  <view class="index-list-item-head-r">距离 {{item.distance}}km</view>
               </view>
               <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 0">
                  {{item.categoryName}}|{{item.priceNum1}}斤
               </view>
               <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
                  {{item.categoryName}}|{{item.priceNum1}}人
               </view>
               <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 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}}天
               </view>
               <view class="index-list-item-info" v-if="item.type === 2">
                  {{item.wayInfoCopy}}
               </view>
               <view class="address" v-if="item.type === 1">
                  <view class="address-xian"></view>
                  <view class="address-row" v-if="item.wayInfo" v-for="(address, i) in item.wayInfo" :key="i">
                     <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>
                  <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 0">
                     {{item.categoryName}}|{{item.priceNum1}}斤
                  </view>
               </view>
               <template v-if="[0, 2].includes(item.type)">
                  <view class="index-list-item-dz">
                     <image src="/static/icon/order_ic_location@2x.png" mode="widthFix"></image>
                     <text>{{item.location}}</text>
                  <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
                     {{item.categoryName}}|{{item.priceNum2}}人
                  </view>
                  <view class="index-list-item-dz">
                     <image src="/static/icon/order_ic_time@2x.png" mode="widthFix"></image>
                     <text>{{item.startDate}} 至 {{item.endDate}}({{item.totalDays}}天)</text>
                  <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0">
                     {{item.categoryName}}|{{item.priceNum1}}天 |{{item.priceNum2}}人
                  </view>
               </template>
               <view class="index-list-item-price">
                  <text>预估:</text>
                  <text>¥{{item.estimatedAccount / 100}}</text>
                  <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.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}}
                  </view>
                  <view class="address" v-if="item.type === 1">
                     <view class="address-xian"></view>
                     <view class="address-row" v-if="item.wayInfo" v-for="(address, i) in item.wayInfo" :key="i">
                        <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>
                     </view>
                  </view>
                  <template v-if="[0, 2].includes(item.type)">
                     <view class="index-list-item-dz">
                        <image src="/static/icon/order_ic_location@2x.png" mode="widthFix"></image>
                        <text>{{item.location}}</text>
                     </view>
                     <view class="index-list-item-dz">
                        <image src="/static/icon/order_ic_time@2x.png" mode="widthFix"></image>
                        <text>{{item.startDate}} 至 {{item.endDate}}({{item.totalDays}}天)</text>
                     </view>
                  </template>
                  <view class="index-list-item-price">
                     <text>预估:</text>
                     <text>¥{{item.estimatedAccount / 100}}</text>
                  </view>
               </view>
               <view class="eidt">
                  <!-- <sunui-mverify @change="getaccept($event, item.id, index)"></sunui-mverify> -->
                  <view class="eidt-btn" @click="show1 = true, orderId = item.id">抢单</view>
               </view>
            </view>
            <view v-if="orderList && orderList.length&& !next" class="more">已加载全部</view>
            <view v-if="(!orderList || !orderList.length)&& !next"  class="more">暂无订单哦</view>
         </view>
      </view>
      
      <!-- 发单方  -->
      <view class="index-c" v-if="!userInfo || userInfo.useIdentity === 0">
      <view class="index-c" v-if="!isLogin || !userInfo || userInfo.useIdentity === 0">
         <view :style="{ width: '100%', height: statusbarHeight + 'px' }"></view>
         <view class="index-c-title" :style="{ height: navHeight + 'px' }" @click="selectAddress(-1)">
            <text class="index-c-title-logo">近快</text>
@@ -305,10 +313,10 @@
                     </view>
                  </view>
               </template>
               <view class="box-hz-btn" :style="{ backgroundImage: 'url(' + btn + ')' }">
                  <view class="box-hz-btn-kf"  @click="contactPhone()" >客服</view>
                  <view class="box-hz-btn-next" @click="jump()">立即下单</view>
                  <view class="box-hz-btn-next"  @click="jump()" v-if="typeId  == 2">立即下单</view>
                  <view class="box-hz-btn-next"  @click="jump()" v-if="typeId !== 2">下一步</view>
               </view>
            </view>
         </view>
@@ -323,9 +331,12 @@
               <view></view>
               <text>客服电话</text> 
            </view>
             <view class="phone-item" v-if="serverPhone" v-for="(item,index) in serverPhone"    :key="item" @click="contactPhoneDo(item)">
                <view></view>
                <text>{{item}}</text>
             <view class="phone-item" v-if="serverPhone" v-for="(item,index) in serverPhone"  :key="item" @click="contactPhoneDo(item)">
                <view>
                  <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
                  <text>{{item}}</text>
               </view>
                <view class="line" v-if="index<serverPhone.length-1"></view>
             </view>  
             <view style="width: 100%; height: 30rpx;"></view>
            <!-- <view class="phone-botton"  @click="contactPhone()" >关闭</view> -->
@@ -344,6 +355,20 @@
         <view slot="confirmButton" style="display: flex; justify-content: space-between; align-items: center; width: 100%;">
            <view class="btn1" @click="show1 = false">取消</view>
            <view class="btn2" @click="getaccept1">确认</view>
         </view>
      </u-modal>
      <u-modal
         title="支付未成功"
         :show="show2"
         closeOnClickOverlay
         showCancelButton
      >
         <view class="slot-content">
            请确认是否取消支付或查看订单继续支付?
         </view>
         <view slot="confirmButton" style="display: flex; justify-content: space-between; align-items: center; width: 100%;">
            <view class="btn1" @click="show2 = false;payOrderId=null">取消支付</view>
            <view class="btn2" @click="goOrderDetail(payOrderId)">查看订单</view>
         </view>
      </u-modal>
   </view>
@@ -433,7 +458,9 @@
            
            isOnce: true,
            show1: false,
            orderId: null
            show2: false,
            orderId: null,
            payOrderId:null
         }
      },
      async onLoad() { 
@@ -503,6 +530,7 @@
            this.isLogin = false
            console.log('未登陆')
         }
         this.payOrderId=null
      },
      watch: {
         typeId: {
@@ -544,6 +572,14 @@
         }
      },
      methods: {
         goOrderDetail(id){
            uni.navigateTo({
               url: `/pages/order-details/order-details?id=`+id
            })
            this.orderId=null
            this.payOrderId=null
            this.show2=false
         },
         clearFormParam(){
            this.form.startDate = ''
            this.form.address = ''
@@ -606,6 +642,7 @@
                        that.next = true
                        that.orderList = []
                        that.getOrderList()
                        that.goOrderDetail(that.orderId)
                     }, 2000)
                  }
               })
@@ -676,6 +713,7 @@
         // 提交订单
         submit() {
            var that = this
            this.payOrderId=null
            if (!this.form.startDate) {
               return uni.showToast({ title: '请选择用餐时间', icon: 'none' })
            } 
@@ -743,6 +781,8 @@
                              }
                           },
                           fail(err) {
                              that.payOrderId = res.data.id
                              that.show2=true
                              console.log(err)
                           }
                        })
@@ -1101,6 +1141,13 @@
            width: 100%;
            padding: 24rpx 30rpx;
            box-sizing: border-box;
            .more{
               width: 100%;
               margin-top: 40rpx;
               text-align: center;
               font-size: 24rpx;
               color: #666666;
            }
            .index-list-item {
               width: 100%;
               padding: 30rpx;
@@ -1997,12 +2044,27 @@
               color: #222222;
            }
         }
         .phone > .phone-item:last-of-type {
             /* 样式 */
            border-bottom:none !important;
         }
         .phone-item {
            width: 100%;
            text-align: center;
            justify-content: space-between;  
            border-bottom: 1rpx solid #eeeeee;
            // border-bottom: 1rpx solid #eeeeee;
            line-height: 78rpx;
            image{
               width: 28rpx;
               height: 28rpx;
               margin-right: 30rpx;
            }
            .line{
               width: 100%;
               height: 1rpx;
               background-color: #f2f2f2
            }
            text {
               font-weight: 500;
               font-size: 28rpx;