Browse Source

HL-6188客户退货,0927会议讨论,详见备注

hella_online_20241017
yufei_wang 1 month ago
parent
commit
a9bf061013
  1. 554
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts
  2. 77
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue

554
src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts

@ -1,7 +1,7 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { TableColumn } from '@/types/table' import { TableColumn } from '@/types/table'
import { dateFormatter, formatDate } from '@/utils/formatTime' import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index' import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
import * as DeliverRecordMainApi from '@/api/wms/deliverRecordMain' import * as DeliverRecordMainApi from '@/api/wms/deliverRecordMain'
@ -894,7 +894,502 @@ export const CustomerreturnRequestMainRules = reactive({
{ max: 50, message: '不得超过50个字符', trigger: 'blur' } { max: 50, message: '不得超过50个字符', trigger: 'blur' }
], ],
}) })
export const BalanceCopy = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
// {
// label: '物料名称',
// field: 'itemName',
// sort: 'custom',
// table: {
// width: 150
// },
// isSearch: true
// },
// {
// label: '物料描述1',
// field: 'itemDesc1',
// sort: 'custom',
// table: {
// width: 150
// },
// hiddenSearchHigh: true,// 高级筛选中隐藏
// isSearch: true
// },
// {
// label: '物料描述2',
// field: 'itemDesc2',
// sort: 'custom',
// table: {
// width: 150
// },
// hiddenSearchHigh: true,// 高级筛选中隐藏
// isSearch: true
// },
// {
// label: '物料类型',
// field: 'itemType',
// sort: 'custom',
// dictType: DICT_TYPE.ITEM_TYPE,
// dictClass: 'string',
// isSearch: true,
// table: {
// width: 100
// }
// },
{
label: '批次',
field: 'batch',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
// {
// label: '供应商批次',
// field: 'altBatch',
// sort: 'custom',
// table: {
// width: 150
// },
// isSearch: false
// },
// {
// label: '包装号',
// field: 'packingNumber',
// sort: 'custom',
// table: {
// width: 150
// },
// isSearch: true
// },
{
label: '包装规格',
field: 'packUnit',
sort: 'custom',
table: {
width: 150
}
},
{
label: '包装数量',
field: 'packQty',
sort: 'custom',
table: {
width: 150
}
},
// {
// label: '器具代码',
// field: 'containerNumber',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable:false
// },
{
label: '库存数量',
field: 'qty',
sort: 'custom',
table: {
width: 150
},
form: {
component: 'InputNumber'
}
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isForm: false
},
{
label: '计量单位',
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
{
label: '库位代码',
field: 'locationCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
{
label: '库存状态',
field: 'inventoryStatus',
dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
{
label: '库区类型',
field: 'areaType',
sort: 'custom',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
table: {
width: 150
}
},
{
label: '仓库代码',
field: 'warehouseCode',
sort: 'custom',
table: {
width: 150
}
},
{
label: '库位组代码',
field: 'locationGroupCode',
sort: 'custom',
table: {
width: 150
}
},
{
label: '库区代码',
field: 'areaCode',
sort: 'custom',
table: {
width: 150
}
},
// {
// label: 'ERP库位代码',
// field: 'erpLocationCode',
// dictType: DICT_TYPE.ERP_LOCATION,
// dictClass: 'string',
// isTable: false,
// sort: 'custom',
// table: {
// width: 150
// },
// },
// {
// label: '替代批次',
// field: 'altBatch',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: false,
// },
{
label: '到货日期',
field: 'arriveDate',
isTable: true,
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 150
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
{
label: '生产日期',
field: 'produceDate',
isTable: true,
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 150
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
{
label: '失效日期',
field: 'expireDate',
isTable: true,
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 150
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
{
label: '货主代码',
field: 'ownerCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '锁定数量',
field: 'lockedQty',
sort: 'custom',
table: {
width: 150
},
isTable: false,
form: {
component: 'InputNumber'
}
},
// {
// label: '可用数量',
// field: 'usableQty',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
// {
// label: '单价',
// field: 'singlePrice',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
// {
// label: '金额',
// field: 'amount',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
// {
// label: '入库时间',
// field: 'putInTime',
// isTable: true,
// formatter: dateFormatter,
// detail: {
// dateFormat: 'YYYY-MM-DD HH:mm:ss'
// },
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'DatePicker',
// componentProps: {
// type: 'datetime',
// }
// }
// },
{
label: '是否冻结',
field: 'frozen',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
}
},
// {
// label: '冻结原因',
// field: 'frozenReason',
// dictType: DICT_TYPE.FROZEN_REASON,
// dictClass: 'string',
// isTable: true,
// sort: 'custom',
// table: {
// width: 150
// },
// },
// {
// label: '重量',
// field: 'weight',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
// {
// label: '面积',
// field: 'area',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
// {
// label: '体积',
// field: 'volume',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// }
// },
{
label: '最后事务号',
field: 'lastTransNumber',
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'
}
},
isForm: false,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'datetimerange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
}
},
{
label: '最后更新时间',
field: 'updateTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false,
isTable: true
},
{
label: '最后更新者',
field: 'updater',
sort: 'custom',
table: {
width: 150
},
isForm: false,
isTable: true
},
// TODO: 临时添加 方便操作
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 200,
fixed: 'right'
}
}
])
)
/** /**
* @returns {Array} 退 * @returns {Array} 退
*/ */
@ -1002,9 +1497,20 @@ export const CustomerreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
searchListPlaceholder: '请选择物料代码', searchListPlaceholder: '请选择物料代码',
searchField: 'itemCode', searchField: 'itemCode',
searchTitle: '库存余额信息', searchTitle: '库存余额信息',
searchAllSchemas: Balance.allSchemas, searchAllSchemas: BalanceCopy.allSchemas,
searchPage: BalanceApi.getBalanceByBusinessCategoryByItemType, searchPage: BalanceApi.getBalanceByLocation,
searchCondition: [] searchCondition:[
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
message: '请选择从库位代码!',
key: 'locationCode',
value: 'fromLocationCode',
isMainValue: true
}]
} }
}, },
tableForm:{ tableForm:{
@ -1014,8 +1520,8 @@ export const CustomerreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段 searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题 searchTitle: '库存余额信息', // 查询弹窗标题
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 searchAllSchemas: BalanceCopy.allSchemas, // 查询弹窗所需类
searchPage: BalanceApi.getBalanceByBusinessCategoryByItemType, // 查询弹窗所需分页方法 searchPage: BalanceApi.getBalanceByLocation, // 查询弹窗所需分页方法
searchCondition:[ searchCondition:[
{ {
key: 'available', key: 'available',
@ -1024,7 +1530,7 @@ export const CustomerreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
}, },
{ {
message: '请选择从库位代码!', message: '请选择从库位代码!',
key: 'fromLocationCode', key: 'locationCode',
value: 'fromLocationCode', value: 'fromLocationCode',
isMainValue: true isMainValue: true
}] }]
@ -1209,23 +1715,23 @@ export const CustomerreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
isTableForm:false, isTableForm:false,
isForm:false, isForm:false,
}, },
{ // {
label: '从库位代码', // label: '从库位代码',
field: 'fromLocationCode', // field: 'fromLocationCode',
sort: 'custom', // sort: 'custom',
table: { // table: {
width: 150 // width: 150
}, // },
isTable:false, // isTable:false,
tableForm: { // tableForm: {
disabled: true // disabled: true
}, // },
form: { // form: {
componentProps: { // componentProps: {
disabled: true // disabled: true
} // }
} // }
}, // },
// { 拿到主表 // { 拿到主表
// label: '到库位代码', // label: '到库位代码',
// field: 'toLocationCode', // field: 'toLocationCode',

