李胜楠
1 year ago
131 changed files with 30125 additions and 518 deletions
@ -0,0 +1,66 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface BackflushRecordDetailbVO { |
|||
processCode: string |
|||
bomVersion: string |
|||
packingNumber: string |
|||
batch: string |
|||
inventoryStatus: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
uom: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品收货记录子列表
|
|||
export const getBackflushRecordDetailbPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/backflush-record-detailb/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/backflush-record-detailb/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品收货记录子详情
|
|||
export const getBackflushRecordDetailb = async (id: number) => { |
|||
return await request.get({ url: `/wms/backflush-record-detailb/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品收货记录子
|
|||
export const createBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => { |
|||
return await request.post({ url: `/wms/backflush-record-detailb/create`, data }) |
|||
} |
|||
|
|||
// 修改制品收货记录子
|
|||
export const updateBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => { |
|||
return await request.put({ url: `/wms/backflush-record-detailb/update`, data }) |
|||
} |
|||
|
|||
// 删除制品收货记录子
|
|||
export const deleteBackflushRecordDetailb = async (id: number) => { |
|||
return await request.delete({ url: `/wms/backflush-record-detailb/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品收货记录子 Excel
|
|||
export const exportBackflushRecordDetailb = async (params) => { |
|||
return await request.download({ url: `/wms/backflush-record-detailb/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/backflush-record-detailb/get-import-template' }) |
|||
} |
@ -0,0 +1,63 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ConsumeRecordDetailbVO { |
|||
batch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
inventoryStatus: string |
|||
packingNumber: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
} |
|||
|
|||
// 查询制品返修记录子列表
|
|||
export const getConsumeRecordDetailbPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/consume-record-detailb/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/consume-record-detailb/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品返修记录子详情
|
|||
export const getConsumeRecordDetailb = async (id: number) => { |
|||
return await request.get({ url: `/wms/consume-record-detailb/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品返修记录子
|
|||
export const createConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => { |
|||
return await request.post({ url: `/wms/consume-record-detailb/create`, data }) |
|||
} |
|||
|
|||
// 修改制品返修记录子
|
|||
export const updateConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => { |
|||
return await request.put({ url: `/wms/consume-record-detailb/update`, data }) |
|||
} |
|||
|
|||
// 删除制品返修记录子
|
|||
export const deleteConsumeRecordDetailb = async (id: number) => { |
|||
return await request.delete({ url: `/wms/consume-record-detailb/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品返修记录子 Excel
|
|||
export const exportConsumeRecordDetailb = async (params) => { |
|||
return await request.download({ url: `/wms/consume-record-detailb/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/consume-record-detailb/get-import-template' }) |
|||
} |
@ -0,0 +1,72 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CountRecordDetailVO { |
|||
countDetailNumber: string |
|||
ownerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
locationCode: string |
|||
locationGroupCode: string |
|||
areaCode: string |
|||
inventoryStatus: string |
|||
countQty: number |
|||
countTime: Date |
|||
countUser: string |
|||
countDescription: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creatorId: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询盘点记录子列表
|
|||
export const getCountRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/count-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/count-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询盘点记录子详情
|
|||
export const getCountRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/count-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增盘点记录子
|
|||
export const createCountRecordDetail = async (data: CountRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/count-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改盘点记录子
|
|||
export const updateCountRecordDetail = async (data: CountRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/count-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除盘点记录子
|
|||
export const deleteCountRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/count-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出盘点记录子 Excel
|
|||
export const exportCountRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/count-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/count-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,65 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CountRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
planNumber: string |
|||
stage: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询盘点记录主列表
|
|||
export const getCountRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/count-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/count-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询盘点记录主详情
|
|||
export const getCountRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/count-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增盘点记录主
|
|||
export const createCountRecordMain = async (data: CountRecordMainVO) => { |
|||
return await request.post({ url: `/wms/count-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改盘点记录主
|
|||
export const updateCountRecordMain = async (data: CountRecordMainVO) => { |
|||
return await request.put({ url: `/wms/count-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除盘点记录主
|
|||
export const deleteCountRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/count-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出盘点记录主 Excel
|
|||
export const exportCountRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/count-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/count-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,69 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CountadjustRecordDetailVO { |
|||
countDetailNumber: string |
|||
ownerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
locationCode: string |
|||
inventoryStatus: string |
|||
inventoryQty: number |
|||
countQty: number |
|||
adjustQty: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询盘点调整记录子列表
|
|||
export const getCountadjustRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/countadjust-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/countadjust-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询盘点调整记录子详情
|
|||
export const getCountadjustRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/countadjust-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增盘点调整记录子
|
|||
export const createCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/countadjust-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改盘点调整记录子
|
|||
export const updateCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/countadjust-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除盘点调整记录子
|
|||
export const deleteCountadjustRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/countadjust-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出盘点调整记录子 Excel
|
|||
export const exportCountadjustRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/countadjust-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/countadjust-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,63 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CountadjustRecordMainVO { |
|||
requestNumber: string |
|||
countRecordNumber: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询盘点调整记录主列表
|
|||
export const getCountadjustRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/countadjust-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/countadjust-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询盘点调整记录主详情
|
|||
export const getCountadjustRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/countadjust-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增盘点调整记录主
|
|||
export const createCountadjustRecordMain = async (data: CountadjustRecordMainVO) => { |
|||
return await request.post({ url: `/wms/countadjust-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改盘点调整记录主
|
|||
export const updateCountadjustRecordMain = async (data: CountadjustRecordMainVO) => { |
|||
return await request.put({ url: `/wms/countadjust-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除盘点调整记录主
|
|||
export const deleteCountadjustRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/countadjust-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出盘点调整记录主 Excel
|
|||
export const exportCountadjustRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/countadjust-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/countadjust-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,78 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomerreceiptRecordDetailVO { |
|||
soNumber: string |
|||
soLine: string |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromContainerNumber: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toContainerNumber: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询客户收货记录子列表
|
|||
export const getCustomerreceiptRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customerreceipt-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customerreceipt-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户收货记录子详情
|
|||
export const getCustomerreceiptRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/customerreceipt-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户收货记录子
|
|||
export const createCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/customerreceipt-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改客户收货记录子
|
|||
export const updateCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/customerreceipt-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除客户收货记录子
|
|||
export const deleteCustomerreceiptRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customerreceipt-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户收货记录子 Excel
|
|||
export const exportCustomerreceiptRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/customerreceipt-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customerreceipt-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomerreceiptRecordMainVO { |
|||
requestNumber: string |
|||
deliverRecordNumber: string |
|||
deliverPlanNumber: string |
|||
customerCode: string |
|||
customerDockCode: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromLocationTypes: string |
|||
toLocationTypes: string |
|||
fromAreaCodes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询客户收货记录主列表
|
|||
export const getCustomerreceiptRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customerreceipt-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customerreceipt-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户收货记录主详情
|
|||
export const getCustomerreceiptRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/customerreceipt-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户收货记录主
|
|||
export const createCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => { |
|||
return await request.post({ url: `/wms/customerreceipt-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改客户收货记录主
|
|||
export const updateCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => { |
|||
return await request.put({ url: `/wms/customerreceipt-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除客户收货记录主
|
|||
export const deleteCustomerreceiptRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customerreceipt-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户收货记录主 Excel
|
|||
export const exportCustomerreceiptRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/customerreceipt-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customerreceipt-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,78 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomerreturnRecordDetailVO { |
|||
soNumber: string |
|||
soLine: string |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromContainerNumber: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toContainerNumber: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询客户退货记录子列表
|
|||
export const getCustomerreturnRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customerreturn-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customerreturn-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户退货记录子详情
|
|||
export const getCustomerreturnRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/customerreturn-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户退货记录子
|
|||
export const createCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/customerreturn-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改客户退货记录子
|
|||
export const updateCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/customerreturn-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除客户退货记录子
|
|||
export const deleteCustomerreturnRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customerreturn-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户退货记录子 Excel
|
|||
export const exportCustomerreturnRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/customerreturn-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customerreturn-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomerreturnRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
deliverRecordNumber: string |
|||
deliverPlanNumber: string |
|||
customerCode: string |
|||
customerDockCode: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creatorId: string |
|||
code: string |
|||
fromLocationTypes: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
toDockCode: string |
|||
available: string |
|||
fromAreaCodes: string |
|||
} |
|||
|
|||
// 查询客户退货记录主列表
|
|||
export const getCustomerreturnRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customerreturn-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customerreturn-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户退货记录主详情
|
|||
export const getCustomerreturnRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/customerreturn-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户退货记录主
|
|||
export const createCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => { |
|||
return await request.post({ url: `/wms/customerreturn-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改客户退货记录主
|
|||
export const updateCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => { |
|||
return await request.put({ url: `/wms/customerreturn-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除客户退货记录主
|
|||
export const deleteCustomerreturnRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customerreturn-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户退货记录主 Excel
|
|||
export const exportCustomerreturnRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/customerreturn-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customerreturn-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,71 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomersettleRecordDetailVO { |
|||
soNumber: string |
|||
soLine: string |
|||
ownerCode: string |
|||
packingNumber: string |
|||
batch: string |
|||
inventoryStatus: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
siteId: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询客户结算记录子列表
|
|||
export const getCustomersettleRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customersettle-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customersettle-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户结算记录子详情
|
|||
export const getCustomersettleRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/customersettle-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户结算记录子
|
|||
export const createCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/customersettle-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改客户结算记录子
|
|||
export const updateCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/customersettle-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除客户结算记录子
|
|||
export const deleteCustomersettleRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customersettle-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户结算记录子 Excel
|
|||
export const exportCustomersettleRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/customersettle-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customersettle-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,67 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface CustomersettleRecordMainVO { |
|||
requestNumber: string |
|||
deliverRecordNumber: string |
|||
deliverPlanNumber: string |
|||
customerCode: string |
|||
outTransactionType: string |
|||
inTransactionYpe: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
createTime: Date |
|||
creator: string |
|||
remark: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询客户结算记录主列表
|
|||
export const getCustomersettleRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/customersettle-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/customersettle-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询客户结算记录主详情
|
|||
export const getCustomersettleRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/customersettle-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增客户结算记录主
|
|||
export const createCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => { |
|||
return await request.post({ url: `/wms/customersettle-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改客户结算记录主
|
|||
export const updateCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => { |
|||
return await request.put({ url: `/wms/customersettle-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除客户结算记录主
|
|||
export const deleteCustomersettleRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/customersettle-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出客户结算记录主 Excel
|
|||
export const exportCustomersettleRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/customersettle-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/customersettle-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface DeliverRecordDetailVO { |
|||
soNumber: string |
|||
soLine: string |
|||
packingNumber: string |
|||
batch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromContainerNumber: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toContainerNumber: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询发货记录子列表
|
|||
export const getDeliverRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/deliver-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/deliver-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询发货记录子详情
|
|||
export const getDeliverRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/deliver-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增发货记录子
|
|||
export const createDeliverRecordDetail = async (data: DeliverRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/deliver-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改发货记录子
|
|||
export const updateDeliverRecordDetail = async (data: DeliverRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/deliver-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除发货记录子
|
|||
export const deleteDeliverRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/deliver-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出发货记录子 Excel
|
|||
export const exportDeliverRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/deliver-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/deliver-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface DeliverRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
deliverPlanNumber: string |
|||
customerDeliverNumber: string |
|||
customerCode: string |
|||
customerDockCode: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
fromDockCode: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询发货记录主列表
|
|||
export const getDeliverRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/deliver-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/deliver-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询发货记录主详情
|
|||
export const getDeliverRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/deliver-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增发货记录主
|
|||
export const createDeliverRecordMain = async (data: DeliverRecordMainVO) => { |
|||
return await request.post({ url: `/wms/deliver-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改发货记录主
|
|||
export const updateDeliverRecordMain = async (data: DeliverRecordMainVO) => { |
|||
return await request.put({ url: `/wms/deliver-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除发货记录主
|
|||
export const deleteDeliverRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/deliver-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出发货记录主 Excel
|
|||
export const exportDeliverRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/deliver-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/deliver-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,66 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface DismantleRecordDetailbVO { |
|||
processCode: string |
|||
bomVersion: string |
|||
batch: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
inventoryStatus: string |
|||
packingNumber: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品拆解记录子列表
|
|||
export const getDismantleRecordDetailbPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/dismantle-record-detailb/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/dismantle-record-detailb/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品拆解记录子详情
|
|||
export const getDismantleRecordDetailb = async (id: number) => { |
|||
return await request.get({ url: `/wms/dismantle-record-detailb/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品拆解记录子
|
|||
export const createDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => { |
|||
return await request.post({ url: `/wms/dismantle-record-detailb/create`, data }) |
|||
} |
|||
|
|||
// 修改制品拆解记录子
|
|||
export const updateDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => { |
|||
return await request.put({ url: `/wms/dismantle-record-detailb/update`, data }) |
|||
} |
|||
|
|||
// 删除制品拆解记录子
|
|||
export const deleteDismantleRecordDetailb = async (id: number) => { |
|||
return await request.delete({ url: `/wms/dismantle-record-detailb/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品拆解记录子 Excel
|
|||
export const exportDismantleRecordDetailb = async (params) => { |
|||
return await request.download({ url: `/wms/dismantle-record-detailb/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/dismantle-record-detailb/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InspectRecordDetailVO { |
|||
packingNumber: string |
|||
containerNumber: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
sampleQty: number |
|||
goodQty: number |
|||
failedQty: number |
|||
crackQty: number |
|||
notPassedQty: number |
|||
failedReason: string |
|||
photos: string |
|||
inspectUser: string |
|||
inspectResult: string |
|||
appearance: string |
|||
volume: string |
|||
weight: string |
|||
otherProperties: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
creationTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询检验记录子列表
|
|||
export const getInspectRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inspect-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inspect-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询检验记录子详情
|
|||
export const getInspectRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/inspect-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增检验记录子
|
|||
export const createInspectRecordDetail = async (data: InspectRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/inspect-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改检验记录子
|
|||
export const updateInspectRecordDetail = async (data: InspectRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/inspect-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除检验记录子
|
|||
export const deleteInspectRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inspect-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出检验记录子 Excel
|
|||
export const exportInspectRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/inspect-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inspect-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,82 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InspectRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
purchaseReceiptRecordNumber: string |
|||
supplierCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
poNumber: string |
|||
poLine: string |
|||
batch: string |
|||
inspectType: string |
|||
nextAction: string |
|||
sampleMethod: string |
|||
uom: string |
|||
receiveQty: number |
|||
batchGoodQty: number |
|||
batchFaildQty: number |
|||
batchCrackQty: number |
|||
batchNotPassedQty: number |
|||
itemCode: string |
|||
fromWarehouseCode: string |
|||
fromAreaCodes: string |
|||
ownerCode: string |
|||
available: string |
|||
sampleQty: number |
|||
fromLocationTypes: string |
|||
} |
|||
|
|||
// 查询检验记录主列表
|
|||
export const getInspectRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inspect-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inspect-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询检验记录主详情
|
|||
export const getInspectRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/inspect-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增检验记录主
|
|||
export const createInspectRecordMain = async (data: InspectRecordMainVO) => { |
|||
return await request.post({ url: `/wms/inspect-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改检验记录主
|
|||
export const updateInspectRecordMain = async (data: InspectRecordMainVO) => { |
|||
return await request.put({ url: `/wms/inspect-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除检验记录主
|
|||
export const deleteInspectRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inspect-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出检验记录主 Excel
|
|||
export const exportInspectRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/inspect-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inspect-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,82 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventorychangeRecordDetailVO { |
|||
locationCode: string |
|||
locationGroupCode: string |
|||
areaCode: string |
|||
fromQty: number |
|||
fromOwnerCode: string |
|||
fromPackingNumber: string |
|||
fromContainerNumber: string |
|||
fromBatch: string |
|||
fromAltBatch: string |
|||
fromArriveDate: Date |
|||
fromProduceDate: Date |
|||
fromExpireDate: Date |
|||
fromInventoryStatus: string |
|||
toQty: number |
|||
toOwnerCode: string |
|||
toPackingNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
toAltBatch: string |
|||
toArriveDate: Date |
|||
toProduceDate: Date |
|||
toExpireDate: Date |
|||
toInventoryStatus: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询库存修改记录子列表
|
|||
export const getInventorychangeRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventorychange-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventorychange-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存修改记录子详情
|
|||
export const getInventorychangeRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventorychange-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存修改记录子
|
|||
export const createInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/inventorychange-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改库存修改记录子
|
|||
export const updateInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/inventorychange-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除库存修改记录子
|
|||
export const deleteInventorychangeRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventorychange-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存修改记录子 Excel
|
|||
export const exportInventorychangeRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/inventorychange-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventorychange-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,62 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventorychangeRecordMainVO { |
|||
requestNumber: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询库存修改记录主列表
|
|||
export const getInventorychangeRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventorychange-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventorychange-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存修改记录主详情
|
|||
export const getInventorychangeRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventorychange-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存修改记录主
|
|||
export const createInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => { |
|||
return await request.post({ url: `/wms/inventorychange-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改库存修改记录主
|
|||
export const updateInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => { |
|||
return await request.put({ url: `/wms/inventorychange-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除库存修改记录主
|
|||
export const deleteInventorychangeRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventorychange-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存修改记录主 Excel
|
|||
export const exportInventorychangeRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/inventorychange-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventorychange-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,75 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventoryinitRecordDetailVO { |
|||
ownerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
altBatch: string |
|||
arriveDate: Date |
|||
produceDate: Date |
|||
expireDate: Date |
|||
inventoryStatus: string |
|||
locationCode: string |
|||
locationGroupCode: string |
|||
areaCode: string |
|||
stdPackQty: number |
|||
stdPackUnit: string |
|||
qty: number |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询库存初始化记录子列表
|
|||
export const getInventoryinitRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventoryinit-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventoryinit-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存初始化记录子详情
|
|||
export const getInventoryinitRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventoryinit-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存初始化记录子
|
|||
export const createInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/inventoryinit-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改库存初始化记录子
|
|||
export const updateInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/inventoryinit-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除库存初始化记录子
|
|||
export const deleteInventoryinitRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventoryinit-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存初始化记录子 Excel
|
|||
export const exportInventoryinitRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/inventoryinit-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventoryinit-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,62 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventoryinitRecordMainVO { |
|||
requestNumber: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询库存初始化记录主列表
|
|||
export const getInventoryinitRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventoryinit-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventoryinit-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存初始化记录主详情
|
|||
export const getInventoryinitRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventoryinit-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存初始化记录主
|
|||
export const createInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => { |
|||
return await request.post({ url: `/wms/inventoryinit-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改库存初始化记录主
|
|||
export const updateInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => { |
|||
return await request.put({ url: `/wms/inventoryinit-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除库存初始化记录主
|
|||
export const deleteInventoryinitRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventoryinit-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存初始化记录主 Excel
|
|||
export const exportInventoryinitRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/inventoryinit-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventoryinit-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventorymoveRecordDetailVO { |
|||
onTheWayLocationCode: string |
|||
fromOwnerCode: string |
|||
fromPackingNumber: string |
|||
fromContainerNumber: string |
|||
fromBatch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
fromInventoryStatus: string |
|||
toOwnerCode: string |
|||
toPackingNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
toInventoryStatus: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询库存转移记录子列表
|
|||
export const getInventorymoveRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventorymove-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventorymove-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存转移记录子详情
|
|||
export const getInventorymoveRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventorymove-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存转移记录子
|
|||
export const createInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/inventorymove-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改库存转移记录子
|
|||
export const updateInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/inventorymove-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除库存转移记录子
|
|||
export const deleteInventorymoveRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventorymove-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存转移记录子 Excel
|
|||
export const exportInventorymoveRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/inventorymove-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventorymove-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,69 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface InventorymoveRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
useOnTheWayLocation: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询库存转移记录主列表
|
|||
export const getInventorymoveRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/inventorymove-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/inventorymove-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询库存转移记录主详情
|
|||
export const getInventorymoveRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/inventorymove-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增库存转移记录主
|
|||
export const createInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => { |
|||
return await request.post({ url: `/wms/inventorymove-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改库存转移记录主
|
|||
export const updateInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => { |
|||
return await request.put({ url: `/wms/inventorymove-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除库存转移记录主
|
|||
export const deleteInventorymoveRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/inventorymove-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出库存转移记录主 Excel
|
|||
export const exportInventorymoveRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/inventorymove-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,77 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface IssueRecordDetailVO { |
|||
productionLineCode: string |
|||
workStationCode: string |
|||
onTheWayLocationCode: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
toOwnerCode: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
fromBatch: string |
|||
toBatch: string |
|||
fromLocationCode: string |
|||
toLocationCode: string |
|||
fromLocationGroupCode: string |
|||
toLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询发料记录子列表
|
|||
export const getIssueRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/issue-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/issue-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询发料记录子详情
|
|||
export const getIssueRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/issue-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增发料记录子
|
|||
export const createIssueRecordDetail = async (data: IssueRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/issue-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改发料记录子
|
|||
export const updateIssueRecordDetail = async (data: IssueRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/issue-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除发料记录子
|
|||
export const deleteIssueRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/issue-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出发料记录子 Excel
|
|||
export const exportIssueRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/issue-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/issue-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface IssueRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
workshopCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
useOnTheWayLocation: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询发料记录主列表
|
|||
export const getIssueRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/issue-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/issue-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询发料记录主详情
|
|||
export const getIssueRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/issue-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增发料记录主
|
|||
export const createIssueRecordMain = async (data: IssueRecordMainVO) => { |
|||
return await request.post({ url: `/wms/issue-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改发料记录主
|
|||
export const updateIssueRecordMain = async (data: IssueRecordMainVO) => { |
|||
return await request.put({ url: `/wms/issue-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除发料记录主
|
|||
export const deleteIssueRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/issue-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出发料记录主 Excel
|
|||
export const exportIssueRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/issue-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/issue-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,64 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface OfflinesettlementRecordDetailVO { |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
inventoryStatus: string |
|||
locationCode: string |
|||
locationGroupCode: string |
|||
areaCode: string |
|||
itemCode: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
number: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询下线结算记录子列表
|
|||
export const getOfflinesettlementRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/offlinesettlement-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/offlinesettlement-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询下线结算记录子详情
|
|||
export const getOfflinesettlementRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/offlinesettlement-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增下线结算记录子
|
|||
export const createOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/offlinesettlement-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改下线结算记录子
|
|||
export const updateOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/offlinesettlement-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除下线结算记录子
|
|||
export const deleteOfflinesettlementRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/offlinesettlement-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出下线结算记录子 Excel
|
|||
export const exportOfflinesettlementRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/offlinesettlement-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/offlinesettlement-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,62 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface OfflinesettlementRecordMainVO { |
|||
requestNumber: string |
|||
productReceiptRecordNumber: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询下线结算记录主列表
|
|||
export const getOfflinesettlementRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/offlinesettlement-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/offlinesettlement-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询下线结算记录主详情
|
|||
export const getOfflinesettlementRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/offlinesettlement-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增下线结算记录主
|
|||
export const createOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => { |
|||
return await request.post({ url: `/wms/offlinesettlement-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改下线结算记录主
|
|||
export const updateOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => { |
|||
return await request.put({ url: `/wms/offlinesettlement-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除下线结算记录主
|
|||
export const deleteOfflinesettlementRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/offlinesettlement-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出下线结算记录主 Excel
|
|||
export const exportOfflinesettlementRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/offlinesettlement-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/offlinesettlement-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,64 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface OnlinesettlementRecordDetailVO { |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
inventoryStatus: string |
|||
locationCode: string |
|||
locationGroupCode: string |
|||
areaCode: string |
|||
itemCode: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
number: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询上线结算记录子列表
|
|||
export const getOnlinesettlementRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/onlinesettlement-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/onlinesettlement-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询上线结算记录子详情
|
|||
export const getOnlinesettlementRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/onlinesettlement-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增上线结算记录子
|
|||
export const createOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/onlinesettlement-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改上线结算记录子
|
|||
export const updateOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/onlinesettlement-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除上线结算记录子
|
|||
export const deleteOnlinesettlementRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/onlinesettlement-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出上线结算记录子 Excel
|
|||
export const exportOnlinesettlementRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/onlinesettlement-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/onlinesettlement-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,62 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface OnlinesettlementRecordMainVO { |
|||
requestNumber: string |
|||
issueRecordNumber: string |
|||
warehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询上线结算记录主列表
|
|||
export const getOnlinesettlementRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/onlinesettlement-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/onlinesettlement-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询上线结算记录主详情
|
|||
export const getOnlinesettlementRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/onlinesettlement-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增上线结算记录主
|
|||
export const createOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => { |
|||
return await request.post({ url: `/wms/onlinesettlement-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改上线结算记录主
|
|||
export const updateOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => { |
|||
return await request.put({ url: `/wms/onlinesettlement-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除上线结算记录主
|
|||
export const deleteOnlinesettlementRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/onlinesettlement-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出上线结算记录主 Excel
|
|||
export const exportOnlinesettlementRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/onlinesettlement-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/onlinesettlement-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PickRecordDetailVO { |
|||
fromPackingNumber: string |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromContainerNumber: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toContainerNumber: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
toPackingNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询拣料记录子列表
|
|||
export const getPickRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/pick-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/pick-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询拣料记录子详情
|
|||
export const getPickRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/pick-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增拣料记录子
|
|||
export const createPickRecordDetail = async (data: PickRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/pick-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改拣料记录子
|
|||
export const updatePickRecordDetail = async (data: PickRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/pick-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除拣料记录子
|
|||
export const deletePickRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/pick-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出拣料记录子 Excel
|
|||
export const exportPickRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/pick-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/pick-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,68 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PickRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询拣料记录主列表
|
|||
export const getPickRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/pick-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/pick-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询拣料记录主详情
|
|||
export const getPickRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/pick-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增拣料记录主
|
|||
export const createPickRecordMain = async (data: PickRecordMainVO) => { |
|||
return await request.post({ url: `/wms/pick-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改拣料记录主
|
|||
export const updatePickRecordMain = async (data: PickRecordMainVO) => { |
|||
return await request.put({ url: `/wms/pick-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除拣料记录主
|
|||
export const deletePickRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/pick-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出拣料记录主 Excel
|
|||
export const exportPickRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/pick-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/pick-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,72 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductdismantleRecordDetailaVO { |
|||
fromOwnerCode: string |
|||
productionLineCode: string |
|||
workStationCode: string |
|||
processCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
produceDate: Date |
|||
expireDate: Date |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
inventoryStatus: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品拆解记录子列表
|
|||
export const getProductdismantleRecordDetailaPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productdismantle-record-detaila/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productdismantle-record-detaila/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品拆解记录子详情
|
|||
export const getProductdismantleRecordDetaila = async (id: number) => { |
|||
return await request.get({ url: `/wms/productdismantle-record-detaila/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品拆解记录子
|
|||
export const createProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => { |
|||
return await request.post({ url: `/wms/productdismantle-record-detaila/create`, data }) |
|||
} |
|||
|
|||
// 修改制品拆解记录子
|
|||
export const updateProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => { |
|||
return await request.put({ url: `/wms/productdismantle-record-detaila/update`, data }) |
|||
} |
|||
|
|||
// 删除制品拆解记录子
|
|||
export const deleteProductdismantleRecordDetaila = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productdismantle-record-detaila/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品拆解记录子 Excel
|
|||
export const exportProductdismantleRecordDetaila = async (params) => { |
|||
return await request.download({ url: `/wms/productdismantle-record-detaila/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productdismantle-record-detaila/get-import-template' }) |
|||
} |
@ -0,0 +1,67 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductdismantleRecordMainVO { |
|||
requestNumber: string |
|||
workshopCode: string |
|||
team: string |
|||
shift: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询制品拆解记录主列表
|
|||
export const getProductdismantleRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productdismantle-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productdismantle-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品拆解记录主详情
|
|||
export const getProductdismantleRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productdismantle-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品拆解记录主
|
|||
export const createProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productdismantle-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改制品拆解记录主
|
|||
export const updateProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productdismantle-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除制品拆解记录主
|
|||
export const deleteProductdismantleRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productdismantle-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品拆解记录主 Excel
|
|||
export const exportProductdismantleRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productdismantle-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productdismantle-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,77 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductionreceiptRecordDetailVO { |
|||
productionLineCode: string |
|||
workStationCode: string |
|||
onTheWayLocationCode: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromBatch: string |
|||
toBatch: string |
|||
inventoryStatus: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
fromOwnerCode: string |
|||
toOwnerCode: string |
|||
} |
|||
|
|||
// 查询生产收料记录子列表
|
|||
export const getProductionreceiptRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productionreceipt-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productionreceipt-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询生产收料记录子详情
|
|||
export const getProductionreceiptRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productionreceipt-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增生产收料记录子
|
|||
export const createProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productionreceipt-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改生产收料记录子
|
|||
export const updateProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productionreceipt-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除生产收料记录子
|
|||
export const deleteProductionreceiptRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productionreceipt-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出生产收料记录子 Excel
|
|||
export const exportProductionreceiptRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productionreceipt-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productionreceipt-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductionreceiptRecordMainVO { |
|||
issueJobNumber: string |
|||
jobNumber: string |
|||
workshopCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
useOnTheWayLocation: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询生产收料记录主列表
|
|||
export const getProductionreceiptRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productionreceipt-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productionreceipt-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询生产收料记录主详情
|
|||
export const getProductionreceiptRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productionreceipt-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增生产收料记录主
|
|||
export const createProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productionreceipt-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改生产收料记录主
|
|||
export const updateProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productionreceipt-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除生产收料记录主
|
|||
export const deleteProductionreceiptRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productionreceipt-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出生产收料记录主 Excel
|
|||
export const exportProductionreceiptRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productionreceipt-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productionreceipt-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductionreturnRecordDetailVO { |
|||
productionLineCode: string |
|||
workStationCode: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromPackingNumber: string |
|||
fromContainerNumber: string |
|||
fromBatch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toPackingNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询生产退料记录子列表
|
|||
export const getProductionreturnRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productionreturn-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productionreturn-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询生产退料记录子详情
|
|||
export const getProductionreturnRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productionreturn-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增生产退料记录子
|
|||
export const createProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productionreturn-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改生产退料记录子
|
|||
export const updateProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productionreturn-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除生产退料记录子
|
|||
export const deleteProductionreturnRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productionreturn-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出生产退料记录子 Excel
|
|||
export const exportProductionreturnRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productionreturn-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productionreturn-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,69 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductionreturnRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
workshopCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询生产退料记录主列表
|
|||
export const getProductionreturnRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productionreturn-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productionreturn-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询生产退料记录主详情
|
|||
export const getProductionreturnRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productionreturn-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增生产退料记录主
|
|||
export const createProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productionreturn-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改生产退料记录主
|
|||
export const updateProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productionreturn-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除生产退料记录主
|
|||
export const deleteProductionreturnRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productionreturn-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出生产退料记录主 Excel
|
|||
export const exportProductionreturnRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productionreturn-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productionreturn-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductputawayRecordDetailVO { |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromBatch: string |
|||
toBatch: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
inventoryStatus: string |
|||
poNumber: string |
|||
poLine: string |
|||
fromOwnerCode: string |
|||
toOwnerCode: string |
|||
fromLocationCode: string |
|||
toLocationCode: string |
|||
fromLocationGroupCode: string |
|||
toLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品上架记录子列表
|
|||
export const getProductputawayRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productputaway-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productputaway-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品上架记录子详情
|
|||
export const getProductputawayRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productputaway-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品上架记录子
|
|||
export const createProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productputaway-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改制品上架记录子
|
|||
export const updateProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productputaway-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除制品上架记录子
|
|||
export const deleteProductputawayRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productputaway-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品上架记录子 Excel
|
|||
export const exportProductputawayRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productputaway-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productputaway-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductputawayRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
supplierCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
ruleUserId: number |
|||
available: string |
|||
} |
|||
|
|||
// 查询制品上架记录主列表
|
|||
export const getProductputawayRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productputaway-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productputaway-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品上架记录主详情
|
|||
export const getProductputawayRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productputaway-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品上架记录主
|
|||
export const createProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productputaway-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改制品上架记录主
|
|||
export const updateProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productputaway-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除制品上架记录主
|
|||
export const deleteProductputawayRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productputaway-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品上架记录主 Excel
|
|||
export const exportProductputawayRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productputaway-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productputaway-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductreceiptRecordDetailVO { |
|||
productionlineCode: string |
|||
workStationCode: string |
|||
processCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
produceDate: Date |
|||
expireDate: Date |
|||
inventoryStatus: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
toOwnerCode: string |
|||
woNumber: string |
|||
woLine: string |
|||
stdPackQty: number |
|||
stdPackUnit: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品收货记录子列表
|
|||
export const getProductreceiptRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productreceipt-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productreceipt-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品收货记录子详情
|
|||
export const getProductreceiptRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productreceipt-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品收货记录子
|
|||
export const createProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productreceipt-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改制品收货记录子
|
|||
export const updateProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productreceipt-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除制品收货记录子
|
|||
export const deleteProductreceiptRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productreceipt-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品收货记录子 Excel
|
|||
export const exportProductreceiptRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productreceipt-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productreceipt-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,69 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductreceiptRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
productionPlanNumber: string |
|||
workshopCode: string |
|||
team: string |
|||
shift: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询制品收货记录主列表
|
|||
export const getProductreceiptRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productreceipt-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productreceipt-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品收货记录主详情
|
|||
export const getProductreceiptRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productreceipt-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品收货记录主
|
|||
export const createProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productreceipt-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改制品收货记录主
|
|||
export const updateProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productreceipt-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除制品收货记录主
|
|||
export const deleteProductreceiptRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productreceipt-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品收货记录主 Excel
|
|||
export const exportProductreceiptRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productreceipt-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productreceipt-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,72 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductrepairRecordDetailVO { |
|||
fromOwnerCode: string |
|||
productionLineCode: string |
|||
workStationCode: string |
|||
processCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
produceDate: Date |
|||
expireDate: Date |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
inventoryStatus: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品返修记录子列表
|
|||
export const getProductrepairRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productrepair-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productrepair-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品返修记录子详情
|
|||
export const getProductrepairRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productrepair-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品返修记录子
|
|||
export const createProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productrepair-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改制品返修记录子
|
|||
export const updateProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productrepair-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除制品返修记录子
|
|||
export const deleteProductrepairRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productrepair-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品返修记录子 Excel
|
|||
export const exportProductrepairRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productrepair-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productrepair-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,67 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductrepairRecordMainVO { |
|||
requestNumber: string |
|||
workshopCode: string |
|||
team: string |
|||
shift: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询制品返修记录主列表
|
|||
export const getProductrepairRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productrepair-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productrepair-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品返修记录主详情
|
|||
export const getProductrepairRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productrepair-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品返修记录主
|
|||
export const createProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productrepair-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改制品返修记录主
|
|||
export const updateProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productrepair-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除制品返修记录主
|
|||
export const deleteProductrepairRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productrepair-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品返修记录主 Excel
|
|||
export const exportProductrepairRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productrepair-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productrepair-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductscrapRecordDetailVO { |
|||
fromOwnerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
inventoryStatus: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询制品报废记录子列表
|
|||
export const getProductscrapRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productscrap-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productscrap-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品报废记录子详情
|
|||
export const getProductscrapRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/productscrap-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品报废记录子
|
|||
export const createProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/productscrap-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改制品报废记录子
|
|||
export const updateProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/productscrap-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除制品报废记录子
|
|||
export const deleteProductscrapRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productscrap-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品报废记录子 Excel
|
|||
export const exportProductscrapRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/productscrap-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productscrap-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,66 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ProductscrapRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
ruleUserId: number |
|||
available: string |
|||
} |
|||
|
|||
// 查询制品报废记录主列表
|
|||
export const getProductscrapRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/productscrap-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/productscrap-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询制品报废记录主详情
|
|||
export const getProductscrapRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/productscrap-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增制品报废记录主
|
|||
export const createProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => { |
|||
return await request.post({ url: `/wms/productscrap-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改制品报废记录主
|
|||
export const updateProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => { |
|||
return await request.put({ url: `/wms/productscrap-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除制品报废记录主
|
|||
export const deleteProductscrapRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/productscrap-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出制品报废记录主 Excel
|
|||
export const exportProductscrapRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/productscrap-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/productscrap-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,66 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PurchaseclaimRecordDetailVO { |
|||
batch: string |
|||
altBatch: string |
|||
poNumber: string |
|||
poLine: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询采购索赔记录子列表
|
|||
export const getPurchaseclaimRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/purchaseclaim-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/purchaseclaim-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询采购索赔记录子详情
|
|||
export const getPurchaseclaimRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/purchaseclaim-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增采购索赔记录子
|
|||
export const createPurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/purchaseclaim-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改采购索赔记录子
|
|||
export const updatePurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/purchaseclaim-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除采购索赔记录子
|
|||
export const deletePurchaseclaimRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/purchaseclaim-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出采购索赔记录子 Excel
|
|||
export const exportPurchaseclaimRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/purchaseclaim-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/purchaseclaim-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,64 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PurchaseclaimRecordMainVO { |
|||
requestNumber: string |
|||
asnNumber: string |
|||
ppNumber: string |
|||
supplierCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询采购索赔记录主列表
|
|||
export const getPurchaseclaimRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/purchaseclaim-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/purchaseclaim-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询采购索赔记录主详情
|
|||
export const getPurchaseclaimRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/purchaseclaim-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增采购索赔记录主
|
|||
export const createPurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => { |
|||
return await request.post({ url: `/wms/purchaseclaim-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改采购索赔记录主
|
|||
export const updatePurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => { |
|||
return await request.put({ url: `/wms/purchaseclaim-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除采购索赔记录主
|
|||
export const deletePurchaseclaimRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/purchaseclaim-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出采购索赔记录主 Excel
|
|||
export const exportPurchaseclaimRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/purchaseclaim-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/purchaseclaim-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,80 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PurchasereturnRecordDetailVO { |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromContainerNumber: string |
|||
fromBatch: string |
|||
altBatch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
inventoryStatus: string |
|||
poNumber: string |
|||
poLine: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
toContainerNumber: string |
|||
fromOwnerCode: string |
|||
toOwnerCode: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询采购退货记录子列表
|
|||
export const getPurchasereturnRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/purchasereturn-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询采购退货记录子详情
|
|||
export const getPurchasereturnRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/purchasereturn-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增采购退货记录子
|
|||
export const createPurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/purchasereturn-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改采购退货记录子
|
|||
export const updatePurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/purchasereturn-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除采购退货记录子
|
|||
export const deletePurchasereturnRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/purchasereturn-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出采购退货记录子 Excel
|
|||
export const exportPurchasereturnRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/purchasereturn-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/purchasereturn-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PurchasereturnRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
purchaseReceiptRecordNumber: string |
|||
asnNumber: string |
|||
ppNumber: string |
|||
supplierCode: string |
|||
fromDockCode: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromLocationTypes: string |
|||
toLocationTypes: string |
|||
fromAreaCodes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询采购退货记录主列表
|
|||
export const getPurchasereturnRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/purchasereturn-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/purchasereturn-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询采购退货记录主详情
|
|||
export const getPurchasereturnRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/purchasereturn-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增采购退货记录主
|
|||
export const createPurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => { |
|||
return await request.post({ url: `/wms/purchasereturn-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改采购退货记录主
|
|||
export const updatePurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => { |
|||
return await request.put({ url: `/wms/purchasereturn-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除采购退货记录主
|
|||
export const deletePurchasereturnRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/purchasereturn-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出采购退货记录主 Excel
|
|||
export const exportPurchasereturnRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/purchasereturn-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/purchasereturn-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,76 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PutawayRecordDetailVO { |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
poNumber: string |
|||
poLine: string |
|||
fromOwnerCode: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询上架记录子列表
|
|||
export const getPutawayRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/putaway-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/putaway-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询上架记录子详情
|
|||
export const getPutawayRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/putaway-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增上架记录子
|
|||
export const createPutawayRecordDetail = async (data: PutawayRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/putaway-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改上架记录子
|
|||
export const updatePutawayRecordDetail = async (data: PutawayRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/putaway-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除上架记录子
|
|||
export const deletePutawayRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/putaway-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出上架记录子 Excel
|
|||
export const exportPutawayRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/putaway-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/putaway-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,69 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface PutawayRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
supplierCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询上架记录主列表
|
|||
export const getPutawayRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/putaway-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/putaway-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询上架记录主详情
|
|||
export const getPutawayRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/putaway-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增上架记录主
|
|||
export const createPutawayRecordMain = async (data: PutawayRecordMainVO) => { |
|||
return await request.post({ url: `/wms/putaway-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改上架记录主
|
|||
export const updatePutawayRecordMain = async (data: PutawayRecordMainVO) => { |
|||
return await request.put({ url: `/wms/putaway-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除上架记录主
|
|||
export const deletePutawayRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/putaway-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出上架记录主 Excel
|
|||
export const exportPutawayRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/putaway-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/putaway-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface RepleinshRecordDetailVO { |
|||
fromPackingNumber: string |
|||
fromContainerNumber: string |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
toPackingNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询补料记录子列表
|
|||
export const getRepleinshRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/repleinsh-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/repleinsh-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询补料记录子详情
|
|||
export const getRepleinshRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/repleinsh-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增补料记录子
|
|||
export const createRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/repleinsh-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改补料记录子
|
|||
export const updateRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/repleinsh-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除补料记录子
|
|||
export const deleteRepleinshRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/repleinsh-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出补料记录子 Excel
|
|||
export const exportRepleinshRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/repleinsh-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/repleinsh-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,68 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface RepleinshRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询补料记录主列表
|
|||
export const getRepleinshRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/repleinsh-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/repleinsh-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询补料记录主详情
|
|||
export const getRepleinshRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/repleinsh-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增补料记录主
|
|||
export const createRepleinshRecordMain = async (data: RepleinshRecordMainVO) => { |
|||
return await request.post({ url: `/wms/repleinsh-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改补料记录主
|
|||
export const updateRepleinshRecordMain = async (data: RepleinshRecordMainVO) => { |
|||
return await request.put({ url: `/wms/repleinsh-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除补料记录主
|
|||
export const deleteRepleinshRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/repleinsh-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出补料记录主 Excel
|
|||
export const exportRepleinshRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/repleinsh-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/repleinsh-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ScrapRecordDetailVO { |
|||
fromOwnerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
inventoryStatus: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询报废出库记录子列表
|
|||
export const getScrapRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/scrap-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/scrap-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询报废出库记录子详情
|
|||
export const getScrapRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/scrap-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增报废出库记录子
|
|||
export const createScrapRecordDetail = async (data: ScrapRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/scrap-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改报废出库记录子
|
|||
export const updateScrapRecordDetail = async (data: ScrapRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/scrap-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除报废出库记录子
|
|||
export const deleteScrapRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/scrap-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出报废出库记录子 Excel
|
|||
export const exportScrapRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/scrap-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/scrap-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,65 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface ScrapRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询报废出库记录主列表
|
|||
export const getScrapRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/scrap-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/scrap-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询报废出库记录主详情
|
|||
export const getScrapRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/scrap-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增报废出库记录主
|
|||
export const createScrapRecordMain = async (data: ScrapRecordMainVO) => { |
|||
return await request.post({ url: `/wms/scrap-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改报废出库记录主
|
|||
export const updateScrapRecordMain = async (data: ScrapRecordMainVO) => { |
|||
return await request.put({ url: `/wms/scrap-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除报废出库记录主
|
|||
export const deleteScrapRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/scrap-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出报废出库记录主 Excel
|
|||
export const exportScrapRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/scrap-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/scrap-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,73 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface SupplierinvoiceRecordDeatilVO { |
|||
recordNumber: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
altBatch: string |
|||
poNumber: string |
|||
poLine: string |
|||
stdPackQty: number |
|||
stdPackUnit: string |
|||
supplierQty: number |
|||
supplierUom: string |
|||
convertRate: number |
|||
singlePrice: number |
|||
amount: number |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询供应商发票记录子列表
|
|||
export const getSupplierinvoiceRecordDeatilPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/supplierinvoice-record-deatil/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/supplierinvoice-record-deatil/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询供应商发票记录子详情
|
|||
export const getSupplierinvoiceRecordDeatil = async (id: number) => { |
|||
return await request.get({ url: `/wms/supplierinvoice-record-deatil/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增供应商发票记录子
|
|||
export const createSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => { |
|||
return await request.post({ url: `/wms/supplierinvoice-record-deatil/create`, data }) |
|||
} |
|||
|
|||
// 修改供应商发票记录子
|
|||
export const updateSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => { |
|||
return await request.put({ url: `/wms/supplierinvoice-record-deatil/update`, data }) |
|||
} |
|||
|
|||
// 删除供应商发票记录子
|
|||
export const deleteSupplierinvoiceRecordDeatil = async (id: number) => { |
|||
return await request.delete({ url: `/wms/supplierinvoice-record-deatil/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出供应商发票记录子 Excel
|
|||
export const exportSupplierinvoiceRecordDeatil = async (params) => { |
|||
return await request.download({ url: `/wms/supplierinvoice-record-deatil/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/supplierinvoice-record-deatil/get-import-template' }) |
|||
} |
@ -0,0 +1,63 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface SupplierinvoiceRecordMainVO { |
|||
requestNumber: string |
|||
supplierCode: string |
|||
adjustAmount: number |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
code: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询供应商发票记录主列表
|
|||
export const getSupplierinvoiceRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/supplierinvoice-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/supplierinvoice-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询供应商发票记录主详情
|
|||
export const getSupplierinvoiceRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/supplierinvoice-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增供应商发票记录主
|
|||
export const createSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => { |
|||
return await request.post({ url: `/wms/supplierinvoice-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改供应商发票记录主
|
|||
export const updateSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => { |
|||
return await request.put({ url: `/wms/supplierinvoice-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除供应商发票记录主
|
|||
export const deleteSupplierinvoiceRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/supplierinvoice-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出供应商发票记录主 Excel
|
|||
export const exportSupplierinvoiceRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/supplierinvoice-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/supplierinvoice-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface TransferissueRecordDetailVO { |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
code: string |
|||
interfaceType: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询调拨出库记录子列表
|
|||
export const getTransferissueRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/transferissue-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/transferissue-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询调拨出库记录子详情
|
|||
export const getTransferissueRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/transferissue-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增调拨出库记录子
|
|||
export const createTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/transferissue-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改调拨出库记录子
|
|||
export const updateTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/transferissue-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除调拨出库记录子
|
|||
export const deleteTransferissueRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/transferissue-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出调拨出库记录子 Excel
|
|||
export const exportTransferissueRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/transferissue-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/transferissue-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,72 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface TransferissueRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
code: string |
|||
interfaceType: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
fromDockCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询调拨出库记录主列表
|
|||
export const getTransferissueRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/transferissue-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/transferissue-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询调拨出库记录主详情
|
|||
export const getTransferissueRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/transferissue-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增调拨出库记录主
|
|||
export const createTransferissueRecordMain = async (data: TransferissueRecordMainVO) => { |
|||
return await request.post({ url: `/wms/transferissue-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改调拨出库记录主
|
|||
export const updateTransferissueRecordMain = async (data: TransferissueRecordMainVO) => { |
|||
return await request.put({ url: `/wms/transferissue-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除调拨出库记录主
|
|||
export const deleteTransferissueRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/transferissue-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出调拨出库记录主 Excel
|
|||
export const exportTransferissueRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/transferissue-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/transferissue-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface TransferreceiptRecordDetailVO { |
|||
fromBatch: string |
|||
inventoryStatus: string |
|||
fromOwnerCode: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
toOwnerCode: string |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
fromPackingNumber: string |
|||
toPackingNumber: string |
|||
fromContainerNumber: string |
|||
toContainerNumber: string |
|||
toBatch: string |
|||
} |
|||
|
|||
// 查询调拨入库记录子列表
|
|||
export const getTransferreceiptRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/transferreceipt-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/transferreceipt-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询调拨入库记录子详情
|
|||
export const getTransferreceiptRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/transferreceipt-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增调拨入库记录子
|
|||
export const createTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/transferreceipt-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改调拨入库记录子
|
|||
export const updateTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/transferreceipt-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除调拨入库记录子
|
|||
export const deleteTransferreceiptRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/transferreceipt-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出调拨入库记录子 Excel
|
|||
export const exportTransferreceiptRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/transferreceipt-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/transferreceipt-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,73 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface TransferreceiptRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
receiptDock: string |
|||
carrierCode: string |
|||
transferMode: string |
|||
vehiclePlateNumber: string |
|||
fromWarehouseCode: string |
|||
toWarehouseCode: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
toDockCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询调拨入库记录主列表
|
|||
export const getTransferreceiptRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/transferreceipt-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/transferreceipt-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询调拨入库记录主详情
|
|||
export const getTransferreceiptRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/transferreceipt-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增调拨入库记录主
|
|||
export const createTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => { |
|||
return await request.post({ url: `/wms/transferreceipt-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改调拨入库记录主
|
|||
export const updateTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => { |
|||
return await request.put({ url: `/wms/transferreceipt-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除调拨入库记录主
|
|||
export const deleteTransferreceiptRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/transferreceipt-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出调拨入库记录主 Excel
|
|||
export const exportTransferreceiptRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/transferreceipt-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/transferreceipt-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,70 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface UnplannedissueRecordDetailVO { |
|||
ownerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
fromLocationCode: string |
|||
fromLocationGroupCode: string |
|||
fromAreaCode: string |
|||
inventoryStatus: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询计划外出库记录子列表
|
|||
export const getUnplannedissueRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/unplannedissue-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询计划外出库记录子详情
|
|||
export const getUnplannedissueRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/unplannedissue-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增计划外出库记录子
|
|||
export const createUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/unplannedissue-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改计划外出库记录子
|
|||
export const updateUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/unplannedissue-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除计划外出库记录子
|
|||
export const deleteUnplannedissueRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/unplannedissue-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出计划外出库记录子 Excel
|
|||
export const exportUnplannedissueRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/unplannedissue-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/unplannedissue-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,66 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface UnplannedissueRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creatorId: string |
|||
fromWarehouseCode: string |
|||
fromLocationTypes: string |
|||
fromAreaCodes: string |
|||
fromDockCode: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询计划外出库记录主列表
|
|||
export const getUnplannedissueRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/unplannedissue-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/unplannedissue-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询计划外出库记录主详情
|
|||
export const getUnplannedissueRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/unplannedissue-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增计划外出库记录主
|
|||
export const createUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => { |
|||
return await request.post({ url: `/wms/unplannedissue-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改计划外出库记录主
|
|||
export const updateUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => { |
|||
return await request.put({ url: `/wms/unplannedissue-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除计划外出库记录主
|
|||
export const deleteUnplannedissueRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/unplannedissue-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出计划外出库记录主 Excel
|
|||
export const exportUnplannedissueRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/unplannedissue-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/unplannedissue-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,74 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface UnplannedreceiptRecordDetailVO { |
|||
ownerCode: string |
|||
packingNumber: string |
|||
containerNumber: string |
|||
batch: string |
|||
altBatch: string |
|||
arriveDate: Date |
|||
produceDate: Date |
|||
expireDate: Date |
|||
toLocationCode: string |
|||
toLocationGroupCode: string |
|||
toAreaCode: string |
|||
inventoryStatus: string |
|||
reason: string |
|||
singlePrice: number |
|||
amount: number |
|||
itemName: string |
|||
itemDesc1: string |
|||
itemDesc2: string |
|||
projectCode: string |
|||
qty: number |
|||
uom: string |
|||
code: string |
|||
interfaceType: string |
|||
number: string |
|||
itemCode: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
jobDetailId: string |
|||
} |
|||
|
|||
// 查询计划外入库记录子列表
|
|||
export const getUnplannedreceiptRecordDetailPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/unplannedreceipt-record-detail/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/unplannedreceipt-record-detail/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询计划外入库记录子详情
|
|||
export const getUnplannedreceiptRecordDetail = async (id: number) => { |
|||
return await request.get({ url: `/wms/unplannedreceipt-record-detail/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增计划外入库记录子
|
|||
export const createUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => { |
|||
return await request.post({ url: `/wms/unplannedreceipt-record-detail/create`, data }) |
|||
} |
|||
|
|||
// 修改计划外入库记录子
|
|||
export const updateUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => { |
|||
return await request.put({ url: `/wms/unplannedreceipt-record-detail/update`, data }) |
|||
} |
|||
|
|||
// 删除计划外入库记录子
|
|||
export const deleteUnplannedreceiptRecordDetail = async (id: number) => { |
|||
return await request.delete({ url: `/wms/unplannedreceipt-record-detail/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出计划外入库记录子 Excel
|
|||
export const exportUnplannedreceiptRecordDetail = async (params) => { |
|||
return await request.download({ url: `/wms/unplannedreceipt-record-detail/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/unplannedreceipt-record-detail/get-import-template' }) |
|||
} |
@ -0,0 +1,65 @@ |
|||
import request from '@/config/axios' |
|||
|
|||
export interface UnplannedreceiptRecordMainVO { |
|||
requestNumber: string |
|||
jobNumber: string |
|||
outTransactionType: string |
|||
inTransactionType: string |
|||
executeTime: Date |
|||
activeDate: Date |
|||
requestTime: Date |
|||
dueTime: Date |
|||
departmentCode: string |
|||
interfaceType: string |
|||
code: string |
|||
number: string |
|||
businessType: string |
|||
remark: string |
|||
createTime: Date |
|||
creator: string |
|||
toWarehouseCode: string |
|||
toLocationTypes: string |
|||
toAreaCodes: string |
|||
available: string |
|||
} |
|||
|
|||
// 查询计划外入库记录主列表
|
|||
export const getUnplannedreceiptRecordMainPage = async (params) => { |
|||
if (params.isSearch) { |
|||
delete params.isSearch |
|||
const data = {...params} |
|||
return await request.post({ url: '/wms/unplannedreceipt-record-main/senior', data }) |
|||
} else { |
|||
return await request.get({ url: `/wms/unplannedreceipt-record-main/page`, params }) |
|||
} |
|||
} |
|||
|
|||
// 查询计划外入库记录主详情
|
|||
export const getUnplannedreceiptRecordMain = async (id: number) => { |
|||
return await request.get({ url: `/wms/unplannedreceipt-record-main/get?id=` + id }) |
|||
} |
|||
|
|||
// 新增计划外入库记录主
|
|||
export const createUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => { |
|||
return await request.post({ url: `/wms/unplannedreceipt-record-main/create`, data }) |
|||
} |
|||
|
|||
// 修改计划外入库记录主
|
|||
export const updateUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => { |
|||
return await request.put({ url: `/wms/unplannedreceipt-record-main/update`, data }) |
|||
} |
|||
|
|||
// 删除计划外入库记录主
|
|||
export const deleteUnplannedreceiptRecordMain = async (id: number) => { |
|||
return await request.delete({ url: `/wms/unplannedreceipt-record-main/delete?id=` + id }) |
|||
} |
|||
|
|||
// 导出计划外入库记录主 Excel
|
|||
export const exportUnplannedreceiptRecordMain = async (params) => { |
|||
return await request.download({ url: `/wms/unplannedreceipt-record-main/export-excel`, params }) |
|||
} |
|||
|
|||
// 下载用户导入模板
|
|||
export const importTemplate = () => { |
|||
return request.download({ url: '/wms/unplannedreceipt-record-main/get-import-template' }) |
|||
} |
@ -0,0 +1,606 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 盘点记录主表 |
|||
*/ |
|||
export const CountRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true, |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '计划单号', |
|||
field: 'planNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '阶段', |
|||
field: 'stage', |
|||
dictType: DICT_TYPE.COUNT_STAGE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '仓库代码', |
|||
field: 'warehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true, |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CountRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
jobNumber: [ |
|||
{ required: true, message: '请选择任务单号', trigger: 'change' } |
|||
], |
|||
stage: [ |
|||
{ required: true, message: '请选择阶段', trigger: 'change' } |
|||
], |
|||
warehouseCode: [ |
|||
{ required: true, message: '请选择仓库代码', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 盘点记录子表 |
|||
*/ |
|||
export const CountRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '盘点明细号', |
|||
field: 'countDetailNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位代码', |
|||
field: 'locationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位组代码', |
|||
field: 'locationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库区代码', |
|||
field: 'areaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '盘点数量', |
|||
field: 'countQty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '盘点时间', |
|||
field: 'countTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '盘点人', |
|||
field: 'countUser', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '盘点描述', |
|||
field: 'countDescription', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CountRecordDetailRules = reactive({ |
|||
countDetailNumber: [ |
|||
{ required: true, message: '请输入盘点明细号', trigger: 'blur' } |
|||
], |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
locationCode: [ |
|||
{ required: true, message: '请选择库位代码', trigger: 'change' } |
|||
], |
|||
locationGroupCode: [ |
|||
{ required: true, message: '请选择库位组代码', trigger: 'change' } |
|||
], |
|||
areaCode: [ |
|||
{ required: true, message: '请选择库区代码', trigger: 'change' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
countQty: [ |
|||
{ required: true, message: '请输入盘点数量', trigger: 'blur' } |
|||
], |
|||
countTime: [ |
|||
{ required: true, message: '请输入盘点时间', trigger: 'change' } |
|||
], |
|||
countUser: [ |
|||
{ required: true, message: '请输入盘点人', trigger: 'blur' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="CountRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="CountRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="CountRecordMainRules" |
|||
:formAllSchemas="CountRecordMain.allSchemas" |
|||
:tableAllSchemas="CountRecordDetail.allSchemas" |
|||
:tableFormRules="CountRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="CountRecordMain.allSchemas" |
|||
:detailAllSchemas="CountRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="CountRecordDetailRules" |
|||
:apiPage="CountRecordDetailApi.getCountRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { CountRecordMain,CountRecordMainRules,CountRecordDetail,CountRecordDetailRules } from './countRecordMain.data' |
|||
import * as CountRecordMainApi from '@/api/wms/countRecordMain' |
|||
import * as CountRecordDetailApi from '@/api/wms/countRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 盘点记录主 |
|||
defineOptions({ name: 'CountRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(CountRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: CountRecordMainApi.getCountRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:count-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await CountRecordMainApi.exportCountRecordMain(setSearchParams) |
|||
download.excel(data, '盘点记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,545 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 盘点调整记录主表 |
|||
*/ |
|||
export const CountadjustRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '盘点记录单号', |
|||
field: 'countRecordNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '仓库代码', |
|||
field: 'warehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CountadjustRecordMainRules =reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
warehouseCode: [ |
|||
{ required: true, message: '请选择仓库代码', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 盘点调整记录子表 |
|||
*/ |
|||
export const CountadjustRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '盘点明细号', |
|||
field: 'countDetailNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位代码', |
|||
field: 'locationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '盘点数量', |
|||
field: 'countQty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '库存数量', |
|||
field: 'inventoryQty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '调整数量', |
|||
field: 'adjustQty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CountadjustRecordDetailRules =reactive({ |
|||
countDetailNumber: [ |
|||
{ required: true, message: '请输入盘点明细号', trigger: 'blur' } |
|||
], |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
locationCode: [ |
|||
{ required: true, message: '请选择库位代码', trigger: 'change' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
countQty: [ |
|||
{ required: true, message: '请输入盘点数量', trigger: 'blur' } |
|||
], |
|||
adjustQty: [ |
|||
{ required: true, message: '请输入调整数量', trigger: 'blur' } |
|||
], |
|||
inventoryQty: [ |
|||
{ required: true, message: '请输入库存数量', trigger: 'blur' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="CountadjustRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="CountadjustRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="CountadjustRecordMainRules" |
|||
:formAllSchemas="CountadjustRecordMain.allSchemas" |
|||
:tableAllSchemas="CountadjustRecordDetail.allSchemas" |
|||
:tableFormRules="CountadjustRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="CountadjustRecordMain.allSchemas" |
|||
:detailAllSchemas="CountadjustRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="CountadjustRecordDetailRules" |
|||
:apiPage="CountadjustRecordDetailApi.getCountadjustRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { CountadjustRecordMain,CountadjustRecordMainRules,CountadjustRecordDetail,CountadjustRecordDetailRules } from './countadjustRecordMain.data' |
|||
import * as CountadjustRecordMainApi from '@/api/wms/countadjustRecordMain' |
|||
import * as CountadjustRecordDetailApi from '@/api/wms/countadjustRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 盘点调整记录主 |
|||
defineOptions({ name: 'CountadjustRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(CountadjustRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: CountadjustRecordMainApi.getCountadjustRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:countadjust-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await CountadjustRecordMainApi.exportCountadjustRecordMain(setSearchParams) |
|||
download.excel(data, '盘点调整记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,745 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 客户收货记录主表 |
|||
*/ |
|||
export const CustomerreceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '发货记录单号', |
|||
field: 'deliverRecordNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '发货计划单号', |
|||
field: 'deliverPlanNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户代码', |
|||
field: 'customerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户月台代码', |
|||
field: 'customerDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '承运商', |
|||
field: 'carrierCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '运输方式', |
|||
field: 'transferMode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '车牌号', |
|||
field: 'vehiclePlateNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomerreceiptRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
customerCode: [ |
|||
{ required: true, message: '请选择客户代码', trigger: 'change' } |
|||
], |
|||
customerDockCode: [ |
|||
{ required: true, message: '请选择客户月台代码', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 客户收货记录子表 |
|||
*/ |
|||
export const CustomerreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '销售订单号', |
|||
field: 'soNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '销售订单行', |
|||
field: 'soLine', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: 150 |
|||
}, |
|||
form: { |
|||
component: 'DatePicker', |
|||
componentProps: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
} |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomerreceiptRecordDetailRules = reactive({ |
|||
soNumber: [ |
|||
{ required: true, message: '请选择销售订单号', trigger: 'blur' } |
|||
], |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'blur' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'blur' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'blur' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'blur' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'blur' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'blur' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'blur' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'blur' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'blur' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="CustomerreceiptRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="CustomerreceiptRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="CustomerreceiptRecordMainRules" |
|||
:formAllSchemas="CustomerreceiptRecordMain.allSchemas" |
|||
:tableAllSchemas="CustomerreceiptRecordDetail.allSchemas" |
|||
:tableFormRules="CustomerreceiptRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="CustomerreceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="CustomerreceiptRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="CustomerreceiptRecordDetailRules" |
|||
:apiPage="CustomerreceiptRecordDetailApi.getCustomerreceiptRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { CustomerreceiptRecordMain,CustomerreceiptRecordMainRules,CustomerreceiptRecordDetail,CustomerreceiptRecordDetailRules } from './customerreceiptRecordMain.data' |
|||
import * as CustomerreceiptRecordMainApi from '@/api/wms/customerreceiptRecordMain' |
|||
import * as CustomerreceiptRecordDetailApi from '@/api/wms/customerreceiptRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 客户收货记录主 |
|||
defineOptions({ name: 'CustomerreceiptRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(CustomerreceiptRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: CustomerreceiptRecordMainApi.getCustomerreceiptRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:customerreceipt-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await CustomerreceiptRecordMainApi.exportCustomerreceiptRecordMain(setSearchParams) |
|||
download.excel(data, '客户收货记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,765 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 客户退货记录主表 |
|||
*/ |
|||
export const CustomerreturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '发货记录单号', |
|||
field: 'deliverRecordNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '发货计划单号', |
|||
field: 'deliverPlanNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户代码', |
|||
field: 'customerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '客户月台代码', |
|||
field: 'customerDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '承运商', |
|||
field: 'carrierCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '运输方式', |
|||
field: 'transferMode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '车牌号', |
|||
field: 'vehiclePlateNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到月台代码', |
|||
field: 'toDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomerreturnRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
customerCode: [ |
|||
{ required: true, message: '请选择客户代码', trigger: 'change' } |
|||
], |
|||
customerDockCode: [ |
|||
{ required: true, message: '请选择客户月台代码', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
toAreaCodes: [ |
|||
{ required: true, message: '请选择到库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 客户退货记录子表 |
|||
*/ |
|||
export const CustomerreturnRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '销售订单号', |
|||
field: 'soNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '销售订单行', |
|||
field: 'soLine', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
} |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomerreturnRecordDetailRules = reactive({ |
|||
soNumber: [ |
|||
{ required: true, message: '请选择销售订单号', trigger: 'change' } |
|||
], |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="CustomerreturnRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="CustomerreturnRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="CustomerreturnRecordMainRules" |
|||
:formAllSchemas="CustomerreturnRecordMain.allSchemas" |
|||
:tableAllSchemas="CustomerreturnRecordDetail.allSchemas" |
|||
:tableFormRules="CustomerreturnRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="CustomerreturnRecordMain.allSchemas" |
|||
:detailAllSchemas="CustomerreturnRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="CustomerreturnRecordDetailRules" |
|||
:apiPage="CustomerreturnRecordDetailApi.getCustomerreturnRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { CustomerreturnRecordMain,CustomerreturnRecordMainRules,CustomerreturnRecordDetail,CustomerreturnRecordDetailRules } from './customerreturnRecordMain.data' |
|||
import * as CustomerreturnRecordMainApi from '@/api/wms/customerreturnRecordMain' |
|||
import * as CustomerreturnRecordDetailApi from '@/api/wms/customerreturnRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 客户退货记录主 |
|||
defineOptions({ name: 'CustomerreturnRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(CustomerreturnRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: CustomerreturnRecordMainApi.getCustomerreturnRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:customerreturn-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await CustomerreturnRecordMainApi.exportCustomerreturnRecordMain(setSearchParams) |
|||
download.excel(data, '客户退货记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,618 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 客户结算记录主表 |
|||
*/ |
|||
export const CustomersettleRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '发货记录单号', |
|||
field: 'deliverRecordNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '发货计划单号', |
|||
field: 'deliverPlanNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户代码', |
|||
field: 'customerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomersettleRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
customerCode: [ |
|||
{ required: true, message: '请选择客户代码', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 客户结算记录子表 |
|||
*/ |
|||
export const CustomersettleRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '销售订单号', |
|||
field: 'soNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '销售订单行', |
|||
field: 'soLine', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGruopCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '最后更新者', |
|||
field: 'updater', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const CustomersettleRecordDetailRules = reactive({ |
|||
soNumber: [ |
|||
{ 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: 'change' } |
|||
], |
|||
fromLocationGruopCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="CustomersettleRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="CustomersettleRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="CustomersettleRecordMainRules" |
|||
:formAllSchemas="CustomersettleRecordMain.allSchemas" |
|||
:tableAllSchemas="CustomersettleRecordDetail.allSchemas" |
|||
:tableFormRules="CustomersettleRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="CustomersettleRecordMain.allSchemas" |
|||
:detailAllSchemas="CustomersettleRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="CustomersettleRecordDetailRules" |
|||
:apiPage="CustomersettleRecordDetailApi.getCustomersettleRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { CustomersettleRecordMain,CustomersettleRecordMainRules,CustomersettleRecordDetail,CustomersettleRecordDetailRules } from './customersettleRecordMain.data' |
|||
import * as CustomersettleRecordMainApi from '@/api/wms/customersettleRecordMain' |
|||
import * as CustomersettleRecordDetailApi from '@/api/wms/customersettleRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 客户结算记录主 |
|||
defineOptions({ name: 'CustomersettleRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(CustomersettleRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: CustomersettleRecordMainApi.getCustomersettleRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:customersettle-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await CustomersettleRecordMainApi.exportCustomersettleRecordMain(setSearchParams) |
|||
download.excel(data, '客户结算记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,732 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 发货记录主表 |
|||
*/ |
|||
export const DeliverRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '发货计划单号', |
|||
field: 'deliverPlanNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户发货单号', |
|||
field: 'customerDeliverNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '客户代码', |
|||
field: 'customerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '客户月台代码', |
|||
field: 'customerDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '承运商', |
|||
field: 'carrierCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '运输方式', |
|||
field: 'transferMode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '车牌号', |
|||
field: 'vehiclePlateNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从月台代码', |
|||
field: 'fromDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const DeliverRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
customerCode: [ |
|||
{ required: true, message: '请选择客户代码', trigger: 'change' } |
|||
], |
|||
customerDockCode: [ |
|||
{ required: true, message: '请选择客户月台代码', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 发货记录子表 |
|||
*/ |
|||
export const DeliverRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '销售订单号', |
|||
field: 'soNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '销售订单行', |
|||
field: 'soLine', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const DeliverRecordDetailRules = reactive({ |
|||
soNumber: [ |
|||
{ 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: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="DeliverRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="DeliverRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="DeliverRecordMainRules" |
|||
:formAllSchemas="DeliverRecordMain.allSchemas" |
|||
:tableAllSchemas="DeliverRecordDetail.allSchemas" |
|||
:tableFormRules="DeliverRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="DeliverRecordMain.allSchemas" |
|||
:detailAllSchemas="DeliverRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="DeliverRecordDetailRules" |
|||
:apiPage="DeliverRecordDetailApi.getDeliverRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { DeliverRecordMain,DeliverRecordMainRules,DeliverRecordDetail,DeliverRecordDetailRules } from './deliverRecordMain.data' |
|||
import * as DeliverRecordMainApi from '@/api/wms/deliverRecordMain' |
|||
import * as DeliverRecordDetailApi from '@/api/wms/deliverRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 发货记录主 |
|||
defineOptions({ name: 'DeliverRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(DeliverRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: DeliverRecordMainApi.getDeliverRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:deliver-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await DeliverRecordMainApi.exportDeliverRecordMain(setSearchParams) |
|||
download.excel(data, '发货记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="InventoryinitRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="InventoryinitRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="InventoryinitRecordMainRules" |
|||
:formAllSchemas="InventoryinitRecordMain.allSchemas" |
|||
:tableAllSchemas="InventoryinitRecordDetail.allSchemas" |
|||
:tableFormRules="InventoryinitRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="InventoryinitRecordMain.allSchemas" |
|||
:detailAllSchemas="InventoryinitRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="InventoryinitRecordDetailRules" |
|||
:apiPage="InventoryinitRecordDetailApi.getInventoryinitRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { InventoryinitRecordMain,InventoryinitRecordMainRules,InventoryinitRecordDetail,InventoryinitRecordDetailRules } from './inventoryinitRecordMain.data' |
|||
import * as InventoryinitRecordMainApi from '@/api/wms/inventoryinitRecordMain' |
|||
import * as InventoryinitRecordDetailApi from '@/api/wms/inventoryinitRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 库存初始化记录主 |
|||
defineOptions({ name: 'InventoryinitRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(InventoryinitRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: InventoryinitRecordMainApi.getInventoryinitRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:inventoryinit-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await InventoryinitRecordMainApi.exportInventoryinitRecordMain(setSearchParams) |
|||
download.excel(data, '库存初始化记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,635 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 库存初始化记录主表 |
|||
*/ |
|||
export const InventoryinitRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '仓库代码', |
|||
field: 'warehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
formatter: dateFormatter, |
|||
detail: { |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 180 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
formatter: dateFormatter, |
|||
detail: { |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 180 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
formatter: dateFormatter, |
|||
detail: { |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 180 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
formatter: dateFormatter, |
|||
detail: { |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss' |
|||
}, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 180 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const InventoryinitRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
warehouseCode: [ |
|||
{ required: true, message: '请选择仓库代码', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 库存初始化记录子表 |
|||
*/ |
|||
export const InventoryinitRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '替代批次', |
|||
field: 'altBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货日期', |
|||
field: 'arriveDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生产日期', |
|||
field: 'produceDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '过期日期', |
|||
field: 'expireDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位代码', |
|||
field: 'locationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位组代码', |
|||
field: 'locationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库区代码', |
|||
field: 'areaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '标包数量', |
|||
field: 'stdPackQty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '标包单位', |
|||
field: 'stdPackUnit', |
|||
dictType: DICT_TYPE.PACK_UNIT, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '最后更新者', |
|||
field: 'updater', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const InventoryinitRecordDetailRules = reactive({ |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
arriveDate: [ |
|||
{ required: true, message: '请输入到货日期', trigger: 'change' } |
|||
], |
|||
produceDate: [ |
|||
{ required: true, message: '请输入生产日期', trigger: 'change' } |
|||
], |
|||
expireDate: [ |
|||
{ required: true, message: '请输入过期日期', trigger: 'change' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
locationCode: [ |
|||
{ required: true, message: '请选择库位代码', trigger: 'change' } |
|||
], |
|||
locationGroupCode: [ |
|||
{ required: true, message: '请选择库位组代码', trigger: 'change' } |
|||
], |
|||
areaCode: [ |
|||
{ required: true, message: '请选择库区代码', trigger: 'change' } |
|||
], |
|||
stdPackQty: [ |
|||
{ required: true, message: '请输入标包数量', trigger: 'blur' } |
|||
], |
|||
stdPackUnit: [ |
|||
{ required: true, message: '请选择标包单位', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="ScrapRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="ScrapRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="ScrapRecordMainRules" |
|||
:formAllSchemas="ScrapRecordMain.allSchemas" |
|||
:tableAllSchemas="ScrapRecordDetail.allSchemas" |
|||
:tableFormRules="ScrapRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="ScrapRecordMain.allSchemas" |
|||
:detailAllSchemas="ScrapRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="ScrapRecordDetailRules" |
|||
:apiPage="ScrapRecordDetailApi.getScrapRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { ScrapRecordMain,ScrapRecordMainRules,ScrapRecordDetail,ScrapRecordDetailRules } from './scrapRecordMain.data' |
|||
import * as ScrapRecordMainApi from '@/api/wms/scrapRecordMain' |
|||
import * as ScrapRecordDetailApi from '@/api/wms/scrapRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 报废出库记录主 |
|||
defineOptions({ name: 'ScrapRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(ScrapRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: ScrapRecordMainApi.getScrapRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:scrap-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await ScrapRecordMainApi.exportScrapRecordMain(setSearchParams) |
|||
download.excel(data, '报废出库记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,568 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 报废出库记录主表 |
|||
*/ |
|||
export const ScrapRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const ScrapRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 报废出库记录子表 |
|||
*/ |
|||
export const ScrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '原因', |
|||
field: 'reason', |
|||
dictType: DICT_TYPE.SCRAP_REASON, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const ScrapRecordDetailRules = reactive({ |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="TransferissueRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="TransferissueRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="TransferissueRecordMainRules" |
|||
:formAllSchemas="TransferissueRecordMain.allSchemas" |
|||
:tableAllSchemas="TransferissueRecordDetail.allSchemas" |
|||
:tableFormRules="TransferissueRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="TransferissueRecordMain.allSchemas" |
|||
:detailAllSchemas="TransferissueRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="TransferissueRecordDetailRules" |
|||
:apiPage="TransferissueRecordDetailApi.getTransferissueRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { TransferissueRecordMain,TransferissueRecordMainRules,TransferissueRecordDetail,TransferissueRecordDetailRules } from './transferissueRecordMain.data' |
|||
import * as TransferissueRecordMainApi from '@/api/wms/transferissueRecordMain' |
|||
import * as TransferissueRecordDetailApi from '@/api/wms/transferissueRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 调拨出库记录主 |
|||
defineOptions({ name: 'TransferissueRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(TransferissueRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: TransferissueRecordMainApi.getTransferissueRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:transferissue-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await TransferissueRecordMainApi.exportTransferissueRecordMain(setSearchParams) |
|||
download.excel(data, '调拨出库记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,678 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 调拨出库记录主表 |
|||
*/ |
|||
export const TransferissueRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '承运商', |
|||
field: 'carrierCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '运输方式', |
|||
field: 'transferMode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '车牌号', |
|||
field: 'vehiclePlateNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从月台代码', |
|||
field: 'fromDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const TransferissueRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
toAreaCodes: [ |
|||
{ required: true, message: '请选择到库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 调拨出库记录子表 |
|||
*/ |
|||
export const TransferissueRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const TransferissueRecordDetailRules = reactive({ |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="TransferreceiptRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="TransferreceiptRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="TransferreceiptRecordMainRules" |
|||
:formAllSchemas="TransferreceiptRecordMain.allSchemas" |
|||
:tableAllSchemas="TransferreceiptRecordDetail.allSchemas" |
|||
:tableFormRules="TransferreceiptRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="TransferreceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="TransferreceiptRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="TransferreceiptRecordDetailRules" |
|||
:apiPage="TransferreceiptRecordDetailApi.getTransferreceiptRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { TransferreceiptRecordMain,TransferreceiptRecordMainRules,TransferreceiptRecordDetail,TransferreceiptRecordDetailRules } from './transferreceiptRecordMain.data' |
|||
import * as TransferreceiptRecordMainApi from '@/api/wms/transferreceiptRecordMain' |
|||
import * as TransferreceiptRecordDetailApi from '@/api/wms/transferreceiptRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 调拨入库记录主 |
|||
defineOptions({ name: 'TransferreceiptRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(TransferreceiptRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: TransferreceiptRecordMainApi.getTransferreceiptRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:transferreceipt-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await TransferreceiptRecordMainApi.exportTransferreceiptRecordMain(setSearchParams) |
|||
download.excel(data, '调拨入库记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,685 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 调拨入库记录主表 |
|||
*/ |
|||
export const TransferreceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '收货月台', |
|||
field: 'receiptDock', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '承运商', |
|||
field: 'carrierCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '运输方式', |
|||
field: 'transferMode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '车牌号', |
|||
field: 'vehiclePlateNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到月台代码', |
|||
field: 'toDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const TransferreceiptRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
toAreaCodes: [ |
|||
{ required: true, message: '请选择到库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 调拨入库记录子表 |
|||
*/ |
|||
export const TransferreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const TransferreceiptRecordDetailRules = reactive({ |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="UnplannedissueRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="UnplannedissueRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="UnplannedissueRecordMainRules" |
|||
:formAllSchemas="UnplannedissueRecordMain.allSchemas" |
|||
:tableAllSchemas="UnplannedissueRecordDetail.allSchemas" |
|||
:tableFormRules="UnplannedissueRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="UnplannedissueRecordMain.allSchemas" |
|||
:detailAllSchemas="UnplannedissueRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="UnplannedissueRecordDetailRules" |
|||
:apiPage="UnplannedissueRecordDetailApi.getUnplannedissueRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { UnplannedissueRecordMain,UnplannedissueRecordMainRules,UnplannedissueRecordDetail,UnplannedissueRecordDetailRules } from './unplannedissueRecordMain.data' |
|||
import * as UnplannedissueRecordMainApi from '@/api/wms/unplannedissueRecordMain' |
|||
import * as UnplannedissueRecordDetailApi from '@/api/wms/unplannedissueRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 计划外出库记录主 |
|||
defineOptions({ name: 'UnplannedissueRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(UnplannedissueRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: UnplannedissueRecordMainApi.getUnplannedissueRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:unplannedissue-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await UnplannedissueRecordMainApi.exportUnplannedissueRecordMain(setSearchParams) |
|||
download.excel(data, '计划外出库记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,580 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 计划外出库记录主表 |
|||
*/ |
|||
export const UnplannedissueRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从月台代码', |
|||
field: 'fromDockCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const UnplannedissueRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
fromAreaCodes: [ |
|||
{ required: true, message: '请选择从库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 计划外出库记录子表 |
|||
*/ |
|||
export const UnplannedissueRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '原因', |
|||
field: 'reason', |
|||
dictType: DICT_TYPE.UNPLANNED_ISSUE_REASON, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const UnplannedissueRecordDetailRules = reactive({ |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="TransferreceiptRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="TransferreceiptRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="TransferreceiptRecordMainRules" |
|||
:formAllSchemas="TransferreceiptRecordMain.allSchemas" |
|||
:tableAllSchemas="TransferreceiptRecordDetail.allSchemas" |
|||
:tableFormRules="TransferreceiptRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="TransferreceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="TransferreceiptRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="TransferreceiptRecordDetailRules" |
|||
:apiPage="TransferreceiptRecordDetailApi.getTransferreceiptRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { TransferreceiptRecordMain,TransferreceiptRecordMainRules,TransferreceiptRecordDetail,TransferreceiptRecordDetailRules } from './transferreceiptRecordMain.data' |
|||
import * as TransferreceiptRecordMainApi from '@/api/wms/transferreceiptRecordMain' |
|||
import * as TransferreceiptRecordDetailApi from '@/api/wms/transferreceiptRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 调拨入库记录主 |
|||
defineOptions({ name: 'TransferreceiptRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(TransferreceiptRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: TransferreceiptRecordMainApi.getTransferreceiptRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:${baseURL}:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await TransferreceiptRecordMainApi.exportTransferreceiptRecordMain(setSearchParams) |
|||
download.excel(data, '调拨入库记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,629 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 计划外入库记录主表 |
|||
*/ |
|||
export const UnplannedreceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const UnplannedreceiptRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
toAreaCodes: [ |
|||
{ required: true, message: '请选择到库区代码范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 计划外入库记录子表 |
|||
*/ |
|||
export const UnplannedreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货日期', |
|||
field: 'arriveDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生产日期', |
|||
field: 'produceDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '过期日期', |
|||
field: 'expireDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '货主代码', |
|||
field: 'ownerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '原因', |
|||
field: 'reason', |
|||
dictType: DICT_TYPE.UNPLANNED_RECEIPT_REASON, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单价', |
|||
field: 'singlePrice', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '金额', |
|||
field: 'amount', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const UnplannedreceiptRecordDetailRules = reactive({ |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
arriveDate: [ |
|||
{ required: true, message: '请输入到货日期', trigger: 'change' } |
|||
], |
|||
produceDate: [ |
|||
{ required: true, message: '请选择生产日期', trigger: 'change' } |
|||
], |
|||
expireDate: [ |
|||
{ required: true, message: '请选择过期日期', trigger: 'change' } |
|||
] |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="IssueRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="IssueRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="IssueRecordMainRules" |
|||
:formAllSchemas="IssueRecordMain.allSchemas" |
|||
:tableAllSchemas="IssueRecordDetail.allSchemas" |
|||
:tableFormRules="IssueRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="IssueRecordMain.allSchemas" |
|||
:detailAllSchemas="IssueRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="IssueRecordDetailRules" |
|||
:apiPage="IssueRecordDetailApi.getIssueRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { IssueRecordMain,IssueRecordMainRules,IssueRecordDetail,IssueRecordDetailRules } from './issueRecordMain.data' |
|||
import * as IssueRecordMainApi from '@/api/wms/issueRecordMain' |
|||
import * as IssueRecordDetailApi from '@/api/wms/issueRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 发料记录主 |
|||
defineOptions({ name: 'IssueRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(IssueRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: IssueRecordMainApi.getIssueRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:${baseURL}:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await IssueRecordMainApi.exportIssueRecordMain(setSearchParams) |
|||
download.excel(data, '发料记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,688 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 发料记录主表 |
|||
*/ |
|||
export const IssueRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '车间代码', |
|||
field: 'workshopCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '使用在途库', |
|||
field: 'useOnTheWayLocation', |
|||
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: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const IssueRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择库位类型范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 发料记录子表 |
|||
*/ |
|||
export const IssueRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '生产线代码', |
|||
field: 'productionLineCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '工位代码', |
|||
field: 'workStationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '在途库库位', |
|||
field: 'onTheWayLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const IssueRecordDetailRules = reactive({ |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="OnlinesettlementRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="OnlinesettlementRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="OnlinesettlementRecordMainRules" |
|||
:formAllSchemas="OnlinesettlementRecordMain.allSchemas" |
|||
:tableAllSchemas="OnlinesettlementRecordDetail.allSchemas" |
|||
:tableFormRules="OnlinesettlementRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="OnlinesettlementRecordMain.allSchemas" |
|||
:detailAllSchemas="OnlinesettlementRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="OnlinesettlementRecordDetailRules" |
|||
:apiPage="OnlinesettlementRecordDetailApi.getOnlinesettlementRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { OnlinesettlementRecordMain,OnlinesettlementRecordMainRules,OnlinesettlementRecordDetail,OnlinesettlementRecordDetailRules } from './onlinesettlementRecordMain.data' |
|||
import * as OnlinesettlementRecordMainApi from '@/api/wms/onlinesettlementRecordMain' |
|||
import * as OnlinesettlementRecordDetailApi from '@/api/wms/onlinesettlementRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 上线结算记录主 |
|||
defineOptions({ name: 'OnlinesettlementRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(OnlinesettlementRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: OnlinesettlementRecordMainApi.getOnlinesettlementRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:onlinesettlement-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await OnlinesettlementRecordMainApi.exportOnlinesettlementRecordMain(setSearchParams) |
|||
download.excel(data, '上线结算记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,462 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 上线结算记录主表 |
|||
*/ |
|||
export const OnlinesettlementRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '发料记录单号', |
|||
field: 'issueRecordNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '仓库代码', |
|||
field: 'warehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const OnlinesettlementRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
issueRecordNumber: [ |
|||
{ required: true, message: '请选择发料记录单号', trigger: 'change' } |
|||
], |
|||
warehouseCode: [ |
|||
{ required: true, message: '请选择仓库代码', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 上线结算记录子表 |
|||
*/ |
|||
export const OnlinesettlementRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '包装号', |
|||
field: 'packingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '器具号', |
|||
field: 'containerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '批次', |
|||
field: 'batch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位代码', |
|||
field: 'locationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库位组代码', |
|||
field: 'locationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库区代码', |
|||
field: 'areaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const OnlinesettlementRecordDetailRules = reactive({ |
|||
packingNumber: [ |
|||
{ required: true, message: '请选择包装号', trigger: 'change' } |
|||
], |
|||
batch: [ |
|||
{ required: true, message: '请输入批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
locationCode: [ |
|||
{ required: true, message: '请选择库位代码', trigger: 'change' } |
|||
], |
|||
locationGroupCode: [ |
|||
{ required: true, message: '请选择库位组代码', trigger: 'change' } |
|||
], |
|||
areaCode: [ |
|||
{ required: true, message: '请选择库区代码', trigger: 'change' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="PickRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="PickRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="PickRecordMainRules" |
|||
:formAllSchemas="PickRecordMain.allSchemas" |
|||
:tableAllSchemas="PickRecordDetail.allSchemas" |
|||
:tableFormRules="PickRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="PickRecordMain.allSchemas" |
|||
:detailAllSchemas="PickRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="PickRecordDetailRules" |
|||
:apiPage="PickRecordDetailApi.getPickRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { PickRecordMain,PickRecordMainRules,PickRecordDetail,PickRecordDetailRules } from './pickRecordMain.data' |
|||
import * as PickRecordMainApi from '@/api/wms/pickRecordMain' |
|||
import * as PickRecordDetailApi from '@/api/wms/pickRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 拣料记录主 |
|||
defineOptions({ name: 'PickRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(PickRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: PickRecordMainApi.getPickRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:pick-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await PickRecordMainApi.exportPickRecordMain(setSearchParams) |
|||
download.excel(data, '拣料记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,640 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 拣料记录主表 |
|||
*/ |
|||
export const PickRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '申请单号', |
|||
field: 'requestNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '是否可用', |
|||
field: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const PickRecordMainRules = reactive({ |
|||
requestNumber: [ |
|||
{ required: true, message: '请选择申请单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 拣料记录子表 |
|||
*/ |
|||
export const PickRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const PickRecordDetailRules = reactive({ |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请选择到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="ProductionreceiptRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="ProductionreceiptRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="ProductionreceiptRecordMainRules" |
|||
:formAllSchemas="ProductionreceiptRecordMain.allSchemas" |
|||
:tableAllSchemas="ProductionreceiptRecordDetail.allSchemas" |
|||
:tableFormRules="ProductionreceiptRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="ProductionreceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="ProductionreceiptRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="ProductionreceiptRecordDetailRules" |
|||
:apiPage="ProductionreceiptRecordDetailApi.getProductionreceiptRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { ProductionreceiptRecordMain,ProductionreceiptRecordMainRules,ProductionreceiptRecordDetail,ProductionreceiptRecordDetailRules } from './productionreceiptRecordMain.data' |
|||
import * as ProductionreceiptRecordMainApi from '@/api/wms/productionreceiptRecordMain' |
|||
import * as ProductionreceiptRecordDetailApi from '@/api/wms/productionreceiptRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 生产收料记录主 |
|||
defineOptions({ name: 'ProductionreceiptRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(ProductionreceiptRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: ProductionreceiptRecordMainApi.getProductionreceiptRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:productionreceipt-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await ProductionreceiptRecordMainApi.exportProductionreceiptRecordMain(setSearchParams) |
|||
download.excel(data, '生产收料记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
@ -0,0 +1,693 @@ |
|||
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' |
|||
import { dateFormatter } from '@/utils/formatTime' |
|||
|
|||
/** |
|||
* @returns {Array} 生产收料记录主表 |
|||
*/ |
|||
export const ProductionreceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '发料任务单号', |
|||
field: 'issueJobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '任务单号', |
|||
field: 'jobNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '车间代码', |
|||
field: 'workshopCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '出库事务类型', |
|||
field: 'outTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '入库事务类型', |
|||
field: 'inTransactionType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '执行时间', |
|||
field: 'executeTime', |
|||
formatter: dateFormatter, |
|||
detai: { |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '生效日期', |
|||
field: 'activeDate', |
|||
formatter: dateFormatter, |
|||
detai: { |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '申请时间', |
|||
field: 'requestTime', |
|||
formatter: dateFormatter, |
|||
detai: { |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '截止时间', |
|||
field: 'dueTime', |
|||
formatter: dateFormatter, |
|||
detai: { |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '部门', |
|||
field: 'departmentCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150, |
|||
fixed: 'left' |
|||
}, |
|||
isSearch: true |
|||
}, |
|||
{ |
|||
label: '业务类型', |
|||
field: 'businessType', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '备注', |
|||
field: 'remark', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建时间', |
|||
field: 'createTime', |
|||
formatter: dateFormatter, |
|||
detai: { |
|||
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', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从仓库代码', |
|||
field: 'fromWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位类型范围', |
|||
field: 'fromLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码范围', |
|||
field: 'fromAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到仓库代码', |
|||
field: 'toWarehouseCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位类型范围', |
|||
field: 'toLocationTypes', |
|||
dictType: DICT_TYPE.LOCATION_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码范围', |
|||
field: 'toAreaCodes', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '使用在途库', |
|||
field: 'useOnTheWayLocation', |
|||
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: 'available', |
|||
dictType: DICT_TYPE.TRUE_FALSE, |
|||
dictClass: 'string', |
|||
isSearch: true, |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'Switch', |
|||
value: 'TRUE', |
|||
componentProps: { |
|||
inactiveValue: 'FALSE', |
|||
activeValue: 'TRUE' |
|||
} |
|||
} |
|||
} |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const ProductionreceiptRecordMainRules = reactive({ |
|||
issueJobNumber: [ |
|||
{ required: true, message: '请选择发料任务单号', trigger: 'change' } |
|||
], |
|||
fromWarehouseCode: [ |
|||
{ required: true, message: '请选择从仓库代码', trigger: 'change' } |
|||
], |
|||
fromLocationTypes: [ |
|||
{ required: true, message: '请选择从库位类型范围', trigger: 'change' } |
|||
], |
|||
toWarehouseCode: [ |
|||
{ required: true, message: '请选择到仓库代码', trigger: 'change' } |
|||
], |
|||
toLocationTypes: [ |
|||
{ required: true, message: '请选择到库位类型范围', trigger: 'change' } |
|||
], |
|||
outTransaction: [ |
|||
{ required: true, message: '请输入出库事务类型', trigger: 'blur' } |
|||
], |
|||
inTransaction: [ |
|||
{ required: true, message: '请输入入库事务类型', trigger: 'blur' } |
|||
], |
|||
executeTime: [ |
|||
{ required: true, message: '请输入执行时间', trigger: 'change' } |
|||
], |
|||
activeDate: [ |
|||
{ required: true, message: '请输入生效日期', trigger: 'change' } |
|||
], |
|||
available: [ |
|||
{ required: true, message: '请输入是否可用', trigger: 'blur' } |
|||
], |
|||
departmentCode: [ |
|||
{ required: true, message: '请输入部门', trigger: 'blur' } |
|||
], |
|||
interfaceType: [ |
|||
{ required: true, message: '请选择接口类型', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
businessType: [ |
|||
{ required: true, message: '请输入业务类型', trigger: 'blur' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
|||
|
|||
/** |
|||
* @returns {Array} 生产收料记录子表 |
|||
*/ |
|||
export const ProductionreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ |
|||
{ |
|||
label: '生产线代码', |
|||
field: 'productionLineCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '工位代码', |
|||
field: 'workStationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '在途库库位', |
|||
field: 'onTheWayLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从包装号', |
|||
field: 'fromPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到包装号', |
|||
field: 'toPackingNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从批次', |
|||
field: 'fromBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到批次', |
|||
field: 'toBatch', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '库存状态', |
|||
field: 'inventoryStatus', |
|||
dictType: DICT_TYPE.INVENTORY_STATUS, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位代码', |
|||
field: 'fromLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库位组代码', |
|||
field: 'fromLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从库区代码', |
|||
field: 'fromAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位代码', |
|||
field: 'toLocationCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库位组代码', |
|||
field: 'toLocationGroupCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到库区代码', |
|||
field: 'toAreaCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '单据号', |
|||
field: 'number', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品代码', |
|||
field: 'itemCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
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: { |
|||
type: 'datetime', |
|||
dateFormat: 'YYYY-MM-DD HH:mm:ss', |
|||
valueFormat: 'x', |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: '创建者', |
|||
field: 'creator', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '物品名称', |
|||
field: 'itemName', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
|
|||
{ |
|||
label: '物品描述1', |
|||
field: 'itemDesc1', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
|
|||
{ |
|||
label: '物品描述2', |
|||
field: 'itemDesc2', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '项目代码', |
|||
field: 'projectCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '数量', |
|||
field: 'qty', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
form: { |
|||
component: 'InputNumber', |
|||
} |
|||
}, |
|||
{ |
|||
label: '计量单位', |
|||
field: 'uom', |
|||
dictType: DICT_TYPE.UOM, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '代码', |
|||
field: 'code', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '接口类型', |
|||
field: 'interfaceType', |
|||
dictType: DICT_TYPE.INTERFACE_TYPE, |
|||
dictClass: 'string', |
|||
isTable: true, |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '任务明细ID', |
|||
field: 'jobDetailId', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从器具号', |
|||
field: 'fromContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到器具号', |
|||
field: 'toContainerNumber', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '从货主代码', |
|||
field: 'fromOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
{ |
|||
label: '到货主代码', |
|||
field: 'toOwnerCode', |
|||
sort: 'custom', |
|||
table: { |
|||
width: 150 |
|||
}, |
|||
}, |
|||
])) |
|||
|
|||
//表单校验
|
|||
export const ProductionreceiptRecordDetailRules = reactive({ |
|||
fromPackingNumber: [ |
|||
{ required: true, message: '请选择从包装号', trigger: 'change' } |
|||
], |
|||
toPackingNumber: [ |
|||
{ required: true, message: '请选择到包装号', trigger: 'change' } |
|||
], |
|||
fromBatch: [ |
|||
{ required: true, message: '请输入从批次', trigger: 'blur' } |
|||
], |
|||
toBatch: [ |
|||
{ required: true, message: '请输入到批次', trigger: 'blur' } |
|||
], |
|||
inventoryStatus: [ |
|||
{ required: true, message: '请选择库存状态', trigger: 'change' } |
|||
], |
|||
fromLocationCode: [ |
|||
{ required: true, message: '请选择从库位代码', trigger: 'change' } |
|||
], |
|||
fromLocationGroupCode: [ |
|||
{ required: true, message: '请选择从库位组代码', trigger: 'change' } |
|||
], |
|||
fromAreaCode: [ |
|||
{ required: true, message: '请选择从库区代码', trigger: 'change' } |
|||
], |
|||
toLocationCode: [ |
|||
{ required: true, message: '请输入到库位代码', trigger: 'change' } |
|||
], |
|||
toLocationGroupCode: [ |
|||
{ required: true, message: '请选择到库位组代码', trigger: 'change' } |
|||
], |
|||
toAreaCode: [ |
|||
{ required: true, message: '请选择到库区代码', trigger: 'change' } |
|||
], |
|||
number: [ |
|||
{ required: true, message: '请输入单据号', trigger: 'blur' } |
|||
], |
|||
itemCode: [ |
|||
{ required: true, message: '请选择物品代码', trigger: 'change' } |
|||
], |
|||
createTime: [ |
|||
{ required: true, message: '请输入创建时间', trigger: 'blur' } |
|||
], |
|||
creator: [ |
|||
{ required: true, message: '请输入创建者', trigger: 'blur' } |
|||
], |
|||
}) |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search :schema="ProductionreturnRecordMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="ProductionreturnRecordMain.allSchemas" |
|||
/> |
|||
|
|||
<!-- 列表 --> |
|||
<ContentWrap> |
|||
<Table |
|||
:columns="tableColumns" |
|||
:data="tableObject.tableList" |
|||
:loading="tableObject.loading" |
|||
:pagination="{ |
|||
total: tableObject.total |
|||
}" |
|||
v-model:pageSize="tableObject.pageSize" |
|||
v-model:currentPage="tableObject.currentPage" |
|||
v-model:sort="tableObject.sort" |
|||
> |
|||
<template #number="{row}"> |
|||
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> |
|||
<span>{{ row.number }}</span> |
|||
</el-button> |
|||
</template> |
|||
<template #action="{ row }"> |
|||
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" /> |
|||
</template> |
|||
</Table> |
|||
</ContentWrap> |
|||
|
|||
<!-- 表单弹窗:添加/修改 --> |
|||
<BasicForm |
|||
ref="formRef" |
|||
@success="getList" |
|||
:rules="ProductionreturnRecordMainRules" |
|||
:formAllSchemas="ProductionreturnRecordMain.allSchemas" |
|||
:tableAllSchemas="ProductionreturnRecordDetail.allSchemas" |
|||
:tableFormRules="ProductionreturnRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="ProductionreturnRecordMain.allSchemas" |
|||
:detailAllSchemas="ProductionreturnRecordDetail.allSchemas" |
|||
:detailAllSchemasRules="ProductionreturnRecordDetailRules" |
|||
:apiPage="ProductionreturnRecordDetailApi.getProductionreturnRecordDetailPage" |
|||
/> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { ProductionreturnRecordMain,ProductionreturnRecordMainRules,ProductionreturnRecordDetail,ProductionreturnRecordDetailRules } from './productionreturnRecordMain.data' |
|||
import * as ProductionreturnRecordMainApi from '@/api/wms/productionreturnRecordMain' |
|||
import * as ProductionreturnRecordDetailApi from '@/api/wms/productionreturnRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
|
|||
// 生产退料记录主 |
|||
defineOptions({ name: 'ProductionreturnRecordMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref(ProductionreturnRecordMain.allSchemas.tableColumns) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: ProductionreturnRecordMainApi.getProductionreturnRecordMainPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:productionreturn-record-main:export'}), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null), // 设置 |
|||
// { |
|||
// label: '自定义扩展按钮', |
|||
// name: 'zdy', |
|||
// hide: false, |
|||
// type: 'primary', |
|||
// icon: 'Select', |
|||
// color: '' |
|||
// }, |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
if (val == 'export') { // 导出 |
|||
handleExport() |
|||
} else if (val == 'refresh') { // 刷新 |
|||
getList() |
|||
} else if (val == 'filtrate') { // 筛选 |
|||
} else { // 其他按钮 |
|||
console.log('其他按钮', item) |
|||
} |
|||
} |
|||
|
|||
// 列表-操作按钮 |
|||
const butttondata = (row) => { |
|||
return [] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
} |
|||
|
|||
/** 详情操作 */ |
|||
const detailRef = ref() |
|||
const openDetail = (row: any, titleName: any, titleValue: any) => { |
|||
detailRef.value.openDetail(row, titleName, titleValue) |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const exportLoading = ref(false) // 导出的加载中 |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
exportLoading.value = true |
|||
const data = await ProductionreturnRecordMainApi.exportProductionreturnRecordMain(setSearchParams) |
|||
download.excel(data, '生产退料记录主.xls') |
|||
} catch { |
|||
} finally { |
|||
exportLoading.value = false |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
}) |
|||
</script> |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue