jiangping
2024-12-25 9ae3baca4c8730fcc5f7c8daf3b6368cec554ae6
screen/src/views/LogisticsCenter.vue
@@ -4,7 +4,7 @@
      <img src="@/assets/images/LogisticsCenter/bg@2x.png" class="main_bg" alt="" />
      <div class="main_header">
        <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
        <div class="title">全省物流在途</div>
        <div class="title">安徽中烟成品集控大屏</div>
        <div class="time_wrap">
          <span class="date">{{ date }}</span>
          <span class="week">{{ week }}</span>
@@ -101,9 +101,9 @@
            </div>
            <div class="list_wrap">
              <div class="header line">
                <span class="item">运输车辆</span>
                <span class="item status">状态</span>
                <span class="item">位置</span>
                <span class="item">合同号</span>
                <span class="item status">订单状态</span>
                <span class="item">目的地</span>
                <span class="item">任务下达时间</span>
              </div>
              <div class="one-swiper list">
@@ -225,17 +225,19 @@
          </div>
          <div class="center_box_two">
            <div class="echart_map" ref="mapEchart" id="echart_map"></div>
            <div v-if="showModal1" @click="showModal1 = false" class="modal1">
              <div class="list">
            <div v-if="showModal1" class="modal1">
              <div class="content">
                <div class="head line">
                  <div class="item">车牌号</div>
                  <div class="item">合同号</div>
                  <div class="item addr">目的地</div>
                </div>
                <div class="line" v-for="item in active1List">
                  <div class="item">{{ item.platNumber }}</div>
                  <div class="item">{{ item.contractNumber }}</div>
                  <div class="item addr">{{ item.repertotyName }}</div>
                <div class="list">
                  <div class="line" v-for="item in active1List">
                    <div class="item">{{ item.platNumber }}</div>
                    <div class="item">{{ item.contractNumber }}</div>
                    <div class="item addr">{{ item.repertotyName }}</div>
                  </div>
                </div>
              </div>
            </div>
@@ -305,7 +307,7 @@
            <div class="second_title">
              <div class="title">
                <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" />
                <div>运用资源利用率</div>
                <div>运力资源利用率</div>
              </div>
              <div class="side">
                全省:
@@ -323,8 +325,11 @@
      <!--  -->
      <div class="modal_wrap" v-if="showModal">
        <div class="title_head">
          <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
          <span>合同号:{{ modalInfo.contractNumber }}</span>
          <div class="left">
            <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
            <span>合同号:{{ modalInfo.contractNumber }}</span>
          </div>
          <div class="tit_status">{{ modalInfo.orderStatusDesc }}</div>
        </div>
        <div class="info">
          <div class="item">
@@ -366,6 +371,7 @@
          <div id="map-container" ref="mapContainer"></div>
          <div class="fu_list">
            <div class="fu_item" v-for="item, k in modalInfo.cicleStatusList">
              <view v-if="k != modalInfo.cicleStatusList.length - 1" class="separate"></view>
              <div class="item_title">
                <div class="icon">
                  <img v-if="item.key == 0 && k != 0" src="@/assets/images/LogisticsCenter/ic_dingdan@2x.png"
@@ -400,7 +406,7 @@
                  <div v-else class="icon_wrap"></div>
                  <div class="text" :class="{ placeholder3: k == 0 && i == 0 }">
                    {{ ite.orderStatusDes }}
                    <text v-if="ite.tel">,发货仓库电话:</text>
                    <text v-if="ite.tel">,发货仓库电话:</text>
                    <text v-if="ite.tel" class="primaryColor">{{ ite.tel }}</text>
                  </div>
                </div>
@@ -411,7 +417,7 @@
        </div>
        <Loading v-if="modalLoading" />
      </div>
      <div class="modal_mask" v-if="showModal" @click="closeModal"></div>
      <div class="modal_mask" v-if="showModal || showModal1" @click="closeModal"></div>
    </div>
  </v-scale-screen>
