jiangping
2025-01-13 107c463ff68be0df7a21fc3c5f3ef990771ad6d5
Merge remote-tracking branch 'origin/master'
已添加3个文件
已修改5个文件
317 ■■■■ 文件已修改
h5/pages/waybill/waybillDetail.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_tips@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5_meeting/pages/index/index.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_meeting/utils/config.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/assets/images/LogisticsCenter/ic_hetong@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/assets/images/LogisticsCenter/ic_tips@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/EnergyConsum.vue 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/LogisticsCenter.vue 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/waybill/waybillDetail.vue
@@ -4,7 +4,11 @@
        <map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="scale">
        </map>
        <view class="main_content">
        <view class="main_content">
            <view class="stock_status" v-if="info.overStock && info.overStock == 1">
                <image src="@/static/ic_tip@2x.png" mode=""></image>
                <view class="">因库存不足,订单暂时无法配载</view>
            </view>
            <view class="info">
                <view class="head">
                    <view class="code">{{info.contractNumber}}</view>
@@ -350,7 +354,24 @@
                }
            }
        }
        .stock_status{
            background: #FFEEEE;
            font-size: 26rpx;
            color: #ED4545;
            display: flex;
            align-items: center;
            border-radius: 8rpx 8rpx 0rpx 0rpx;
            height: 80rpx;
            position: relative;
            z-index: 1;
            padding: 0 30rpx 4rpx;
            top: 8rpx;
            image{
                width: 28rpx;
                height: 28rpx;
                margin-right: 10rpx;
            }
        }
        .info {
            border-radius: 12rpx;
            margin-bottom: 20rpx;
@@ -359,7 +380,6 @@
            overflow: hidden;
            position: relative;
            z-index: 1;
            .head {
                display: flex;
                justify-content: space-between;
h5/static/ic_tips@2x.png
h5_meeting/pages/index/index.vue
@@ -22,19 +22,33 @@
                v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 5">已撤销</text>
        </view>
        <view v-if="meetingInfo.meetingName" class="meeting_name">{{meetingInfo.meetingName}}</view>
        <view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser" class="meeting_con">
            <view class="content">
                <view class="line">
                    <image src="@/static/ic_time@2x.png"></image>
                    <text>{{meetingInfo.meetingTime }}</text>
        <view class="">
            <view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser" class="meeting_con">
                <view class="content">
                    <view class="line">
                        <image src="@/static/ic_time@2x.png"></image>
                        <text>{{meetingInfo.meetingTime }}</text>
                    </view>
                    <view class="line">
                        <image src="@/static/ic_people@2x.png"></image>
                        <text>预约人:{{meetingInfo.bookingUser }}</text>
                    </view>
                </view>
                <view class="line">
                    <image src="@/static/ic_people@2x.png"></image>
                    <text>预约人:{{meetingInfo.bookingUser }}</text>
                <view v-show="showQrbg" class="qrcode_wrap">
                    <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
                </view>
            </view>
            <view v-show="showQrbg" class="qrcode_wrap">
                <canvas id="qrcode" canvas-id="qrcode" class="qrcode"></canvas>
            <view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser && showQrbg" class="qrcode_box">
                <view class="text"
                    v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 1">
                    微信扫一扫开始会议</view>
                <view class="text"
                    v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 4">
                    微信扫一扫开始会议</view>
                <view class="text"
                    v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 2">
                    微信扫一扫结束会议</view>
            </view>
        </view>
        <view class="meeting_wrap">
@@ -62,13 +76,17 @@
            v-if="info.fileType == 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)"
            class="swiper" circular autoplay indicator-dots>
            <swiper-item v-for="item in info.multifileList">
                <image class="swiper_item" :src="!param.officeFlag || param.officeFlag == '0' ? item.localFileurlFull : item.fileurlFull" mode="aspectFill"></image>
                <image class="swiper_item"
                    :src="!param.officeFlag || param.officeFlag == '0' ? item.localFileurlFull : item.fileurlFull"
                    mode="aspectFill"></image>
            </swiper-item>
        </swiper>
        <!--  -->
        <template
            v-if="info.fileType == 1 && info.multifileList && info.multifileList.length > 0 && (info.meetingListResponseList == null || info.meetingListResponseList.length == 0)">
            <video :src="!param.officeFlag || param.officeFlag == '0' ? info.multifileList[0].localFileurlFull : info.multifileList[0].fileurlFull" class="app_video" :autoplay="true" loop :controls="false"></video>
            <video
                :src="!param.officeFlag || param.officeFlag == '0' ? info.multifileList[0].localFileurlFull : info.multifileList[0].fileurlFull"
                class="app_video" :autoplay="true" loop :controls="false"></video>
        </template>
    </view>
</template>
@@ -87,7 +105,7 @@
                time: '',
                date: '',
                showQrbg: false,
                timer: null,
                timer: null,
                timer2: null,
                touchNum: 0,
                param: {},
@@ -103,25 +121,25 @@
                timer: null
            }
        },
        onShow() {
        onShow() {
            const param = uni.getStorageSync('param')
            if (!param.code) {
                return uni.navigateTo({
                    url: '/pages/index/config'
                })
            }
            }
            this.initDatetime()
        },
        onReady() {
        onReady() {
        },
        onHide() {
            if (this.timer) {
                clearInterval(this.timer)
            }
            if (this.timer2) {
                clearInterval(this.timer2)
            }
            if (this.timer2) {
                clearInterval(this.timer2)
            }
        },
        methods: {
@@ -186,8 +204,8 @@
                    this.time = dayjs().format('HH:mm')
                    this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
                }, 1000)
                this.param = uni.getStorageSync('param') || {}
                this.param = uni.getStorageSync('param') || {}
                this.getData()
                this.timer2 = setInterval(() => {
                    this.getData()
@@ -239,13 +257,13 @@
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding-bottom: 42rpx;
        padding-bottom: 34rpx;
        color: #fff;
        overflow: hidden;
        .meeting_wrap {
            margin-left: 42rpx;
            margin-top: 85rpx;
            // margin-top: 60rpx;
            .title {
                font-weight: 500;
@@ -322,6 +340,7 @@
            justify-content: space-between;
            align-items: center;
            padding: 0 42rpx;
            padding-right: 64rpx;
            .content {
                .line {
@@ -339,6 +358,7 @@
                }
            }
            .qrcode_wrap {
                width: 110px;
                height: 110px;
@@ -346,7 +366,7 @@
                align-items: center;
                justify-content: center;
                background-color: #fff;
                .qrcode {
                    width: 104px;
                    height: 104px;
@@ -355,19 +375,35 @@
        }
        .qrcode_box {
            width: 100%;
            display: flex;
            justify-content: flex-end;
            color: rgba(255, 255, 255, 0.6);
            padding-right: 64rpx;
            margin-top: 18rpx;
            .text {
                width: 110px;
                text-align: center;
                font-size: 22rpx;
                // transform: scale(.84);
            }
        }
        .meeting_name {
            margin-bottom: 12rpx;
            font-weight: bold;
            font-size: 49rpx;
            padding-left: 42rpx;
            padding-right: 64rpx;
        }
        .home_status {
            font-weight: bold;
            font-size: 125rpx;
            margin: 70rpx 42rpx;
            line-height: 185rpx;
            height: 185rpx;
            margin: 140rpx 42rpx 22rpx;
            line-height: 125rpx;
            height: 125rpx;
        }
        .orange {
h5_meeting/utils/config.js
@@ -2,6 +2,7 @@
// export const baseUrl = 'gateway_interface/'
// export const baseUrl = 'http://192.168.5.13/gateway_interface/'
export const baseUrl = 'http://192.168.0.173/gateway_interface/'
// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/'
export const statusMap = {
    0: '待确认',
screen/src/assets/images/LogisticsCenter/ic_hetong@2x.png
screen/src/assets/images/LogisticsCenter/ic_tips@2x.png
screen/src/views/EnergyConsum.vue
@@ -195,7 +195,7 @@
            </template>
            <div class="bottom_wrap" v-if="data1.yesterdayElectricity">
              <div class="bottom bottom1" @click="changeacDay(3)">
                <div :class="{ active: activeDays == 3 }" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0
                <div :class="{ active: activeDays == 3 }" class="num fs_linear">{{ dataObj6.obj1.total || 0
                  }}</div>
                <div class="name">昨日用电</div>
                <div class="unit">kw·h</div>
@@ -203,14 +203,14 @@
                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
              </div>
              <div class="bottom bottom2" @click="changeacDay(1)">
                <div :class="{ active: activeDays == 1 }" class="num">{{ data1.todayElectricity.total || 0 }}</div>
                <div :class="{ active: activeDays == 1 }" class="num">{{ dataObj6.obj2.total || 0 }}</div>
                <div class="name">今日用电</div>
                <div class="unit">kw·h</div>
                <img v-if="activeDays == 1" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
              </div>
              <div class="bottom bottom3" @click="changeacDay(2)">
                <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ data1.monthElectricity.total || 0 }}
                <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ dataObj6.obj3.total || 0 }}
                </div>
                <div class="name">本月用电</div>
                <div class="unit">kw·h</div>
@@ -559,15 +559,56 @@
  })
}
const activeDays = ref('1')
const data6 = ref({})
const data6 = ref([])
const dataObj6 = ref({
  obj1: { total: 0 },
  obj2: { total: 0 },
  obj3: { total: 0 },
})
const changeacDay = (val) => {
  activeDays.value = val
  getData6()
  if (val == 3) {
    data6.value = dataObj6.value.obj1.list
  } else if (val == 1) {
    data6.value = dataObj6.value.obj2.list
  } else {
    data6.value = dataObj6.value.obj3.list
  }
}
const getData6 = () => {
  regionDataRanking({ type: activeDays.value }).then(res => {
    const result = res.data || {}
    data6.value = result
  let obj = {
    obj1: { list: [], total: 0 },
    obj2: { list: [], total: 0 },
    obj3: { list: [], total: 0 },
  }
  regionDataRanking({ type: 3 }).then(res => {
    let arr = res.data || []
    obj.obj1.list = arr
    arr.forEach(i => {
      obj.obj1.total += Number(i.value)
    })
    obj.obj1.total = obj.obj1.total.toFixed(1)
    dataObj6.value = obj
  })
  regionDataRanking({ type: 1 }).then(res => {
    let arr = res.data || []
    obj.obj2.list = arr
    arr.forEach(i => {
      obj.obj2.total += Number(i.value)
    })
    obj.obj2.total = obj.obj2.total.toFixed(1)
    dataObj6.value = obj
    changeacDay(1)
  })
  regionDataRanking({ type: 2 }).then(res => {
    let arr = res.data || []
    obj.obj3.list = arr
    arr.forEach(i => {
      obj.obj3.total += Number(i.value)
    })
    obj.obj3.total = obj.obj3.total.toFixed(1)
    dataObj6.value = obj
  })
}
screen/src/views/LogisticsCenter.vue
@@ -30,11 +30,8 @@
                  <img src="@/assets/images/ic_question@2x.png" style="margin-left: 6px;" class="icon" alt="">
                  <div class="hover_wrap">
                    <div class="triangle"></div>
                    <div class="title">出库能力统计说明:</div>
                    <div>当前订单量:截至昨日未完成订单+当日下达的订单数量;</div>
                    <div>当日任务量:截至昨日已配载未出库+当日已配载未出库数量+无需配载的任务;</div>
                    <div>今日出库量:当日按实际出库量(以电子锁上锁为准)</div>
                    <div>剩余任务量:当日任务量-今日出库量</div>
                    <div class="title">累计出库量统计说明:</div>
                    <div>累计出库量:所有物流出库作业数据(包含联营加工(回运、落地销售)、前置库移库(成都/临沂)等所有出库作业数据)</div>
                  </div>
                </div>
              </div>
@@ -48,11 +45,22 @@
            </div>
            <div class="content_wrap">
              <div class="num_wrap">
                <div class="num_list" v-if="StockOutData.currentNum || StockOutData.currentNum == 0">
                  <div class="num" v-for="i in StockOutData.currentNum + ''">
                    {{ i }}
                    <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt="">
                <div class="question1">
                  <div class="hover_con">
                    <div class="num_list" v-if="StockOutData.currentNum || StockOutData.currentNum == 0">
                      <div class="num" v-for="i in StockOutData.currentNum + ''">
                        {{ i }}
                        <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt="">
                      </div>
                    </div>
                    <div class="hover_wrap">
                      <div class="triangle"></div>
                      <div class="title">调拨出库量:{{ StockOutData.currentProvinceNum || 0 }}箱</div>
                      <div class="title">其他出库量:{{ StockOutData.currentOtherNum || 0 }}箱</div>
                    </div>
                  </div>
                </div>
                <div class="content">
                  <div class="unit_wrap">
@@ -125,7 +133,7 @@
                    <span class="item">{{ item.contractNumber }}</span>
                    <span class="item status">{{ item.statusDesc }}</span>
                    <span class="item">{{ item.receiveEnterprise }}</span>
                    <span class="item">{{ item.transportDate || '-' }}</span>
                    <span class="item">{{ item.createDate || '-' }}</span>
                  </div>
                </div>
              </div>
@@ -172,7 +180,7 @@
                  <div class="name">当前订单量</div>
                  <div class="num"><span class="blue"
                      v-if="cneterData.currentOrderNum || cneterData.currentOrderNum == 0">{{
                        cneterData.currentOrderNum.toFixed(0) }}</span>箱</div>
                        cneterData.currentOrderNum }}</span>箱</div>
                </div>
              </div>
              <div class="item">
