出库-替换分配库存
parent
07d443c976
commit
91955c0961
|
|
@ -30,6 +30,12 @@ export function allocate(ids) {
|
||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function getPickList() {
|
||||||
|
return request({
|
||||||
|
url: 'api/pick/getPickList',
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function cancelAllocate(ids) {
|
export function cancelAllocate(ids) {
|
||||||
return request({
|
return request({
|
||||||
|
|
@ -38,4 +44,4 @@ export function cancelAllocate(ids) {
|
||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export default { add, edit, del, allocate , cancelAllocate }
|
export default { add, edit, del, allocate, getPickList, cancelAllocate }
|
||||||
|
|
|
||||||
|
|
@ -56,4 +56,11 @@ export function pickBarBack(pickDetailId) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del,allocate,cancelAllocate,picking,pickBarBack }
|
export function getPickDetail() {
|
||||||
|
return request({
|
||||||
|
url: 'api/pickDetail/getPickDetail',
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del,allocate,cancelAllocate,picking,pickBarBack,getPickDetail }
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,16 @@ export function devanRfid(rfid, type) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function replaceInv(taskId, invId) {
|
||||||
|
return request({
|
||||||
|
url: 'api/task/replaceInv',
|
||||||
|
method: 'post',
|
||||||
|
data: {
|
||||||
|
'taskId': taskId,
|
||||||
|
'invId': invId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
export function manualReceiving(data) {
|
export function manualReceiving(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/task/manualReceiving',
|
url: 'api/task/manualReceiving',
|
||||||
|
|
@ -52,5 +62,12 @@ export function queryPickTask(id) {
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function picking(datas) {
|
||||||
|
return request({
|
||||||
|
url: 'api/task/picking',
|
||||||
|
method: 'post',
|
||||||
|
data: datas
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default { add, edit, del, getTaskInfo, queryPickTask, manualReceiving, devanRfid }
|
export default { add, edit, del, getTaskInfo, queryPickTask, manualReceiving, picking, devanRfid, replaceInv }
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,9 @@
|
||||||
<el-form-item label="订单数量">
|
<el-form-item label="订单数量">
|
||||||
<el-input v-model="form.orderQty" style="width: 200px;"/>
|
<el-input v-model="form.orderQty" style="width: 200px;"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="收货数量">
|
||||||
|
<el-input v-model="form.receivedQty" style="width: 200px;"/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="成品物料编码">
|
<el-form-item label="成品物料编码">
|
||||||
<el-input v-model="form.propC1" style="width: 200px;"/>
|
<el-input v-model="form.propC1" style="width: 200px;"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
||||||
|
|
@ -271,6 +271,7 @@ export default {
|
||||||
crudTask.manualReceiving(this.fromManualReceiving).then(res => {
|
crudTask.manualReceiving(this.fromManualReceiving).then(res => {
|
||||||
this.crud.notify(res.message, res.status)
|
this.crud.notify(res.message, res.status)
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
|
this.fromManualReceiving={}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,10 @@
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@keyup.enter.native="crud.toQuery"
|
@keyup.enter.native="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
|
<el-input
|
||||||
|
v-show="false"
|
||||||
|
v-model="query.itemId"
|
||||||
|
/>
|
||||||
<rrOperation :crud="crud" />
|
<rrOperation :crud="crud" />
|
||||||
|
|
||||||
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
|
<el-button class="filter-item" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置
|
||||||
|
|
@ -81,6 +85,18 @@
|
||||||
>
|
>
|
||||||
拆托
|
拆托
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="ButReplaceInvFlag"
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="crud.selections.length !== 1 || this.crud.selections[0].orderQty<=this.crud.selections[0].allocatedQty"
|
||||||
|
v-on:click="replaceInv()"
|
||||||
|
>
|
||||||
|
替换分配库存
|
||||||
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
|
|
@ -262,11 +278,12 @@ import rrOperation from '@crud/RR.operation'
|
||||||
import crudOperation from '@crud/CRUD.operation'
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
import udOperation from '@crud/UD.operation'
|
import udOperation from '@crud/UD.operation'
|
||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
|
import {queryPickTask} from "@/api/task";
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
id: null,
|
id: null,
|
||||||
billCode: null,
|
billCode: null,
|
||||||
itemKey: null,
|
itemKey: { item: { id:null } },
|
||||||
point: null,
|
point: null,
|
||||||
stock: null,
|
stock: null,
|
||||||
bigStockId: null,
|
bigStockId: null,
|
||||||
|
|
@ -311,6 +328,8 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
// 替换分配库存
|
||||||
|
ButReplaceInvFlag: false,
|
||||||
points: [],
|
points: [],
|
||||||
stocks: [],
|
stocks: [],
|
||||||
items: [],
|
items: [],
|
||||||
|
|
@ -386,6 +405,17 @@ export default {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 替换分配库存
|
||||||
|
replaceInv:function () {
|
||||||
|
this.$emit('replaceTaskInv',this.crud.selections[0].id)
|
||||||
|
},
|
||||||
|
// 替换分配库存,加载页面
|
||||||
|
queryInventory(itemId) {
|
||||||
|
this.ButReplaceInvFlag=true;
|
||||||
|
this.query.queuedQty=0;
|
||||||
|
this.query.itemId=itemId;
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
deleteDataM(id) { // 删除数据的方法
|
deleteDataM(id) { // 删除数据的方法
|
||||||
const ids = []
|
const ids = []
|
||||||
ids.push(id)
|
ids.push(id)
|
||||||
|
|
|
||||||
|
|
@ -56,21 +56,14 @@
|
||||||
height="70vh"
|
height="70vh"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55"/>
|
<el-table-column type="selection" width="55"/>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
<el-table-column prop="itemCode" label="物料编码"/>
|
||||||
<template slot-scope="scope">
|
<el-table-column prop="itemName" label="物料名称"/>
|
||||||
<div>{{ scope.row.itemKey.item.code }}</div>
|
<el-table-column prop="propC1" label="批次号"/>
|
||||||
</template>
|
<el-table-column prop="propC2" label="字符"/>
|
||||||
</el-table-column>
|
<el-table-column prop="propC3" label="系统单号"/>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="itemName" label="物料名称">
|
<el-table-column prop="propC4" label="厂家供货码"/>
|
||||||
<template slot-scope="scope">
|
<el-table-column prop="propC5" label="供货数量"/>
|
||||||
<div>{{ scope.row.itemKey.item.name }}</div>
|
<el-table-column prop="propC6" label="流水号"/>
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="propC1" label="批次号">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<div>{{ scope.row.itemKey.propC1 }}</div>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="logType" label="操作类型">
|
<el-table-column prop="logType" label="操作类型">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ dict.label.inv_log_type[scope.row.logType] }}
|
{{ dict.label.inv_log_type[scope.row.logType] }}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,17 @@
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<!-- 查询操作-->
|
<!-- 查询操作-->
|
||||||
<el-form ref="form" :inline="true" :model="form" label-width="70px">
|
<el-form ref="form" :inline="true" :model="form" label-width="70px">
|
||||||
|
<el-form-item label="所属订单" prop="relatedBill1">
|
||||||
|
<el-select v-model="form.pick.relatedBill1" value-key="id" filterable placeholder="请所属订单"
|
||||||
|
style="width: 200px;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in pickList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.relatedBill1"
|
||||||
|
:value="item.relatedBill1"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="物料编码">
|
<el-form-item label="物料编码">
|
||||||
<!-- <el-input v-model="query.itemCode" clearable placeholder="请输入物料编码" style="width: 140px;"-->
|
<!-- <el-input v-model="query.itemCode" clearable placeholder="请输入物料编码" style="width: 140px;"-->
|
||||||
<!-- class="filter-item"-->
|
<!-- class="filter-item"-->
|
||||||
|
|
@ -94,7 +105,7 @@
|
||||||
slot="right"
|
slot="right"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
type="danger"
|
type="danger"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-document-add"
|
||||||
size="mini"
|
size="mini"
|
||||||
:loading="crud.delAllLoading"
|
:loading="crud.delAllLoading"
|
||||||
:disabled="crud.selections.length !== 1 || this.crud.selections[0].allocatedQty<=this.crud.selections[0].pickedQty"
|
:disabled="crud.selections.length !== 1 || this.crud.selections[0].allocatedQty<=this.crud.selections[0].pickedQty"
|
||||||
|
|
@ -193,6 +204,17 @@
|
||||||
width="580px"
|
width="580px"
|
||||||
>
|
>
|
||||||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px">
|
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="120px">
|
||||||
|
<el-form-item label="所属订单" prop="pick">
|
||||||
|
<el-select v-model="form.pick" value-key="id" filterable placeholder="请所属订单"
|
||||||
|
style="width: 200px;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in pickList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.relatedBill1"
|
||||||
|
:value="item"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="物料" prop="item">
|
<el-form-item label="物料" prop="item">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.item"
|
v-model="form.item"
|
||||||
|
|
@ -262,6 +284,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import crudPickDetail from '@/api/pickDetail'
|
import crudPickDetail from '@/api/pickDetail'
|
||||||
|
import crudPick, { getPickList } from '@/api/pick'
|
||||||
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 rrOperation from '@crud/RR.operation'
|
||||||
import crudOperation from '@crud/CRUD.operation'
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
|
@ -271,10 +294,11 @@ import { getItems, getItemsList } from '@/api/item'
|
||||||
import PickTask from '@/views/business-data/pickDetail/pickTicketTask.vue'
|
import PickTask from '@/views/business-data/pickDetail/pickTicketTask.vue'
|
||||||
import DateRangePicker from '@/components/DateRangePicker/index.vue'
|
import DateRangePicker from '@/components/DateRangePicker/index.vue'
|
||||||
import DonMessage from "@/utils/message";
|
import DonMessage from "@/utils/message";
|
||||||
|
import {getAsnList} from "@/api/asn";
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
id: null,
|
id: null,
|
||||||
pick: null,
|
pick: { relatedBill1: null },
|
||||||
item: null,
|
item: null,
|
||||||
lineNo: null,
|
lineNo: null,
|
||||||
po: null,
|
po: null,
|
||||||
|
|
@ -327,6 +351,7 @@ export default {
|
||||||
return {
|
return {
|
||||||
show_jh: true,
|
show_jh: true,
|
||||||
show_cancelfp: true,
|
show_cancelfp: true,
|
||||||
|
pickList: [],
|
||||||
radio3: '全部',
|
radio3: '全部',
|
||||||
items: [],
|
items: [],
|
||||||
permission: {
|
permission: {
|
||||||
|
|
@ -338,6 +363,9 @@ export default {
|
||||||
rules: {
|
rules: {
|
||||||
item: [
|
item: [
|
||||||
{ required: true, message: '物料必填', trigger: 'blur' }
|
{ required: true, message: '物料必填', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
pick: [
|
||||||
|
{ required: true, message: '所属出库单必填', trigger: 'blur' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
queryTypeOptions: [
|
queryTypeOptions: [
|
||||||
|
|
@ -349,16 +377,28 @@ export default {
|
||||||
itemListData: []
|
itemListData: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
pick: { relatedBill1: null },
|
||||||
mounted() {
|
mounted() {
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
this.getItem()
|
this.getItem()
|
||||||
this.itemDataGet()
|
this.itemDataGet()
|
||||||
|
this.getPicks()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
|
getPicks() {
|
||||||
|
crudPick.getPickList({}).then(res => {
|
||||||
|
this.pickList = res.map(function (obj) {
|
||||||
|
if (obj.hasChildren) {
|
||||||
|
obj.children = null
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
getItem() {
|
getItem() {
|
||||||
getItems({}).then(res => {
|
getItems({}).then(res => {
|
||||||
this.items = res.content.map(function(obj) {
|
this.items = res.content.map(function(obj) {
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
|
<date-range-picker v-model="query.createTime" class="date-item" style="width: 100px" />
|
||||||
<label class="el-form-item-label">原点位</label>
|
|
||||||
<el-input v-model="query.srcPointCode" clearable placeholder="原点位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
<el-input v-model="query.srcPointCode" clearable placeholder="原点位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||||
<label class="el-form-item-label">目标点位</label>
|
|
||||||
<el-input v-model="query.dstPointCode" clearable placeholder="目标点位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
<el-input v-model="query.dstPointCode" clearable placeholder="目标点位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
|
||||||
<rrOperation :crud="crud" />
|
<rrOperation :crud="crud" />
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
|
@ -51,12 +49,33 @@
|
||||||
>
|
>
|
||||||
人工出库
|
人工出库
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="danger"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-document-add"
|
||||||
|
v-show="true"
|
||||||
|
@click="FromInventoryFlag=true"
|
||||||
|
>
|
||||||
|
替换分配库存
|
||||||
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog title="人工出库" :visible.sync="ManualPTFlag" width="600px">
|
<el-dialog title="人工出库" :visible.sync="ManualPTFlag" width="600px">
|
||||||
<el-form ref="fromBack" :inline="true" :model="fromManualPT" :rules="rules" size="mini" label-width="120px">
|
<el-form ref="fromBack" :inline="true" :model="fromManualPT" :rules="rules" size="mini" label-width="120px">
|
||||||
<el-form-item label="RFID" prop="RFID">
|
<el-form-item label="RFID" prop="RFID">
|
||||||
<el-input v-model="fromManualPT.RFID" :rows="3" type="textarea" style="width: 350px;" @change="devan_rfid()"/>
|
<el-input v-model="fromManualPT.RFID" :rows="3" type="textarea" style="width: 350px;" @change="devan_rfid('R')"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="明细行号" prop="pdId">
|
||||||
|
<el-select v-model="fromManualPT.pdId" @change="devan_rfid('L')" value-key="id" :disabled="false" filterable placeholder="请选择" style="width: 350px;">
|
||||||
|
<el-option
|
||||||
|
v-for="item in pickDetailList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.lineNo+','+item.pick.relatedBill1+','+item.item.code+','+(item.allocatedQty-item.pickedQty)"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记单号" prop="relatedBill2">
|
<el-form-item label="登记单号" prop="relatedBill2">
|
||||||
<el-input v-model="fromManualPT.relatedBill2" :disabled="true" style="width: 100px;"/>
|
<el-input v-model="fromManualPT.relatedBill2" :disabled="true" style="width: 100px;"/>
|
||||||
|
|
@ -67,9 +86,9 @@
|
||||||
<el-form-item label="sku" prop="sku">
|
<el-form-item label="sku" prop="sku">
|
||||||
<el-input v-model="fromManualPT.sku" :disabled="true" style="width: 330px;"/>
|
<el-input v-model="fromManualPT.sku" :disabled="true" style="width: 330px;"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="行号" prop="lineNo">
|
<!-- <el-form-item label="行号" prop="lineNo">
|
||||||
<el-input v-model="fromManualPT.lineNo" :disabled="true" style="width: 100px;"/>
|
<el-input v-model="fromManualPT.lineNo" :disabled="false" style="width: 100px;"/>
|
||||||
</el-form-item>
|
</el-form-item>-->
|
||||||
<el-form-item label="订单数量" prop="orderQty">
|
<el-form-item label="订单数量" prop="orderQty">
|
||||||
<el-input v-model="fromManualPT.orderQty" :disabled="true" style="width: 100px;"/>
|
<el-input v-model="fromManualPT.orderQty" :disabled="true" style="width: 100px;"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -78,7 +97,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="ManualPTFlag = false">取 消</el-button>
|
<el-button @click="fromManualPT={ };ManualPTFlag = false ">取 消</el-button>
|
||||||
<el-button type="primary" @click="picking()">确 定</el-button>
|
<el-button type="primary" @click="picking()">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
@ -115,6 +134,19 @@
|
||||||
<el-table-column prop="createBy" label="创建人" />
|
<el-table-column prop="createBy" label="创建人" />
|
||||||
<el-table-column prop="createTime" label="创建时间" />
|
<el-table-column prop="createTime" label="创建时间" />
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<!-- <el-dialog title="修改分配库存" :visible.sync="FromInventoryFlag">
|
||||||
|
<Inventory ref="inventory" />
|
||||||
|
</el-dialog>-->
|
||||||
|
<el-drawer
|
||||||
|
ref="drawer"
|
||||||
|
title="可分配库存"
|
||||||
|
style="height: 250%"
|
||||||
|
@opened="queryInventoryFrom(crud.selections[0].itemKey.item.id)"
|
||||||
|
:visible.sync="FromInventoryFlag"
|
||||||
|
:direction="direction"
|
||||||
|
:before-close="handleClose">
|
||||||
|
<Inventory ref="inventory" v-on:replaceTaskInv="replaceTaskInv"/>
|
||||||
|
</el-drawer>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<div style="float: right;">
|
<div style="float: right;">
|
||||||
<pagination/>
|
<pagination/>
|
||||||
|
|
@ -124,7 +156,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import crudTask, {devanRfid} from '@/api/task'
|
import crudTask, {devanRfid,replaceInv} from '@/api/task'
|
||||||
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 rrOperation from '@crud/RR.operation'
|
||||||
import crudOperation from '@crud/CRUD.operation'
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
|
@ -132,12 +164,14 @@ import udOperation from '@crud/UD.operation'
|
||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
||||||
import {getItemsList} from "@/api/item";
|
import {getItemsList} from "@/api/item";
|
||||||
import crudPickDetail, { picking } from "@/api/pickDetail";
|
import crudPickDetail, { picking,getPickDetail } from "@/api/pickDetail";
|
||||||
|
import {getStockTypes} from "@/api/stockType";
|
||||||
|
import Inventory from "@/views/business-data/inventory/index.vue";
|
||||||
|
|
||||||
const defaultForm = { id: null, itemId: null, itemKeyId: null, billCode: null, taskType: null, asnDetailId: null, moveDetailId: null, waveDetailId: null, pickDetailId: null, srcStockId: null, dstStockId: null, srcPointId: null, dstPointId: null, srcStockCode: null, dstStockCode: null, srcPointCode: null, dstPointCode: null, invStatus: null, taskStatus: null, beSkip: null, beBack: null, planQty: null, moveQty: null, putCode: null, invId: null, deptId: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
const defaultForm = { id: null, itemId: null, itemKeyId: null, billCode: null, taskType: null, asnDetailId: null, moveDetailId: null, waveDetailId: null, pickDetailId: null, srcStockId: null, dstStockId: null, srcPointId: null, dstPointId: null, srcStockCode: null, dstStockCode: null, srcPointCode: null, dstPointCode: null, invStatus: null, taskStatus: null, beSkip: null, beBack: null, planQty: null, moveQty: null, putCode: null, invId: null, deptId: null, createBy: null, updateBy: null, createTime: null, updateTime: null }
|
||||||
export default {
|
export default {
|
||||||
name: 'Task',
|
name: 'Task',
|
||||||
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
components: {Inventory, DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
|
||||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
dicts: ['pick_status'],
|
dicts: ['pick_status'],
|
||||||
cruds() {
|
cruds() {
|
||||||
|
|
@ -155,6 +189,10 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
// 修改分配库存
|
||||||
|
direction: 'ttb',
|
||||||
|
FromInventoryFlag: false,
|
||||||
|
pickDetailList: [],
|
||||||
ManualPTFlag: false,
|
ManualPTFlag: false,
|
||||||
permission: {
|
permission: {
|
||||||
add: ['admin', 'task:add'],
|
add: ['admin', 'task:add'],
|
||||||
|
|
@ -163,6 +201,15 @@ export default {
|
||||||
},
|
},
|
||||||
tableKey: 'api/task',
|
tableKey: 'api/task',
|
||||||
rules: {
|
rules: {
|
||||||
|
RFID: [
|
||||||
|
{required: true, message: '必填', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
relatedBill1: [
|
||||||
|
{required: true, message: '必填', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
pdId: [
|
||||||
|
{required: true, message: '必填', trigger: 'blur'}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
fromManualPT: {
|
fromManualPT: {
|
||||||
|
|
||||||
|
|
@ -180,6 +227,7 @@ export default {
|
||||||
mounted() {
|
mounted() {
|
||||||
//初始化数据
|
//初始化数据
|
||||||
this.itemDataGet();
|
this.itemDataGet();
|
||||||
|
this.getPickDetail();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
|
|
@ -189,18 +237,51 @@ export default {
|
||||||
indexMethod(index) {
|
indexMethod(index) {
|
||||||
return index * 1+1;
|
return index * 1+1;
|
||||||
},
|
},
|
||||||
|
queryInventoryFrom(itemId){
|
||||||
|
this.$refs.inventory.queryInventory(itemId)
|
||||||
|
},
|
||||||
|
handleClose(done) {
|
||||||
|
this.$confirm('确认关闭?')
|
||||||
|
.then(_ => {
|
||||||
|
done();
|
||||||
|
})
|
||||||
|
.catch(_ => {});
|
||||||
|
},
|
||||||
manualPT(){
|
manualPT(){
|
||||||
/*crudTask.manualReceiving(this.fromManualPT).then(res => {
|
/*crudTask.manualReceiving(this.fromManualPT).then(res => {
|
||||||
this.crud.notify(res.message, res.status)
|
this.crud.notify(res.message, res.status)
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
})*/
|
})*/
|
||||||
},
|
},
|
||||||
devan_rfid() {
|
//替换分配库存
|
||||||
console.log("解析RFID码")
|
replaceTaskInv(invId){
|
||||||
devanRfid(this.fromManualPT.RFID,'PICK').then(res => {
|
this.$confirm(`确认替换?`, '提示', {
|
||||||
if (res.status === 200) {
|
confirmButtonText: '确定',
|
||||||
this.fromManualPT = res.data
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
crudTask.replaceInv(this.crud.selections[0].id,invId).then(res => {
|
||||||
|
this.crud.notify(res.message, res.status)
|
||||||
|
if (res.status==200) {
|
||||||
|
this.FromInventoryFlag = false
|
||||||
|
this.crud.toQuery()
|
||||||
}
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.$parent.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
devan_rfid(type) {
|
||||||
|
// 人工出库-解析RFID关联的已分配库存信息
|
||||||
|
devanRfid(this.fromManualPT.RFID,'PICK').then(res => {
|
||||||
|
if (res.status == 200||res.status == 201) {
|
||||||
|
this.fromManualPT = res.data
|
||||||
|
}else {
|
||||||
|
this.fromManualPT = { }
|
||||||
|
}
|
||||||
|
this.crud.notify(res.message, res.status)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//出库-人工拣货-确认
|
//出库-人工拣货-确认
|
||||||
|
|
@ -210,10 +291,9 @@ export default {
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
const ids = []
|
crudTask.picking(this.fromManualPT).then(res => {
|
||||||
ids.push(this.fromManualPT.taskId)
|
this.crud.notify(res.message, res.status)
|
||||||
crudPickDetail.picking(ids).then(res => {
|
this.fromManualPT= { };
|
||||||
this.$parent.crud.notify(res.message, res.status)
|
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|
||||||
|
|
@ -223,6 +303,16 @@ export default {
|
||||||
this.$parent.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
this.$parent.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
getPickDetail() {
|
||||||
|
getPickDetail({ }).then(res => {
|
||||||
|
this.pickDetailList= res.map(function(obj) {
|
||||||
|
if (obj.hasChildren) {
|
||||||
|
obj.children = null
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
//物料数据
|
//物料数据
|
||||||
itemDataGet() {
|
itemDataGet() {
|
||||||
getItemsList().then(res => {
|
getItemsList().then(res => {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-lollipop"
|
icon="el-icon-lollipop"
|
||||||
@click="picking()"
|
@click="picking()"
|
||||||
>人工拣货
|
>单品拣货
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -107,10 +107,9 @@ export default {
|
||||||
queryPickTask(id) {
|
queryPickTask(id) {
|
||||||
queryPickTask(id).then(res => {
|
queryPickTask(id).then(res => {
|
||||||
this.data = res;
|
this.data = res;
|
||||||
|
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.pickDetailId = id;
|
this.pickDetailId = id;
|
||||||
return true;
|
return true
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
selectionChangeHandlerTwos(val) {
|
selectionChangeHandlerTwos(val) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue