出库管理界面调整

main
HUOJIN\92525 2024-06-24 15:58:14 +08:00
parent 797d4dd9e8
commit d1c30d3171
6 changed files with 313 additions and 118 deletions

View File

@ -24,11 +24,12 @@ export function edit(data) {
})
}
export function getAllBigItem() {
export function queryAllBigItem(params) {
return request({
url: 'api/bigItem/All',
method: 'get'
url: 'api/bigItem/queryAllBigItem',
method: 'get',
params
})
}
export default { add, edit, del }
export default {add, edit, del, queryAllBigItem}

View File

@ -24,4 +24,12 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function queryAllGd(params) {
return request({
url: 'api/gd/queryAllGd',
method: 'get',
params
})
}
export default {add, edit, del,queryAllGd}

View File

@ -94,6 +94,11 @@
</el-select>
</el-form-item>
<el-form-item label="包装数量" prop="extendD1">
<el-input oninput="value=value.replace(/^0|[^0-9]/g,'')" v-model.number="form.extendD1" min="1"
style="width: 180px;"/>
</el-form-item>
<!-- <el-form-item label="单位" prop="unit">
<el-select v-model="form.unit" filterable placeholder="请选择" style="width: 180px;"
:default-first-option="true">
@ -123,9 +128,9 @@
height="68vh"
@selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55"/>
<el-table-column prop="xh" label="序号" type="index" width="50"/>
<el-table-column prop="code" label="编码" width="150"/>
<el-table-column prop="name" label="名称" width="150"/>
<el-table-column prop="extendD1" label="包装数量" width="150"/>
<el-table-column prop="extendD2" label="整托高度" width="150">
<template slot-scope="scope">
{{ dict.label.item_height[scope.row.extendD2] }}
@ -180,7 +185,7 @@ import pagination from '@crud/Pagination'
import DonMessage from "@/utils/message";
import {getToken} from "@/utils/auth";
const defaultForm = {id: null}
const defaultForm = {id: null,extendD1: 1}
export default {
name: 'Item',
components: {pagination, crudOperation, rrOperation, udOperation},
@ -213,11 +218,12 @@ export default {
name: [
{required: true, message: '名称不能为空', trigger: 'blur'}
],
unit: [
{required: true, message: '单位不能为空', trigger: 'blur'}
],
goodType: [
{required: true, message: '类型不能为空', trigger: 'blur'}
],
extendD1: [
{required: true, message: '包装数量不能为空', trigger: 'blur'},
{type: 'number', message: '包装数量必须为数字'}
]
},
queryTypeOptions: [

View File

@ -5,36 +5,51 @@
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">工单编号</label>
<el-input v-model="query.code" clearable placeholder="工单编号" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.code" 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.name" clearable placeholder="任务编号" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.name" 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.status" 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.station" clearable placeholder="需求工位" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation :crud="crud" />
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/>
<!--表单组件-->
<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="工单编号">
<el-input v-model="form.code" style="width: 370px;" />
</el-form-item>
<el-form-item label="任务编号">
<el-input v-model="form.name" style="width: 370px;" />
</el-form-item>
<el-form-item label="工单状态">
<el-select v-model="form.status" filterable placeholder="请选择">
<el-select v-model="query.status" filterable placeholder="请选择" class="filter-item" style="width: 185px;">
<el-option
v-for="item in dict.gd_status"
:key="item.id"
:label="item.label"
:value="item.value"/>
</el-select>
<label class="el-form-item-label">需求工位</label>
<el-input v-model="query.station" clearable placeholder="需求工位" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<rrOperation :crud="crud"/>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/>
<!--表单组件-->
<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="任务编码" prop="name">
<el-input v-model="form.name" style="width: 370px;"/>
</el-form-item>
<el-form-item label="需求工位">
<el-form-item label="工单编码" prop="code">
<el-input v-model="form.code" style="width: 370px;"/>
</el-form-item>
<el-form-item label="工单状态" prop="status">
<el-select v-model="form.status" filterable placeholder="请选择" style="width: 370px;">
<el-option
v-for="item in dict.gd_status"
v-if="item.value==='OPEN'"
:key="item.id"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="需求工位" prop="station">
<el-input v-model="form.station" style="width: 370px;"/>
</el-form-item>
</el-form>
@ -44,26 +59,26 @@
</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 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="id" label="ID" />
<el-table-column prop="createBy" label="创建人" />
<el-table-column prop="updateBy" label="修改人" />
<el-table-column prop="createTime" label="创建时间" />
<el-table-column prop="updateTime" label="修改时间" />
<el-table-column prop="code" label="工单编号" />
<el-table-column prop="name" label="任务编号" />
<el-table-column prop="xh" label="序号" type="index" width="50"/>
<el-table-column prop="name" label="任务编码"/>
<el-table-column prop="code" label="工单编码"/>
<el-table-column prop="status" label="工单状态">
<template slot-scope="scope">
{{ dict.label.gd_status[scope.row.status] }}
</template>
</el-table-column>
<el-table-column prop="station" label="需求工位"/>
<el-table-column v-if="checkPer(['admin','gd:edit','gd:del'])" label="操作" width="150px" align="center">
<el-table-column prop="createTime" label="创建时间"/>
<el-table-column v-if="checkPer(['admin','gd:edit','gd:del'])" label="操作" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
:showDle="false"
/>
</template>
</el-table-column>
@ -82,14 +97,38 @@ import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = { id: null, createBy: null, updateBy: null, createTime: null, updateTime: null, code: null, name: null, status: null, station: null }
const defaultForm = {
id: null,
createBy: null,
updateBy: null,
createTime: null,
updateTime: null,
code: null,
name: null,
status: null,
station: null
}
export default {
name: 'Gd',
components: {pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['gd_status'],
cruds() {
return CRUD({ title: 'gd', url: 'api/gd', idField: 'id', sort: 'id,desc', crudMethod: { ...crudGd }})
return CRUD({
title: '备料工单',
url: 'api/gd',
idField: 'id',
sort: 'id,desc',
crudMethod: {...crudGd},
optShow: {
add: true,
edit: false,
del: false,
reset: true,
download: true
}
})
},
data() {
return {
@ -99,6 +138,18 @@ export default {
del: ['admin', 'gd:del']
},
rules: {
name: [
{required: true, message: '任务编号不能为空', trigger: 'blur'}
],
code: [
{required: true, message: '工单编号不能为空', trigger: 'blur'}
],
status: [
{required: true, message: '工单状态不能为空', trigger: 'blur'}
],
station: [
{required: true, message: '需求工位不能为空', trigger: 'blur'}
]
},
queryTypeOptions: [
{key: 'code', display_name: '工单编号'},

View File

@ -4,33 +4,91 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">关联物料</label>
<el-input v-model="query.itemId" 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.itemCode" 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.bigItemCode" clearable placeholder="成品物料" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<label class="el-form-item-label">单据类型</label>
<el-select v-model="query.orderType" filterable clearable placeholder="请选择" style="width: 185px;"
class="filter-item">
<el-option
v-for="item in dict.gd_type"
:key="item.id"
:label="item.value"
:value="item.value"/>
</el-select>
<rrOperation :crud="crud"/>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/>
<!--表单组件-->
<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="行号">
<el-input v-model="form.lineNo" style="width: 370px;" />
<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="120px">
<el-form-item label="工单编码" prop="gd">
<el-select v-model="form.gd" @focus="getGd()" filterable clearable placeholder="请选择"
style="width: 300px;"
class="filter-item">
<el-option
v-for="gd in gds"
:key="gd.id"
:label="gd.code"
:value="gd"/>
</el-select>
</el-form-item>
<el-form-item label="关联物料">
未设置字典请手动设置 Select
<el-form-item label="单品物料" prop="item">
<el-select v-model="form.item" @focus="getItem()" filterable clearable placeholder="请选择"
style="width: 300px;"
class="filter-item">
<el-option
v-for="item in items"
:key="item.id"
:label="item.code"
:value="item"/>
</el-select>
</el-form-item>
<el-form-item label="订单数量">
<el-input v-model="form.itemQty" style="width: 370px;" />
<el-form-item label="单品需求数量" prop="itemQty">
<el-input class="filter-item" v-model.number="form.itemQty" style="width: 300px;"
oninput="value=value.replace(/^0|[^0-9]/g,'')"
min="1"/>
</el-form-item>
<el-form-item label="总成代码">
<el-input v-model="form.bigItemId" style="width: 370px;" />
<el-form-item label="成品物料">
<el-select v-model="form.bigItem" @focus="getbigItem()" filterable clearable placeholder="请选择"
style="width: 300px;"
class="filter-item">
<el-option
v-for="bigItem in bigItems"
:key="bigItem.id"
:label="bigItem.code"
:value="bigItem"/>
</el-select>
</el-form-item>
<el-form-item label="总成套数">
<el-input v-model="form.bigItemQty" style="width: 370px;" />
<el-form-item label="总成需求套数">
<el-input class="filter-item" v-model="form.bigItemQty" style="width: 300px;"
oninput="value=value.replace(/^0|[^0-9]/g,'')"
min="1"/>
</el-form-item>
<el-form-item label="单据类型">
<el-input v-model="form.orderType" style="width: 370px;" />
<el-form-item label="单据类型" prop="orderType">
<el-select v-model="form.orderType" filterable clearable placeholder="请选择" style="width: 300px;"
class="filter-item">
<el-option
v-for="item in dict.gd_type"
:key="item.id"
:label="item.value"
:value="item.value"/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU"></el-button>
@ -38,26 +96,24 @@
</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 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="id" label="ID" />
<el-table-column prop="createBy" label="创建人" />
<el-table-column prop="updateBy" label="修改人" />
<el-table-column prop="createTime" label="创建时间" />
<el-table-column prop="updateTime" label="修改时间" />
<el-table-column prop="gd.name" label="任务编号" />
<el-table-column prop="lineNo" label="行号" />
<el-table-column prop="item.code" label="关联物料" />
<el-table-column prop="itemQty" label="单品数量" />
<el-table-column prop="orderQty" label="未拆分数量" />
<el-table-column prop="bigItem.code" label="总成代码" />
<el-table-column prop="bigItemQty" label="总成套数" />
<el-table-column prop="xh" label="序号" type="index" width="50"/>
<el-table-column prop="gd.code" label="工单编码"/>
<el-table-column prop="item.code" label="单品物料"/>
<el-table-column prop="itemQty" label="单品需求数量"/>
<el-table-column prop="bigItem.code" label="成品物料"/>
<el-table-column prop="bigItemQty" label="成品需求套数"/>
<el-table-column prop="orderType" label="单据类型"/>
<el-table-column v-if="checkPer(['admin','gdDetail:edit','gdDetail:del'])" :show-overflow-tooltip="false" fixed="right" label="操作" width="150px" align="center">
<el-table-column prop="createTime" label="创建时间"/>
<el-table-column v-if="checkPer(['admin','gdDetail:edit','gdDetail:del'])" :show-overflow-tooltip="false"
fixed="right" label="操作" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
:showDle="false"
/>
</template>
</el-table-column>
@ -75,33 +131,95 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import {getItemsList} from "@/api/item";
import {queryAllBigItem} from "@/api/bigItem"
import {queryAllGd} from "@/api/gd"
const defaultForm = { id: null, createBy: null, updateBy: null, createTime: null, updateTime: null, lineNo: null, item: null, itemQty: null, bigItem: null, bigItemQty: null, orderType: null, gd: null }
const defaultForm = {
id: null,
createBy: null,
updateBy: null,
createTime: null,
updateTime: null,
lineNo: null,
item: null,
itemQty: null,
bigItem: null,
bigItemQty: null,
orderType: null,
gd: null
}
export default {
name: 'GdDetail',
components: {pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['gd_type'],
cruds() {
return CRUD({ title: 'gdDetail', url: 'api/gdDetail', idField: 'id', sort: 'id,desc', crudMethod: { ...crudGdDetail }})
return CRUD({
title: '备料工单明细',
url: 'api/gdDetail',
idField: 'id',
sort: 'id,desc',
crudMethod: {...crudGdDetail},
optShow: {
add: true,
edit: false,
del: false,
reset: true,
download: true
}
})
},
data() {
return {
items: [],
bigItems: [],
gds: [],
permission: {
add: ['admin', 'gdDetail:add'],
edit: ['admin', 'gdDetail:edit'],
del: ['admin', 'gdDetail:del']
},
rules: {
},
queryTypeOptions: [
{ key: 'itemId', display_name: '关联物料' }
gd: [
{required: true, message: '请选择工单编码', trigger: 'blur'}
],
item: [
{required: true, message: '请选择单品物料', trigger: 'blur'}
],
itemQty: [
{required: true, message: '请输入单品需求数量', trigger: 'blur'},
],
orderType: [
{required: true, message: '请选择单据类型', trigger: 'blur'}
]
},
}
},
created() {
this.getItem();//
this.getbigItem();//
this.getGd();//
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
},
getItem() {
getItemsList({enabled: true}).then(res => {
this.items = res
})
},
getbigItem() {
queryAllBigItem({}).then(res => {
this.bigItems = res
})
},
getGd() {
queryAllGd({status: 'OPEN'}).then(res => {
this.gds = res
})
}
}
}

View File

@ -5,15 +5,18 @@
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">出库单头</label>
<el-input v-model="query.code" clearable placeholder="出库单头" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.code" 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.gdDetaiId" clearable placeholder="工单明细" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.gdDetaiId" clearable placeholder="工单明细" style="width: 185px;" class="filter-item"
@keyup.enter.native="crud.toQuery"/>
<rrOperation :crud="crud"/>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
<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.id" style="width: 370px;"/>
@ -43,20 +46,18 @@
</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 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="id" label="ID" />
<el-table-column prop="createTime" label="创建时间" />
<el-table-column prop="updateTime" label="修改时间" />
<el-table-column prop="code" label="出库单头" />
<el-table-column prop="lineNo" label="序号"/>
<el-table-column prop="code" 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="point.code" label="封包点位"/>
<el-table-column prop="gdDetail.id" label="关联工单明细" />
<el-table-column prop="createTime" label="创建时间"/>
<el-table-column v-if="checkPer(['admin','pick:edit','pick:del'])" label="操作" width="150px" align="center">
<template slot-scope="scope">
<udOperation
@ -80,7 +81,18 @@ import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = { id: null, createBy: null, updateBy: null, createTime: null, updateTime: null, deptId: null, code: null, lineNo: null, status: null, gdDetail: null }
const defaultForm = {
id: null,
createBy: null,
updateBy: null,
createTime: null,
updateTime: null,
deptId: null,
code: null,
lineNo: null,
status: null,
beCall: null
}
export default {
name: 'Pick',
dicts: ['pick_status'],
@ -96,8 +108,7 @@ export default {
edit: ['admin', 'pick:edit'],
del: ['admin', 'pick:del']
},
rules: {
},
rules: {},
queryTypeOptions: [
{key: 'code', display_name: '出库单头'},
{key: 'gdDetaiId', display_name: '关联工单明细'}