|
|
@ -1,10 +1,504 @@ |
|
|
|
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|
|
|
import { dateFormatter } from '@/utils/formatTime' |
|
|
|
|
|
|
|
import * as SupplieritemApi from '@/api/wms/supplieritem' |
|
|
|
import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' |
|
|
|
|
|
|
|
import * as ProductionlineApi from '@/api/wms/productionline' |
|
|
|
import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' |
|
|
|
|
|
|
|
import * as WorkstationApi from '@/api/wms/workstation' |
|
|
|
import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data' |
|
|
|
|
|
|
|
import * as BalanceApi from '@/api/wms/balance' |
|
|
|
import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' |
|
|
|
|
|
|
|
const { t } = useI18n() // 国际化
|
|
|
|
|
|
|
|
/** |
|
|
|
* @returns {Array} 生产退料申请子表 |
|
|
|
*/ |
|
|
|
export const ProductionreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|
|
|
{ |
|
|
|
label: '生产线代码', |
|
|
|
field: 'productionLineCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
// labelMessage: '信息提示说明!!!',
|
|
|
|
componentProps: { |
|
|
|
isSearchList: true, // 开启查询弹窗
|
|
|
|
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
|
|
|
|
searchField: 'code', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '生产线信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'available', |
|
|
|
value: 'TRUE', |
|
|
|
isMainValue: false |
|
|
|
},{ |
|
|
|
key: 'workshopCode', |
|
|
|
value: 'workshopCode', |
|
|
|
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
|
|
|
|
isMainValue: true |
|
|
|
}] |
|
|
|
} |
|
|
|
}, |
|
|
|
tableForm:{ |
|
|
|
isInpuFocusShow: true, |
|
|
|
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
|
|
|
|
searchField: 'code', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '生产线信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'available', |
|
|
|
value: 'TRUE', |
|
|
|
isMainValue: false |
|
|
|
},{ |
|
|
|
key: 'workshopCode', |
|
|
|
value: 'workshopCode', |
|
|
|
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
|
|
|
|
isMainValue: true |
|
|
|
}] |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '工位代码', |
|
|
|
field: 'workStationCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
// labelMessage: '信息提示说明!!!',
|
|
|
|
componentProps: { |
|
|
|
isSearchList: true, // 开启查询弹窗
|
|
|
|
searchListPlaceholder: '请选择工位代码', // 输入框占位文本
|
|
|
|
searchField: 'code', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '工位信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'available', |
|
|
|
value: 'TRUE', |
|
|
|
isMainValue: false |
|
|
|
},{ |
|
|
|
key: 'workshopCode', |
|
|
|
value: 'workshopCode', |
|
|
|
message: '请选择车间信息!', |
|
|
|
isMainValue: true |
|
|
|
},{ |
|
|
|
key: 'productionLineCode', |
|
|
|
value: 'productionLineCode', |
|
|
|
message: '请选择生产线信息!', |
|
|
|
isMainValue: true |
|
|
|
}] |
|
|
|
} |
|
|
|
}, |
|
|
|
tableForm:{ |
|
|
|
isInpuFocusShow: true, |
|
|
|
searchListPlaceholder: '请选择工位代码', // 输入框占位文本
|
|
|
|
searchField: 'code', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '工位信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'available', |
|
|
|
value: 'TRUE', |
|
|
|
isMainValue: false |
|
|
|
},{ |
|
|
|
key: 'workshopCode', |
|
|
|
value: 'workshopCode', |
|
|
|
message: '请选择车间信息!', |
|
|
|
isMainValue: true |
|
|
|
},{ |
|
|
|
key: 'productionLineCode', |
|
|
|
value: 'productionLineCode', |
|
|
|
message: '请选择生产线信息!', |
|
|
|
isMainValue: true |
|
|
|
}] |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '从库位代码', |
|
|
|
field: 'fromLocationCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
disabled: true |
|
|
|
}, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '物料代码', |
|
|
|
field: 'itemCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
// labelMessage: '信息提示说明!!!',
|
|
|
|
componentProps: { |
|
|
|
isSearchList: true, // 开启查询弹窗
|
|
|
|
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
|
|
|
|
searchField: 'itemCode', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '库存余额信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: BalanceApi.getBalancePage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'locationCode', |
|
|
|
value: 'fromLocationCode', |
|
|
|
message: '请填写从库位代码!', |
|
|
|
isMainValue: true |
|
|
|
},{ |
|
|
|
key: 'inventoryStatus', |
|
|
|
value: 'OK', |
|
|
|
isMainValue: false |
|
|
|
}] |
|
|
|
} |
|
|
|
}, |
|
|
|
tableForm:{ |
|
|
|
isInpuFocusShow: true, |
|
|
|
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
|
|
|
|
searchField: 'itemCode', // 查询弹窗赋值字段
|
|
|
|
searchTitle: '库存余额信息', // 查询弹窗标题
|
|
|
|
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
|
|
|
|
searchPage: BalanceApi.getBalancePage, // 查询弹窗所需分页方法
|
|
|
|
searchCondition:[{ |
|
|
|
key: 'locationCode', |
|
|
|
value: 'fromLocationCode', |
|
|
|
message: '请填写从库位代码!', |
|
|
|
isMainValue: true |
|
|
|
},{ |
|
|
|
key: 'inventoryStatus', |
|
|
|
value: 'OK', |
|
|
|
isMainValue: false |
|
|
|
}] |
|
|
|
}, |
|
|
|
}, |
|
|
|
// {
|
|
|
|
// label: '包装号',
|
|
|
|
// field: 'packingNumber',
|
|
|
|
// sort: 'custom',
|
|
|
|
// table: {
|
|
|
|
// width: 150
|
|
|
|
// },
|
|
|
|
// tableForm: {
|
|
|
|
// disabled: true
|
|
|
|
// },
|
|
|
|
// form: {
|
|
|
|
// componentProps: {
|
|
|
|
// disabled: true
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// label: '器具号',
|
|
|
|
// field: 'containerNumber',
|
|
|
|
// sort: 'custom',
|
|
|
|
// table: {
|
|
|
|
// width: 150
|
|
|
|
// },
|
|
|
|
// tableForm: {
|
|
|
|
// disabled: true
|
|
|
|
// },
|
|
|
|
// form: {
|
|
|
|
// componentProps: {
|
|
|
|
// disabled: true
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
{ |
|
|
|
label: '物料名称', |
|
|
|
field: 'itemName', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '数量', |
|
|
|
field: 'qty', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
component: 'InputNumber', |
|
|
|
componentProps: { |
|
|
|
min: 0, |
|
|
|
precision: 6 |
|
|
|
} |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
type: 'InputNumber', |
|
|
|
min: 0, |
|
|
|
precision: 6 |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '计量单位', |
|
|
|
field: 'uom', |
|
|
|
dictType: DICT_TYPE.UOM, |
|
|
|
dictClass: 'string', |
|
|
|
isTable: true, |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
type: 'Select', |
|
|
|
disabled: true |
|
|
|
}, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '物料描述1', |
|
|
|
field: 'itemDesc1', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '物料描述2', |
|
|
|
field: 'itemDesc2', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '项目代码', |
|
|
|
field: 'projectCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '库存状态', |
|
|
|
field: 'inventoryStatus', |
|
|
|
dictType: DICT_TYPE.INVENTORY_STATUS, |
|
|
|
dictClass: 'string', |
|
|
|
isTable: true, |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
type: 'Select', |
|
|
|
disabled: true |
|
|
|
}, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '批次', |
|
|
|
field: 'batch', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
disabled: false |
|
|
|
}, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: false |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '单据号', |
|
|
|
field: 'number', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '包装号', |
|
|
|
field: 'packingNumber', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
tableForm: { |
|
|
|
disabled: true |
|
|
|
}, |
|
|
|
form: { |
|
|
|
componentProps: { |
|
|
|
disabled: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '从货主代码', |
|
|
|
field: 'fromOwnerCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '到货主代码', |
|
|
|
field: 'toOwnerCode', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '备注', |
|
|
|
field: 'remark', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '创建时间', |
|
|
|
field: 'createTime', |
|
|
|
formatter: dateFormatter, |
|
|
|
detail: { |
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|
|
|
}, |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 180 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
component: 'DatePicker', |
|
|
|
componentProps: { |
|
|
|
style: {width:'100%'}, |
|
|
|
type: 'datetime', |
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|
|
|
valueFormat: 'x', |
|
|
|
} |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '创建者', |
|
|
|
field: 'creator', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '最后更新时间', |
|
|
|
field: 'updateTime', |
|
|
|
formatter: dateFormatter, |
|
|
|
detail: { |
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|
|
|
}, |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 180 |
|
|
|
}, |
|
|
|
form: { |
|
|
|
component: 'DatePicker', |
|
|
|
componentProps: { |
|
|
|
style: {width:'100%'}, |
|
|
|
type: 'datetime', |
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|
|
|
valueFormat: 'x', |
|
|
|
} |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '最后更新者', |
|
|
|
field: 'updater', |
|
|
|
sort: 'custom', |
|
|
|
table: { |
|
|
|
width: 150 |
|
|
|
}, |
|
|
|
isTableForm: false, |
|
|
|
isForm: false |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '操作', |
|
|
|
field: 'action', |
|
|
|
isDetail: false, |
|
|
|
isForm: false , |
|
|
|
table: { |
|
|
|
width: 150, |
|
|
|
fixed: 'right' |
|
|
|
}, |
|
|
|
isTableForm:false, |
|
|
|
} |
|
|
|
])) |
|
|
|
|
|
|
|
//表单校验
|
|
|
|
export const ProductionreturnRequestDetailRules = reactive({ |
|
|
|
workStationCode: [ |
|
|
|
{ required: true, message: '请选择工位代码', trigger: 'change' } |
|
|
|
], |
|
|
|
productionLineCode: [ |
|
|
|
{ required: true, message: '请选择生产线代码', trigger: 'change' } |
|
|
|
], |
|
|
|
// packingNumber: [
|
|
|
|
// { required: true, message: '请选择包装号', trigger: 'change' }
|
|
|
|
// ],
|
|
|
|
batch: [ |
|
|
|
{ required: true, message: '请输入批次', trigger: 'blur' } |
|
|
|
], |
|
|
|
inventoryStatus: [ |
|
|
|
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|
|
|
], |
|
|
|
// fromLocationCode: [
|
|
|
|
// { required: true, message: '请输入从库位代码', trigger: 'blur' }
|
|
|
|
// ],
|
|
|
|
itemCode: [ |
|
|
|
{ required: true, message: '请输入物料代码', trigger: 'blur' } |
|
|
|
], |
|
|
|
remark: [ |
|
|
|
{ max: 50, message: '不得超过50个字符', trigger: 'blur' } |
|
|
|
], |
|
|
|
}) |
|
|
|
|
|
|
|
/** |
|
|
|
* @returns {Array} 隔离退料申请子表创建标签 |
|
|
|
*/ |
|
|
@ -256,7 +750,7 @@ export const ProductionreturnRequestDetailNoLabelRules = reactive({ |
|
|
|
], |
|
|
|
productionLineCodePackage: [ |
|
|
|
{ required: true, message: '请选择生产线', trigger: 'change' } |
|
|
|
], |
|
|
|
], |
|
|
|
batch: [ |
|
|
|
{ required: true, message: '请输入批次', trigger: 'blur' } |
|
|
|
] |
|
|
|