77
src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue

@ -174,78 +174,32 @@ const onEnter = async (field,value)=>{
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => { const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => { nextTick(() => {
console.log('searchTableSuccess',formField, searchField, val, formRef, type, row) console.log('searchTableSuccess',formField, searchField, val, formRef, type, row)
CustomerreturnRequestMain.allSchemas.formSchema.forEach(item => {
if(item.field == 'deliverRecordNumber') {
if(customerCode.value != null){
item.componentProps.searchCondition = [
{
key: 'customerCode',
value: customerCode.value ,
isMainValue: false
}]
}
}
})
console.log(128, customerCode.value) console.log(128, customerCode.value)
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'packingNumber') { if(formField=='itemCode'){
row['packingNumber'] = val[0]['packingNumber'] val.forEach(item=>{
row['containerNumber'] = val[0]['containerNumber'] if(tableData.value.find(item1=>item1['itemCode'] == item['code'])){
row['batch'] = val[0]['batch'] message.warning(`物料${item['code']}已经存在`)
row['inventoryStatus'] = val[0]['inventoryStatus'] return
row['fromLocationCode'] = val[0]['locationCode'] }
row['itemCode'] = val[0]['itemCode'] const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
row['uom'] = val[0]['uom'] newRow['itemCode'] = item['itemCode']
}else if(formField == 'packUnit'){ newRow['uom'] = item['uom']
row['packUnit'] = val[0]['packUnit'] newRow['id'] = item['id']
row['packQty'] = val[0]['packQty'] tableData.value.push(newRow)
} else { })
}else{
row[formField] = val[0][searchField] row[formField] = val[0][searchField]
} }
} else { } else {
const setV = {} const setV = {}
if (formField == 'customerCode') { if (formField == 'customerCode') {
setV['deliverRecordNumber'] = ''
setV['q1Number'] = '' setV['q1Number'] = ''
tableData.value = [] tableData.value = []
} }
if(formField == 'deliverRecordNumber') {
setV['deliverRecordNumber'] = val[0]['number']
setV['deliverPlanNumber'] = val[0]['deliverPlanNumber']
// setV['customerCode'] = val[0]['customerCode']
// setV['customerDockCode'] = val[0]['customerDockCode']
//
DeliverRecordDetailApi.getDeliverRecordDetailPageCustomerreturn({pageSize:999,masterId:val[0]['masterId']}).then(res => {
res.list.forEach(obj => {
let value = null
value = obj.fromLocationCode
obj.fromLocationCode = obj.toLocationCode
obj.toLocationCode = ''
obj.packingNumber = '' //
CustomerreturnRequestDetail.allSchemas.tableFormColumns.map(item =>{
if(item.field == 'packingNumber') {
item.isInpuFocusShow = false
item.tableForm.isInpuFocusShow = false
item.tableForm.disabled = true
}
})
})
if (res) {
tableData.value = [...res.list]
originTableData.value = [...res.list]
}
}).catch(err => {
console.log(err)
message.error('错误')
})
} else {
setV[formField] = val[0][searchField] setV[formField] = val[0][searchField]
}
formRef.setValues(setV) formRef.setValues(setV)
} }
}) })
@ -784,6 +738,9 @@ const submitForm = async (formType, submitData) => {
return return
} }
data.subList = tableData.value // data.subList = tableData.value //
data.subList.forEach(item=>{
item['fromLocationCode'] = data['fromLocationCode']
})
formRef.value.formLoading = true formRef.value.formLoading = true
try { try {
if (formType === 'create') { if (formType === 'create') {

Loading…
Cancel
Save