ll
liukangdong
2025-01-17 440bf888a2a9fa73663014883f2ccf92a35ff69e
ll
已修改6个文件
273 ■■■■ 文件已修改
h5/api/meeting.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/meetingSel.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/api/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/EnergyConsum.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/LogisticsCenter.vue 222 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/LogisticsEfficiency.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/meeting.js
@@ -35,7 +35,7 @@
// 会议室 人员
export const userPagePost = (data) => {
  return http({
    url: 'meetingAdmin/cloudService/web/meeting/userPage',
    url: 'meetingAdmin/cloudService/system/user/findAllList',
    method: 'post',
    data
  })
h5/pages/staff/meetingSel.vue
@@ -2,19 +2,19 @@
    <view class="main_app" :class="{ popupShow: isShowSelMem }">
        <view class="search_inp df_ac">
            <image class="mr12 search" src="../../static/ic_search@2x.png" mode="widthFix"></image>
            <input v-model="param.keyword" @blur="initData()" type="text" placeholder="搜索"
            <input v-model="param.queryParam" @blur="initData()" type="text" placeholder="搜索"
                placeholder-style="color: #999999;" />
        </view>
        <view class="member_list">
            <view v-for="(item, index) in memberList" :key="item.id" class="line">
                <image v-if="item.avatar" :src="item.prefixUrl + item.avatar" class="avatar" mode=""></image>
                <image v-if="item.faceImg" :src="item.faceImg" class="avatar" mode=""></image>
                <view v-else class="avatar">{{ item.realname.slice(0, 1) }}</view>
                <view class="content">
                    <view class="info">
                        <text class="name">{{ item.realname }}</text>
                        <text class="tag" v-if="item.status == '1'">有会议</text>
                    </view>
                    <view class="depart">{{ item.departmentName }}</view>
                    <view class="depart">{{ item.departmentName || item.companyName }}</view>
                </view>
                <image @click="changeMem(item, index)" v-if="item.checked" src="@/static/checkbox_sel@2x.png" mode="widthFix"
                    class="checked"></image>
@@ -90,7 +90,7 @@
        onLoad(option) {
            this.param = {
                limitNum: option.limitNum,
                keyword: '',
                queryParam: '',
                startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
                endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
            }
@@ -110,7 +110,7 @@
                    this.$nextTick(() => {
                        this.$forceUpdate()
                    })
                }, 1000)
                }, 500)
            })
        },
        methods: {
@@ -149,14 +149,11 @@
                    pagination
                } = this
                userPagePost({
                    model: {
                        ...param,
                        workStatus: 0
                    },
                    ...pagination,
                    ...param,
                    querySpecial: 1, type: 2, companyType: 1,workStatus:0
                }).then(res => {
                    this.memberList = res.data.records || []
                    this.memberList = res.data || []
                    this.memberList.forEach(i => {
                        const index = this.selList.findIndex(ite => ite.id === i.id)
                        i.checked = index > -1
screen/src/api/index.js
@@ -153,7 +153,9 @@
export const getCarsJobDetails = (data) => {
  return request('/visitsAdmin/cloudService/board/api/platformJobRun/getCarsJobDetails', data, 'POST')
}
export const getJobDetailsById = (data) => {
  return request('/visitsAdmin/cloudService/board/api/platformJobRun/getJobDetailsById', data, 'POST')
}
// 安防管控大屏 中心数据
export const getEnergyCenterData = (data) => {
screen/src/views/EnergyConsum.vue
@@ -85,9 +85,9 @@
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val"
                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                    v-if="data1.electricityQuantity.sameNum && data1.electricityQuantity.sameNum != 0">{{
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                        data1.electricityQuantity.sameNum) / data1.electricityQuantity.sameNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                  <span class="lab">环比</span>
@@ -95,9 +95,9 @@
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val"
                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                    v-if="data1.electricityQuantity.ringNum && data1.electricityQuantity.ringNum != 0">{{
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                        data1.electricityQuantity.ringNum) / data1.electricityQuantity.ringNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                </div>
@@ -146,8 +146,8 @@
                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
                  <span class="val" v-if="data1.gasQuantity.sameNum && data1.gasQuantity.sameNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.sameNum
                      * 100).toFixed(1))
                  }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
@@ -155,8 +155,8 @@
                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
                  <span class="val" v-if="data1.gasQuantity.ringNum && data1.gasQuantity.ringNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.ringNum
                      * 100).toFixed(1))
                  }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
screen/src/views/LogisticsCenter.vue
@@ -45,7 +45,6 @@
            </div>
            <div class="content_wrap">
              <div class="num_wrap">
                <div class="question1">
                  <div class="hover_con">
                    <div class="num_list" v-if="StockOutData.currentNum || StockOutData.currentNum == 0">
@@ -56,8 +55,10 @@
                    </div>
                    <div class="hover_wrap">
                      <div class="triangle"></div>
                      <div class="title" v-if="StockOutData.currentProvinceNum || StockOutData.currentProvinceNum == 0">调拨出库量:{{ StockOutData.currentProvinceNum.toFixed(0) }}箱</div>
                      <div class="title" v-if="StockOutData.currentOtherNum || StockOutData.currentOtherNum == 0">其他出库量:{{ StockOutData.currentOtherNum.toFixed(0) }}箱</div>
                      <div class="title" v-if="StockOutData.currentProvinceNum || StockOutData.currentProvinceNum == 0">
                        调拨出库量:{{ StockOutData.currentProvinceNum.toFixed(0) }}箱</div>
                      <div class="title" v-if="StockOutData.currentOtherNum || StockOutData.currentOtherNum == 0">
                        其他出库量:{{ StockOutData.currentOtherNum.toFixed(0) }}箱</div>
                    </div>
                  </div>
@@ -157,10 +158,10 @@
                  <div class="hover_wrap">
                    <div class="triangle"></div>
                    <div class="title">出库能力统计说明:</div>
                    <div>当前订单量:截至昨日未完成订单+当日下达的订单数量;</div>
                    <div>当日任务量:截至昨日已配载未出库+当日已配载未出库数量+无需配载的任务;</div>
                    <div>今日出库量:当日按实际出库量(以电子锁上锁为准)</div>
                    <div>剩余任务量:当日任务量-今日出库量</div>
                    <div>1、当前订单量:截至目前未配载的订单量</div>
                    <div>2、当前任务量:所有已下达运输且未出库的任务量:截止目前已配载未出库+无需配载的任务(同城任务量)</div>
                    <div>3、今日出库量:今日实际出库量:以电子锁上锁为准</div>
                    <div>4、剩余任务量:数据同当前任务量(弹窗分别展示同库和运输任务量</div>
                  </div>
                </div>
              </div>
@@ -202,14 +203,21 @@
                  <div class="unit">车次:{{ cneterData.crrentOutCarNum }}</div>
                </div>
              </div>
              <div class="item">
                <img src="@/assets/images/LogisticsCenter/ic_jinriweichu@2x.png" alt="">
                <div class="content">
                  <div class="name">剩余任务量</div>
                  <div class="num"><span v-if="cneterData.crrentRestNum || cneterData.crrentRestNum == 0"
                      class="today">{{
                        cneterData.crrentRestNum }}</span>箱</div>
                  <div class="unit">车次:{{ cneterData.crrentRestCarNum }}</div>
              <div class="tooltip_wrap">
                <div class="item">
                  <img src="@/assets/images/LogisticsCenter/ic_jinriweichu@2x.png" alt="">
                  <div class="content">
                    <div class="name">剩余任务量</div>
                    <div class="num"><span v-if="cneterData.crrentRestNum || cneterData.crrentRestNum == 0"
                        class="today">{{
                          cneterData.crrentRestNum }}</span>箱</div>
                    <div class="unit">车次:{{ cneterData.crrentRestCarNum }}</div>
                  </div>
                </div>
                <div class="tooltip">
                  <div class="triangle"></div>
                  <div>运输任务量:{{ cneterData.needTransportOrderNum }}箱</div>
                  <div>同城共库任务量:{{ cneterData.noNeedTransportOrderNum }}箱</div>
                </div>
              </div>
            </div>
@@ -226,36 +234,70 @@
                  </div> -->
                  <div :style="{ width: cneterData.level3 }"
                    :class="{ box23: cneterData.crrentOutNum >= cneterData.hoursAbility }" class="box">
                    <div v-if="cneterData.crrentOutNum < cneterData.hoursAbility" class="tag">
                      <div class="icon"></div>
                      <span>今日出库</span>
                    <div class="tooltip_wrap">
                      <div v-if="cneterData.crrentOutNum < cneterData.hoursAbility" class="tag">
                        <div class="icon"></div>
                        <span>今日出库</span>
                      </div>
                      <div class="tooltip">
                        <div class="triangle"></div>今日出库量:{{ cneterData.crrentOutNum }}箱
                      </div>
                    </div>
                  </div>
                  <div :style="{ width: cneterData.level2 }" class="box box1">
                    <div v-if="cneterData.hoursAbility >= cneterData.currentPlanNum" class="tag tag1">
                      <div class="icon"></div>
                      <span>当前任务</span>
                    <div class="tooltip_wrap">
                      <div v-if="cneterData.hoursAbility >= cneterData.currentPlanNum" class="tag tag1">
                        <div class="icon"></div>
                        <span>当前任务</span>
                      </div>
                      <div class="tooltip">
                        <div class="triangle"></div>当前任务量:{{ cneterData.currentPlanNum }}箱
                      </div>
                    </div>
                  </div>
                </div>
                <div class="side">
                  <div v-if="cneterData.crrentOutNum >= cneterData.hoursAbility" :style="{ width: cneterData.level33 }"
                    class="box box22">
                    <div class="tag">
                      <div class="icon"></div>
                      <span>今日出库</span>
                    <div class="tooltip_wrap">
                      <div class="tag">
                        <div class="icon"></div>
                        <span>今日出库</span>
                      </div>
                      <div class="tooltip">
                        <div class="triangle"></div>今日出库量:{{ cneterData.crrentOutNum }}箱
                      </div>
                    </div>
                  </div>
                  <div v-if="cneterData.hoursAbility <= cneterData.currentPlanNum"
                    :style="{ width: cneterData.level22 }" class="box box1 box11">
                    <div class="tag tag1">
                      <div class="icon"></div>
                      <span>当前任务</span>
                    <div class="tooltip_wrap">
                      <div class="tag tag1">
                        <div class="icon"></div>
                        <span>当前任务</span>
                      </div>
                      <div class="tooltip">
                        <div class="triangle"></div>当前任务量:{{ cneterData.currentPlanNum }}箱
                      </div>
                    </div>
                  </div>
                  <!-- <div class="box"></div> -->
                  <div class="scale" style="left: -12px;">8h</div>
                  <div class="scale scale1">最大</div>
                  <div class="scale" style="left: -12px;">
                    <div class="tooltip_wrap">
                      <span>8h</span>
                      <div class="tooltip">
                        <div class="triangle"></div>8小时出库能力:{{ cneterData.hoursAbility }}箱
                      </div>
                    </div>
                  </div>
                  <div class="scale scale1">
                    <div class="tooltip_wrap">
                      <span>最大</span>
                      <div class="tooltip">
                        <div class="triangle"></div>最大出库能力:{{ cneterData.maxAbility }}箱
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
@@ -1179,7 +1221,7 @@
    // 8小时 计划 今日
    // obj.hoursAbility = 6000
    // obj.maxAbility = 8000
    // obj.currentPlanNum = 5000
    // obj.currentPlanNum = 22000
    // obj.crrentOutNum = 7000
    obj.level1 = ((obj.hoursAbility / obj.maxAbility) * 100).toFixed(2) + '%'
@@ -1954,7 +1996,7 @@
      margin-top: 20px;
      padding: 0px 10px 30px 20px;
      position: relative;
      height: 160px;
      .content_wrap {
        display: flex;
        justify-content: space-between;
@@ -2214,6 +2256,36 @@
        justify-content: space-between;
        margin: 30px 0 14px;
        .tooltip_wrap {
          position: relative;
          &:hover {
            .tooltip {
              display: block;
            }
          }
          .tooltip {
            display: none;
            background: rgba(0, 30, 63, 0.6);
            border: 1px solid #003F82;
            backdrop-filter: blur(3px);
            padding: 10px;
            font-size: 15px;
            color: #fff;
            line-height: 19px;
            font-weight: 400;
            border-radius: 6px;
            width: 230px;
            position: absolute;
            line-height: 24px;
            left: 100%;
            top: 50%;
            transform: translate(20px, -42%);
            z-index: 999999999999999;
          }
        }
        .item {
          display: flex;
@@ -2303,6 +2375,7 @@
            .tag {
              position: absolute;
              z-index: 99999;
              bottom: -30px;
              right: 0;
              transform: translate(50%, 0);
@@ -2329,7 +2402,13 @@
                z-index: -1;
              }
            }
            .tooltip_wrap{
              .tooltip{
                z-index: 9999999999;
                top: 34px;
                transform: translate(70px, -42%);
              }
            }
            .tag1 {
              background-color: #28F0CC;
              border: 1px solid #28F0CC;
@@ -2358,16 +2437,52 @@
            background: linear-gradient(270deg, #f4b34a 0%, #FFEA70 100%);
          }
          .tooltip_wrap {
            /* position: relative; */
            &:hover {
              .tooltip {
                display: block;
              }
            }
            .tooltip {
              display: none;
              background: #071b32;
              border: 1px solid #003F82;
              /* backdrop-filter: blur(3px); */
              padding: 10px;
              font-size: 15px;
              color: #fff;
              line-height: 19px;
              font-weight: 400;
              border-radius: 6px;
              width: 200px;
              position: absolute;
              z-index: 99999999;
              left: 100%;
              top: 50%;
              transform: translate(30px, -42%);
            }
          }
          .scale {
            position: absolute;
            top: -24px;
            left: 0;
            font-size: 16px;
            color: #D2E0FF;
            .tooltip_wrap {
              .tooltip {
                width: 240px;
                transform: translate(20px, -50%);
              }
            }
          }
          .scale1 {
            left: 84%;
            left: 92%;
            min-width: 36px;
          }
@@ -2479,14 +2594,14 @@
      left: 130px;
      z-index: 999;
      top: -5px;
      width: 407px;
      width: 420px;
      height: 148px;
      background: rgba(0, 30, 63, 0.6);
      border: 1px solid #003F82;
      backdrop-filter: blur(3px);
      padding: 10px;
      font-size: 13px;
      color: #e2ebfd;
      color: #ebf1fb;
      line-height: 19px;
      font-weight: 400;
      border-radius: 6px;
@@ -2534,7 +2649,7 @@
  .hover_wrap {
    display: none;
    position: absolute;
    left: 108%;
    z-index: 999;
@@ -2546,7 +2661,7 @@
    backdrop-filter: blur(3px);
    padding: 10px;
    font-size: 15px;
    color: #e2ebfd;
    color: #e9f0ff;
    line-height: 19px;
    font-weight: 400;
    border-radius: 6px;
@@ -2555,23 +2670,25 @@
      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 {
      color: #e2ebfd;
    }
  }
}
.triangle {
  width: 12px;
  height: 12px;
  position: absolute;
  top: 36%;
  transform: translate(-50%, -50%);
  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); */
}
.main_header {
@@ -2704,16 +2821,19 @@
      top: -32px !important;
    }
  }
  .stock{
  .stock {
    display: flex;
    align-items: center;
    color: #dd5d2a;
    margin-bottom: 8px;
    img{
    img {
      margin-right: 6px;
      width: 14px;
    }
  }
  .title_head {
    display: flex;
    align-items: center;
screen/src/views/LogisticsEfficiency.vue
@@ -31,7 +31,8 @@
                <div class="num" v-if="data1.monthOutTotal || data1.yearOutTotal">{{ activeTab1 == 0 ?
                  data1.monthOutTotal.toLocaleString() : data1.yearOutTotal.toLocaleString() }}</div>
                <div class="unit_wrap">
                  <span style="color: #869CC9;">{{ activeTab1 == 0 ? '同比' : '环比' }}</span>
                  <!-- <span style="color: #869CC9;">{{ activeTab1 == 0 ? '同比' : '环比' }}</span> -->
                  <span style="color: #869CC9;">环比</span>
                  <template v-if="activeTab1 == 0 && data1.monthLastOutTotal">
                    <img v-if="data1.monthOutTotal > data1.monthLastOutTotal" src="@/assets/images/ic_up.png"
                      class="icon" alt="">
@@ -390,6 +391,7 @@
  wltransportMeasure,
  carsListPost,
  getCarsJobDetails,
  getJobDetailsById,
  carsEventListP
} from '@/api'
import 'swiper/css/swiper.min.css'
@@ -828,6 +830,7 @@
  myChart.on('click', function (params) {
    const item = params.data
    getCarsJobDetails({ carCode: item.code }).then(res => {
    // getCarsJobDetails({ id: item.id }).then(res => {
      // getCarsJobDetails({ carCode: '皖AE5277' }).then(res => {
      showModal.value = true
      activeCar.value = { ...res.data, carCode: item.code }
@@ -849,7 +852,8 @@
  activeCar.value = {}
}
const taskClick = (item) => {
  getCarsJobDetails({ carCode: item.carCodeFront }).then(res => {
  // getCarsJobDetails({ carCode: item.carCodeFront }).then(res => {
    getJobDetailsById({ id: item.id }).then(res => {
    // getCarsJobDetails({ carCode: '皖AE5277' }).then(res => {
    showModal.value = true
    activeCar.value = { ...res.data, carCode: item.carCodeFront }
@@ -1912,7 +1916,7 @@
          line-height: 36px;
          border-bottom: 1px solid rgba(255, 255, 255, 0.16);
          margin-bottom: 10px;
          padding-right: 10px;
          .code {
            font-weight: 500;
            font-size: 14px;