MrShi
2025-08-21 0b33a3dcc3a7592c476d992e1b79a3bc837afb25
small-program/pages/index/index.vue
@@ -193,7 +193,7 @@
                  </view>
               </view>
               <view class="box-hz-btn" :style="{ backgroundImage: 'url(' + btn + ')' }">
                  <view class="box-hz-btn-kf">客服</view>
                  <view class="box-hz-btn-kf" @click="contactPhone()">客服</view>
                  <view class="box-hz-btn-next" @click="submit">下一步</view>
               </view>
            </view>
@@ -303,7 +303,7 @@
               </template>
               
               <view class="box-hz-btn" :style="{ backgroundImage: 'url(' + btn + ')' }">
                  <view class="box-hz-btn-kf">客服</view>
                  <view class="box-hz-btn-kf"  @click="contactPhone()" >客服</view>
                  <view class="box-hz-btn-next" @click="jump()">下一步</view>
               </view>
            </view>
@@ -312,12 +312,30 @@
      
      <!-- 选择日期范围 -->
      <u-calendar :show="show" color="#00BC12" mode="range" @close="show = false" @confirm="confirmDate"></u-calendar>
      <u-popup :show="showPhone" round="15" mode="bottom"   @close="contactPhone()" :closeable="true" :closeOnClickOverlay="true">
         <view class="phone">
            <view class="phone-head">
               <view></view>
               <text>客服电话</text>
            </view>
             <view class="phone-item" v-for="(item,index) in serverPhone"    :key="item" @click="contactPhoneDo(item)">
                <view></view>
                <text>{{item}}</text>
             </view>
             <view class="phone-item" v-for="(item,index) in serverPhone"    :key="item" @click="contactPhoneDo(item)">
                <view></view>
                <text>{{item}}</text>
             </view>
            <!-- <view class="phone-botton"  @click="contactPhone()" >关闭</view> -->
         </view>
      </u-popup>
   </view>
</template>
<script>
   import { mapState } from 'vuex'
   import sunuiMverify from '@/components/sunui-mverify/sunui-mverify.vue';
   var QQMapWX = require('@/utils/qqmap-wx-jssdk.js');
   export default {
      components: { sunuiMverify },
      computed: {
@@ -328,9 +346,12 @@
      },
      data() {
         return {
            showPhone:false,
            serverPhone:[],
            show: false,
            isLogin: false,
            typeId: 0,
            qqmapsdk: null,
            type: [
               { name: '用工', id: 0 },
               { name: '运货', id: 1 },
@@ -392,23 +413,40 @@
      },
      async onLoad() {
         await this.$onLaunched;
         this.getCategoryLists()
         this.getOrderList()
         if (this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}') {
            this.getOrderList()
            this.getCategoryLists()
         }
         this.qqmapsdk = new QQMapWX({
            key: '4PXBZ-JLBC7-LCLXG-P2SZX-C4HYE-LDBLQ'
         });
         this.form.linkPhone = this.userInfo.telephone
         this.getDictInfo()
      },
      onShow(options) {
         this.typeViewId = 0
         if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
         if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}') {
            console.log('已登陆')
            this.isLogin = true
            if (!this.isOnce && this.userInfo.useIdentity == 1) {
               this.page = 1
               this.next = true
               this.orderList = []
               this.getOrderList()
            }
         } else {
            this.isLogin = false
            console.log('未登陆')
         }
         if (this.userInfo && this.userInfo.useIdentity == 1) {
            this.typeViewId = 1
         }
         if (!this.isOnce && this.userInfo.useIdentity == 1) {
            this.page = 1
            this.next = true
            this.orderList = []
            this.getOrderList()
         }
      },
      watch: {
@@ -421,7 +459,7 @@
               this.form.longitude = ''
               this.form.location = ''
               this.form.locationEnd = ''
               this.form.wayInfoDTOList = ''
               this.form.wayInfoDTOList = []
               this.form.workType = ''
               this.form.days = ''
               this.form.locationRemark = ''
@@ -460,20 +498,40 @@
         }
      },
      onReachBottom() {
         this.getOrderList()
         this.getOrderList()
      },
      methods: {
         getDictInfo(){
            var that = this;
            this.$u.api.getPlatformAboutUs({}).then(res =>{
                 that.serverPhone = (res.data.serverPhone||'').split(",")
            })
         },
         contactPhone(){
             this.showPhone = !this.showPhone
             console.log("==================================",this.showPhone)
         },
         contactPhoneDo(phone){
            if(phone !=null && phone!=''){
               uni.makePhoneCall({
                  phoneNumber: phone
               })
            }
         },
         // 手动接单
         getaccept(e, orderId, index) {
            if (!e.msg) return;
            this.$u.api.accept({ orderId })
               .then(res => {
                  uni.showToast({ title: '抢单成功!', icon: 'success', duration: 2000 })
                  setTimeout(() => {
                     this.page = 1
                     this.next = true
                     this.orderList = []
                     this.getOrderList()
                  }, 2000)
                  if (res.code === 200) {
                     uni.showToast({ title: '抢单成功!', icon: 'success', duration: 2000 })
                     setTimeout(() => {
                        this.page = 1
                        this.next = true
                        this.orderList = []
                        this.getOrderList()
                     }, 2000)
                  }
               })
         },
         clickSort(id) {
@@ -620,7 +678,9 @@
                  priceNum1: that.form.days,
                  type: 2
               }).then(res => {
                  that.form.estimatedAccount = res.data
                  if (res.code === 200) {
                     that.form.estimatedAccount = res.data
                  }
               })
            }
         },
