Browse Source

YT-1745:【隔离转合格】创建申请时,增加 “到库位代码” 的选择

intex_online20241228
songguoqiang 2 months ago
parent
commit
8d2087eae1
  1. 874
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOkTOHOLD/index.vue
  2. 1057
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOkTOHOLD/inventorymoveRequestMain.data.ts

874
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOkTOHOLD/index.vue

@ -0,0 +1,874 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="[...InventorymoveRequestMain.allSchemas.searchSchema,...InventorymoveRequestDetail.allSchemas.searchSchema]" @search="searchList" @reset="searchList" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InventorymoveRequestMain.allSchemas"
:detailAllSchemas="InventorymoveRequestDetail.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
: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,$index }">
<ButtonBaseMore :Butttondata="butttondata(row,$index)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
:isOpenSearchTable="true"
fieldTableColumn="itemCode"
@success="getList"
:rules="InventorymoveRequestMainRules"
:formAllSchemas="InventorymoveRequestMain.allSchemas"
:tableAllSchemas="InventorymoveRequestDetail.allSchemas"
:tableFormRules="InventorymoveRequestDetailRules"
:tableData="tableData"
:apiUpdate="InventorymoveRequestMainApi.updateInventorymoveRequestMain"
:apiCreate="InventorymoveRequestMainApi.createInventorymoveRequestMain"
:isBusiness="true"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
:isShowReduceButtonSelection="true"
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
/>
<!-- 详情 -->
<Detail
ref="detailRef"
:isBasic="false"
:allSchemas="InventorymoveRequestMain.allSchemas"
:detailAllSchemas="InventorymoveRequestDetail.allSchemas"
:detailAllSchemasRules="InventorymoveRequestDetailRules"
:apiCreate="InventorymoveRequestDetailApi.createInventorymoveRequestDetail"
:apiUpdate="InventorymoveRequestDetailApi.updateInventorymoveRequestDetail"
:apiPage="InventorymoveRequestDetailApi.getInventorymoveRequestDetailPage"
:apiDelete="InventorymoveRequestDetailApi.deleteInventorymoveRequestDetail"
@searchTableSuccessDetail="searchTableSuccessDetail"
@detailOpenForm="detailOpenForm"
/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/inventorymove-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" :fromInventoryStatus= "fromInventoryStatus" :toInventoryStatus="toInventoryStatus" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { InventorymoveRequestMain,InventorymoveRequestMainRules,InventorymoveRequestDetail,InventorymoveRequestDetailRules } from './inventorymoveRequestMain.data'
import * as InventorymoveRequestMainApi from '@/api/wms/inventorymoveRequestMain'
import * as InventorymoveRequestDetailApi from '@/api/wms/inventorymoveRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
import {importTemplateHoldOk} from "@/api/wms/inventorymoveRequestMain";
import * as ruleApi from '@/api/wms/rule/index'
import { formatTime } from '@/utils/index'
const { loadStart, loadDone } = usePageLoading()
//
defineOptions({ name: 'InventorymoveRequestMain' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref([...InventorymoveRequestMain.allSchemas.tableColumns,...InventorymoveRequestDetail.allSchemas.tableMainColumns])
const businessType = ref()
console.log(99 , routeName.value)
const fromInventoryStatus = ref()
const toInventoryStatus = ref()
const importFileName = ref()
const { tableObject, tableMethods } = useTable({
getListApi: InventorymoveRequestDetailApi.getInventorymoveRequestDetailPage //
})
//
/**
* OktoholdRequestMain 合格转隔离
*/
if ( routeName.value == 'NoktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'NOK',
// toInventoryStatus:'HOLD',
businessType :'NokToHold'
}
fromInventoryStatus.value = 'NOK'
toInventoryStatus.value = "HOLD"
businessType.value = 'NokToHold'
importFileName.value = '不合格转隔离申请'
}
else if ( routeName.value == 'HoldtookRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'OK',
businessType :'HoldToOk'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'SCRAP',
businessType:'HoldToScrap'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'SCRAP',
businessType :'OkToScrap'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
}
else if ( routeName.value == 'ScraptoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'SCRAP',
// toInventoryStatus:'HOLD',
businessType :'ScrapToHold'
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else {
tableObject.params = {
businessType :'Move'
}
businessType.value = 'Move'
importFileName.value = '库存移动申请'
}
console.log(99 , businessType.value)
InventorymoveRequestMain.allSchemas.tableFormColumns.map(item =>{
if(item.field == 'fromWarehouseCode') {
if (fromInventoryStatus.value) {
item.tableForm.searchCondition = [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'out',
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'out',
isMainValue: false
}
]
} else if (fromInventoryStatus.value == null) {
item.tableForm.searchCondition = [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'out',
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'out',
isMainValue: false
}]
} else {
delete item.tableForm.searchCondition
}
}
})
// tableform
InventorymoveRequestDetail.allSchemas.tableFormColumns.map(item => {
if(item.field == 'itemCode') {
if (fromInventoryStatus.value) {
item.tableForm.searchCondition = [
{
key:'fromWarehouseCode',
value:'fromWarehouseCode',
message: '请选择从仓库代码!',
isMainValue: true
},
{
key: 'businessType',
value: businessType.value ,
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'businessType',
value: businessType.value,
isMainValue: false
}
]
} else if (fromInventoryStatus.value == null) {
item.tableForm.searchCondition = [
{
key:'fromWarehouseCode',
value:'fromWarehouseCode',
message: '请选择从仓库代码!',
isMainValue: true
},
{
key: 'businessType',
value: businessType.value ,
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'businessType',
value: businessType.value,
isMainValue: false
}]
} else {
delete item.tableForm.searchCondition
}
}
if(item.field == "toLocationCode"){
if (toInventoryStatus.value) {
item.tableForm.searchCondition = [
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'in',
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'in',
isMainValue: false
}]
}else if (toInventoryStatus.value == null) {
item.tableForm.searchCondition = [
{
key: 'businessType',
value: businessType.value ,
isMainValue: false
},{
key: 'isIn',
value: 'in',
isMainValue: false
}]
item.form.componentProps.searchCondition = [
{
key: 'businessType',
value: businessType.value,
isMainValue: false
},{
key: 'isIn',
value: 'in',
isMainValue: false
}]
}
}
})
if(routeName.value == 'HoldtookRequestMain'){
//bug
InventorymoveRequestDetail.allSchemas.tableFormColumns.forEach(item=>{
if(item.field=='toLocationCode'){
item.hidden = true
}
})
}else{
InventorymoveRequestDetail.allSchemas.tableFormColumns.forEach(item=>{
if(item.field=='toLocationCode'){
item.hidden = false
}
})
}
console.log('tableFormColumns',InventorymoveRequestDetail.allSchemas.tableFormColumns)
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const fromManagementPrecision = ref('')
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(async() => {
if (type == 'tableForm') {
if (formField == 'itemCode') {
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['fromLocationCode']==item['locationCode']&&item1['fromInventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(async item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
// newRow['fromPackingNumber'] = item['packingNumber']
newRow['fromContainerNumber'] = item['containerNumber']
newRow['itemCode'] = item['itemCode']
newRow['balanceQty'] = item['qty']
if (item['batch'] != '') {
newRow['fromBatch'] = item['batch']
}
// else{
// newRow['fromBatch'] = getFormattedDate(); // YYYYMMDD
// }
await ruleApi.getManagementPrecision({
itemCodes: [item['itemCode']],
locationCode:val[0]['locationCode']
}).then((res) => {
fromManagementPrecision.value = res[0].ManagementPrecision
})
if (fromManagementPrecision.value == 'BY_QUANTITY') {
newRow['fromBatchFormItemType'] = 'FormDate'
newRow['disabled_fromBatch'] = false
} else {
newRow['fromBatchFormItemType'] = ''
newRow['disabled_fromBatch'] = true
}
newRow['fromInventoryStatus'] = item['inventoryStatus']
newRow['fromLocationCode'] = item['locationCode']
newRow['uom'] = item['uom']
newRow['qty'] = item['qty']
newRow['inventoryQty'] = item['qty']
if(routeName.value == 'NoktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
newRow['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
newRow['toInventoryStatus'] = "HOLD"
}else{
newRow['toInventoryStatus'] = item['inventoryStatus']
}
newRow['toBatch'] = formatTime(new Date(), 'yyyyMMdd')
tableData.value.push(newRow)
})
} else {
row[formField] = val[0][searchField]
}
} else {
const setV = {}
if (formField == 'fromWarehouseCode') {
if(InventorymoveRequestDetail?.allSchemas?.tableFormColumns?.find(item => (item.field == 'itemCode'))?.tableForm?.searchCondition?.find(item => (item.key == 'warehouseCode')) == undefined){
InventorymoveRequestDetail?.allSchemas?.tableFormColumns?.find(item => (item.field == 'itemCode'))?.tableForm?.searchCondition?.push({
key: 'warehouseCode',
value: val[0]["code"],
isMainValue: false
})
} else {
InventorymoveRequestDetail.allSchemas.tableFormColumns.find(item => (item.field == 'itemCode')).tableForm.searchCondition.find(item => {
if (item.key == 'warehouseCode') {
item.value = val[0]["code"]
}
})
}
tableData.value = []
}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
}
//
const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
nextTick(() => {
const setV = {}
if(formField == 'itemCode') {
setV['fromContainerNumber'] = val[0]['containerNumber']
setV['itemCode'] = val[0]['itemCode']
setV['fromBatch'] = val[0]['batch']
setV['fromInventoryStatus'] = val[0]['inventoryStatus']
setV['fromLocationCode'] = val[0]['locationCode']
setV['uom'] = val[0]['uom']
if(routeName.value == 'NoktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
setV['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
setV['toInventoryStatus'] = "HOLD"
}else{
setV['toInventoryStatus'] = val[0]['inventoryStatus']
}
} else {
setV[formField] = val[0][searchField]
}
formRef.setValues(setV)
})
}
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}: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 == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
if (tableObject.params.filters && tableObject.params.filters.length > 0 ) {
searchFormClick({
filters: tableObject.params.filters
})
} else {
getList()
}
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
//
const isShowMainButton = (row,val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
if(findIndex>-1&&findIndex<$index){
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'mainClose') { //
await message.confirm('确认要关闭吗?')
tableObject.loading = true
InventorymoveRequestMainApi.close(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainReAdd') { //
await message.confirm('确认要重新添加吗?')
tableObject.loading = true
InventorymoveRequestMainApi.reAdd(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainSubmit') { //
await message.confirm('确认要提交审批吗?')
tableObject.loading = true
InventorymoveRequestMainApi.submit(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainTurnDown') { //
await message.confirm('确认要驳回吗?')
tableObject.loading = true
InventorymoveRequestMainApi.refused(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainApprove') { //
await message.confirm('确认要审批通过吗?')
tableObject.loading = true
InventorymoveRequestMainApi.agree(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainHandle') { //
await message.confirm('确认要处理吗?')
tableObject.loading = true
InventorymoveRequestMainApi.handle(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
buttonBaseClick('refresh',null)
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.masterId)
}
}
/** 添加/修改操作 */
const formRef = ref()
const openForm =async (type: string, row?: number) => {
// InventorymoveRequestDetail.allSchemas.tableFormColumns.forEach(item=>{
// if(item.field == 'qty'){
// item.tableForm.disabled = routeName.value == "HoldtookRequestMain"
// }
// })
tableData.value = [] //
formRef.value.open(type, row)
}
/**
* 详情 新增/编辑事件
*/
const detailOpenForm = (type, row) => {
InventorymoveRequestDetail.allSchemas.formSchema.forEach(item=>{
if(item.field == 'qty'){
item.componentProps.disabled = routeName.value == "HoldtookRequestMain"
}
})
if(InventorymoveRequestDetail.allSchemas.formSchema.find(item => (item.field == 'itemCode'))?.componentProps?.searchCondition.find(item => (item.key == 'warehouseCode')) == undefined){
InventorymoveRequestDetail.allSchemas.formSchema.find(item => (item.field == 'itemCode'))?.componentProps?.searchCondition.push({
key: 'warehouseCode',
value: fromWarehouseCodeMain.value,
isMainValue: false
})
} else {
InventorymoveRequestDetail.allSchemas.formSchema.find(item => (item.field == 'itemCode'))?.componentProps?.searchCondition.find(item => {
if (item.key == 'warehouseCode') {
item.value = fromWarehouseCodeMain.value
}
})
}
}
const fromWarehouseCodeMain = ref()
//
const { wsCache } = useCache()
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
fromWarehouseCodeMain.value = row.fromWarehouseCode
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue,"requestInventorymoveMain")
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
tableObject.loading = true
//
await InventorymoveRequestMainApi.deleteInventorymoveRequestMain(id)
message.success(t('common.delSuccess'))
tableObject.loading = false
//
buttonBaseClick('refresh',null)
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
loadStart()
const excelTitle = ref(route.meta.title)
if ( routeName.value == 'HoldtookRequestMain') {
const data = await InventorymoveRequestMainApi.exportHoldToOkRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
const data = await InventorymoveRequestMainApi.exportHoldToScrapRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'OktoscrapRequestMain') {
const data = await InventorymoveRequestMainApi.exportOkToScrapRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}
// else if ( routeName.value == 'ScraptoholdRequestMain') {
// const data = await InventorymoveRequestMainApi.exportScrapToHoldRequestMain(tableObject.params)
// download.excel(data, '.xlsx')
// }
else{
const data = await InventorymoveRequestMainApi.exportInventorymoveRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}
} catch {
} finally {
loadDone()
}
}
/**
* tableForm方法
*/
const tableFormKeys = {}
InventorymoveRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
const tableData = ref([])
//
const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
}
//
const handleDeleteTable = (item, index) => {
let itemIndex = tableData.value.indexOf(item)
if(itemIndex>-1){
tableData.value.splice(itemIndex, 1)
}
}
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
//true0
const flag = ref()
//
const submitForm = async (formType, submitData) => {
let data = {...submitData}
if(data.masterId){
data.id = data.masterId
}
let findLocation = tableData.value.find(item=>item.fromLocationCode==item.toLocationCode&&item.fromInventoryStatus==item.toInventoryStatus)
if(findLocation){
message.warning('从库位和到库位不能相同')
return
}
data.businessType = businessType.value
data.subList = tableData.value //
data.subList.forEach(item => {
item.toLocationCode = data.toLocationCode
})
// let isExist = false
// tableData.value.forEach(item => {
// let rs = tableData.value.filter(filterItem => (filterItem.itemCode&&filterItem.itemCode == item.itemCode) )
// console.log(rs,5666);
// if(rs.length > 1) isExist = true
// })
// if (isExist) {
// formRef.value.formLoading = false
// isExist = false
// return message.warning('')
// }
flag.value = false
data.subList.forEach(item => {
console.log(556565,item);
if(fromInventoryStatus.value){
//item.fromInventoryStatus = fromInventoryStatus.value
item.toInventoryStatus = toInventoryStatus.value
}
if(item.qty == 0){
message.error(`到数量不能为0!`)
flag.value = true
return;
}
})
if(flag.value){
formRef.value.formLoading = false
return
}
formRef.value.formLoading = true
try {
const cmdExists = data.subList.some(filter =>
parseFloat(filter.inventoryQty) < parseFloat(filter.qty)
);
if(cmdExists){
message.warning("数量不能大于库存数量")
return
}
if (formType === 'create') {
await InventorymoveRequestMainApi.createInventorymoveRequestMain(data)
message.success(t('common.createSuccess'))
} else {
await InventorymoveRequestMainApi.updateInventorymoveRequestMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
//
if (formType === 'create') {
getList()
}else{
buttonBaseClick('refresh',null)
}
} finally {
formRef.value.formLoading = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: `${route.meta.title}】导入模版.xlsx`
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
const cmd = {
'column':'businessType',
'action':'==',
'value':businessType.value
}
if (!Array.isArray(searchData.filters)) {
searchData.filters = [];
}
searchData.filters.push(cmd)
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
const searchList = (model)=>{
model.businessType=businessType.value
setSearchParams(model)
}
/** 初始化 **/
onMounted(async () => {
getList()
//
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateHoldOkNew()
})
const getFormattedDate = () =>{
const a = new Date();
const year = a.getFullYear();
const month = String(a.getMonth() + 1).padStart(2, '0');
const day = String(a.getDate()).padStart(2, '0');
return `${year}${month}${day}`;
}
</script>

1057
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOkTOHOLD/inventorymoveRequestMain.data.ts

File diff suppressed because it is too large
Loading…
Cancel
Save