no message
							parent
							
								
									28e014b2c9
								
							
						
					
					
						commit
						c76576efe4
					
				| 
						 | 
				
			
			@ -160,11 +160,22 @@
 | 
			
		|||
            {{ dict.label.point_type[scope.row.type] }}
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column :show-overflow-tooltip="true" prop="status" label="状态">
 | 
			
		||||
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="status"
 | 
			
		||||
          label="状态"
 | 
			
		||||
          width="100"
 | 
			
		||||
          :filters="[{ text: '空闲', value: 'FREE' }, { text: '占用', value: 'USED' }]"
 | 
			
		||||
          :filter-method="filterTag"
 | 
			
		||||
          filter-placement="bottom-end">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            {{ dict.label.use_status[scope.row.status] }}
 | 
			
		||||
            <el-tag
 | 
			
		||||
              :type="dict.label.use_status[scope.row.status] === '空闲' ? 'success' : 'danger'"
 | 
			
		||||
              disable-transitions> {{ dict.label.use_status[scope.row.status] }}
 | 
			
		||||
            </el-tag>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
 | 
			
		||||
        <el-table-column :show-overflow-tooltip="true" prop="areaName" label="库区">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <div>{{ scope.row.area.name }}</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -201,13 +212,13 @@
 | 
			
		|||
<script>
 | 
			
		||||
import crudPoint from '@/api/point'
 | 
			
		||||
import crudArea from '@/api/area'
 | 
			
		||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
 | 
			
		||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
 | 
			
		||||
import crudOperation from '@crud/CRUD.operation'
 | 
			
		||||
import udOperation from '@crud/UD.operation'
 | 
			
		||||
import rrOperation from '@crud/RR.operation'
 | 
			
		||||
import pagination from '@crud/Pagination'
 | 
			
		||||
import { getToken } from '@/utils/auth'
 | 
			
		||||
import { mapGetters } from 'vuex'
 | 
			
		||||
import {getToken} from '@/utils/auth'
 | 
			
		||||
import {mapGetters} from 'vuex'
 | 
			
		||||
 | 
			
		||||
const defaultForm = {
 | 
			
		||||
  id: null,
 | 
			
		||||
| 
						 | 
				
			
			@ -232,7 +243,7 @@ export default {
 | 
			
		|||
  dicts: ['base_staus', 'use_status', 'point_type', 'agv_on_off', 'smallArea', 'item_height'],
 | 
			
		||||
  cruds() {
 | 
			
		||||
    return CRUD({
 | 
			
		||||
      title: '点位', url: 'api/point', idField: 'id', sort: 'id,desc', crudMethod: { ...crudPoint },
 | 
			
		||||
      title: '点位', url: 'api/point', idField: 'id', sort: 'id,desc', crudMethod: {...crudPoint},
 | 
			
		||||
      optShow: {
 | 
			
		||||
        add: true,
 | 
			
		||||
        edit: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -288,14 +299,14 @@ export default {
 | 
			
		|||
      from1: [],
 | 
			
		||||
      fromBack: [],
 | 
			
		||||
      pointListData: [],
 | 
			
		||||
      headers: { 'Authorization': getToken() },
 | 
			
		||||
      headers: {'Authorization': getToken()},
 | 
			
		||||
      queryTypeOptions: [
 | 
			
		||||
        { key: 'code', display_name: '代码' },
 | 
			
		||||
        { key: 'name', display_name: '名称' },
 | 
			
		||||
        { key: 'status', display_name: '状态' },
 | 
			
		||||
        { key: 'beatCode', display_name: '区域编码' },
 | 
			
		||||
        { key: 'areaCode', display_name: '仓库' },
 | 
			
		||||
        { key: 'enabled', display_name: '启用' }
 | 
			
		||||
        {key: 'code', display_name: '代码'},
 | 
			
		||||
        {key: 'name', display_name: '名称'},
 | 
			
		||||
        {key: 'status', display_name: '状态'},
 | 
			
		||||
        {key: 'beatCode', display_name: '区域编码'},
 | 
			
		||||
        {key: 'areaCode', display_name: '仓库'},
 | 
			
		||||
        {key: 'enabled', display_name: '启用'}
 | 
			
		||||
      ],
 | 
			
		||||
      areas: [],
 | 
			
		||||
      permission: {
 | 
			
		||||
| 
						 | 
				
			
			@ -305,22 +316,22 @@ export default {
 | 
			
		|||
      },
 | 
			
		||||
      rules: {
 | 
			
		||||
        code: [
 | 
			
		||||
          { validator: validateCode, required: true, trigger: 'blur' }
 | 
			
		||||
          {validator: validateCode, required: true, trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        type: [
 | 
			
		||||
          { required: true, message: '类型不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '类型不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        area: [
 | 
			
		||||
          { required: true, message: '库区不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '库区不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        posX: [
 | 
			
		||||
          { required: true, message: '排不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '排不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        posY: [
 | 
			
		||||
          { required: true, message: '列不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '列不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        posZ: [
 | 
			
		||||
          { required: true, message: '层不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '层不能为空', trigger: 'blur'}
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -364,6 +375,9 @@ export default {
 | 
			
		|||
      crudArea.queryAreaAll({}).then(res => {
 | 
			
		||||
        this.areas = res
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    filterTag(value, row) {
 | 
			
		||||
      return row.status === value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -160,11 +160,22 @@
 | 
			
		|||
            <div>{{ scope.row.stockType }}</div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column :show-overflow-tooltip="true" prop="area" label="状态">
 | 
			
		||||
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="status"
 | 
			
		||||
          label="状态"
 | 
			
		||||
          width="100"
 | 
			
		||||
          :filters="[{ text: '空闲', value: 'FREE' }, { text: '占用', value: 'USED' }]"
 | 
			
		||||
          :filter-method="filterTag"
 | 
			
		||||
          filter-placement="bottom-end">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            {{ dict.label.use_status[scope.row.status] }}
 | 
			
		||||
            <el-tag
 | 
			
		||||
              :type="dict.label.use_status[scope.row.status] === '空闲' ? 'success' : 'danger'"
 | 
			
		||||
              disable-transitions> {{ dict.label.use_status[scope.row.status] }}
 | 
			
		||||
            </el-tag>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
 | 
			
		||||
        <el-table-column label="启用" align="center" prop="enabled">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <el-switch
 | 
			
		||||
| 
						 | 
				
			
			@ -207,13 +218,13 @@
 | 
			
		|||
import crudStock from '@/api/stock'
 | 
			
		||||
import crudPoint from '@/api/point'
 | 
			
		||||
import crudArea from '@/api/area'
 | 
			
		||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
 | 
			
		||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
 | 
			
		||||
import rrOperation from '@crud/RR.operation'
 | 
			
		||||
import crudOperation from '@crud/CRUD.operation'
 | 
			
		||||
import udOperation from '@crud/UD.operation'
 | 
			
		||||
import pagination from '@crud/Pagination'
 | 
			
		||||
import { getToken } from '@/utils/auth'
 | 
			
		||||
import { mapGetters } from 'vuex'
 | 
			
		||||
import {getToken} from '@/utils/auth'
 | 
			
		||||
import {mapGetters} from 'vuex'
 | 
			
		||||
 | 
			
		||||
const defaultForm = {
 | 
			
		||||
  id: null,
 | 
			
		||||
| 
						 | 
				
			
			@ -243,12 +254,12 @@ const defaultForm = {
 | 
			
		|||
}
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'Stock',
 | 
			
		||||
  components: { pagination, crudOperation, rrOperation, udOperation },
 | 
			
		||||
  components: {pagination, crudOperation, rrOperation, udOperation},
 | 
			
		||||
  mixins: [presenter(), header(), form(defaultForm), crud()],
 | 
			
		||||
  dicts: ['base_staus', 'use_status', 'stock_type'],
 | 
			
		||||
  cruds() {
 | 
			
		||||
    return CRUD({
 | 
			
		||||
      title: '容器', url: 'api/stock', idField: 'id', sort: 'id,asc', crudMethod: { ...crudStock },
 | 
			
		||||
      title: '容器', url: 'api/stock', idField: 'id', sort: 'id,asc', crudMethod: {...crudStock},
 | 
			
		||||
      optShow: {
 | 
			
		||||
        add: true,
 | 
			
		||||
        edit: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +281,7 @@ export default {
 | 
			
		|||
      fileList: [],
 | 
			
		||||
      areas: [],
 | 
			
		||||
      points: [],
 | 
			
		||||
      headers: { 'Authorization': getToken() },
 | 
			
		||||
      headers: {'Authorization': getToken()},
 | 
			
		||||
      permission: {
 | 
			
		||||
        add: ['admin', 'stock:add'],
 | 
			
		||||
        edit: ['admin', 'stock:edit'],
 | 
			
		||||
| 
						 | 
				
			
			@ -278,13 +289,13 @@ export default {
 | 
			
		|||
      },
 | 
			
		||||
      rules: {
 | 
			
		||||
        id: [
 | 
			
		||||
          { required: true, message: '容器ID不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '容器ID不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        code: [
 | 
			
		||||
          { required: true, message: '容器代码不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '容器代码不能为空', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        stockType: [
 | 
			
		||||
          { required: true, message: '容器类型不能为空', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '容器类型不能为空', trigger: 'blur'}
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -335,6 +346,9 @@ export default {
 | 
			
		|||
      crudPoint.queryPointAll({enabled: true}).then(res => {
 | 
			
		||||
        this.points = res
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    filterTag(value, row) {
 | 
			
		||||
      return row.status === value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
    <div class="head-container">
 | 
			
		||||
      <div v-if="crud.props.searchToggle" type="flex">
 | 
			
		||||
        <!-- 搜索 -->
 | 
			
		||||
        <div>
 | 
			
		||||
          <label class="el-form-item-label">创建日期</label>
 | 
			
		||||
          <date-range-picker v-model="query.createTime" style="width: 250px;" class="filter-item"/>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +25,6 @@
 | 
			
		|||
                    class="filter-item" @keyup.enter.native="crud.toQuery"
 | 
			
		||||
          />
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        <div>
 | 
			
		||||
| 
						 | 
				
			
			@ -372,8 +370,7 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    resetQuery() {
 | 
			
		||||
      this.radio3 = '执行中';
 | 
			
		||||
      this.query = { status: 'ATCALL', createTime: '', stockCode: '', startSlotCode: '', endSlotCode: '', type: '' };
 | 
			
		||||
      this.crud.toQuery();
 | 
			
		||||
      this.crud.resetQuery()
 | 
			
		||||
    },
 | 
			
		||||
    clickChange(lab) {
 | 
			
		||||
      if (lab === '全部') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,8 @@
 | 
			
		|||
    <!--工具栏-->
 | 
			
		||||
    <div class="head-container">
 | 
			
		||||
      <label class="el-form-item-label">物料编码</label>
 | 
			
		||||
      <el-select v-model="query.itemCode" placeholder="物料编码" filterable clearable style="width: 170px;" class="filter-item">
 | 
			
		||||
      <el-select v-model="query.itemCode" placeholder="物料编码" filterable clearable style="width: 170px;"
 | 
			
		||||
                 class="filter-item">
 | 
			
		||||
        <el-option
 | 
			
		||||
          @keyup.enter.native="crud.toQuery"
 | 
			
		||||
          v-for="item in this.items"
 | 
			
		||||
| 
						 | 
				
			
			@ -78,9 +79,29 @@
 | 
			
		|||
        <el-table-column prop="itemKey.orderNumber" label="箱号"/>
 | 
			
		||||
        <el-table-column prop="srcPointCode" label="原点位"/>
 | 
			
		||||
        <el-table-column prop="dstPointCode" label="目标点位"/>
 | 
			
		||||
        <el-table-column prop="taskStatus" label="任务状态">
 | 
			
		||||
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="taskStatus"
 | 
			
		||||
          label="任务状态"
 | 
			
		||||
          width="100"
 | 
			
		||||
          :filters="[
 | 
			
		||||
          { text: '待执行', value: 'OPEN' },
 | 
			
		||||
          { text: '执行中', value: 'ATCALL' },
 | 
			
		||||
          { text: '顶升', value: 'UP_CONTAINER' },
 | 
			
		||||
          { text: '已到站', value: 'ARRIVED' },
 | 
			
		||||
          { text: '已完成', value: 'FINISH' },
 | 
			
		||||
          { text: '任务取消', value: 'CANCEL' }
 | 
			
		||||
          ]"
 | 
			
		||||
          :filter-method="filterTag"
 | 
			
		||||
          filter-placement="bottom-end"
 | 
			
		||||
        >
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            {{ dict.label.task_status[scope.row.taskStatus] }}
 | 
			
		||||
            <el-tag
 | 
			
		||||
              :type="getStatusType(scope.row.taskStatus)"
 | 
			
		||||
              disable-transitions
 | 
			
		||||
            >
 | 
			
		||||
              {{ dict.label.task_status[scope.row.taskStatus] }}
 | 
			
		||||
            </el-tag>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="planQty" label="计划数量"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +119,7 @@
 | 
			
		|||
<script>
 | 
			
		||||
import crudTask from '@/api/task'
 | 
			
		||||
import crudItem from '@/api/item'
 | 
			
		||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
 | 
			
		||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
 | 
			
		||||
import rrOperation from '@crud/RR.operation'
 | 
			
		||||
import crudOperation from '@crud/CRUD.operation'
 | 
			
		||||
import udOperation from '@crud/UD.operation'
 | 
			
		||||
| 
						 | 
				
			
			@ -139,17 +160,17 @@ const defaultForm = {
 | 
			
		|||
}
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'asnTask',
 | 
			
		||||
  components: { DateRangePicker,pagination, crudOperation, rrOperation, udOperation },
 | 
			
		||||
  components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
 | 
			
		||||
  mixins: [presenter(), header(), form(defaultForm), crud()],
 | 
			
		||||
  dicts: ['task_status'],
 | 
			
		||||
  cruds() {
 | 
			
		||||
    return CRUD({
 | 
			
		||||
        query: { taskType: ['ASN'] },
 | 
			
		||||
        query: {taskType: ['ASN']},
 | 
			
		||||
        title: '入库任务',
 | 
			
		||||
        url: 'api/task',
 | 
			
		||||
        idField: 'id',
 | 
			
		||||
        sort: 'id,desc',
 | 
			
		||||
        crudMethod: { ...crudTask },
 | 
			
		||||
        crudMethod: {...crudTask},
 | 
			
		||||
        optShow: {
 | 
			
		||||
          add: false,
 | 
			
		||||
          edit: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -170,11 +191,11 @@ export default {
 | 
			
		|||
      },
 | 
			
		||||
      rules: {},
 | 
			
		||||
      queryTypeOptions: [
 | 
			
		||||
        { key: 'itemCode', display_name: '物料代码' },
 | 
			
		||||
        { key: 'itemName', display_name: '物料名称' },
 | 
			
		||||
        { key: 'taskStatus', display_name: '任务状态' },
 | 
			
		||||
        { key: 'srcPointCode', display_name: '源点位编码' },
 | 
			
		||||
        { key: 'dstPointCode', display_name: '目标点位编码' }
 | 
			
		||||
        {key: 'itemCode', display_name: '物料代码'},
 | 
			
		||||
        {key: 'itemName', display_name: '物料名称'},
 | 
			
		||||
        {key: 'taskStatus', display_name: '任务状态'},
 | 
			
		||||
        {key: 'srcPointCode', display_name: '源点位编码'},
 | 
			
		||||
        {key: 'dstPointCode', display_name: '目标点位编码'}
 | 
			
		||||
      ],
 | 
			
		||||
      items: []
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -193,11 +214,31 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    //物料数据
 | 
			
		||||
    getItem() {
 | 
			
		||||
      crudItem.queryItemAll({ enabled: true }).then(res => {
 | 
			
		||||
      crudItem.queryItemAll({enabled: true}).then(res => {
 | 
			
		||||
        this.items = res
 | 
			
		||||
      }).catch(e => {
 | 
			
		||||
        this.crud.notify('物料加载失败', CRUD.NOTIFICATION_TYPE.ERROR)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    getStatusType(status) {
 | 
			
		||||
      switch (this.dict.label.task_status[status]) {
 | 
			
		||||
        case '待执行':
 | 
			
		||||
          return 'info'
 | 
			
		||||
        case '执行中':
 | 
			
		||||
          return 'warning'
 | 
			
		||||
        case '顶升':
 | 
			
		||||
          return 'primary'
 | 
			
		||||
        case '已完成':
 | 
			
		||||
        case '已到站':
 | 
			
		||||
          return 'success'
 | 
			
		||||
        case '任务取消':
 | 
			
		||||
          return 'danger'
 | 
			
		||||
        default:
 | 
			
		||||
          return ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    filterTag(value, row) {
 | 
			
		||||
      return row.taskStatus === value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,37 +2,51 @@
 | 
			
		|||
  <div class="app-container">
 | 
			
		||||
    <!--工具栏-->
 | 
			
		||||
    <div class="head-container">
 | 
			
		||||
      <label class="el-form-item-label" v-show="false">物料编码</label>
 | 
			
		||||
      <el-select v-show="false" v-model="query.itemCode" @focus="getItem" value-key="id" filterable multiple
 | 
			
		||||
                 placeholder="请选择物料" style="width: 150px;" class="filter-item" @keyup.enter.native="crud.toQuery">
 | 
			
		||||
        <el-option
 | 
			
		||||
          v-for="item in items"
 | 
			
		||||
          :key="item.id"
 | 
			
		||||
          :label="item.code"
 | 
			
		||||
          :value="item.code"
 | 
			
		||||
        />
 | 
			
		||||
      </el-select>
 | 
			
		||||
      <!--
 | 
			
		||||
            <el-input v-model="query.itemCode" clearable placeholder="请输入物料编码" style="width: 140px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
 | 
			
		||||
      -->
 | 
			
		||||
      <label class="el-form-item-label">物料编码</label>
 | 
			
		||||
      <el-input v-model="query.itemCodeOne" clearable placeholder="请输入物料编码" style="width: 150px;"
 | 
			
		||||
                class="filter-item" @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
      <label class="el-form-item-label">物料名称</label>
 | 
			
		||||
      <el-input v-model="query.itemName" clearable placeholder="请输入物料名称" style="width: 150px;"
 | 
			
		||||
                class="filter-item" @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
      <div v-if="crud.props.searchToggle" type="flex">
 | 
			
		||||
        <label class="el-form-item-label" v-show="false">物料编码</label>
 | 
			
		||||
        <el-select v-show="false" v-model="query.itemCode" @focus="getItem" value-key="id" filterable multiple
 | 
			
		||||
                   placeholder="请选择物料" style="width: 150px;" class="filter-item"
 | 
			
		||||
                   @keyup.enter.native="crud.toQuery">
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in items"
 | 
			
		||||
            :key="item.id"
 | 
			
		||||
            :label="item.code"
 | 
			
		||||
            :value="item.code"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
 | 
			
		||||
      <label class="el-form-item-label">批次号</label>
 | 
			
		||||
      <el-input v-model="query.propC1" clearable placeholder="请输入批次号" style="width: 150px;" class="filter-item"
 | 
			
		||||
                @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
        <label class="el-form-item-label">物料编码</label>
 | 
			
		||||
        <el-input v-model="query.itemCodeOne" clearable placeholder="请输入物料编码" style="width: 150px;"
 | 
			
		||||
                  class="filter-item" @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
        <label class="el-form-item-label">物料名称</label>
 | 
			
		||||
        <el-input v-model="query.itemName" clearable placeholder="请输入物料名称" style="width: 150px;"
 | 
			
		||||
                  class="filter-item" @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
 | 
			
		||||
      <label class="el-form-item-label">容器号</label>
 | 
			
		||||
      <el-input v-model="query.stockName" clearable placeholder="请输入容器号" style="width: 150px;" class="filter-item"
 | 
			
		||||
                @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
      <rrOperation :crud="crud"/>
 | 
			
		||||
        <label class="el-form-item-label">批次号</label>
 | 
			
		||||
        <el-input v-model="query.propC1" clearable placeholder="请输入批次号" style="width: 150px;" class="filter-item"
 | 
			
		||||
                  @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
 | 
			
		||||
      <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
 | 
			
		||||
      </el-button>
 | 
			
		||||
        <label class="el-form-item-label">容器号</label>
 | 
			
		||||
        <el-input v-model="query.stockName" clearable placeholder="请输入容器号" style="width: 150px;"
 | 
			
		||||
                  class="filter-item"
 | 
			
		||||
                  @keyup.enter.native="crud.toQuery"/>
 | 
			
		||||
        <rrOperation :crud="crud"/>
 | 
			
		||||
 | 
			
		||||
        <el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
 | 
			
		||||
        </el-button>
 | 
			
		||||
 | 
			
		||||
        <div class="statusButton" style="border-bottom: solid lightgray 1px;">
 | 
			
		||||
          <el-radio-group v-model="radio3" @change="clickChange" size="small">
 | 
			
		||||
            <el-radio-button label="全部">全部</el-radio-button>
 | 
			
		||||
            <el-radio-button label="小件">小件</el-radio-button>
 | 
			
		||||
            <el-radio-button label="大件">大件</el-radio-button>
 | 
			
		||||
            <el-radio-button label="翻包">翻包</el-radio-button>
 | 
			
		||||
            <el-radio-button label="叫料">叫料</el-radio-button>
 | 
			
		||||
          </el-radio-group>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
 | 
			
		||||
      <crudOperation :permission="permission" :tableKey="this.$options.name"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -203,6 +217,7 @@ export default {
 | 
			
		|||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      radio3: '小件',
 | 
			
		||||
      points: [],
 | 
			
		||||
      stocks: [],
 | 
			
		||||
      items: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -241,6 +256,7 @@ export default {
 | 
			
		|||
      this.crud.toQuery();
 | 
			
		||||
    },
 | 
			
		||||
    resetQuery() {
 | 
			
		||||
      this.radio3 = '小件';
 | 
			
		||||
      this.crud.resetQuery()
 | 
			
		||||
    },
 | 
			
		||||
    getSummaries(param) {
 | 
			
		||||
| 
						 | 
				
			
			@ -269,6 +285,24 @@ export default {
 | 
			
		|||
      });
 | 
			
		||||
 | 
			
		||||
      return sums;
 | 
			
		||||
    },
 | 
			
		||||
    clickChange(lab) {
 | 
			
		||||
      if (lab === '全部') {
 | 
			
		||||
        this.query.status = ''
 | 
			
		||||
        this.crud.toQuery()
 | 
			
		||||
      } else if (lab === '小件') {
 | 
			
		||||
        this.query.areaName = '小件存储区'
 | 
			
		||||
        this.crud.toQuery()
 | 
			
		||||
      } else if (lab === '大件') {
 | 
			
		||||
        this.query.areaName = '大件存储区'
 | 
			
		||||
        this.crud.toQuery()
 | 
			
		||||
      } else if (lab === '翻包') {
 | 
			
		||||
        this.query.areaName = ['小件翻包区', '大件翻包区']
 | 
			
		||||
        this.crud.toQuery()
 | 
			
		||||
      } else if (lab === '叫料') {
 | 
			
		||||
        this.query.areaName = ['小件翻包存储区', '小件翻包存储区']
 | 
			
		||||
        this.crud.toQuery()
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,8 @@
 | 
			
		|||
        />
 | 
			
		||||
 | 
			
		||||
        <label class="el-form-item-label">工单状态</label>
 | 
			
		||||
        <el-select v-model="query.status" filterable clearable placeholder="请选择" class="filter-item" style="width: 180px;">
 | 
			
		||||
        <el-select v-model="query.status" filterable clearable placeholder="请选择" class="filter-item"
 | 
			
		||||
                   style="width: 180px;">
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in dict.pick_status"
 | 
			
		||||
            :key="item.id"
 | 
			
		||||
| 
						 | 
				
			
			@ -130,9 +131,29 @@
 | 
			
		|||
        <el-table-column prop="code" label="出库单编码" width="180" v-element-table-tooltip/>
 | 
			
		||||
        <el-table-column prop="gdCode" label="工单编码" v-element-table-tooltip/>
 | 
			
		||||
        <el-table-column prop="lineNo" label="顺序号"/>
 | 
			
		||||
        <el-table-column prop="status" label="状态">
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="status"
 | 
			
		||||
          label="状态"
 | 
			
		||||
          width="100"
 | 
			
		||||
          :filters="[
 | 
			
		||||
          { text: '打开', value: 'OPEN' },
 | 
			
		||||
          { text: '部分分配', value: 'ASSIGN' },
 | 
			
		||||
          { text: '已分配', value: 'ALLOCATE' },
 | 
			
		||||
          { text: '拣货中', value: 'PICKUP' },
 | 
			
		||||
          { text: '拣货完成', value: 'PICK_ALL' },
 | 
			
		||||
          { text: '叫料中', value: 'SHIP_PART' },
 | 
			
		||||
          { text: '已关闭', value: 'CLOSE' }
 | 
			
		||||
          ]"
 | 
			
		||||
          :filter-method="filterTag"
 | 
			
		||||
          filter-placement="bottom-end"
 | 
			
		||||
        >
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            {{ dict.label.pick_status[scope.row.status] }}
 | 
			
		||||
            <el-tag
 | 
			
		||||
              :type="getStatusType(scope.row.status)"
 | 
			
		||||
              disable-transitions
 | 
			
		||||
            >
 | 
			
		||||
              {{ dict.label.pick_status[scope.row.status] }}
 | 
			
		||||
            </el-tag>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="cpCodeOrDpCode" label="成品代码/单品代码"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -163,16 +184,16 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
import crudPick from '@/api/pick'
 | 
			
		||||
import crudPickDetail, { findByAllPickDetail } from '@/api/pickDetail'
 | 
			
		||||
import crudPickDetail, {findByAllPickDetail} from '@/api/pickDetail'
 | 
			
		||||
import crudItem from '@/api/item'
 | 
			
		||||
import crudBigItem from '@/api/bigItem'
 | 
			
		||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
 | 
			
		||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
 | 
			
		||||
import rrOperation from '@crud/RR.operation'
 | 
			
		||||
import crudOperation from '@crud/CRUD.operation'
 | 
			
		||||
import udOperation from '@crud/UD.operation'
 | 
			
		||||
import pagination from '@crud/Pagination'
 | 
			
		||||
 | 
			
		||||
import { none } from 'html-webpack-plugin/lib/chunksorter'
 | 
			
		||||
import {none} from 'html-webpack-plugin/lib/chunksorter'
 | 
			
		||||
 | 
			
		||||
const defaultForm = {
 | 
			
		||||
  id: null,
 | 
			
		||||
| 
						 | 
				
			
			@ -189,7 +210,7 @@ const defaultForm = {
 | 
			
		|||
export default {
 | 
			
		||||
  name: 'Pick',
 | 
			
		||||
  dicts: ['pick_status'],
 | 
			
		||||
  components: { pagination, crudOperation, rrOperation, udOperation },
 | 
			
		||||
  components: {pagination, crudOperation, rrOperation, udOperation},
 | 
			
		||||
  mixins: [presenter(), header(), form(defaultForm), crud()],
 | 
			
		||||
  cruds() {
 | 
			
		||||
    return CRUD({
 | 
			
		||||
| 
						 | 
				
			
			@ -197,7 +218,7 @@ export default {
 | 
			
		|||
      url: 'api/pick',
 | 
			
		||||
      idField: 'id',
 | 
			
		||||
      sort: ['lineNo,asc'],
 | 
			
		||||
      crudMethod: { ...crudPick },
 | 
			
		||||
      crudMethod: {...crudPick},
 | 
			
		||||
      optShow: {
 | 
			
		||||
        add: false,
 | 
			
		||||
        edit: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -221,19 +242,19 @@ export default {
 | 
			
		|||
      },
 | 
			
		||||
      rules: {
 | 
			
		||||
        gdCode: [
 | 
			
		||||
          { required: true, message: '请选择工单编码', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '请选择工单编码', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        lineNo: [
 | 
			
		||||
          { required: true, message: '请输入顺序号', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '请输入顺序号', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        status: [
 | 
			
		||||
          { required: true, message: '请选择状态', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '请选择状态', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        cpCodeOrDpCode: [
 | 
			
		||||
          { required: true, message: '请选择成品代码/单品代码', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '请选择成品代码/单品代码', trigger: 'blur'}
 | 
			
		||||
        ],
 | 
			
		||||
        station: [
 | 
			
		||||
          { required: true, message: '请输入需求工位', trigger: 'blur' }
 | 
			
		||||
          {required: true, message: '请输入需求工位', trigger: 'blur'}
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -249,17 +270,17 @@ export default {
 | 
			
		|||
      // 清空数组,防止重复添加
 | 
			
		||||
      this.itemAndBigItem = []
 | 
			
		||||
 | 
			
		||||
      crudItem.queryItemAll({ enabled: true }).then(res => {
 | 
			
		||||
      crudItem.queryItemAll({enabled: true}).then(res => {
 | 
			
		||||
        res.forEach(item => {
 | 
			
		||||
          const cpCodeAndDpCode = { code: null }
 | 
			
		||||
          const cpCodeAndDpCode = {code: null}
 | 
			
		||||
          cpCodeAndDpCode.code = item.code
 | 
			
		||||
          this.itemAndBigItem.push(cpCodeAndDpCode)
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      crudBigItem.queryBigItemAll({ enabled: true }).then(res => {
 | 
			
		||||
      crudBigItem.queryBigItemAll({enabled: true}).then(res => {
 | 
			
		||||
        res.forEach(item => {
 | 
			
		||||
          const cpCodeAndDpCode = { code: null }
 | 
			
		||||
          const cpCodeAndDpCode = {code: null}
 | 
			
		||||
          cpCodeAndDpCode.code = item.code
 | 
			
		||||
          this.itemAndBigItem.push(cpCodeAndDpCode)
 | 
			
		||||
        })
 | 
			
		||||
| 
						 | 
				
			
			@ -271,7 +292,7 @@ export default {
 | 
			
		|||
      // 展开的时候expandedRows有值,收起的时候为空.
 | 
			
		||||
      this.loading = true
 | 
			
		||||
      if (expandedRows.length > 0) {
 | 
			
		||||
        crudPickDetail.findByAllPickDetail({ pickId: row.id }).then(res => {
 | 
			
		||||
        crudPickDetail.findByAllPickDetail({pickId: row.id}).then(res => {
 | 
			
		||||
          // 遍历当前页面表
 | 
			
		||||
          this.$set(row, 'pickDetails', res)
 | 
			
		||||
          setTimeout(() => {
 | 
			
		||||
| 
						 | 
				
			
			@ -290,6 +311,28 @@ export default {
 | 
			
		|||
         this.$refs.table.toggleRowExpansion(row)
 | 
			
		||||
       }
 | 
			
		||||
       */
 | 
			
		||||
    },
 | 
			
		||||
    getStatusType(status) {
 | 
			
		||||
      switch (this.dict.label.pick_status[status]) {
 | 
			
		||||
        case '打开':
 | 
			
		||||
          return 'info'
 | 
			
		||||
        case '部分分配':
 | 
			
		||||
        case '已分配':
 | 
			
		||||
          return 'warning'
 | 
			
		||||
        case '拣货中':
 | 
			
		||||
        case '拣货完成':
 | 
			
		||||
          return 'primary'
 | 
			
		||||
        case '叫料中':
 | 
			
		||||
        case '已关闭':
 | 
			
		||||
          return 'success'
 | 
			
		||||
        case '已取消':
 | 
			
		||||
          return 'danger'
 | 
			
		||||
        default:
 | 
			
		||||
          return ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    filterTag(value, row) {
 | 
			
		||||
      return row.status === value
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,8 @@
 | 
			
		|||
    <!--工具栏-->
 | 
			
		||||
    <div class="head-container">
 | 
			
		||||
      <label class="el-form-item-label">物料编码</label>
 | 
			
		||||
      <el-select v-model="query.itemCode" placeholder="物料编码" filterable clearable style="width: 170px;" class="filter-item">
 | 
			
		||||
      <el-select v-model="query.itemCode" placeholder="物料编码" filterable clearable style="width: 170px;"
 | 
			
		||||
                 class="filter-item">
 | 
			
		||||
        <el-option
 | 
			
		||||
          @keyup.enter.native="crud.toQuery"
 | 
			
		||||
          v-for="item in this.items"
 | 
			
		||||
| 
						 | 
				
			
			@ -78,10 +79,28 @@
 | 
			
		|||
            <div>{{ scope.row.item.name }}</div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
 | 
			
		||||
        <el-table-column prop="taskStatus" label="任务状态">
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="taskStatus"
 | 
			
		||||
          label="任务状态"
 | 
			
		||||
          width="100"
 | 
			
		||||
          :filters="[
 | 
			
		||||
          { text: '待执行', value: 'OPEN' },
 | 
			
		||||
          { text: '执行中', value: 'ATCALL' },
 | 
			
		||||
          { text: '顶升', value: 'UP_CONTAINER' },
 | 
			
		||||
          { text: '已到站', value: 'ARRIVED' },
 | 
			
		||||
          { text: '已完成', value: 'FINISH' },
 | 
			
		||||
          { text: '任务取消', value: 'CANCEL' }
 | 
			
		||||
          ]"
 | 
			
		||||
          :filter-method="filterTag"
 | 
			
		||||
          filter-placement="bottom-end"
 | 
			
		||||
        >
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            {{ dict.label.task_status[scope.row.taskStatus] }}
 | 
			
		||||
            <el-tag
 | 
			
		||||
              :type="getStatusType(scope.row.taskStatus)"
 | 
			
		||||
              disable-transitions
 | 
			
		||||
            >
 | 
			
		||||
              {{ dict.label.task_status[scope.row.taskStatus] }}
 | 
			
		||||
            </el-tag>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="srcPointCode" label="原点位"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +120,7 @@
 | 
			
		|||
<script>
 | 
			
		||||
import crudTask from '@/api/task'
 | 
			
		||||
import crudItem from '@/api/item'
 | 
			
		||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
 | 
			
		||||
import CRUD, {presenter, header, form, crud} from '@crud/crud'
 | 
			
		||||
import rrOperation from '@crud/RR.operation'
 | 
			
		||||
import crudOperation from '@crud/CRUD.operation'
 | 
			
		||||
import udOperation from '@crud/UD.operation'
 | 
			
		||||
| 
						 | 
				
			
			@ -142,17 +161,17 @@ const defaultForm = {
 | 
			
		|||
}
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'PickTask',
 | 
			
		||||
  components: { DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
 | 
			
		||||
  components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
 | 
			
		||||
  mixins: [presenter(), header(), form(defaultForm), crud()],
 | 
			
		||||
  dicts: ['task_status'],
 | 
			
		||||
  cruds() {
 | 
			
		||||
    return CRUD({
 | 
			
		||||
        query: { taskType: ['PICK'] },
 | 
			
		||||
        query: {taskType: ['PICK']},
 | 
			
		||||
        title: '出库任务',
 | 
			
		||||
        url: 'api/task',
 | 
			
		||||
        idField: 'id',
 | 
			
		||||
        sort: 'id,desc',
 | 
			
		||||
        crudMethod: { ...crudTask },
 | 
			
		||||
        crudMethod: {...crudTask},
 | 
			
		||||
        optShow: {
 | 
			
		||||
          add: false,
 | 
			
		||||
          edit: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -189,11 +208,31 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    //物料数据
 | 
			
		||||
    getItem() {
 | 
			
		||||
      crudItem.queryItemAll({ enabled: true }).then(res => {
 | 
			
		||||
      crudItem.queryItemAll({enabled: true}).then(res => {
 | 
			
		||||
        this.items = res
 | 
			
		||||
      }).catch(e => {
 | 
			
		||||
        this.crud.notify('物料加载失败', CRUD.NOTIFICATION_TYPE.ERROR)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    getStatusType(status) {
 | 
			
		||||
      switch (this.dict.label.task_status[status]) {
 | 
			
		||||
        case '待执行':
 | 
			
		||||
          return 'info'
 | 
			
		||||
        case '执行中':
 | 
			
		||||
          return 'warning'
 | 
			
		||||
        case '顶升':
 | 
			
		||||
          return 'primary'
 | 
			
		||||
        case '已完成':
 | 
			
		||||
        case '已到站':
 | 
			
		||||
          return 'success'
 | 
			
		||||
        case '任务取消':
 | 
			
		||||
          return 'danger'
 | 
			
		||||
        default:
 | 
			
		||||
          return ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    filterTag(value, row) {
 | 
			
		||||
      return row.taskStatus === value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue