Commit 54baafef authored by 李苏's avatar 李苏 💬

Batch number lock

parent e7bc8c64
...@@ -732,7 +732,20 @@ export const powerRoutes = [ ...@@ -732,7 +732,20 @@ export const powerRoutes = [
}, },
name: 'kwtzdj', name: 'kwtzdj',
path: "kwtzdj", path: "kwtzdj",
} },
{
component: 'ccgl/kngl/phsd/index',
hidden: false,
meta: {
"title": "批号锁定",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920071300',
},
name: 'phsd',
path: "phsd",
}
] ]
......
...@@ -39,78 +39,71 @@ ...@@ -39,78 +39,71 @@
/* 基本配置*/ /* 基本配置*/
url: 'wms/ckgl/dbck/wms/ckgl/dbck', url: 'wms/ckgl/dbck/wms/ckgl/dbck',
queryUrl: 'wms/ckgl/dbck/wms/ckgl/dbck', queryUrl: 'wms/ckgl/dbck/wms/ckgl/dbck',
tableTitle: [{ tableTitle: [
title: "库位",
field: "kwcode",
width: 100,
},
{ {
title: "容器", title: "库位",
field: "rqCode", field: "kwName",
width: 160, width: 100,
},
}, {
{ title: "容器",
title: "唯一码", field: "rqCode",
field: "packid", width: 160,
width: 180,
},
}, {
{ title: "唯一码",
title: "物料编码", field: "packCode",
field: "wlxxCode", width: 180,
width: 140
}, },
{ {
title: "物料名称", title: "物料编码",
field: "wlxxName", field: "wlxxCode",
width: 160 width: 140
}, },
{ {
title: "规格", title: "物料名称",
field: "wlxxGg", field: "wlxxName",
width: 140 width: 160
}, },
{ {
title: "计量单位", title: "规格",
field: "jldwName", field: "wlxxGg",
width: 140 width: 140
}, },
{ {
title: "物料批号", title: "计量单位",
field: "wlph", field: "jldwName",
width: 140, width: 140
}, },
{ {
title: "库位名称", title: "物料批号",
field: "wlxxName", field: "wlph",
width: 120, width: 140,
}, },
{
{ title: "库位名称",
title: "制令号", field: "wlxxName",
field: "zlh", width: 120,
width: 180, },
},
{ {
title: "库存数量", title: "制令号",
field: "kcsl", field: "zlh",
width: 180, width: 180,
fieldType: 'float' },
}, {
{ title: "库存数量",
title: "货主", field: "kcsl",
field: "hzName", width: 120,
width: 180, fieldType: 'float'
}, },
{
title: "货主",
{ field: "hzName",
title: "库位", width: 180,
field: "kwName", },
width: 240,
},
], ],
queryParams: [], queryParams: [],
...@@ -140,4 +133,4 @@ ...@@ -140,4 +133,4 @@
</script> </script>
<style> <style>
</style> </style>
\ No newline at end of file
...@@ -225,7 +225,7 @@ ...@@ -225,7 +225,7 @@
}, },
{ {
title: "计量单位", title: "计量单位",
field: "jldwname", field: "jldwName",
width: 100, width: 100,
allowEdit: false allowEdit: false
}, },
...@@ -267,11 +267,10 @@ ...@@ -267,11 +267,10 @@
title: "容器", title: "容器",
field: "rqCode", field: "rqCode",
width: 160, width: 160,
}, },
{ {
title: "唯一码", title: "唯一码",
field: "packid", field: "packCode",
width: 160, width: 160,
}, },
......
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
}, },
{ {
title: "计量单位", title: "计量单位",
field: "jldwname", field: "jldwName",
width: 100, width: 100,
allowEdit: false allowEdit: false
}, },
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
queryUrl:'wms/ckgl/dbck/query/kc', queryUrl:'wms/ckgl/dbck/query/kc',
tableTitle: [{ tableTitle: [{
title: "库位", title: "库位",
field: "kwcode", field: "kwName",
width: 100, width: 100,
}, },
{ {
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
}, },
{ {
title: "唯一码", title: "唯一码",
field: "packid", field: "packCode",
width: 180, width: 180,
}, },
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
{ {
title: "库存数量", title: "库存数量",
field: "kcsl", field: "kcsl",
width: 180, width: 120,
fieldType: 'float' fieldType: 'float'
}, },
{ {
...@@ -120,13 +120,6 @@ ...@@ -120,13 +120,6 @@
}, },
{
title: "库位",
field: "kwName",
width: 240,
},
], ],
queryParams: [ queryParams: [
[{ [{
......
<template>
<div class="outer">
<div class=" higher flex-column">
<!-- 分层-->
<div class="top">
<Top @getRow='topGetRow' ref="top"></Top>
</div>
<div class="bottom flex">
<div class="full" >
<el-tabs class="full" v-model="activeName" >
<el-tab-pane class="full" label="明细" name="first">
<Mx ref="mx" class="full" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</div>
</template>
<script>
import Top from './top/index.vue'
import Mx from './mx.vue'
export default {
components: {
Top,
Mx,
},
data(){
return{
activeName:'first'
}
},
methods: {
topGetRow(row) {
/* dom赋值*/
let mid = row.id
this.$refs.mx.$refs.basePage.queryParams.mid = mid
this.$refs.mx.$refs.basePage.$refs['TablePager'].pageQuery({
setFirstCurrent: true
})
},
}
}
</script>
<style lang="scss" scoped>
.outer {
overflow: auto;
height: calc(100vh - 84px);
width: 100%;
.top {
width: 100%;
height: 45%;
}
.bottom {
width: 100%;
height: 55%;
.left {
width: 50%;
height: 100%;
}
.right {
width: 50%;
height: 100%;
}
}
}
.higher {
height: 140vh;
}
.flex-column {
display: flex;
flex-direction: column;
}
::v-deep .el-tabs__content{
height: calc(100% - 40px);
}
::v-deep .el-tabs__nav-scroll{
padding-left: 10px;
}
</style>
<template>
<BasePage @getRow='getRow' ref="basePage" :power='power' :toolButton='false' class="min_full" style="height: 100%;border-top: 0px;" :autoQuery='false'
:config="config">
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.pagePage来操作默认页面 -->
</template>
<template #toolbar="ctx">
</template>
</BasePage>
</template>
<script>
export default {
data() {
return {
power: {
add: false,
copy: false,
/* 手动控制删除 */
delButton: false,
/* 手动控制编辑按钮权限 */
editButton: false,
/* 是否渲染右侧操作按钮 */
operateButtons: false,
/* 是否开启工作流按钮 */
workFlow: false,
/* 表格开启选择,以及记住选择 */
showSelection: false,
saveSelected: false
},
config: {
/* 基本配置*/
url: 'lxyl/kcgl/zlhbg/query/detail',
queryUrl: 'lxyl/kcgl/zlhbg/query/detail',
tableTitle: [{
title: "物料编码",
field: "wlxxCode",
fieldType: "upper",
width: 140
},
{
title: "物料名称",
field: "wlxxName",
width: 140
},
{
title: "物料规格",
field: "wlxxGg",
width: 140
},
{
title: "物料批号",
field: "wlph",
width: 140
},
// {
// title: "入库数量",
// field: "rksl",
// width: 100,
// },
{
title: "制令号",
field: "zlh",
width: 180,
},
{
title: "变更后制令号",
field: "bghzlh",
width: 180,
},
{
title: "唯一码",
field: "packCode",
width: 120,
},
{
title: "容器",
field: "rqCode",
width: 120,
},
{
title: "货主",
field: "hzName",
width: 120,
},
{
title: "包装数量",
field: "bzsl",
width: 120,
},
{
title: "装托数量",
field: "ztsl",
width: 120,
},
],
queryParams: [],
}
}
},
methods: {
getRow(val){
this.$emit('getRow',val)
},
demo(ctx){
if(ctx.singleItem&&ctx.singleItem.id){
console.log(ctx.singleItem)
}else{
this.$warning('请选中一条数据')
}
}
},
components: {
}
}
</script>
<style>
</style>
<template>
<DefaultDialog :app='app'>
<div slot="form" style="display: flex;height: 70vh;">
<!-- basePage-->
<BasePage ref="basePage" :power='power' :toolButton='false' class="min_full" style="height: 100%;"
:config="config">
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.pagePage来操作默认页面 -->
</template>
<template #toolbar="ctx">
</template>
</BasePage>
</div>
<div slot="reFooter" class="refooter">
<span slot="footer" class="dialog-footer">
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">保 存</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
export default {
props: {
app: {
type: Object,
default: () => {
return {}
}
}
},
async mounted() {
},
data() {
return {
power: {
add: false,
copy: false,
/* 手动控制删除 */
delButton: false,
/* 手动控制编辑按钮权限 */
editButton: false,
/* 是否渲染右侧操作按钮 */
operateButtons: false,
/* 是否开启工作流按钮 */
workFlow: false,
/* 表格开启选择,以及记住选择 */
showSelection: true,
saveSelected: true
},
config: {
/* 基本配置*/
url: 'lxyl/zlgl/uLothold/queryPackmxForHold',
queryUrl: 'lxyl/zlgl/uLothold/queryPackmxForHold',
tableTitle: [{
title: "唯一码",
field: "packCode",
width: 140
},
{
title: "容器",
field: "rqCode",
width: 140
},
{
title: "货主",
field: "hzName",
width: 140
},
/* 分割*/
{
title: "物料编码",
field: "wlxxCode",
width: 140
},
{
title: "物料名称",
field: "wlxxName",
width: 140
},
{
title: "物料规格",
field: "wlxxGg",
width: 140
},
{
title: "物料批号",
field: "wlph",
width: 140
},
{
title: "制令号",
field: "zlh",
width: 180
}
],
queryParams: [[
{
label: 'wlph',
prop: 'wlph',
span: 6,
value: this.app.form.wlph
}
]]
}
}
},
methods: {
save(){
/* 判定是否勾选*/
let list =this.$refs.basePage.$refs.TablePager.selectedList
if(list.length!=0){
this.$emit('save',list)
}else{
this.$warning('请至少勾选一条数据')
}
}
}
}
</script>
<style scoped lang="scss">
</style>
<template>
<RelDialog bigTitle detailTable='U_LOTHOLDMX' @getFormDetail='getFormDetail' width="70%" :type='type'
:editApp='editApp' :app='app' :buttonApp='buttonApp'>
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<!-- 查询弹框-->
<Cx @save="save" :app="this" v-if='this.showDialog' />
<el-row :gutter="20" :app="this" class="editRow">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
<!-- 额外数据 -->
</el-row>
<div class="editTab">
<editTableForEdit :indexApp='app' :AuxButton='false' ref="editTableForEdit" :editTableTitle='editTableTitle'
v-if="editTableForEdit" :computedRow='computedRow' :editTableData="formDetail">
<template v-if="type!='view'" #toolbar="ctx">
<el-button @click="add" size='mini' type="primary">新增</el-button>
</template>
</editTableForEdit>
</div>
</el-form>
<!-- editTab数据 -->
</RelDialog>
</template>
<script>
import {
toFixed,
doRkdChange
} from 'common/src/utils/blur.js'
import {
editMixin,
editMixin_expand
} from 'common'
import Cx from './cx.vue'
export default {
mixins: [editMixin, editMixin_expand],
methods: {
add() {
if(!this.form.wlph){
this.$warning('请先选择物料批号')
}else{
this.showDialog = true
}
},
/* 需要整体row时的回调 */
computedRow(row) {
// this.$refs.editTableForEdit.$forceUpdate()
},
/* 选择list时的回调 */
save(list) {
this.showDialog = false
this.formDetail.splice(0, this.formDetail.length);
/* 添加熬子表*/
list.forEach(item => {
item.packmxid = item.id
// item.bzsl = item.packmxSl || 0
delete item.id
this.formDetail.push(_.cloneDeep(item))
})
}
},
components: {
Cx
},
mounted() {
},
data() {
return {
DialogTitle: '新增',
DialogWidth: '60vw',
showDialog: false,
/* 常规edit数据 */
editColItemList: [{
label: '业务日期',
prop: 'ywrq',
span: 12,
type: 'date',
value: new Date().getTime(),
"required": true,
},
{
label: '物料批号',
prop: 'wlph',
span: 12,
type: 'AuxInput',
typeConfig: {
code: 'LXYLKCPH',
label: 'wlph',
transform: {
value: 'wlph',
label: 'wlph'
}
},
},
{
label: '锁定说明',
prop: 'sdsm',
span: 24,
type: 'input',
},
{
label: '备注',
prop: 'bz',
span: 24,
type: 'input',
}
],
/* 从表编辑数据 */
editTableTitle: [{
title: "序号",
field: "xh",
width: 50,
align: "center"
},
{
title: "物料编码",
field: "wlxxCode",
width: 160
},
{
title: "物料名称",
field: "wlxxName",
width: 160
},
{
title: "规格",
field: "wlxxGg",
width: 140
},
{
title: "物料批号",
field: "wlph",
width: 200,
},
{
title: "唯一码",
field: "packCode",
width: 200,
},
{
title: "容器",
field: "rqCode",
width: 200,
},
{
title: "货主",
field: "hzName",
width: 200,
},
{
title: "制令号",
field: "zlh",
width: 180,
}
]
}
}
}
</script>
<style lang="scss" scoped>
@import url("~common/src/assets/styles/editDetail.scss");
</style>
<template>
<BasePage @getRow='getRow' class="min_full" style="height: 100%;" :config="config">
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.pagePage来操作默认页面 -->
</template>
<template #toolbar="ctx">
<el-button @click="doConfirm(ctx.basePage)" size='mini' type="primary">解锁</el-button>
</template>
</BasePage>
</template>
<script>
import Edit from './edit.vue'
export default {
data() {
return {
config: {
queryDetail: true,
/* 基本配置*/
url: 'lxyl/zlgl/uLothold',
tableTitle: [{
title: "单据编号",
field: "djid",
width: 140
},
{
title: "业务日期",
field: "ywrq",
fieldType: 'ftDate'
},
{
title: "SAP变更类型",
field: "bglx",
width: 140
},
{
title: "锁定状态",
field: "zt",
width: 100,
"transform": {
"url": "lxyl/zlgl/uLothold/init/zt",
"label": "name",
"value": "id"
}
},
{
title: "锁定说明",
field: "sdsm",
width: 200
},
{
title: "备注",
field: "bz",
},
{
title: "维护人",
field: "whr",
width: 140
},
{
title: "维护时间",
field: "whsj",
fieldType: 'ftDateTime'
},
],
queryParams: [
[
{
label: '物料',
prop: 'wlxxInfo',
span: 5,
type: 'input',
value: ''
},
{
label: '批号',
prop: 'wlph',
span: 5,
type: 'input',
value: ''
},
{
label: '业务日期',
startProp: "start",
endProp: "end",
span: 8,
type: 'RelDaterangeV2',
startValue: new Date().getTime() - 1000 * 60 * 60 * 24 * 30,
endValue: new Date().getTime(),
},
{
"label": "状态",
"prop": "zt",
"span": 6,
"type": "RelSelect",
"value": "",
"typeConfig": {
"src":"lxyl/zlgl/uLothold/init/zt",
"match": {
"value": "id",
"label": "name"
}
}
},
]
],
/* 默认启停用 */
}
}
},
methods: {
doConfirm(ctx) {
if (ctx.singleItem && ctx.singleItem.id) {
this.$confirm('是否确认?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(res => {
this.$post('lxyl/zlgl/uLothold/releaseHold', {
id: ctx.singleItem.id
}).then(res => {
if (res.success) {
ctx.refresh()
}
})
})
} else {
this.$warning('请选中一条数据')
}
},
getRow(val) {
this.$emit('getRow', val)
}
},
components: {
Edit
}
}
</script>
<style>
</style>
...@@ -145,7 +145,7 @@ import Cx from './cx.vue' ...@@ -145,7 +145,7 @@ import Cx from './cx.vue'
}, },
{ {
title: "唯一码", title: "唯一码",
field: "packid", field: "packCode",
width: 200, width: 200,
}, },
{ {
......
<template> <template>
<RelDialog bigTitle detailTable='RKTZMX' @getFormDetail='getFormDetail' width="70%" :type='type' :editApp='editApp' <RelDialog bigTitle detailTable='RKTZMX' @getFormDetail='getFormDetail' width="70%" :type='type' :editApp='editApp'
:app='app' :buttonApp='buttonApp'> :app='app' :buttonApp='buttonApp'>
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules"> <el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<el-row :gutter="20" :app="this" class="editRow"> <el-row :gutter="20" :app="this" class="editRow">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false " <EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label" v-if="(item.show==false)?false:true" v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label" v-if="(item.show==false)?false:true"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" /> :prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
<!-- 额外数据 --> <!-- 额外数据 -->
</el-row> </el-row>
<div class="editTab"> <div class="editTab">
<editTableForEdit :phsxTitle='false' :indexApp='app' code='WMSWLXX' :type='type' @save='save' ref="editTableForEdit" <editTableForEdit @getPhsx='getPhsx' :indexApp='app' code='WMSWLXX' :type='type' @save='save' ref="editTableForEdit"
:editTableTitle='editTableTitle' v-if="editTableForEdit" :computedRow='computedRow' :editTableTitle='editTableTitle' v-if="editTableForEdit" :computedRow='computedRow'
:editTableData="formDetail"> :editTableData="formDetail">
<template v-if="type!='view'" #toolbar="ctx"> <template v-if="type!='view'" #toolbar="ctx">
...@@ -59,6 +59,9 @@ ...@@ -59,6 +59,9 @@
/* 需要整体row时的回调 */ /* 需要整体row时的回调 */
computedRow(row) { computedRow(row) {
// this.$refs.editTableForEdit.$forceUpdate() // this.$refs.editTableForEdit.$forceUpdate()
},
getPhsx(arr){
}, },
/* 选择list时的回调 */ /* 选择list时的回调 */
save(list) { save(list) {
...@@ -201,10 +204,26 @@ ...@@ -201,10 +204,26 @@
readonly:true, readonly:true,
show:this.type=='view'?true:false show:this.type=='view'?true:false
}, },
{
label: '入库人',
prop: 'rkrid',
span: 8,
type: 'AuxInput',
typeConfig: {
code: 'USER',
label: 'rkrName',
transform: {
value: 'id',
label: 'username'
}
},
},
{ {
label: '备注', label: '备注',
prop: 'bz', prop: 'bz',
span: this.type=='view'?16:24, span: 16,
type: 'input', type: 'input',
}, },
...@@ -291,29 +310,6 @@ ...@@ -291,29 +310,6 @@
field: "rksl", field: "rksl",
}, },
// {
// title: "库位",
// field: "kwid",
// width: 240,
// type: 'AuxInput',
// typeConfig: {
// isRequest: false,
// "code": "KWWH",
// "label": "kwName",
// queryParams: (row) => {
// return {
// ckid: this.form.ckid
// }
// },
// "transform": {
// "value": "id",
// "label": "name"
// }
// },
// show: JSON.parse(localStorage.getItem('isKwgl')),
// },
{ {
title: "生产日期", title: "生产日期",
field: "wlphScrq", field: "wlphScrq",
......
...@@ -65,6 +65,11 @@ ...@@ -65,6 +65,11 @@
field: "swlxName", field: "swlxName",
width: 100 width: 100
}, },
{
title: "入库人",
field: "rkrName",
width: 100
},
{ {
title: "仓库", title: "仓库",
field: "ckid", field: "ckid",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment