Browse Source

修改

master_hella_20240701
zhaoxuebing 6 months ago
parent
commit
919f41f456
  1. 130
      src/views/wms/productionManage/processproduction/processproductionRequest/index.vue
  2. 202
      src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts

130
src/views/wms/productionManage/processproduction/processproductionRequest/index.vue

@ -21,16 +21,14 @@
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
:pagination="{total: tableObject.total}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row,$index }">
@ -42,15 +40,20 @@
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
@submitForm="submitForm"
:isBusiness="true"
:rules="ProcessproductionRequestMainRules"
:formAllSchemas="ProcessproductionRequestMain.allSchemas"
:apiUpdate="ProcessproductionRequestMainApi.updateProcessproductionRequestMain"
:apiCreate="ProcessproductionRequestMainApi.createProcessproductionRequestMain"
@searchTableSuccess="searchTableSuccess"
:isBusiness="true"
:tableAllSchemas="ProcessproductionRequestDetail.allSchemas"
:tableFormRules="ProcessproductionRequestDetailRules"
@searchTableSuccess="searchTableSuccess"
:tableData="tableData"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
:isShowReduceButtonSelection="true"
@tableSelectionDelete="tableSelectionDelete"
/>
<!-- 详情 -->
@ -94,11 +97,26 @@ routeName.value = route.name
const tableColumns = ref([...ProcessproductionRequestMain.allSchemas.tableColumns,...ProcessproductionRequestDetail.allSchemas.tableMainColumns])
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
if (type == 'tableForm') {
if(formField === 'productionLine'){
row['productionLine']=val[0]['productionLineCode']
}
if(formField === 'processCode'){
row['processCode']=val[0]['code']
}
if(formField === 'locationCode'){
row['locationCode']=val[0]['code']
}
if(formField === 'componentItemCode'){
row['componentItemCode']=val[0]['componentItemCode']
}
}else{
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
}
@ -107,7 +125,6 @@ const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: ProcessproductionRequestDetailApi.getProcessproductionRequestDetailPage //
})
@ -123,14 +140,6 @@ const HeadButttondata = [
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
@ -149,7 +158,6 @@ const buttonBaseClick = (val, item) => {
}
}
// -
const butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
@ -162,7 +170,6 @@ const butttondata = (row,$index) => {
]
}
const buttondataTable = ref()
// -
@ -181,28 +188,39 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =ProcessproductionRequestMain.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await ProcessproductionRequestMainApi.createProcessproductionRequestMain(data)
message.success(t('common.createSuccess'))
} else {
await ProcessproductionRequestMainApi.updateProcessproductionRequestMain(data)
message.success(t('common.updateSuccess'))
//
const submitForm = async (formType, data) => {
data.subList = tableData.value //
try {
if (formType === 'create') {
if(data.subList.length == 0){
message.warning("请添加子列表数据")
return;
}
let flag = false;
data.subList.forEach((item) => {
if(item.componentItemcodeQty == 0){
message.warning("子物料数量不能为0")
flag = true;
return;
}
})
if(flag){
basicFormRef.value.formLoading = false
return
}
await ProcessproductionRequestMainApi.createProcessproductionRequestMain(data)
message.success(t('common.createSuccess'))
} else {
await ProcessproductionRequestMainApi.updateProcessproductionRequestMain(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
//
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
//
@ -277,6 +295,28 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
})
}
/**
* tableForm方法
*/
const tableFormKeys = {}
ProcessproductionRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
const tableData = ref([])
//
const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
}
//
const handleDeleteTable = (item, index) => {
tableData.value.splice(index, 1)
}
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
/** 初始化 **/
onMounted(async () => {
getList()

202
src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts

@ -4,23 +4,21 @@ import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
import * as ProductionlineitemApi from '@/api/wms/productionlineitem'
import { Productionlineitem } from '@/views/wms/basicDataManage/itemManage/productionlineitem/productionlineitem.data'
import * as ProcessApi from '@/api/wms/process'
import { Process } from '@/views/wms/basicDataManage/factoryModeling/process/process.data'
import * as LocationApi from '@/api/wms/location'
import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data'
import {Bom} from "@/views/wms/basicDataManage/itemManage/bom/bom.data";
import * as BomApi from "@/api/wms/bom";
import { fa } from 'element-plus/es/locale'
export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isForm: false,
isTable:false,
isTableForm:false,
},
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 150
width: 200
},
isForm: false,
isSearch: true,
@ -60,7 +58,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
form: {
component: 'InputNumber',
componentProps: {
min: 1,
min: 0,
precision: 6
},
},
@ -75,7 +73,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
form: {
component: 'InputNumber',
componentProps: {
min: 1,
min: 0,
precision: 6
},
},
@ -120,6 +118,8 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false,
isTable:false,
isForm:false,
isTableForm:false,
isDetail:false,
search: {
component: 'DatePicker',
componentProps: {
@ -143,6 +143,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false,
isTable:false,
isForm: false,
isDetail:false,
},
{
label: '扩展属性',
@ -159,6 +160,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false,
isTable:false,
isForm: false,
isDetail:false,
form: {
component: 'InputNumber',
value: 0
@ -171,11 +173,13 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false,
isForm: false,
isTable:false,
isDetail:false,
},
{
label: '操作',
field: 'action',
isForm: false,
isDetail:false,
table: {
width: 150,
fixed: 'right'
@ -188,8 +192,6 @@ export const ProcessproductionRequestMainRules = reactive({
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'change' }],
completedQuantity: [{ required: true, message: '完工数量不能为空', trigger: 'change' }],
scrapQuantity: [{ required: true, message: '报废数量不能为空', trigger: 'change' }],
available: [required],
concurrencyStamp: [required],
})
@ -205,6 +207,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: {
width: 150
},
isForm:false,
hiddenInMain:true,
},
{
@ -219,7 +222,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
componentProps: {
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchField: 'productionLineCode', // 查询弹窗赋值字段
searchTitle: '生产线物料关系信息', // 查询弹窗标题
searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法
@ -239,7 +242,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
multiple:true,
isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchField: 'productionLineCode', // 查询弹窗赋值字段
searchTitle: '生产线物料关系信息', // 查询弹窗标题
searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法
@ -262,6 +265,43 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: {
width: 150
},
tableForm:{
isInpuFocusShow: true,
searchListPlaceholder: '请选择工序代码',
searchField: 'code',
searchTitle: '工序信息',
searchAllSchemas: Process.allSchemas,
searchPage: ProcessApi.getProcessPage,
searchCondition: [{
key: 'productionLineCode',
value: 'productionLine',
isMainValue: true
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true,
searchListPlaceholder: '请选择工序代码',
searchField: 'code',
searchTitle: '工序信息',
searchAllSchemas: Process.allSchemas,
searchPage: ProcessApi.getProcessPage,
searchCondition: [{
key: 'productionLineCode',
value: 'productionLine',
isMainValue: true
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}
},
{
label: '库位代码',
@ -270,6 +310,37 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: {
width: 150
},
tableForm:{
multiple:true,//多选
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择库位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '库位基础信息', // 查询弹窗标题
searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
multiple:true,//多选
searchListPlaceholder: '请选择库位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '库位基础信息', // 查询弹窗标题
searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}
},
{
label: '子物料代码',
@ -279,6 +350,45 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: {
width: 150
},
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择子物料代码版本', // 输入框占位文本
searchField: 'componentItemCode', // 查询弹窗赋值字段
searchTitle: '物料清单信息', // 查询弹窗标题
searchAllSchemas: Bom.allSchemas, // 查询弹窗所需类
searchPage: BomApi.getBomPage, // 查询弹窗所需分页方法
searchCondition: [{
key:'productItemCode',
value:'itemCode',
message: '请填写物料代码!',
isMainValue: true
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Bom版本', // 输入框占位文本
searchField: 'componentItemCode', // 查询弹窗赋值字段
searchTitle: '物料清单信息', // 查询弹窗标题
searchAllSchemas: Bom.allSchemas, // 查询弹窗所需类
searchPage: BomApi.getBomPage, // 查询弹窗所需分页方法
searchCondition: [{
key:'productItemCode',
value:'itemCode',
message: '请填写物料代码!',
isMainValue: true
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
},
},
{
label: '批次',
@ -295,21 +405,42 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: {
width: 150
},
form: {
component: 'InputNumber',
componentProps: {
min: 0,
precision: 6
}
},
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
},
},
{
label: '生效日期',
field: 'effectiveDate',
sort: 'custom',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD'
},
table: {
width: 150
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
table: {
width: 150
tableForm:{
type:'FormDate',
placeholder: '请选择生产日期',
valueFormat: 'x',
},
},
{
@ -318,6 +449,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom',
isTable:false,
isTableForm:false,
isForm:false,
table: {
width: 150
},
@ -345,6 +477,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
formatter: dateFormatter,
isSearch: false,
isTable:false,
isForm: false,
isTableForm: false,
table: {
width: 150
@ -371,6 +504,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom',
isSearch: false,
isTable:false,
isForm: false,
isTableForm: false,
table: {
width: 150
@ -382,6 +516,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom',
isSearch: false,
isTable:false,
isForm: false,
isTableForm: false,
},
{
@ -390,6 +525,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom',
isSearch: false,
isTable:false,
isForm: false,
isTableForm: false,
form: {
component: 'InputNumber',
@ -402,6 +538,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom',
isSearch: false,
isTable:false,
isForm: false,
isTableForm: false,
},
{
@ -411,6 +548,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
hiddenInMain:true,
isTable:false,
isTableForm:false,
isForm: false,
form: {
component: 'InputNumber',
value: 0
@ -420,6 +558,8 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
label: '操作',
field: 'action',
isForm: false,
isTable:false,
isTableForm:false,
hiddenInMain:true,
table: {
width: 150,
@ -430,5 +570,25 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
// 表单校验
export const ProcessproductionRequestDetailRules = reactive({
productionLine: [
{ required: true, message: '请选择生产线代码', trigger: 'change' }
],
processCode: [
{ required: true, message: '请选择工序代码', trigger: 'change' }
],
locationCode: [
{ required: true, message: '请选择库位代码', trigger: 'change' }
],
componentItemCode:[
{ required: true, message: '请选择子物料代码', trigger: 'change' }
],
componentItemcodeQty:[
{ required: true, message: '请输入子物料数量', trigger: 'change' }
],
batch:[
{ required: true, message: '请输入批次', trigger: 'change' }
],
effectiveDate:[
{ required: true, message: '请输入生效日期', trigger: 'change' }
],
})
Loading…
Cancel
Save