@@ -180,7 +188,7 @@
                <div class="content">
                  <div class="name">当前任务量</div>
                  <div class="num"><span v-if="cneterData.currentPlanNum || cneterData.currentPlanNum == 0">{{
                    cneterData.currentPlanNum.toFixed(0) }}</span>箱</div>
                    cneterData.currentPlanNum }}</span>箱</div>
                  <div class="unit">车次:{{ cneterData.currentPlanCarNum }}</div>
                </div>
              </div>
@@ -190,7 +198,7 @@
                  <div class="name">今日出库量</div>
                  <div class="num"><span v-if="cneterData.crrentOutNum || cneterData.crrentOutNum == 0"
                      class="finish">{{
                        cneterData.crrentOutNum.toFixed(0) }}</span>箱</div>
                        cneterData.crrentOutNum }}</span>箱</div>
                  <div class="unit">车次:{{ cneterData.crrentOutCarNum }}</div>
                </div>
              </div>
@@ -200,7 +208,7 @@
                  <div class="name">剩余任务量</div>
                  <div class="num"><span v-if="cneterData.crrentRestNum || cneterData.crrentRestNum == 0"
                      class="today">{{
                        cneterData.crrentRestNum.toFixed(0) }}</span>箱</div>
                        cneterData.crrentRestNum }}</span>箱</div>
                  <div class="unit">车次:{{ cneterData.crrentRestCarNum }}</div>
                </div>
              </div>
@@ -342,7 +350,7 @@
                全省:
                <span>{{ data7.currentNum }}</span>
                <span class="unit">辆 | </span>
                <span v-if="data7.totalNum">{{ ((data7.currentNum / data7.totalNum) * 100).toFixed(1) }}%</span>
                <span v-if="data7.totalNum">{{ (data7.useRate * 100).toFixed(1) }}%</span>
              </div>
            </div>
            <div class="echart5_wrap">
@@ -355,10 +363,14 @@
      <div class="modal_wrap" v-if="showModal">
        <div class="title_head">
          <div class="left">
            <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
            <img src="@/assets/images/LogisticsCenter/ic_hetong.png" alt="">
            <span>合同号:{{ modalInfo.contractNumber }}</span>
          </div>
          <div class="tit_status">{{ modalInfo.orderStatusDesc }}</div>
        </div>
        <div v-if="modalInfo.overStock && modalInfo.overStock == 1" class="stock">
          <img src="@/assets/images/LogisticsCenter/ic_tips@2x.png" alt="">
          <span>因库存不足,订单暂时无法配载</span>
        </div>
        <div class="info">
          <div class="item">
@@ -1062,8 +1074,8 @@
    isLoadingTask.value = false
    let temp = res.data.rows || []
    transportTask.value = temp.map(item => {
      if (item.transportDate) {
        item.transportDate = item.transportDate.slice(5, 16)
      if (item.createDate) {
        item.createDate = item.createDate.slice(5, 16)
      }
      return item
    })
@@ -1103,6 +1115,15 @@
        label: {
          show: false,
          position: 'center'
        },
        emphasis: {
          // 设置悬浮时样式为空
          scale: false, // 关闭放大效果
          itemStyle: {
            shadowBlur: 0, // 阴影模糊度为 0
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0)',
          },
        },
        color: colors,
        labelLine: {
@@ -1742,7 +1763,7 @@
          },
          barBorderRadius: [30, 30, 0, 0],
        },
        data: data7.value.detailList.map(i => i.totalNum)
        data: data7.value.detailList.map(i => (i.totalNum - i.zaituNum))
      },
      {
        name: '当日提报运力',
@@ -1850,7 +1871,7 @@
    initialSlide: 0,
    direction: 'vertical', //竖直方向
    slidesPerView: 5,
    autoplay: autoplayFlag(transportTask.value, 5, 4000),
    autoplay: autoplayFlag(transportTask.value, 5, 6000),
    observer: true, //修改swiper自己或子元素时,自动初始化swiper
  })
}
@@ -2459,7 +2480,7 @@
      z-index: 999;
      top: -5px;
      width: 407px;
      height: 134px;
      height: 148px;
      background: rgba(0, 30, 63, 0.6);
      border: 1px solid #003F82;
      backdrop-filter: blur(3px);
@@ -2469,6 +2490,10 @@
      line-height: 19px;
      font-weight: 400;
      border-radius: 6px;
      div {
        margin-bottom: 3px;
      }
      .triangle {
        width: 12px;
@@ -2488,6 +2513,64 @@
        font-size: 14px;
        color: #e2ebfd;
      }
    }
  }
}
.question1 {
  display: flex;
  align-items: center;
  .hover_con {
    position: relative;
    &:hover {
      .hover_wrap {
        display: block;
      }
    }
  }
  .hover_wrap {
    display: none;
    position: absolute;
    left: 108%;
    z-index: 999;
    top: -5px;
    width: 212px;
    height: 62px;
    background: rgba(0, 30, 63, 0.6);
    border: 1px solid #003F82;
    backdrop-filter: blur(3px);
    padding: 10px;
    font-size: 15px;
    color: #e2ebfd;
    line-height: 19px;
    font-weight: 400;
    border-radius: 6px;
    div {
      margin-bottom: 3px;
    }
    .triangle {
      width: 12px;
      height: 12px;
      position: absolute;
      top: 10px;
      left: -6px;
      transform: rotate(45deg);
      border-left: 1px solid #003F82;
      border-bottom: 1px solid #003F82;
      background: rgba(0, 30, 63, 0.6);
      /* backdrop-filter: blur(3px); */
    }
    .title {
      font-weight: 600;
      color: #e2ebfd;
    }
  }
}
@@ -2622,12 +2705,21 @@
      top: -32px !important;
    }
  }
  .stock{
    display: flex;
    align-items: center;
    color: #dd5d2a;
    margin-bottom: 8px;
    img{
      margin-right: 6px;
      width: 14px;
    }
  }
  .title_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    margin-bottom: 8px;
    .left {
      display: flex;
@@ -2838,6 +2930,7 @@
    .hover_wrap {
      left: 175px;
      height: 80px;
    }
    .icon {