1、车间看板页面调整鼠标悬浮框样式
2、车间看板页面增加定时任务定时刷新后台接口
已修改6个文件
99 ■■■■ 文件已修改
src/views/mdc/base/WorkshopSignage.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/WorkshopSignage/DayUtilizationRateTrend.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/WorkshopSignage/DeviceAlarmInfo.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/WorkshopSignage/DeviceDragLayout.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/WorkshopSignage/MonthUtilizationRateTrend.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/WorkshopSignage/WeekUtilizationRateTrend.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/WorkshopSignage.vue
@@ -5,7 +5,7 @@
      <div class="left-col">
        <div class="col-content">
          <div class="content-title">{{workshopDetails.workshopName}}#设备情况</div>
          <workshop-device-overview :currentProductionId="currentProductionId"
          <workshop-device-overview ref="workshopDeviceOverviewRef" :currentProductionId="currentProductionId"
                                    :equipmentStatusList="equipmentStatusList" :toDecimal2NoZero="toDecimal2NoZero"/>
        </div>
        <div class="col-content">
@@ -15,22 +15,25 @@
        </div>
        <div class="col-content">
          <div class="content-title">设备周利用率趋势</div>
          <week-utilization-rate-trend :currentProductionId="currentProductionId" :toDecimal2NoZero="toDecimal2NoZero"/>
          <week-utilization-rate-trend ref="weekRateTrendRef" :currentProductionId="currentProductionId"
                                       :toDecimal2NoZero="toDecimal2NoZero"/>
        </div>
        <div class="col-content">
          <div class="content-title">设备日利用率趋势</div>
          <day-utilization-rate-trend :currentProductionId="currentProductionId" :toDecimal2NoZero="toDecimal2NoZero"/>
          <day-utilization-rate-trend ref="dayRateTrendRef" :currentProductionId="currentProductionId"
                                      :toDecimal2NoZero="toDecimal2NoZero"/>
        </div>
        <div class="col-content">
          <div class="content-title">设备报警信息</div>
          <device-alarm-info/>
          <device-alarm-info ref="deviceAlarmInfoRef" :currentProductionId="currentProductionId"/>
        </div>
      </div>
      <!--右侧拖拽区域-->
      <div class="right-col">
        <device-drag-layout :currentProductionId="currentProductionId" :equipmentStatusList="equipmentStatusList"
                            :getImgView="getImgView"/>
        <device-drag-layout ref="deviceDragLayoutRef" :currentProductionId="currentProductionId"
                            :equipmentStatusList="equipmentStatusList"
                            :getImgView="getImgView" @handleTimeIntervalForShortOpen="handleTimeIntervalForShortOpen"/>
      </div>
    </div>
  </div>
