Browse Source

要货预测-日期表头

hella_chenfang
王宇飞 2 months ago
parent
commit
d18fbc1edf
  1. 45
      src/api/wms/customerDeliveryForecast/index.ts
  2. 105
      src/views/wms/basicDataManage/customerManage/customerDeliveryForecast/customerDeliveryForecast.data.ts
  3. 62
      src/views/wms/basicDataManage/customerManage/customerDeliveryForecast/index.vue

45
src/api/wms/customerDeliveryForecast/index.ts

@ -1,4 +1,5 @@
import request from '@/config/axios' import request from '@/config/axios'
import { isString } from '@/utils/is'
export interface CustomerDeliveryForecastVO { export interface CustomerDeliveryForecastVO {
schdSite: string schdSite: string
@ -62,6 +63,50 @@ export const importTemplate = () => {
return request.download({ url: '/wms/customer-delivery-forecast/get-import-template' }) return request.download({ url: '/wms/customer-delivery-forecast/get-import-template' })
} }
// 要货预测-列表和头部请求参数
const getPageParams = (params)=>{
// 到货日期
if(params.schdDate&&params.schdDate.length>0){
if(isString(params.schdDate[0])){
params.startDate = params.schdDate[0]
}else{
params.startDate = params.schdDate[0].format('YYYY-MM-DD')
}
}
if(params.schdDate&&params.schdDate.length>1){
if(isString(params.schdDate[1])){
params.endDate = params.schdDate[1]
}else{
params.endDate = params.schdDate[1].format('YYYY-MM-DD')
}
}
console.log(params.schdDate)
if (!params.schdDate || params.schdDate.length == 0) {
params.startDate = ''
params.endDate = ''
}
// 物料代码
if(params.schdPart&&params.schdPart.length>0){
let keyValue = params.schdPart.split(' ')
keyValue.forEach(item=>{item = item.trim()})
params.schdParts = keyValue.join(',')
}
params.schdPart = ''
// 版本号
if(params.version&&params.version.length>0){
let keyValue = params.version.split(' ')
keyValue.forEach(item=>{item = item.trim()})
params.versions = keyValue.join(',')
}
params.version = ''
return params
}
// 查询发货预测主列表 // 查询发货预测主列表
export const getPageTableHead = async (params) => { export const getPageTableHead = async (params) => {
params = getPageParams(params) params = getPageParams(params)

105
src/views/wms/basicDataManage/customerManage/customerDeliveryForecast/customerDeliveryForecast.data.ts

@ -1,6 +1,41 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import dayjs from 'dayjs'
import * as DemandforecastingDetailApi from '@/api/wms/demandforecastingDetail'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data'
Supplieritem.allSchemas.searchSchema = Supplieritem.allSchemas.searchSchema.filter(item=>item.field!="allowOverShipment")
export const Version = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '供应商代码',
field: 'supplierCodes',
sort: 'custom',
isSearch:true,
},
{
label: '订单号',
field: 'poNumber',
sort: 'custom',
isSearch:true,
},
{
label: '订单行',
field: 'poLine',
sort: 'custom',
},
{
label: '物料代码',
field: 'itemCode',
isSearch:true,
sort: 'custom',
},
{
label: '子表版本',
field: 'detailVersion',
sort: 'custom',
}
]))
// 表单校验 // 表单校验
export const CustomerDeliveryForecastRules = reactive({ export const CustomerDeliveryForecastRules = reactive({
}) })
@ -44,7 +79,65 @@ export const CustomerDeliveryForecast = useCrudSchemas(reactive<CrudSchema[]>([
label: '物料编码', label: '物料编码',
field: 'schdPart', field: 'schdPart',
sort: 'custom', sort: 'custom',
isSearch:true,
search: {
// labelMessage: '信息提示说明!!!',
componentProps: {
multiple: true,
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Supplieritem.allSchemas, // 查询弹窗所需类
searchPage: SupplieritemApi.getSupplieritemPageSCP, // 查询弹窗所需分页方法
searchCondition: [{
key: 'supplierCodes',
value: 'supplierCode',
message: '请填写供应商代码!',
isMainValue: true,
isCSV:true,//是否用逗号分隔参数
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}
}, },
{
label: '版本号',
field: 'version',
sort: 'custom',
table: {
width: 150
},
isSearch:true,
search: {
// labelMessage: '信息提示说明!!!',
componentProps: {
multiple: true,
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择版本号', // 输入框占位文本
searchField: 'detailVersion', // 查询弹窗赋值字段
searchTitle: '版本号', // 查询弹窗标题
searchAllSchemas: Version.allSchemas, // 查询弹窗所需类
searchPage: DemandforecastingDetailApi.queryVersion, // 查询弹窗所需分页方法
searchCondition: [{
key: 'itemCodes',
value: 'itemCode',
message: '请填写物料代码!',
isMainValue: true,
isCSV:true,//是否用逗号分隔参数
},{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}
},
{ {
label: '净需求', label: '净需求',
field: 'schdNetReq', field: 'schdNetReq',
@ -61,7 +154,17 @@ export const CustomerDeliveryForecast = useCrudSchemas(reactive<CrudSchema[]>([
type: 'datetime', type: 'datetime',
valueFormat: 'x' valueFormat: 'x'
} }
} },
isSearch:true,
search: {
component: 'DatePicker',
value: [dayjs(), dayjs().subtract(-3,'month')],
componentProps: {
valueFormat: 'YYYY-MM-DD',
type: 'daterange',
defaultTime: [new Date('1 '), new Date('1 ')]
}
},
}, },
{ {
label: '需求时间', label: '需求时间',

62
src/views/wms/basicDataManage/customerManage/customerDeliveryForecast/index.vue

@ -1,7 +1,7 @@
<template> <template>
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<Search :schema="CustomerDeliveryForecast.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" /> <Search ref="seachRef" :showSearchTableQueryFields="['schdPart','version']" :hiddenFilterBtnFields="['schdPart','version']" :schema="CustomerDeliveryForecast.allSchemas.searchSchema" @searchTableSuccess="searchQueryTableSuccess" @search="searchClick" @reset="searchClick" />
</ContentWrap> </ContentWrap>
<!-- 列表头部 --> <!-- 列表头部 -->
@ -77,6 +77,7 @@ const { t } = useI18n() // 国际化
const route = useRoute() // const route = useRoute() //
const routeName = ref() const routeName = ref()
routeName.value = route.name routeName.value = route.name
const orginTableColumns = ref(CustomerDeliveryForecast.allSchemas.tableColumns)
const tableColumns = ref(CustomerDeliveryForecast.allSchemas.tableColumns) const tableColumns = ref(CustomerDeliveryForecast.allSchemas.tableColumns)
// //
@ -90,9 +91,58 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
// //
const updataTableColumns = (val) => { const updataTableColumns = (val) => {
tableColumns.value = val orginTableColumns.value = val
} }
const { tableObject:tableObjectHead, tableMethods:tableMethodsHead } = useTable({
getListApi: CustomerDeliveryForecastApi.getPageTableHead //
})
//
const { getList:getListHead, setSearchParams:setSearchParamsHead } = tableMethodsHead
watch(()=>tableObjectHead.tableList,()=>{
updateDateTableColumns()
},{deep:true})
const updateDateTableColumns = ()=>{
console.log('tableObjectHead',tableObjectHead)
let dateColumns = []
tableObjectHead.tableList.forEach(item=>{
dateColumns.push({
width:120,
field: item,
label: item
})
})
tableColumns.value = [...orginTableColumns.value,...dateColumns]
console.log('tableColumns',tableColumns.value)
}
//
const searchQueryTableSuccess = (formField, searchField, val, formRef, type, row ) => {
console.log('searchQueryTableSuccess',formField, searchField, val, formRef, type, row )
nextTick(() => {
const setV = {}
if(formField == 'schdPart'||formField == 'version'){
//
let list = []
val.forEach(item=>{
list.push(item[searchField])
})
setV[formField] = list.join(' ')
formRef.setValues(setV)
}else{
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
}
const seachRef = ref()
const searchClick = async (data)=>{
await setSearchParamsHead(data)
// updateDateTableColumns()
setSearchParams(data)
}
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: CustomerDeliveryForecastApi.getCustomerDeliveryForecastPage // getListApi: CustomerDeliveryForecastApi.getCustomerDeliveryForecastPage //
}) })
@ -119,7 +169,7 @@ const HeadButttondata = [
] ]
// //
const buttonBaseClick = (val, item) => { const buttonBaseClick = async (val, item) => {
if (val == 'add') { // if (val == 'add') { //
openForm('create') openForm('create')
} else if (val == 'import') { // } else if (val == 'import') { //
@ -132,7 +182,10 @@ const buttonBaseClick = (val, item) => {
filters: tableObject.params.filters filters: tableObject.params.filters
}) })
} else { } else {
await getListHead()
// updateDateTableColumns()
getList() getList()
} }
} else if (val == 'filtrate') { // } else if (val == 'filtrate') { //
} else { // } else { //
@ -257,7 +310,8 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() seachRef.value.search()
// getList()
importTemplateData.templateUrl = await CustomerDeliveryForecastApi.importTemplate() importTemplateData.templateUrl = await CustomerDeliveryForecastApi.importTemplate()
}) })

Loading…
Cancel
Save