</template>
@@ -517,7 +523,7 @@
    item.yearNum = 0
    mapList.value.forEach(ite => {
      if (item.name == ite.name) {
        item.value = ite.value
        item.value = ite.yearNum
        item.monthNum = ite.monthNum
        item.yearNum = ite.yearNum
      }
@@ -612,11 +618,12 @@
          },
          itemStyle: {
            show: true,
            color: '#00114F', // 高亮文字颜色
            color: '#fff', // 高亮文字颜色
            borderColor: '#a4d0ec', // 高亮边框颜色
            areaColor: '#63d5c1', //高亮区域颜色
            areaColor: '#0056FF', //高亮区域颜色
          },
        },
        selectedMode: false,
        label: {
          // 地图标注
          show: false,
@@ -747,7 +754,7 @@
          show: true,
          textStyle: {
            color: '#000000',
            fontSize: 10
            fontSize: 12
          }
        },
        emphasis: {
@@ -783,7 +790,11 @@
        stack: 'total',
        barWidth: 14,
        label: {
          show: true
          show: true,
          textStyle: {
            color: '#000000',
            fontSize: 12
          }
        },
        emphasis: {
          focus: 'series'
@@ -818,7 +829,11 @@
        barWidth: 14,
        stack: 'total',
        label: {
          show: true
          show: true,
          textStyle: {
            color: '#000000',
            fontSize: 12
          }
        },
        textStyle: {
          color: '#000000',
@@ -834,13 +849,13 @@
              y2: 0,
              colorStops: [{
                offset: 0,
                color: '#71f3ce'
                color: '#73f7d1'
              }, {
                offset: 1,
                color: '#4da999'
                color: '#58beaa'
              }]
            }
          }
          },
        },
        emphasis: {
          focus: 'series'
@@ -900,6 +915,7 @@
}
const closeModal = () => {
  showModal.value = false
  showModal1.value = false
  modalInfo.value = {}
}
@@ -1153,7 +1169,33 @@
      containLabel: true
    },
    tooltip: {
      trigger: 'axis'
      trigger: 'axis',
      formatter: function (params) {
        // 遍历悬浮时的所有点,定制化显示内容
        let result = `<div style="width: 160px">${params[0].name}</div>`
        params.forEach((item) => {
          if (item.seriesName === '总库存') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #5e9bca;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '当前库存') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px;  border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '库存利用率') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #5a6fc0;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}%</strong></div>
            </div>`
          }
        })
        return result
      }
    },
    xAxis: [{
      nameGap: 5,
@@ -1165,7 +1207,7 @@
        },
      },
      axisLabel: {
        color: '#D2E0FF'
        color: '#869CC9'
      },
      axisTick: {
        show: false,
@@ -1285,11 +1327,14 @@
          color: "#9eabc2"
        },
        yAxisIndex: 1,
        tooltip: {
          show: true,
          formatter: '{c}' + '%',
        },
        label: {
          show: false,
          position: 'top',
          color: '#fff',
          // formatter: '{c}' + '%',
        },
        data: data5.value.detailList.map(i => i.useRate)
      }
@@ -1318,15 +1363,41 @@
        borderColor: '#fff'
      },
    },
    tooltip: {
      trigger: 'axis',
      formatter: function (params) {
        // 遍历悬浮时的所有点,定制化显示内容
        let result = `<div style="width: 160px">${params[0].name}</div>`
        params.forEach((item) => {
          if (item.seriesName === '出库能力') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #487af3;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '当日出库量') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px;  border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '出库利用率') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #b0bcd3;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}%</strong></div>
            </div>`
          }
        })
        return result
      }
    },
    grid: {
      left: '3%',
      right: '0%',
      bottom: '3%',
      top: '18%',
      containLabel: true
    },
    tooltip: {
      trigger: 'axis'
    },
    xAxis: [{
      nameGap: 5,
@@ -1468,7 +1539,6 @@
          show: false,
          position: 'top',
          color: '#fff',
          // formatter: '{c}' + '%',
        },
        data: data6.value.detailList.map(i => i.useRate)
      }
