新建出库单,优化人工入库
parent
a92f617ce0
commit
f56d162af3
|
|
@ -0,0 +1,27 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/pick',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/pick/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/pick',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del }
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
export function getPoints(params) {
|
||||
export function getPoints() {
|
||||
return request({
|
||||
url: 'api/point',
|
||||
method: 'get',
|
||||
params
|
||||
url: 'api/point/getPointList',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
export function add(data) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,13 @@ export function edit(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
export function manualReceiving(data) {
|
||||
return request({
|
||||
url: 'api/task/manualReceiving',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function queryPickTask(id) {
|
||||
return request({
|
||||
|
|
@ -36,4 +43,4 @@ export function queryPickTask(id) {
|
|||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del ,getTaskInfo,queryPickTask}
|
||||
export default { add, edit, del ,getTaskInfo,queryPickTask,manualReceiving}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@
|
|||
</el-form-item>
|
||||
|
||||
<el-form-item label="点位" prop="point">
|
||||
<el-select v-model="form.point" @focus="getPoint" filterable placeholder="请选点位" value-key="id"
|
||||
<el-select v-model="form.point" filterable placeholder="请选点位" value-key="id"
|
||||
style="width: 370px;">
|
||||
<el-option
|
||||
v-for="point in points"
|
||||
|
|
@ -319,7 +319,6 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
//编辑下拉出现内容
|
||||
this.getPoint();
|
||||
this.getItem();
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -332,18 +331,6 @@ export default {
|
|||
this.items = res;
|
||||
})
|
||||
},
|
||||
getPoint() {
|
||||
queryPointList(this.params).then(res => {
|
||||
this.points =res;
|
||||
this.pointsInsert=res;
|
||||
})
|
||||
queryPointList({
|
||||
type: 'BOX',
|
||||
enabled:1
|
||||
}).then(res => {
|
||||
this.pointsUpdate=res;
|
||||
})
|
||||
},
|
||||
getArea() {
|
||||
queryAreaList({ }).then(res => {
|
||||
this.areas= res;
|
||||
|
|
|
|||
|
|
@ -46,18 +46,14 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据类型">
|
||||
<el-select
|
||||
v-model="form.billType"
|
||||
filterable
|
||||
placeholder="单据类型"
|
||||
style="width: 370px;"
|
||||
>
|
||||
<el-form-item label="单据类型" prop="billType">
|
||||
<el-select v-model="form.billType" value-key="id" filterable placeholder="请选择单据类型"
|
||||
style="width: 370px;">
|
||||
<el-option
|
||||
v-for="item in billTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
v-for="item in billTypeList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@
|
|||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="68vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;"
|
||||
@selection-change="this.selectionChangeHandler" @row-click="this.clickRow">
|
||||
@selection-change="this.selectionChangeHandler" @row-click="this.clickRow" border>
|
||||
<el-table-column prop="asn.relatedBill1" label="入库单号" width="100"/>
|
||||
<el-table-column prop="asn.status" label="入库单状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
|
|
|
|||
|
|
@ -44,19 +44,49 @@
|
|||
class="filter-item"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click=""
|
||||
icon="el-icon-document-add"
|
||||
v-if="false"
|
||||
v-show="true"
|
||||
@click="ManualReceivingFlag=true"
|
||||
>
|
||||
生成搬运任务
|
||||
人工入库
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
|
||||
<el-dialog title="人工入库" :visible.sync="ManualReceivingFlag" width="400px">
|
||||
<el-form ref="fromBack" :model="fromManualReceiving" :rules="rules" size="small" label-width="80px">
|
||||
<!-- <el-form-item label="容器类型" prop="storageType">
|
||||
<el-select v-model="fromBack.storageType" value-key="id" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in storageTypes"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="RFID" prop="RFID">
|
||||
<el-input v-model="fromManualReceiving.RFID" :rows="3" type="textarea" style="width: 270px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="目标库位" prop="RFID">
|
||||
<el-select v-model="fromManualReceiving.pointId" clearable value-key="id" filterable placeholder="请选择" style="width: 270px;">
|
||||
<el-option
|
||||
v-for="item in pointList"
|
||||
:key="item.id"
|
||||
:label="item.area.name+item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="ManualReceivingFlag = false">取 消</el-button>
|
||||
<el-button type="primary" @click="manualReceiving()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" height="66vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="xh" type="index" :index="indexMethod" label="序号"/>
|
||||
<el-table ref="table" border height="66vh" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<el-table-column prop="xh" type="index" :index="indexMethod" label="序号"/>
|
||||
<el-table-column :show-overflow-tooltip="true" prop="itemCode" label="物料编码">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.itemKey.item.code }}</div>
|
||||
|
|
@ -88,6 +118,7 @@
|
|||
<div v-if="scope.row.agvTask !=null">{{ scope.row.agvTask.id }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="beSkip" label="是否AGV任务" />
|
||||
<el-table-column prop="putCode" label="单品流水号" />
|
||||
<el-table-column prop="planQty" label="计划数量" />
|
||||
<el-table-column prop="moveQty" label="移位数量" />
|
||||
|
|
@ -110,6 +141,7 @@
|
|||
|
||||
<script>
|
||||
import crudTask from '@/api/task'
|
||||
import DonMessage from "@/utils/message";
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
|
|
@ -117,6 +149,8 @@ import udOperation from '@crud/UD.operation'
|
|||
import pagination from '@crud/Pagination'
|
||||
import DateRangePicker from "@/components/DateRangePicker/index.vue";
|
||||
import {getItemsList} from "@/api/item";
|
||||
import {getPoints} from "@/api/point";
|
||||
import {getStockTypes} from "@/api/stockType";
|
||||
|
||||
const defaultForm = { id: null, itemId: null,agvTask: null, itemKeyId: null, billCode: null, taskType: null, asnDetailId: null, moveDetailId: null, waveDetailId: null, pickDetailId: null, srcStockId: null, dstStockId: null, srcPoint: null, dstPoint: 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 {
|
||||
|
|
@ -145,12 +179,17 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
ManualReceivingFlag: false,
|
||||
permission: {
|
||||
add: ['admin', 'task:add'],
|
||||
edit: ['admin', 'task:edit'],
|
||||
del: ['admin', 'task:del']
|
||||
},
|
||||
rules: {},
|
||||
rules: {
|
||||
RFID: [
|
||||
{required: true, message: '必填', trigger: 'blur'}
|
||||
],
|
||||
},
|
||||
queryTypeOptions: [
|
||||
{key: 'itemCode', display_name: '物料代码'},
|
||||
{key: 'itemName', display_name: '物料名称'},
|
||||
|
|
@ -158,12 +197,16 @@ export default {
|
|||
{ key: 'srcPointCode', display_name: '源点位编码' },
|
||||
{ key: 'dstPointCode', display_name: '目标点位编码' }
|
||||
],
|
||||
itemListData: []
|
||||
itemListData: [],
|
||||
pointList: [],
|
||||
// 人工入库
|
||||
fromManualReceiving:{RFID:null,pointId:null}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// 初始化数据
|
||||
this.itemDataGet();
|
||||
this.getPoints();
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
|
|
@ -184,6 +227,27 @@ export default {
|
|||
type: 'error'
|
||||
});
|
||||
})
|
||||
},
|
||||
getPoints() {
|
||||
getPoints({ }).then(res => {
|
||||
this.pointList= res.map(function(obj) {
|
||||
if (obj.hasChildren) {
|
||||
obj.children = null
|
||||
}
|
||||
return obj
|
||||
})
|
||||
})
|
||||
},
|
||||
manualReceiving(){
|
||||
crudTask.manualReceiving(this.fromManualReceiving).then(res => {
|
||||
console.log('res:' + res.status)
|
||||
if (res.status === 200) {
|
||||
DonMessage.success(res.message)
|
||||
} else {
|
||||
DonMessage.error(res.message)
|
||||
}
|
||||
this.crud.toQuery()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -192,3 +256,4 @@ export default {
|
|||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
size="small"
|
||||
border
|
||||
style="width: 100%;"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
height="70vh"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,141 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<date-range-picker
|
||||
v-model="query.dispatchDate"
|
||||
start-placeholder="dispatchDateStart"
|
||||
end-placeholder="dispatchDateStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<date-range-picker
|
||||
v-model="query.erTime"
|
||||
start-placeholder="erTimeStart"
|
||||
end-placeholder="erTimeStart"
|
||||
class="date-item"
|
||||
/>
|
||||
<rrOperation :crud="crud" />
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||
<el-form-item label="单据类型ID">
|
||||
<el-input v-model="form.billTypeId" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单来源">
|
||||
<el-input v-model="form.orderOrigin" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级">
|
||||
<el-input v-model="form.priority" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="货主">
|
||||
<el-input v-model="form.owner" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="系统单号">
|
||||
<el-input v-model="form.relatedBill1" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="客户订单号">
|
||||
<el-input v-model="form.relatedBill2" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="来源名称">
|
||||
<el-input v-model="form.sourceName" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态">
|
||||
<el-select v-model="form.status" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.pick_status"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="发货时间">
|
||||
<el-date-picker v-model="form.dispatchDate" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作时间">
|
||||
<el-date-picker v-model="form.erTime" type="datetime" style="width: 370px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="billTypeId" label="单据类型ID" />
|
||||
<el-table-column prop="orderOrigin" label="订单来源" />
|
||||
<el-table-column prop="priority" label="优先级" />
|
||||
<el-table-column prop="owner" label="货主" />
|
||||
<el-table-column prop="relatedBill1" label="系统单号" />
|
||||
<el-table-column prop="relatedBill2" label="客户订单号" />
|
||||
<el-table-column prop="sourceName" label="来源名称" />
|
||||
<el-table-column prop="status" label="订单状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.pick_status[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="dispatchDate" label="发货时间" />
|
||||
<el-table-column prop="erTime" label="操作时间" />
|
||||
<el-table-column v-if="checkPer(['admin','pick:edit','pick:del'])" label="操作" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudPick from '@/api/pick'
|
||||
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'
|
||||
|
||||
const defaultForm = { id: null, deptId: null, billTypeId: null, orderOrigin: null, priority: null, owner: null, relatedBill1: null, relatedBill2: null, sourceName: null, status: null, address: null, dispatchDate: null, erTime: null, createBy: null, updateBy: null, createTime: null, updateTime: null, orderDate: null }
|
||||
export default {
|
||||
name: 'Pick',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['pick_status'],
|
||||
cruds() {
|
||||
return CRUD({ title: 'pick', url: 'api/pick', idField: 'id', sort: 'id,desc', crudMethod: { ...crudPick }})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
permission: {
|
||||
add: ['admin', 'pick:add'],
|
||||
edit: ['admin', 'pick:edit'],
|
||||
del: ['admin', 'pick:del']
|
||||
},
|
||||
rules: {
|
||||
},
|
||||
queryTypeOptions: [
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Loading…
Reference in New Issue