Browse Source

顺引维护对账日期

intex_online_narushoulingshu
张立 2 weeks ago
parent
commit
993ee72469
  1. 27
      src/api/wms/maintenanceBillDate/index.ts
  2. 2
      src/components/TableForm/src/TableForm.vue
  3. 213
      src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/deliverRecordMain.data.ts
  4. 129
      src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue

27
src/api/wms/maintenanceBillDate/index.ts

@ -0,0 +1,27 @@
import request from '@/config/axios'
export interface MaintenanceBillDateMainVO {
customerOrderNumber: string,
customerCode: string,
productionLineCode: string,
startDueTime: Date,
endDueTime: Date,
reconciliationDate: Date,
startSerialNo: number,
endSerialNo: number,
incorporationNumber: string,
backNumber: string,
notIncludedList: object
}
// 计算发货数量
export const comPuteReconciliationDate = async (data: MaintenanceBillDateMainVO) => {
return await request.post({ url: `/wms/leadership-incorporation-doc-request/comPuteReconciliationDate`, data })
}

2
src/components/TableForm/src/TableForm.vue

@ -42,7 +42,7 @@
icon="ep:remove"
color="#757575"
:size="26"
style="cursor: pointer; margin-top: -16px"
style="cursor: pointer;"
@click.stop="handleDeleteTable(row, $index)"
/>
</el-table-column>

213
src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/deliverRecordMain.data.ts

@ -6,7 +6,8 @@ import * as CustomerItemApi from '@/api/wms/customeritem'
import { Customeritem } from '@/views/wms/basicDataManage/customerManage/customeritem/customeritem.data'
import * as ProductionlineApi from '@/api/wms/productionline'
import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
import * as ItemBasicApi from '@/api/wms/itembasic'
import { Itembasic } from '../../../basicDataManage/itemManage/itembasic/itembasic.data'
/**
* @returns {Array}
*/
@ -1374,88 +1375,134 @@ export const MaintenanceBillDateMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '背番',
field: 'backNumber',
sort: 'custom',
},
{
label: '生产线',
field: 'productionLine',
sort: 'custom',
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true,
searchListPlaceholder: '请选择生产线',
searchField: 'code',
searchTitle: '生产线信息',
searchAllSchemas: Productionline.allSchemas,
searchPage: ProductionlineApi.getProductionlinePage,
searchCondition:[{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'workshopCode',
value: 'workshop',
message: '请填写车间代码!',
isMainValue: true
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
table: {
width: 150
},
tableForm:{
multiple:true,
isInpuFocusShow: false, // 开启查询弹窗
searchListPlaceholder: '请选择品番',
searchField: 'backNumber',
searchTitle: '物料基础信息',
searchAllSchemas: Itembasic.allSchemas,
searchPage: ItemBasicApi.selectItembasicPageToFgAndSemibasicPage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationPage: ItemBasicApi.getItemListByCodes, // 校验数去焦点输入是否正确的方法
isShowTableFormSearch: true,
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
componentProps: {
enterSearch: true,
isSearchList: true,
searchListPlaceholder: '请选择品番',
searchField: 'backNumber',
searchTitle: '物料基础信息',
searchAllSchemas: Itembasic.allSchemas,
searchPage: ItemBasicApi.getItembasicPage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
{
label: '生产线',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true,
searchListPlaceholder: '请选择生产线',
searchField: 'code',
searchTitle: '生产线信息',
searchAllSchemas: Productionline.allSchemas,
searchPage: ProductionlineApi.getProductionlinePage,
searchCondition:[{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
{
label: '顺引开始日期',
field: 'startDate',
field: 'startDueTime',
sort: 'custom',
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
}
},
},
{
label: '开始序号',
field: 'startNo',
label: '顺引结束日期',
field: 'endDueTime',
sort: 'custom',
form: {
component: 'InputNumber',
component: 'DatePicker',
componentProps: {
min: 1,
precision: 0
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
}
},
},
{
label: '顺引结束日期',
field: 'endDate',
label: '开始序号',
field: 'startSerialNo',
sort: 'custom',
form: {
component: 'DatePicker',
component: 'InputNumber',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
min: 1,
precision: 0
}
},
},
{
label: '结束序号',
field: 'endNo',
field: 'endSerialNo',
sort: 'custom',
form: {
component: 'InputNumber',
@ -1463,6 +1510,38 @@ export const MaintenanceBillDateMain = useCrudSchemas(reactive<CrudSchema[]>([
min: 1,
precision: 0
}
},
},
{
label: '对账日期',
field: 'reconciliationDate',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: true,
isTableForm: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
},
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
},
},
},
]))
@ -1470,25 +1549,28 @@ export const MaintenanceBillDateMain = useCrudSchemas(reactive<CrudSchema[]>([
// 维护对账日期主校验
export const MaintenanceBillDateMainRules = reactive({
backNumber: [
{ required: true, message: '请输入订单号', trigger: 'blur' },
{ required: true, message: '请输入背番', trigger: 'blur' },
],
productionLine: [
productionLineCode: [
{ required: true, message: '请选择生产线', trigger: 'change' }
],
startDate: [
startDueTime: [
{ required: true, message: '请选择顺引开始日期', trigger: 'change' }
],
endDate: [
endDueTime: [
{ required: true, message: '请选择顺引结束日期', trigger: 'change' },
],
startNo: [
startSerialNo: [
{ required: true, message: '请输入开始序号', trigger: 'change' },
{ type: 'number', message: '开始序号必须为数字', trigger: 'blur' }
],
endNo: [
endSerialNo: [
{ required: true, message: '请输入结束序号', trigger: 'change' },
{ type: 'number', message: '结束序号必须为数字', trigger: 'blur' }
],
reconciliationDate: [
{ required: true, message: '请选择顺引结束日期', trigger: 'change' },
],
})
/**
* @returns {Array}
@ -1498,15 +1580,20 @@ export const MaintenanceBillDateDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '不包含顺引日期',
field: 'billDate',
sort: 'custom',
tableForm: {
type: 'FormDate',
placeholder: '请选择维护对账日期',
valueFormat: 'yyyyMMdd',
}
},
{
label: '不包含顺序号',
field: 'serialNo',
field: 'serialNoShow',
sort: 'custom',
table: {
width: 150
},
}
},
]))
// 维护对账日期主校验
@ -1514,7 +1601,7 @@ export const MaintenanceBillDateDetailRules = reactive({
billDate: [
{ required: true, message: '请输入不包含顺引日期', trigger: 'blur' },
],
serialNo: [
serialNoShow: [
{ required: true, message: '请输入不包含顺序号', trigger: 'blur' }
],
})

129
src/views/wms/deliversettlementManage/inducedProduct/deliverRecordMain/index.vue

@ -101,30 +101,38 @@
ref="maintenanceBillDateRef"
fieldTableColumn="itemCode"
@success="getList"
:rules="DeliverRecordMainRules"
:rules="MaintenanceBillDateMainRules"
:formAllSchemas="MaintenanceBillDateMain.allSchemas"
:tableAllSchemas="DeliverRecordDetail.allSchemas"
:tableFormRules="DeliverRecordDetailRules"
:tableAllSchemas="MaintenanceBillDateDetail.allSchemas"
:tableFormRules="MaintenanceBillDateDetailRules"
:isBusiness="true"
:apiUpdate="DeliverRecordMainApi.inducedProductUpdate"
:apiCreate="DeliverRecordMainApi.inducedProductCreate"
fromeWhere="InducedProduct"
:tableData="tableData"
:handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableAddSuccess"
@submitForm="submitForm"
@clearSearchInput="clearSearchInput"
/>
:tableData="tableDataBillDate"
:isShowFooterButtton="false"
:footButttondata="footButttondata"
@handleAddTable="handleAddTableBillDate"
@handleDeleteTable="handleDeleteTableBillDate"
@tableSelectionDelete="tableSelectionDeleteBillDate"
@searchTableSuccess="searchTableAddSuccessBillDate"
@clearSearchInput="clearSearchInputBillDate"
@footButtonClick="footButtonClick"
>
<template #foorter>
<div style="position: absolute; left: 20px;bottom: 26px;">
发货数量合计888
</div>
</template>
</BasicForm>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { getAccessToken } from '@/utils/auth'
import { DeliverRecordMain,DeliverRecordMainRules,DeliverRecordDetail,DeliverRecordDetailRules,DeliverRecordImport,DeliverRecordImportRules,ImportLeadershipDocErrorData,ImportLeadershipDocTempData,MaintenanceBillDateMain,MaintenanceBillDateMainRules} from './deliverRecordMain.data'
import { DeliverRecordMain,DeliverRecordMainRules,DeliverRecordDetail,DeliverRecordDetailRules,DeliverRecordImport,DeliverRecordImportRules,ImportLeadershipDocErrorData,ImportLeadershipDocTempData,MaintenanceBillDateMain,MaintenanceBillDateMainRules,MaintenanceBillDateDetail,MaintenanceBillDateDetailRules} from './deliverRecordMain.data'
import * as DeliverRecordMainApi from '@/api/wms/deliverRecordMain'
import * as DeliverRecordDetailApi from '@/api/wms/deliverRecordDetail'
import * as MaintenanceBillDateApi from '@/api/wms/maintenanceBillDate'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { getJmreportBaseUrl } from '@/utils/systemParam'
@ -207,7 +215,7 @@ const HeadButttondata = [
defaultButtons.defaultImportBtn({ hasPermi: 'wms:itempackage:import' }), //
defaultButtons.defaultImportBtn({
label: '维护对账日期',
name: 'zdy',
name: 'billDate',
hide: false,
type: 'primary',
icon: 'ep:notebook',
@ -246,6 +254,8 @@ const buttonBaseClick = (val, item) => {
} else if (val == 'filtrate') { //
} else if (val == 'receiptOfInclusion') { //
receiptOfInclusion()
} else if (val == 'billDate') { //
handleMainBillDate('create')
} else { //
console.log('其他按钮', item)
}
@ -507,7 +517,96 @@ const handleDeleteTable = (item, index) => {
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
const maintenanceBillDateRef = ref()
const tableDataBillDate = ref([])
const tableFormKeysBillDate = {}
const footButttondata = ref([
{
label: '计算发货数量',
name: 'sendGoodsNum',
type: 'primary',
hide: false,
icon: 'ep:platform',
color: '',
float: 'right',
hasPermi: ''
}, //
{
label: '更新对账日期',
name: 'updateBillDate',
type: 'primary',
hide: false,
icon: 'ep:edit',
color: '',
float: 'right',
hasPermi: ''
}, // BOM
defaultButtons.formCloseBtn(null) // BOM
])
//
const handleMainBillDate = async (type,row) => {
maintenanceBillDateRef.value.open(type,row)
}
/**
* tableForm方法
*/
MaintenanceBillDateDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeysBillDate[item.field] = item.default ? item.default : ''
})
//
const handleAddTableBillDate = () => {
tableDataBillDate.value.push(JSON.parse(JSON.stringify(tableFormKeysBillDate)))
}
const handleDeleteTableBillDate = (item, index) => {
let itemIndex = tableDataBillDate.value.indexOf(item)
if(itemIndex>-1){
tableDataBillDate.value.splice(itemIndex, 1)
}
}
const tableSelectionDeleteBillDate = (selection) => {
tableDataBillDate.value = tableDataBillDate.value.filter(item => !selection.includes(item))
}
const footButtonClick = async (val) => {
if (val == 'sendGoodsNum') {
sendGoodsNum()
} else if (val == 'close') {
formLabelRef.value.dialogVisible = false
}
}
//
const sendGoodsNum = async () => {
const elForm = unref(maintenanceBillDateRef.value.formRef)?.getElFormRef()
//
if (!elForm) return
const valid = await elForm.validate()
if (!valid) return
if (tableDataBillDate.value.length > 0) {
const validateForm = await maintenanceBillDateRef.value.tableFormRef.validateForm()
if (!validateForm) {
return
}
}
if (maintenanceBillDateRef.value.formRef.formModel.startDueTime >= maintenanceBillDateRef.value.formRef.formModel.endDueTime) {
message.warning('顺引开始日期不能大于顺引结束日期!')
return
}
if (maintenanceBillDateRef.value.formRef.formModel.startSerialNo >= maintenanceBillDateRef.value.formRef.formModel.endSerialNo) {
message.warning('开始序号不能大于结束序号!')
return
}
const data = { ...maintenanceBillDateRef.value.formRef.formModel }
tableDataBillDate.value.forEach(item => {
item.serialNo = item.serialNoShow.split(',')
})
data.notIncludedList = tableDataBillDate.value
console.log(data)
await MaintenanceBillDateApi.comPuteReconciliationDate(data)
}
const searchTableAddSuccessBillDate = (formField, searchField, val, formRef, type, row) => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
/** 初始化 **/
onMounted(async () => {
tableObject.params.businessType = 'InducedProduct'

Loading…
Cancel
Save