773 lines
31 KiB
Vue
Raw Normal View History

2025-03-10 13:48:17 +08:00
<!--
功能功能描述 出入库报表
作者陶庆峰
-->
<template>
<div class="vue-element-page-wrap" ref="tableContainer">
<el-row class="page-search" justify="space-between" align="bottom">
<el-form ref="queryFormRef" :model="queryParams" label-width="60px" label-position="left">
<el-row :gutter="24" class="form-row">
<el-col :span="6">
2025-05-10 10:25:22 +08:00
<el-form-item label="作业类型" prop="RECEIVEREQUESTNAMETYPE">
2025-05-07 17:55:03 +08:00
<el-select multiple filterable v-model="queryParams.RECEIVEREQUESTNAMETYPE" placeholder="选择作业类型"
2025-03-10 13:48:17 +08:00
style="width: 240px" default-first-option>
2025-05-07 17:55:03 +08:00
<el-option v-for="item in state.ReceiveList" :key="item.ENUMVALUE" :label="item.DESCRIPTION"
:value="item.ENUMVALUE" />
2025-03-10 13:48:17 +08:00
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="4">
2025-05-07 17:55:03 +08:00
<el-form-item label="组织" prop="ERPFACTORY">
<el-select multiple filterable v-model="queryParams.ERPFACTORY" placeholder="选择组织"
style="width: 240px" default-first-option>
<el-option v-for="item in state.ERPFactoryList" :key="item.ERPFACTORY" :label="item.DESCRIPTION"
:value="item.ERPFACTORY" />
</el-select>
</el-form-item>
</el-col>-->
<el-col :span="6" class="col_height">
<el-form-item label="组织" prop="params.ERPFACTORY">
<el-select multiple filterable v-model="queryParams.ERPFACTORY" placeholder="下拉选择组织" style="width: 240px"
default-first-option @change="GetERPLocationForList">
<el-option v-for="item in state.ERPFactoryList" :key="item.ERPFACTORY" :label="item.DESCRIPTION"
:value="item.ERPFACTORY" />
</el-select>
</el-form-item>
2025-03-10 13:48:17 +08:00
</el-col>
<!--
<el-col :span="6">
2025-05-07 17:55:03 +08:00
<el-form-item label="仓库" prop="ERPLOCATION">
<el-select multiple filterable v-model="queryParams.ERPLOCATION" placeholder="选择仓库"
style="width: 240px" default-first-option>
<el-option v-for="item in state.erpLocationList" :key="item.ENUMVALUE" :label="item.DESCRIPTION"
:value="item.ENUMVALUE" />
</el-select>
</el-form-item>
</el-col>-->
<el-col :span="6" class="col_height">
<el-form-item label="仓库" prop="ERPLOCATION">
<el-select v-model="queryParams.ChangeERPLocation" placeholder="下拉选择仓库" multiple filterable style="width: 240px"
@visible-change="GetLocationListForSomeERPLocation" default-first-option>
<el-option v-for="item in state.erpLocationList" :key="item.ENUMVALUE" :label="item.DESCRIPTION"
:value="item.ENUMVALUE" />
</el-select>
</el-form-item>
2025-03-10 13:48:17 +08:00
</el-col>
<el-col :span="6">
<el-form-item label="目的货位" prop="LOCATIONNAME">
<el-select
size="small"
v-model="queryParams.LOCATIONNAME"
multiple filterable
placeholder="下拉选择货位" :filter-method="getlocDec"
default-first-option
>
<el-option
v-for="item in state.locDecList2"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
2025-05-07 17:55:03 +08:00
<el-form-item label="物料" prop="MATERIALSPECNAME">
<el-Input v-model="queryParams.MATERIALSPECNAME" clearable />
2025-03-10 13:48:17 +08:00
</el-form-item>
</el-col>
<el-col :span="6">
2025-05-07 17:55:03 +08:00
<el-form-item label="品名" prop="DESC_CN">
<el-Input v-model="queryParams.DESC_CN" clearable />
</el-form-item>
2025-03-10 13:48:17 +08:00
</el-col>
<el-col :span="6">
2025-03-10 13:48:17 +08:00
<el-form-item label="出库单号" prop="SHIPREQUESTNAME">
<el-Input v-model="queryParams.SHIPREQUESTNAME" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" class="form-row">
<el-col :span="6">
2025-05-07 17:55:03 +08:00
<el-form-item label="入库单号" prop="RECEIVEREQUESTNAME">
<el-Input v-model="queryParams.RECEIVEREQUESTNAME" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
2025-03-10 13:48:17 +08:00
<el-form-item label="批次" prop="CHARGE">
<el-Input v-model="queryParams.CHARGE" clearable />
</el-form-item>
</el-col>
<!--
<el-col :span="4">
2025-03-10 13:48:17 +08:00
<el-form-item label="开始时间" prop="FROMDATE">
2025-04-02 16:26:29 +08:00
<el-date-picker v-model="queryParams.FROMDATE" value-format="YYYYMMDD" type="date"
2025-03-10 13:48:17 +08:00
placeholder="Pick a day" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="结束时间" prop="TODATE">
2025-04-02 16:26:29 +08:00
<el-date-picker v-model="queryParams.TODATE" value-format="YYYYMMDD" type="date"
2025-03-10 13:48:17 +08:00
placeholder="Pick a day" />
</el-form-item>
</el-col>
-->
<el-col :span="6">
<el-form-item label="入库时间" prop="params.USERNAME">
<el-date-picker v-model="queryParams.DateValue" type="datetimerange" unlink-panels range-separator="To"
v-model:start-placeholder="queryParams.FROMDATE"
v-model:end-placeholder="queryParams.TODATE" :shortcuts="shortcuts2" :size="size" />
</el-form-item>
</el-col>
2025-03-10 13:48:17 +08:00
</el-row>
</el-form>
<div class="page-search-btns">
<el-button type="primary" @click="handleQueryInfo">搜索</el-button>
<el-button type="primary" @click="exportTransactionExcel">导出</el-button>
2025-03-10 13:48:17 +08:00
<el-button @click="resetQuery">重置</el-button>
</div>
</el-row>
<div class="vue-element-page-table">
<div class="page-table-operate">
<div class="page-table-title">
<div class="page-table-title-left">
<span>标签信息</span>
</div>
</div>
<div class="page-table-operateBtns">
<el-popover :persistent="false" placement="right" popper-class="config-table-wrap" trigger="click">
<template #reference>
<el-button class="operateBtns-setting">
<svg-icon icon-class="table_title" width="16px" height="16px" />
</el-button>
</template>
<ConfigTable :list="materialTableConfig.column" @updateList="updateList" />
</el-popover>
</div>
</div>
<!-- <el-table border v-loading="loading" :data="list" highlight-current-row row-key="id" show-summary style="width: 100%" :height="tableHeight">-->
<el-table border v-loading="loading" :data="list" highlight-current-row row-key="id" show-summary style="width: 100%; height: 100%">
2025-03-10 13:48:17 +08:00
<el-table-column
type="index"
width="50"
label="序号"
>
</el-table-column>
<template v-for="(col, index) in materialTableConfig.column" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" :width="col.width" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination v-if="page.total" :total="page.total" v-model:pageNumTo="page.pageNum"
v-model:pageSizeTo="page.pageSize" @pagination="handleQuery" />
<div>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="标签数量" >
<el-Input v-model="state.AllNumber" placeholder="标签数量总和" clearable />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="物料总和" >
<el-Input v-model="state.UnitNumber" placeholder="标签数量总和" autosize clearable />
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</div>
</template>
<script lang="ts">
export default {
name: "StockTransaction"
};
</script>
<script lang="ts" setup>
import { reactive, ref, onMounted, toRefs, getCurrentInstance } from "vue";
import { ElForm, ElMessageBox, ElTable } from 'element-plus';
import { getQueryPageList, getQueryList } from '@/api/common';
import exportDataToExcel from '@/utils/export-excel';
import { bTableHeight } from "../../../../composables/calcTableHeight";
2025-05-07 17:55:03 +08:00
import { getORG } from '@/api/auth'
import { areAllNotEmpty, msToDate } from '@/utils/CommonUtil'
2025-03-10 13:48:17 +08:00
const { tableContainer, tableHeight, updateTableHeight, handleResize } = bTableHeight(155);
const { proxy }: any = getCurrentInstance();
const queryFormRef = ref(ElForm);
const materialTableConfig = ref({
loading: false,
column: [] as any,
data: [],
})
const size = ref<'default' | 'large' | 'small'>('small');//formdata时间设置
2025-03-10 13:48:17 +08:00
const state = reactive({
ERPFACTORY: '',
AllNumber: 0,//标签总数量
UnitNumber: 0,//各单位数量
radio1: '出库',
CHARGE: '',
2025-05-07 17:55:03 +08:00
/* ReceiveList: [{ value: '', label: '' }, { value: '45', label: 'DH ' }, { value: 'SC46', label: 'AC ' }, { value: 'ZK4A', label: 'SA ' },
2025-03-10 13:48:17 +08:00
{ value: '4C', label: 'DN 销售出库' }, { value: '4E', label: '4E 其他出库' }, { value: '4Y', label: 'TF 调拨出库' }
2025-05-07 17:55:03 +08:00
] as any,*/
ReceiveList: [] as any,
ERPFactoryList: [] as any,
ERPLocationList: [] as any,
2025-05-07 17:55:03 +08:00
erpLocationList: [] as any,
locDecList2: [] as any,
locDecListAll: [] as any,
EVENTOUT: ['BarCodeToTransferIn','调拨出库','MES消耗','auxiliaryStockOut','CompletedShipRequestZL','CompletedShipRequestBL','CompletedShipRequestLL','CompletedShipRequestNLCC'],
EVENTIN: ['AlloctionStockIn','FGStockIn','ReturnStockIn','NormalStockInForSDK','NoChargeStockIn','NoChargeStockIn',],
2025-03-10 13:48:17 +08:00
queryParams: {
MATERIALSPECNAME: '',
RECEIVEREQUESTNAMETYPE: '',
UNDOID: '',
STOCKSTATE: '',
ERPLOCATION: '',
FROMDATE: '',
TODATE: '',
CHARGE: '',
SITENAME: '',
ERPFACTORY: '',
SHIPREQUESTNAME: '',
RECEIVEREQUESTNAME: '',
REQUESTNAME: '',
2025-05-07 17:55:03 +08:00
DESC_CN: '',
DateValue: '',
ChangeERPLocation: '',
LOCATIONNAME: '',
2025-03-10 13:48:17 +08:00
},
page: {
pageNum: 1,
pageSize: 10,
total: 0
},
loading: false,
list: [],
column: [] as any,
queryParamsERPLocation: {
queryId: "GetErpLocationList",
version: "WEB00005",
params: {
SITENAME: localStorage.getItem("siteName") || 'SDK',
ERPFACTORYNAME: '',
},
pageNum: 1,
pageSize: 10
},
2025-03-10 13:48:17 +08:00
});
const { ERPFACTORY,loading, list, column, queryParams, page } = toRefs(state)
//时间范围定义
const shortcuts2 = [
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
},
},
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
},
},
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
},
},
]
2025-03-10 13:48:17 +08:00
onMounted(() => {
2025-05-07 17:55:03 +08:00
materialTableConfig.value.column = [
{ header: "作业类型", field: "LASTEVENTNAME", hide: false , width: '150px'},
2025-05-07 17:55:03 +08:00
{ header: "标签", field: "MATERIALPACKINGNAME", hide: false, width: '320px' },
{ header: "批次", field: "CHARGE", hide: false, width: '200px' },
{ header: "料号", field: "MATERIALSPECNAME", hide: false , width: '100px'},
{ header: "品名", field: "DESC_CN", hide: false , width: '100px'},
2025-05-07 17:55:03 +08:00
{ header: "规格", field: "DESCRIPTION", hide: false, width: '200px' },
{ header: "阶段", field: "PHASE", hide: false, width: '100px' },
//入库
{ header: "入库组织编码", field: "INERPFACTORY", hide: false, width: '100px' },
2025-05-07 17:55:03 +08:00
{ header: "入库组织", field: "INERPFACTORYDESC", hide: false, width: '100px' },
{ header: "入库仓库编码", field: "INERPLOCATION", hide: false, width: '150px' },
{ header: "入库仓库", field: "INERPLOCATIONDESC", hide: false, width: '150px' },
{ header: "入库货位编码", field: "INLOCATION", hide: false, width: '150px' },
2025-05-07 17:55:03 +08:00
{ header: "入库货位", field: "INLOCATIONNAME", hide: false, width: '150px' },
//出库
{ header: "出库组织编码", field: "OUTERPFACTORY", hide: false, width: '100px' },
2025-05-07 17:55:03 +08:00
{ header: "出库组织", field: "OUTERPFACTORYDESC", hide: false, width: '100px' },
{ header: "出库仓库编码", field: "OUTERPLOCATION", hide: false, width: '150px' },
{ header: "出库仓库", field: "OUTERPLOCATIONDESC", hide: false, width: '150px' },
{ header: "出库货位编码", field: "OUTLOCATION", hide: false, width: '150px' },
2025-05-07 17:55:03 +08:00
{ header: "出库货位", field: "OUTLOCATIONNAME", hide: false, width: '150px' },
// 无来源转库、货位调整
/* { header: "", field: "TRANSFEROUTERPFACTORYDESC", hide: false, width: '100px' },
2025-05-07 17:55:03 +08:00
{ header: "转出仓库", field: "TRANSFEROUTLOCATIONDESC", hide: false, width: '150px' },
{ header: "转出货位", field: "TRANSFEROUTLOCATIONNAME", hide: false, width: '150px' },
{ header: "转入组织", field: "TRANSFERINERPFACTORYDESC", hide: false, width: '100px' },
{ header: "转入仓库", field: "TRANSFERINLOCATIONDESC", hide: false, width: '150px' },
{ header: "转入货位", field: "TRANSFERINLOCATIONNAME", hide: false, width: '150px' },*/
2025-05-07 17:55:03 +08:00
{ header: "数量", field: "MATERIALQUANTITY", hide: false, width: '100px' },
{ header: "单位", field: "FNAME", hide: false, width: '100px' },
{ header: "入库单号", field: "RECEIVEREQUESTNAME", hide: false, width: '100px' },
{ header: "出库单号", field: "SHIPREQUESTNAME", hide: false, width: '100px' },
{ header: "作业凭证", field: "UNDOID", hide: false, width: '120px' },
{ header: "操作人", field: "LASTEVENTUSER", hide: false, width: '120px' },
{ header: "操作时间", field: "LASTEVENTTIME", hide: false , width: '150px' },
/*
{ header: "组织", field: "ERPFACTORYDESC", hide: false, width: '100px' },
{ header: "仓库", field: "LOCATIONDESC", hide: false, width: '150px' },
{ header: "货位", field: "LOCATIONNAME", hide: false, width: '150px' },
{ header: "凭证日期", field: "UNDODATE", hide: false, width: '100px' },
{ header: "制造日期", field: "MAKEDATE", hide: false, width: '150px' },
{ header: "制造日期", field: "MAKEDATE", hide: false, width: '150px' },
// { header: "标签类型", field: "MATERIALPACKINGTYPE", hide: false },
{ header: "品质等级", field: "PACKINGGRADE", hide: false, width: '100px' },
// { header: "入库单", field: "RECEIVEACTNO", hide: false, width: '100px' },
{ header: "供应商名称", field: "SUPPLIERNAME", hide: false , width: '120px'},
{ header: "客户", field: "CUSTOMERNAME", hide: false, width: '120px' },
// { header: "关联客户", field: "", hide: false },
{ header: "最后操作名称", field: "DESCRIPTION", hide: false, width: '120px' },
// { header: "SDK规格", field: "SPECNAME", hide: false },
{ header: "操作备注", field: "OPTREMARK", hide: false },
*/
]
2025-03-10 13:48:17 +08:00
getPRINTLIST()
2025-05-10 10:25:22 +08:00
//handleQuery()
2025-03-10 13:48:17 +08:00
updateTableHeight();
window.addEventListener('resize', handleResize);
let orgNo: any = localStorage.getItem('orgNo');
// state.orgNo = JSON.parse(pwd).orgNo;
state.ERPFACTORY = JSON.parse(orgNo);
2025-05-07 17:55:03 +08:00
//获取作业类型的下拉框列表
getEnumdefValueList('StockTransactionJobType')
//获取组织
getERPFactoryQuery()
//获取仓库
getStorageList()
//设置日期查询框的默认值
setDefaultDates();
2025-03-10 13:48:17 +08:00
});
const updateList = (col: any) => {
materialTableConfig.value.column = col
}
function getPRINTLIST() {
getQueryList({
queryId: "getInvoiceLIST",
version: "00001",
params: {
},
}).then((res: any) => {
state.ReceiveList = res.data
})
}
function handleQueryInfo() {
state.page.pageNum = 1
if (state.queryParams.DateValue.length > 0) {
state.queryParams.FROMDATE = msToDate(state.queryParams.DateValue[0]).hasTime
state.queryParams.TODATE = msToDate(state.queryParams.DateValue[1]).hasTime
}
2025-05-07 17:55:03 +08:00
/**
* 增加时间非空校验
* 2025-05-07
*/
if(!state.queryParams.FROMDATE || !state.queryParams.TODATE){
ElMessageBox.alert('请选择开始时间和结束时间', '提醒框', {
confirmButtonText: 'OK',
})
return
}
2025-03-10 13:48:17 +08:00
handleQuery()
}
function handleQuery() {
Object.keys(state.queryParams).forEach((key) => {
if (state.queryParams[key] && state.queryParams[key].length === 0) {
state.queryParams[key] = ''
}
});
state.list = [];
state.page.total = 0;
let loactionString = ''
if (state.queryParams.RECEIVEREQUESTNAMETYPE.length > 0){
for (let i = 0; i < state.queryParams.RECEIVEREQUESTNAMETYPE.length; i++) {
2025-03-10 13:48:17 +08:00
loactionString = loactionString + state.queryParams.RECEIVEREQUESTNAMETYPE[i] + ','
}
}else {
loactionString = 'NormalStockInForSDK'
const combined = [...state.EVENTOUT, ...state.EVENTIN];
loactionString = combined.join(',');
2025-03-10 13:48:17 +08:00
}
2025-05-10 10:25:22 +08:00
/*
if (loactionString == '') {
loactionString = 'BarCodeToTransferIn,allocateStockIn,receiveMesShippInfo,Assign';
}
*/
2025-05-07 17:55:03 +08:00
let erpFactoryString = ''
for (let i = 0; i < state.queryParams.ERPFACTORY.length; i++) {
erpFactoryString = erpFactoryString + state.queryParams.ERPFACTORY[i] + ','
}
let erpLocationString = ''
for (let i = 0; i < state.queryParams.ChangeERPLocation.length; i++) {
erpLocationString = erpLocationString + state.queryParams.ChangeERPLocation[i] + ','
}
let locationNameString = ''
for (let i = 0; i < state.queryParams.LOCATIONNAME.length; i++) {
locationNameString = locationNameString + state.queryParams.LOCATIONNAME[i] + ','
2025-05-07 17:55:03 +08:00
}
2025-03-10 13:48:17 +08:00
state.loading = true
queryFormRef.value.validate((isValid: boolean) => {
if (isValid) {
getQueryPageList({
queryId: "GetMaterialBoxInformationRow",
2025-05-07 17:55:03 +08:00
version: "WEB0007",
2025-03-10 13:48:17 +08:00
params: {
userId: localStorage.getItem('userId'),
// ...state.queryParams
2025-05-07 17:55:03 +08:00
RECEIVEREQUESTNAMETYPE: loactionString,
ERPFACTORY: erpFactoryString,
ERPLOCATION: erpLocationString,
MATERIALSPECNAME: state.queryParams.MATERIALSPECNAME,
DESC_CN: state.queryParams.DESC_CN,
SHIPREQUESTNAME: state.queryParams.SHIPREQUESTNAME,
RECEIVEREQUESTNAME: state.queryParams.RECEIVEREQUESTNAME,
CHARGE: state.queryParams.CHARGE,
2025-03-10 13:48:17 +08:00
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
SITENAME: '',
EVENTOUT: state.EVENTOUT,
EVENTIN: state.EVENTOUT,
LOCATIONNAME: locationNameString,
2025-05-07 17:55:03 +08:00
/*
UNDOID: state.queryParams.UNDOID,
STOCKSTATE: state.queryParams.STOCKSTATE,
CHARGE: state.CHARGE,
*/
2025-03-10 13:48:17 +08:00
},
pageNum: state.page.pageNum,
pageSize: state.page.pageSize,
}).then((res: any) => {
if(res.data.list.length == 0){
ElMessageBox.alert('查无数据', '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false
} else {
state.list = res.data.list;
state.page.total = res.data.total;
state.AllNumber = 0
state.UnitNumber = 0
getQueryList({
queryId: "GetMaterialBoxInformationRow",
version: "WEB00041",
params: {
userId: localStorage.getItem('userId'),
// ...state.queryParams
MATERIALSPECNAME: state.queryParams.MATERIALSPECNAME ? state.queryParams.MATERIALSPECNAME.split(',') : '',
UNDOID: state.queryParams.UNDOID,
STOCKSTATE: state.queryParams.STOCKSTATE,
ERPLOCATION: state.queryParams.ERPLOCATION,
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
SITENAME: '',
2025-05-07 17:55:03 +08:00
ERPFACTORY: erpFactoryString,
2025-03-10 13:48:17 +08:00
CHARGE: state.queryParams.CHARGE,
RECEIVEREQUESTNAMETYPE: loactionString,
// CHARGE: state.CHARGE,
RECEIVEREQUESTNAME: state.queryParams.RECEIVEREQUESTNAME,
SHIPREQUESTNAME: state.queryParams.SHIPREQUESTNAME,
},
})
.then((res: any) => {
for (let i = 0; i < res.data.length; i++) {
let number = res.data[i].PACKINGNUMBER == null ? 0 : res.data[i].PACKINGNUMBER
let Qty = res.data[i].UNITNUMBER == null ? 0 : res.data[i].UNITNUMBER
state.AllNumber = state.AllNumber + parseFloat(number)
state.UnitNumber = state.UnitNumber + Qty
}
})
state.loading = false
}
});
}
});
}
function exportExcel() {
Object.keys(state.queryParams).forEach((key) => {
if (state.queryParams[key] && state.queryParams[key].length === 0) {
state.queryParams[key] = ''
}
});
let loactionString = ''
for (let i = 0; i < state.queryParams.RECEIVEREQUESTNAMETYPE.length; i++) {
loactionString = loactionString + state.queryParams.RECEIVEREQUESTNAMETYPE[i] + ','
}
state.loading = true
getQueryList({
queryId: "GetMaterialBoxInformationRow",
version: "00022",
params: {
userId: localStorage.getItem('userId'),
// ...state.queryParams
MATERIALSPECNAME: state.queryParams.MATERIALSPECNAME ? state.queryParams.MATERIALSPECNAME.split(',') : '',
UNDOID: state.queryParams.UNDOID,
STOCKSTATE: state.queryParams.STOCKSTATE,
ERPLOCATION: state.queryParams.ERPLOCATION,
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
SITENAME: '',
ERPFACTORY: '',
CHARGE: state.queryParams.CHARGE,
RECEIVEREQUESTNAMETYPE: loactionString,
// CHARGE: state.CHARGE,
RECEIVEREQUESTNAME: state.queryParams.RECEIVEREQUESTNAME,
SHIPREQUESTNAME: state.queryParams.SHIPREQUESTNAME
}
}).then((res: any) => {
if (res.data.length > 0) {
state.loading = false
exportDataToExcel(res.data, '库存查询')
} else {
state.loading = false
proxy.$ElMessage.warning('当前查询没有数据可以导出');
}
});
}
function resetQuery() {
queryFormRef.value.resetFields();
2025-05-07 17:55:03 +08:00
setDefaultDates();
2025-05-10 10:25:22 +08:00
//handleQuery();
state.list = [];
state.page.total = 0;
state.queryParams.ChangeERPLocation = '';
state.erpLocationList = [];
//state.ERPFactoryList = [];
state.queryParams.ERPFACTORY = '';
state.queryParams.FROMDATE = '';
state.queryParams.TODATE = '';
2025-03-10 13:48:17 +08:00
}
2025-05-07 17:55:03 +08:00
/**
* 根据ENUMNAME获取EnumdefEnumdefValue的常量
* @param param 常量的KEY
*/
function getEnumdefValueList(param: any) {
getQueryList({
queryId: "GetEnumdefValueList",
version: "04281",
params: {
ENUMNAME: param
},
}).then((res: any) => {
const sortedData = [...res.data].sort((a, b) => {
return a.SEQ - b.SEQ;
});
state.ReceiveList = sortedData;
2025-05-07 17:55:03 +08:00
})
}
/**
* 获取库存组织
*/
function getERPFactoryQuery() {
getORG({ orgNo: null })
.then((res: any) => {
state.ERPFactoryList = res.resultObj
})
.catch(() => {})
}
/**
* 获取仓库
*/
async function getStorageList() {
const res = await getQueryList({
queryId: 'GetErpLocationList',
version: 'WEB00004',
params: {
SITENAME: 'SDK'
},
})
state.erpLocationList = res.data
/*const nodes = state.locDecList1.map((item: any) => ({
value: item.ENUMVALUE,
label: item.DESCRIPTION,
leaf: 0
}))
state.StorageSelectList = nodes*/
}
2025-03-10 13:48:17 +08:00
2025-05-07 17:55:03 +08:00
function setDefaultDates() {
const now = new Date();
// 设置开始时间为今天 00:00:00
const startOfDay = new Date(now);
startOfDay.setHours(0, 0, 0, 0);
state.queryParams.FROMDATE = formatDate(startOfDay);
// 设置结束时间为当前时间(精确到秒)
const tomorrow = new Date(now);
tomorrow.setDate(now.getDate() + 1);
tomorrow.setHours(0, 0, 0, 0);
state.queryParams.TODATE = formatDate(tomorrow);
}
function formatDate(param: any) {
const year = param.getFullYear();
const month = String(param.getMonth() + 1).padStart(2, '0');
const day = String(param.getDate()).padStart(2, '0');
return `${year}${month}${day}`;
}
function exportTransactionExcel() {
if (state.list.length > 0) {
state.loading = false
exportDataToExcel(state.list, '出入库报表')
} else {
state.loading = false
proxy.$ElMessage.warning('当前查询没有数据可以导出');
}
}
function GetERPLocationForList(value: any) {
ERPLocationQuery();
}
//ERP库位查询
function ERPLocationQuery() {
state.queryParamsERPLocation.params.ERPFACTORYNAME = state.queryParams.ERPFACTORY
let erpLoactionString = ''
for (let i = 0; i < state.queryParams.RECEIVEREQUESTNAMETYPE.length; i++) {
erpLoactionString = erpLoactionString + state.queryParams.RECEIVEREQUESTNAMETYPE[i] + ','
}
getQueryList({
queryId: "GetErpLocationList",
version: "WEB00005",
params: {
SITENAME: localStorage.getItem("siteName") || 'SDK',
ERPFACTORYNAME: erpLoactionString,
},
pageNum: 1,
pageSize: 10
})
.then((res: any) => {
state.erpLocationList = res.data;
// state.ERPLocationList.unshift({
// ENUMVALUE: ''
// });
})
.catch(() => { });
}
//ERP工厂查询
function ERPFactoryQuery() {
getORG({ orgNo: null})
.then((res: any) => {
state.ERPFactoryList = res.resultObj;
state.ERPFactoryList.unshift({
ERPFACTORY: ''
});
})
.catch(() => { });
}
function GetLocationListForSomeERPLocation(value: any) {
state.queryParams.LOCATIONNAME = ''
state.locDecList2 = []
if (!areAllNotEmpty(state.queryParams.ERPFACTORY)) {
proxy.$ElMessage.warning('当前还未选择组织');
return
} else {
let erpLocationString = ''
for (let i = 0; i < state.queryParams.ChangeERPLocation.length; i++) {
erpLocationString = erpLocationString + state.queryParams.ChangeERPLocation[i] + ','
}
getQueryList({
queryId: 'GetLocationForCreatePO',
version: '00002',
params: {
ERPLOCATION: erpLocationString,
SITENAME: 'SDK'
}
}).then((res: any) => {
state.locDecListAll = res.data
//getlocDec('')
})
}
/*if (!value) {
let ERPLOCATIONList = state.ChangeERPLocation;
getQueryList({
queryId: "GetLocationListForSomeERPLocation",
version: "00001",
params: {
SITENAME: localStorage.getItem("siteName") || 'SDK',
ERPLOCATION: ERPLOCATIONList.length ? ERPLOCATIONList.join(','): ""
},
})
.then((res: any) => {
state.LocationList = res.data;
state.LocationList.unshift({
STORAGENAME: ''
});
})
.catch(() => { });
}*/
}
function getlocDec(query: any) {
if (!areAllNotEmpty(state.queryParams.ChangeERPLocation)) {
proxy.$ElMessage.warning('当前还未选择仓库');
state.queryParams.LOCATIONNAME = ''
state.locDecList2 = []
return
}
// console.log(query)
//let arr = state.locDecListAll;
let arr = state.locDecListAll.filter((item: any) => {
return item.LABEL.includes(query) || item.VALUE.includes(query)
})
// console.log(arr)
if (arr.length > 50) {
state.locDecList2 = arr.slice(0, 50)
} else {
state.locDecList2 = arr
}
}
2025-03-10 13:48:17 +08:00
</script>
<style scoped lang="scss">
.form-row {
padding-right: 100px;
margin-bottom: 7px;
}
.form-row2 {
padding-right: 30px;
margin-bottom: 30px;
}
</style>