@@ -1497,15 +1567,41 @@
        borderColor: '#fff'
      },
    },
    tooltip: {
      trigger: 'axis',
      formatter: function (params) {
        // 遍历悬浮时的所有点,定制化显示内容
        let result = `<div style="width: 160px">${params[0].name}</div>`
        params.forEach((item) => {
          if (item.seriesName === '总运力资源') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #88d9cc;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '当日提报运力') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px;  border-radius: 50%;background-color: #e2a44f;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}</strong></div>
            </div>`
          } else if (item.seriesName === '车辆利用率') {
            result += `
            <div style="display: flex;align-items: center;justify-content: space-between;margin-top: 2px;">
              <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #b0bcd3;margin-right: 4px;"></div><div>${item.seriesName}</div></div>
              <div><strong>${item.value}%</strong></div>
            </div>`
          }
        })
        return result
      }
    },
    grid: {
      left: '3%',
      right: '0%',
      bottom: '3%',
      top: '18%',
      containLabel: true
    },
    tooltip: {
      trigger: 'axis'
    },
    xAxis: [{
      nameGap: 5,
@@ -1645,7 +1741,6 @@
          show: false,
          position: 'top',
          color: '#fff',
          // formatter: '{c}' + '%',
        },
        data: data7.value.detailList.map(i => i.useRate)
      }
@@ -2226,7 +2321,7 @@
      .modal1 {
        width: 500px;
        height: 224px;
        height: 192px;
        background: rgba(0, 86, 255, 0.1);
        backdrop-filter: blur(5px);
        padding: 12px 30px;
@@ -2234,10 +2329,13 @@
        top: 36px;
        left: 12px;
        border: 1px solid #4ba7f7;
        z-index: 999999;
        .list {
          height: 192px;
          overflow: auto;
        .content {
          .list {
            height: 128px;
            overflow: auto;
          }
          .line {
            display: flex;
@@ -2399,7 +2497,7 @@
  width: 600px;
  height: 556px;
  background: rgba(0, 30, 63, 0.5);
  border: 1px solid #c6eef7;
  /* border: 1px solid #c6eef7; */
  backdrop-filter: blur(5px);
  position: fixed;
  top: 20%;
@@ -2409,12 +2507,13 @@
  padding: 24px;
  #map-container {
    width: 300px;
    height: 180px;
    width: 260px;
    height: 320px;
    position: absolute;
    top: 220px;
    right: 10px;
    top: 190px;
    right: 20px;
    z-index: 999999;
    border-radius: 2px;
    :deep(.amap-markers) {
      left: -12px !important;
@@ -2425,9 +2524,19 @@
  .title_head {
    display: flex;
    align-items: center;
    font-weight: bold;
    font-size: 17px;
    justify-content: space-between;
    margin-bottom: 20px;
    .left {
      display: flex;
      align-items: center;
      font-weight: bold;
      font-size: 17px;
    }
    .tit_status {
      color: #af8832;
    }
    img {
      width: 20px;
@@ -2484,11 +2593,13 @@
    .fu_list {
      height: 310px;
      width: 290px;
      margin-top: 20px;
      overflow: auto;
      .fu_item {
        position: relative;
        .item_title {
          margin-bottom: 6px;
@@ -2505,12 +2616,13 @@
      }
      .separate {
        height: calc(100% - 125px);
        width: 1px;
        border: 1px dashed #CCCCCC;
        height: calc(100% - 8px);
        /* width: 1px; */
        border: 1px dashed #576783;
        /* border: 1px dashed red; */
        position: absolute;
        left: 26px;
        top: 51px;
        left: 10px;
        top: 20px;
        z-index: -1;
      }
@@ -2565,6 +2677,8 @@
        .text {
          color: #b1bfdc;
          margin-bottom: 6px;
          width: 100%;
        }
        .icon {
@@ -2577,7 +2691,6 @@
        .h2 {
          display: flex;
          align-items: center;
          height: 24px;
        }
        .h1 {}
@@ -2585,7 +2698,6 @@
        .time {
          padding-left: 39px;
          font-size: 12px;
          margin-top: 3px;
        }
      }
    }
@@ -2601,7 +2713,7 @@
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.1);
  /* background-color: rgba(0, 0, 0, 0.0); */
  /* background-color: red; */
}