@@ -54,7 +57,7 @@
      MonthUtilizationRateTrend,
      DayUtilizationRateTrend,
      WeekUtilizationRateTrend,
      WorkshopDeviceOverview,
      WorkshopDeviceOverview
    },
    data() {
      return {
@@ -82,20 +85,37 @@
            statusImage: require('@/assets/WorskhopSignage/stateImg_gray.gif')
          }
        ],
        deviceList: [],
        isShowGuideline: false,
        guidelineXTop: 0,
        guidelineYLeft: 0,
        isSwitchChecked: false,
        isHasResizeOrDragDevice: false
        timeIntervalForShortTime: null,
        timeIntervalForLongTime: null
      }
    },
    created() {
      if (!this.$route.params.productionId) return
      // 在此处获取路由参数是为了传递参数给子组件,若放在mounted中则无法传递给子组件
      this.currentProductionId = this.$route.params.productionId
    },
    mounted() {
      if (!this.$route.params.productionId) return
      // 在mounted中该调用此方法是为了获取dom元素
      this.getWorkshopDetailsByApi()
      this.timeIntervalForShortTime = setInterval(() => {
        this.$refs.workshopDeviceOverviewRef.getDeviceStatusCountByApi()
        this.$refs.deviceAlarmInfoRef.getDeviceAlarmInfoByApi()
        this.$refs.deviceDragLayoutRef.getDeviceListByApi()
      }, 1000 * 60)
      this.timeIntervalForLongTime = setInterval(() => {
        this.$refs.weekRateTrendRef.getChartDataByApi()
        this.$refs.dayRateTrendRef.getChartDataByApi()
      }, 1000 * 60 * 60)
    },
    beforeDestroy() {
      if (this.timeIntervalForShortTime || this.timeIntervalForLongTime) {
        clearInterval(this.timeIntervalForShortTime)
        clearInterval(this.timeIntervalForLongTime)
        this.timeIntervalForShortTime = this.timeIntervalForLongTime = null
      }
    },
    methods: {
      // 通过车间Id调用接口获取车间详细信息
@@ -109,6 +129,24 @@
        })
      },
      /**
       * 控制短期定时任务开启与关闭
       * @param checked 右下角功能switch开关状态
       */
      handleTimeIntervalForShortOpen(checked) {
        if (checked) {
          clearInterval(this.timeIntervalForShortTime)
          this.timeIntervalForShortTime = null
          console.log('暂停计时器', this.timeIntervalForShortTime)
        } else {
          this.timeIntervalForShortTime = setInterval(() => {
            this.$refs.workshopDeviceOverviewRef.getDeviceStatusCountByApi()
            this.$refs.deviceAlarmInfoRef.getDeviceAlarmInfoByApi()
            this.$refs.deviceDragLayoutRef.getDeviceListByApi()
          }, 1000 * 60)
        }
      },
      // 保留两位小数
      toDecimal2NoZero(x) {
        const f = Math.round(x * 100) / 100
src/views/mdc/base/modules/WorkshopSignage/DayUtilizationRateTrend.vue
@@ -37,7 +37,6 @@
        this.chartContainer = this.$echarts.init(document.getElementById(this.chartContainerId))
        signageApi.getDayUtilizationRateApi(this.currentProductionId)
          .then(res => {
            console.log('res==========', res)
            if (!res.success) return
            that.initChart(res.result)
          })
@@ -48,8 +47,10 @@
        const option = {
          tooltip: {
            show: true,
            trigger: 'item',
            formatter: params => `${params.name}:${params.value}%`
            trigger: 'axis',
            formatter: function(params) {
              return '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params[0].color + '"></span> ' + params[0].name + '&nbsp&nbsp&nbsp' + '<span style="font-weight: bold"> ' + params[0].value + '%' + '</span>'
            }
          },
          legend: {
            show: false,
src/views/mdc/base/modules/WorkshopSignage/DeviceAlarmInfo.vue
@@ -8,19 +8,24 @@
  export default {
    name: 'DeviceAlarmInfo',
    components: {},
    props: {
      currentProductionId: {
        type: String
      }
    },
    data() {
      return {
        config: {}
      }
    },
    mounted() {
    created() {
      if (!this.currentProductionId) return
      this.getDeviceAlarmInfoByApi()
    },
    methods: {
      getDeviceAlarmInfoByApi() {
        const that = this
        that.initChart()
        signageApi.getWorkshopAlarmInfoApi()
        signageApi.getWorkshopAlarmInfoApi(that.currentProductionId)
          .then(res => {
            if (!res.success) return
            that.initChart(res.result)
src/views/mdc/base/modules/WorkshopSignage/DeviceDragLayout.vue
@@ -42,7 +42,7 @@
    <a-form layout="inline" v-has="'isCanDragAndResize'">
      <a-form-item label="功能开关">
        <a-switch checked-children="开" un-checked-children="关" v-model="isSwitchChecked"
        <a-switch checked-children="开" un-checked-children="关" v-model="isSwitchChecked" @change="handleSwitchChange"
                  :disabled="isHasResizeOrDragDevice"/>
      </a-form-item>
@@ -93,11 +93,17 @@
      // 通过车间Id调用接口获取设备信息列表
      getDeviceListByApi() {
        const that = this
        signageApi.getDeviceListInWorkshopSignagePageApi(that.currentProductionId).then((res) => {
        signageApi.getDeviceListInWorkshopSignagePageApi(that.currentProductionId)
          .then((res) => {
          if (res.success && res.result && res.result.length > 0) that.deviceList = res.result
        })
      },
      handleSwitchChange(checked) {
        console.log('checked--------', checked)
        this.$emit('handleTimeIntervalForShortOpen', checked)
      },
      /**
       * 设备拖拽或缩放时触发事件
       * @param newRect 拖拽或缩放后的尺寸及距离
src/views/mdc/base/modules/WorkshopSignage/MonthUtilizationRateTrend.vue
@@ -47,9 +47,6 @@
          color: ['#538dd6', '#ffff01', '#0bae8d', '#e26c0a', '#F6E1BE', '#7030a0', '#0ad0bb', '#FF9297', '#A40035'],
          tooltip: {
            trigger: 'axis',
            textStyle: {
              fontSize: '60%'
            }
          },
          legend: {
            //type:'scroll',
@@ -72,7 +69,6 @@
            containLabel: true
          },
          'dataZoom': [
            {
              'type': 'inside',
              'show': true,
src/views/mdc/base/modules/WorkshopSignage/WeekUtilizationRateTrend.vue
@@ -48,9 +48,6 @@
          color: ['#538dd6', '#ffff01', '#0bae8d', '#e26c0a', '#F6E1BE', '#7030a0', '#0ad0bb', '#FF9297', '#A40035'],
          tooltip: {
            trigger: 'axis',
            textStyle: {
              fontSize: '60%'
            }
          },
          legend: {
            //type:'scroll',