CompareWcsLocationTask.vue 10.7 KB
<template>
  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="WMS任务ID">
              <a-input placeholder="请输入WMS任务ID" v-model="queryParam.wmsId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="WCS任务ID">
              <a-input placeholder="请输入WMS任务ID" v-model="queryParam.wcsId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="数据状态">
              <j-dict-select-tag
                placeholder="请选择数据状态"
                v-model="queryParam.consistencyStatus"
                dictCode="consistency_status"
              />
            </a-form-item>
          </a-col>
          <a-col :xl="12" :lg="14" :md="16" :sm="24">
            <a-form-item label="任务创建时间">
              <j-date
                :show-time="true"
                date-format="YYYY-MM-DD HH:mm:ss"
                placeholder="请选择开始时间"
                class="query-group-cust"
                v-model="queryParam.taskCreateTimeBegin"
              ></j-date>
              <span class="query-group-split-cust"></span>
              <j-date
                :show-time="true"
                date-format="YYYY-MM-DD HH:mm:ss"
                placeholder="请选择结束时间"
                class="query-group-cust"
                v-model="queryParam.taskCreateTimeEnd"
              ></j-date>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- 查询区域-END -->

    <!-- table区域-begin -->
    <div>
      <a-table
        ref="table"
        size="middle"
        bordered
        :scroll="{ x: true }"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange"
        class="j-table-force-nowrap"
      >
        <span slot="taskType" slot-scope="taskType">
          <a-tag :key="taskType">
            {{ solutionTaskType(taskType) }}
          </a-tag>
        </span>

        <span slot="taskStatus" slot-scope="taskStatus">
          <a-tag :key="taskStatus">
            {{ solutionTaskStatus(taskStatus) }}
          </a-tag>
        </span>

        <span slot="wcsTaskStatus" slot-scope="wcsTaskStatus">
          <a-tag :key="wcsTaskStatus">
            {{ solutionWcsTaskStatus(wcsTaskStatus) }}
          </a-tag>
        </span>

        <span slot="consistencyStatus" slot-scope="consistencyStatus">
          <a-tag :key="consistencyStatus" :color="solutionPurchaseColor(consistencyStatus)">
            {{ solutionConsistencyStatus(consistencyStatus) }}
          </a-tag>
        </span>
      </a-table>
    </div>
  </a-card>
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { initDictOptions, filterMultiDictText } from '@/components/dict/JDictSelectUtil'
import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'

export default {
  name: 'CompareWcsLocationTask',
  mixins: [JeecgListMixin],
  components: {},
  props: {
    mainId: {
      type: String,
      default: '',
      required: false
    }
  },

  watch: {
    mainId: {
      immediate: true,
      handler(val) {
        var nowDate = new Date()
        this.queryParam['taskCreateTimeBegin'] = new Date(nowDate.getTime() - 90 * 24 * 60 * 60 * 1000).format('yyyy-MM-dd hh:mm:ss')
        this.queryParam['taskCreateTimeEnd'] = nowDate.format('yyyy-MM-dd hh:mm:ss')
        this.queryParam['locationCode'] = val
        this.loadData(1)
      }
    }
  },
  data() {
    Date.prototype.format = function(fmt) {
      var o = {
        'M+': this.getMonth() + 1, //月份
        'd+': this.getDate(), //日
        'h+': this.getHours(), //小时
        'm+': this.getMinutes(), //分
        's+': this.getSeconds(), //秒
        'q+': Math.floor((this.getMonth() + 3) / 3), //季度
        S: this.getMilliseconds() //毫秒
      }
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
      }
      for (var k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
          fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
        }
      }
      return fmt
    }
    return {
      description: '库位任务信息比较页面',
      disableMixinCreated: true,
      taskTypeList: [],
      taskStatusList: [],
      wcsTaskStatusList: [],
      consistencyStatusList: [],
      // 表头
      columns: [
        {
          title: 'WMS任务ID',
          align: 'center',
          dataIndex: 'wmsId'
        },
        {
          title: 'WCS任务ID',
          align: 'center',
          dataIndex: 'wcsId'
        },
        {
          title: 'WMS任务类型',
          align: 'center',
          dataIndex: 'taskType',
          key: 'taskType',
          scopedSlots: { customRender: 'taskType' }
        },
        {
          title: '源库位',
          align: 'center',
          dataIndex: 'fromLocationCode'
        },
        {
          title: 'WCS源库位',
          align: 'center',
          dataIndex: 'wcsFromLocationCode'
        },
        {
          title: '目标库位',
          align: 'center',
          dataIndex: 'toLocationCode'
        },
        {
          title: 'WCS目标库位',
          align: 'center',
          dataIndex: 'wcsToLocationCode'
        },
        {
          title: '托盘编码',
          align: 'center',
          dataIndex: 'containerCode'
        },
        {
          title: 'WCS托盘编码',
          align: 'center',
          dataIndex: 'wcsContainerCode'
        },
        {
          title: '任务状态',
          align: 'center',
          dataIndex: 'taskStatus',
          key: 'taskStatus',
          scopedSlots: { customRender: 'taskStatus' }
        },
        {
          title: 'WCS任务状态',
          align: 'center',
          dataIndex: 'wcsTaskStatus',
          key: 'wcsTaskStatus',
          scopedSlots: { customRender: 'wcsTaskStatus' }
        },
        {
          title: '任务创建时间',
          align: 'center',
          dataIndex: 'taskCreateTime'
        },
        {
          title: 'WCS任务创建时间',
          align: 'center',
          dataIndex: 'wcsTaskCreateTime'
        },
        {
          title: '数据状态',
          align: 'center',
          dataIndex: 'consistencyStatus',
          key: 'consistencyStatus',
          fixed: "right",
          width: 100,
          scopedSlots: { customRender: 'consistencyStatus' }
        }
      ],
      url: {
        list: '/config/location/compareWcsLocationTask'
      },
      dictOptions: {
        taskType: []
      }
    }
  },
  created() {
    this.initDictData()
  },
  methods: {
    initDictData() {
      // 获取 location_status
      if (getDictItemsFromCache('task_type')) {
        this.taskTypeList = getDictItemsFromCache('task_type')
      } else {
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems('task_type', null).then(res => {
          if (res.success) {
            this.taskTypeList = res.result
          }
        })
      }
      // 获取 task_header_status
      if (getDictItemsFromCache('task_header_status')) {
        this.taskStatusList = getDictItemsFromCache('task_header_status')
      } else {
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems('task_header_status', null).then(res => {
          if (res.success) {
            this.taskStatusList = res.result
          }
        })
      }
      // 获取 wcs_task_status
      if (getDictItemsFromCache('wcs_task_status')) {
        this.wcsTaskStatusList = getDictItemsFromCache('wcs_task_status')
      } else {
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems('wcs_task_status', null).then(res => {
          if (res.success) {
            this.wcsTaskStatusList = res.result
          }
        })
      }
      // 获取 consistency_status
      if (getDictItemsFromCache('consistency_status')) {
        this.consistencyStatusList = getDictItemsFromCache('consistency_status')
      } else {
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems('consistency_status', null).then(res => {
          if (res.success) {
            this.consistencyStatusList = res.result
          }
        })
      }
    },
    clearList() {
      this.dataSource = []
      this.selectedRowKeys = []
      this.ipagination.current = 1
    },
    solutionTaskType(value) {
      var actions = []
      Object.keys(this.taskTypeList).some(key => {
        if (this.taskTypeList[key].value == '' + value) {
          actions.push(this.taskTypeList[key].text)
          return true
        }
      })
      return actions.join('')
    },
    solutionTaskStatus(value) {
      var actions = []
      Object.keys(this.taskStatusList).some(key => {
        if (this.taskStatusList[key].value == '' + value) {
          actions.push(this.taskStatusList[key].text)
          return true
        }
      })
      return actions.join('')
    },
    solutionWcsTaskStatus(value) {
      var actions = []
      Object.keys(this.wcsTaskStatusList).some(key => {
        if (this.wcsTaskStatusList[key].value == '' + value) {
          actions.push(this.wcsTaskStatusList[key].text)
          return true
        }
      })
      return actions.join('')
    },
    solutionConsistencyStatus(value) {
      var actions = []
      Object.keys(this.consistencyStatusList).some(key => {
        if (this.consistencyStatusList[key].value == '' + value) {
          actions.push(this.consistencyStatusList[key].text)
          return true
        }
      })
      return actions.join('')
    },
    solutionPurchaseColor(value) {
      var color = 'blue'
      if (0 == value) {
        color = 'red'
      }
      return color
    },
    searchReset() {
      var locationCode = this.queryParam['locationCode']
      this.queryParam = {}
      this.queryParam['locationCode'] = locationCode
      this.loadData(1)
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>