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" :columns="tableColumns"
:data="tableObject.tableList" :data="tableObject.tableList"
:loading="tableObject.loading" :loading="tableObject.loading"
:pagination="{ :pagination="{total: tableObject.total}"
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize" v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #code="{row}"> <template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)"> <el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.code }}</span> <span>{{ row.number }}</span>
</el-button> </el-button>
</template> </template>
<template #action="{ row,$index }"> <template #action="{ row,$index }">
@ -42,15 +40,20 @@
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
<BasicForm <BasicForm
ref="basicFormRef" ref="basicFormRef"
@success="formsSuccess" @submitForm="submitForm"
:isBusiness="true"
:rules="ProcessproductionRequestMainRules" :rules="ProcessproductionRequestMainRules"
:formAllSchemas="ProcessproductionRequestMain.allSchemas" :formAllSchemas="ProcessproductionRequestMain.allSchemas"
:apiUpdate="ProcessproductionRequestMainApi.updateProcessproductionRequestMain" :apiUpdate="ProcessproductionRequestMainApi.updateProcessproductionRequestMain"
:apiCreate="ProcessproductionRequestMainApi.createProcessproductionRequestMain" :apiCreate="ProcessproductionRequestMainApi.createProcessproductionRequestMain"
@searchTableSuccess="searchTableSuccess"
:isBusiness="true"
:tableAllSchemas="ProcessproductionRequestDetail.allSchemas" :tableAllSchemas="ProcessproductionRequestDetail.allSchemas"
:tableFormRules="ProcessproductionRequestDetailRules" :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 tableColumns = ref([...ProcessproductionRequestMain.allSchemas.tableColumns,...ProcessproductionRequestDetail.allSchemas.tableMainColumns])
// //
const searchTableSuccess = (formField, searchField, val, formRef) => { const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => { nextTick(() => {
const setV = {} if (type == 'tableForm') {
setV[formField] = val[0][searchField] if(formField === 'productionLine'){
formRef.setValues(setV) 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 tableColumns.value = val
} }
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: ProcessproductionRequestDetailApi.getProcessproductionRequestDetailPage // getListApi: ProcessproductionRequestDetailApi.getProcessproductionRequestDetailPage //
}) })
@ -123,14 +140,6 @@ const HeadButttondata = [
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(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 butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1 const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
@ -162,7 +170,6 @@ const butttondata = (row,$index) => {
] ]
} }
const buttondataTable = ref() const buttondataTable = ref()
// - // -
@ -181,28 +188,39 @@ const openForm = (type: string, row?: any) => {
} }
// form //
const formsSuccess = async (formType,data) => { const submitForm = async (formType, data) => {
var isHave =ProcessproductionRequestMain.allSchemas.formSchema.some(function (item) { data.subList = tableData.value //
return item.field === 'activeTime' || item.field === 'expireTime'; try {
}); if (formType === 'create') {
if(isHave){ if(data.subList.length == 0){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ message.warning("请添加子列表数据")
message.error('失效时间要大于生效时间') return;
return; }
} let flag = false;
} data.subList.forEach((item) => {
if(data.activeTime==0)data.activeTime = null; if(item.componentItemcodeQty == 0){
if(data.expireTime==0)data.expireTime = null; message.warning("子物料数量不能为0")
if (formType === 'create') { flag = true;
await ProcessproductionRequestMainApi.createProcessproductionRequestMain(data) return;
message.success(t('common.createSuccess')) }
} else { })
await ProcessproductionRequestMainApi.updateProcessproductionRequestMain(data) if(flag){
message.success(t('common.updateSuccess')) 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 () => { onMounted(async () => {
getList() 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 { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
import * as ProductionlineitemApi from '@/api/wms/productionlineitem' import * as ProductionlineitemApi from '@/api/wms/productionlineitem'
import { Productionlineitem } from '@/views/wms/basicDataManage/itemManage/productionlineitem/productionlineitem.data' 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' import { fa } from 'element-plus/es/locale'
export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]>([ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isForm: false,
isTable:false,
isTableForm:false,
},
{ {
label: '单据号', label: '单据号',
field: 'number', field: 'number',
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 200
}, },
isForm: false, isForm: false,
isSearch: true, isSearch: true,
@ -60,7 +58,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
form: { form: {
component: 'InputNumber', component: 'InputNumber',
componentProps: { componentProps: {
min: 1, min: 0,
precision: 6 precision: 6
}, },
}, },
@ -75,7 +73,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
form: { form: {
component: 'InputNumber', component: 'InputNumber',
componentProps: { componentProps: {
min: 1, min: 0,
precision: 6 precision: 6
}, },
}, },
@ -120,6 +118,8 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm:false, isForm:false,
isTableForm:false,
isDetail:false,
search: { search: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -143,6 +143,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false, isForm: false,
isDetail:false,
}, },
{ {
label: '扩展属性', label: '扩展属性',
@ -159,6 +160,7 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false, isForm: false,
isDetail:false,
form: { form: {
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
@ -171,11 +173,13 @@ export const ProcessproductionRequestMain = useCrudSchemas(reactive<CrudSchema[]
isSearch: false, isSearch: false,
isForm: false, isForm: false,
isTable:false, isTable:false,
isDetail:false,
}, },
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',
isForm: false, isForm: false,
isDetail:false,
table: { table: {
width: 150, width: 150,
fixed: 'right' fixed: 'right'
@ -188,8 +192,6 @@ export const ProcessproductionRequestMainRules = reactive({
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'change' }], itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'change' }],
completedQuantity: [{ required: true, message: '完工数量不能为空', trigger: 'change' }], completedQuantity: [{ required: true, message: '完工数量不能为空', trigger: 'change' }],
scrapQuantity: [{ 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: { table: {
width: 150 width: 150
}, },
isForm:false,
hiddenInMain:true, hiddenInMain:true,
}, },
{ {
@ -219,7 +222,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段 searchField: 'productionLineCode', // 查询弹窗赋值字段
searchTitle: '生产线物料关系信息', // 查询弹窗标题 searchTitle: '生产线物料关系信息', // 查询弹窗标题
searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类 searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法 searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法
@ -239,7 +242,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
multiple:true, multiple:true,
isInpuFocusShow: true, isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段 searchField: 'productionLineCode', // 查询弹窗赋值字段
searchTitle: '生产线物料关系信息', // 查询弹窗标题 searchTitle: '生产线物料关系信息', // 查询弹窗标题
searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类 searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法 searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法
@ -262,6 +265,43 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: { table: {
width: 150 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: '库位代码', label: '库位代码',
@ -270,6 +310,37 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: { table: {
width: 150 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: '子物料代码', label: '子物料代码',
@ -279,6 +350,45 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: { table: {
width: 150 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: '批次', label: '批次',
@ -295,21 +405,42 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
table: { table: {
width: 150 width: 150
}, },
form: {
component: 'InputNumber',
componentProps: {
min: 0,
precision: 6
}
},
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
},
}, },
{ {
label: '生效日期', label: '生效日期',
field: 'effectiveDate', field: 'effectiveDate',
sort: 'custom', sort: 'custom',
formatter: dateFormatter, detail: {
dateFormat: 'YYYY-MM-DD'
},
table: {
width: 150
},
form: { form: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
type: 'datetime', style: {width: '100%'},
valueFormat: 'x' type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
} }
}, },
table: { tableForm:{
width: 150 type:'FormDate',
placeholder: '请选择生产日期',
valueFormat: 'x',
}, },
}, },
{ {
@ -318,6 +449,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom', sort: 'custom',
isTable:false, isTable:false,
isTableForm:false, isTableForm:false,
isForm:false,
table: { table: {
width: 150 width: 150
}, },
@ -345,6 +477,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
formatter: dateFormatter, formatter: dateFormatter,
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false,
isTableForm: false, isTableForm: false,
table: { table: {
width: 150 width: 150
@ -371,6 +504,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false,
isTableForm: false, isTableForm: false,
table: { table: {
width: 150 width: 150
@ -382,6 +516,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false,
isTableForm: false, isTableForm: false,
}, },
{ {
@ -390,6 +525,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false,
isTableForm: false, isTableForm: false,
form: { form: {
component: 'InputNumber', component: 'InputNumber',
@ -402,6 +538,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable:false, isTable:false,
isForm: false,
isTableForm: false, isTableForm: false,
}, },
{ {
@ -411,6 +548,7 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
hiddenInMain:true, hiddenInMain:true,
isTable:false, isTable:false,
isTableForm:false, isTableForm:false,
isForm: false,
form: { form: {
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
@ -420,6 +558,8 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
label: '操作', label: '操作',
field: 'action', field: 'action',
isForm: false, isForm: false,
isTable:false,
isTableForm:false,
hiddenInMain:true, hiddenInMain:true,
table: { table: {
width: 150, width: 150,
@ -430,5 +570,25 @@ export const ProcessproductionRequestDetail = useCrudSchemas(reactive<CrudSchema
// 表单校验 // 表单校验
export const ProcessproductionRequestDetailRules = reactive({ 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