@@ -758,24 +818,28 @@
         getCategoryLists() {
            this.$u.api.getCategoryList({ type: 1 })
               .then(res => {
                  this.car = res.data
                  this.form.categoryId = res.data[0].id
                  this.form.categoryName = res.data[0].name
                  this.carRemark = res.data[0].remark
                  this.carImage = res.data[0].iconFull
                  if (res.code === 200) {
                     this.car = res.data
                     this.form.categoryId = res.data[0].id
                     this.form.categoryName = res.data[0].name
                     this.carRemark = res.data[0].remark
                     this.carImage = res.data[0].iconFull
                  }
               })
            this.$u.api.getCategoryList({ type: 2 })
               .then(res => {
                  res.data.forEach(item => {
                     item.num = ''
                     item.list = item.detailList.map(child => {
                        return {
                           active: false,
                           price: child
                        }
                  if (res.code === 200) {
                     res.data.forEach(item => {
                        item.num = ''
                        item.list = item.detailList.map(child => {
                           return {
                              active: false,
                              price: child
                           }
                        })
                     })
                  })
                  this.orderFood = res.data
                     this.orderFood = res.data
                  }
               })
         }
      }
@@ -1678,5 +1742,46 @@
            }
         }
      }
      .phone {
         width: 100%;
         padding-top: 40rpx;
         box-sizing: border-box;
         .phone-botton {
            width: 100%;
            height: 88rpx;
            line-height: 88rpx;
            text-align: center;
            font-weight: 500;
            font-size: 32rpx;
            color: #FFFFFF;
            background: #00BC12;
            border-radius: 44rpx;
            margin-top: 60rpx;
         }
         .phone-head {
            width: 100%;
            text-align: center;
            justify-content: space-between;
            margin-bottom: 40rpx;
            text {
               font-weight: 800;
               font-size: 32rpx;
               color: #222222;
            }
         }
         .phone-item {
            width: 100%;
            text-align: center;
            justify-content: space-between;
            border-bottom: 1rpx solid #eeeeee;
            line-height: 78rpx;
            text {
               font-weight: 500;
               font-size: 28rpx;
               line-height: 28rpx;
               color: #222222;
            }
         }
      }
   }
</style>