773 lines
31 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
功能功能描述 出入库报表
作者陶庆峰
-->
<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">
<el-form-item label="作业类型" prop="RECEIVEREQUESTNAMETYPE">
<el-select multiple filterable v-model="queryParams.RECEIVEREQUESTNAMETYPE" placeholder="选择作业类型"
style="width: 240px" default-first-option>
<el-option v-for="item in state.ReceiveList" :key="item.ENUMVALUE" :label="item.DESCRIPTION"
:value="item.ENUMVALUE" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="4">
<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>
</el-col>
<!--
<el-col :span="6">
<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>
</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">
<el-form-item label="物料" prop="MATERIALSPECNAME">
<el-Input v-model="queryParams.MATERIALSPECNAME" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="品名" prop="DESC_CN">
<el-Input v-model="queryParams.DESC_CN" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<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">
<el-form-item label="入库单号" prop="RECEIVEREQUESTNAME">
<el-Input v-model="queryParams.RECEIVEREQUESTNAME" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="批次" prop="CHARGE">
<el-Input v-model="queryParams.CHARGE" clearable />
</el-form-item>
</el-col>
<!--
<el-col :span="4">
<el-form-item label="开始时间" prop="FROMDATE">
<el-date-picker v-model="queryParams.FROMDATE" value-format="YYYYMMDD" type="date"
placeholder="Pick a day" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="结束时间" prop="TODATE">
<el-date-picker v-model="queryParams.TODATE" value-format="YYYYMMDD" type="date"
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>
</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>
<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%">
<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";
import { getORG } from '@/api/auth'
import { areAllNotEmpty, msToDate } from '@/utils/CommonUtil'
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时间设置
const state = reactive({
ERPFACTORY: '',
AllNumber: 0,//标签总数量
UnitNumber: 0,//各单位数量
radio1: '出库',
CHARGE: '',
/* ReceiveList: [{ value: '', label: '' }, { value: '45', label: 'DH 到货单入库' }, { value: 'SC46', label: 'AC 生产入库' }, { value: 'ZK4A', label: 'SA 转库入库' },
{ value: '4C', label: 'DN 销售出库' }, { value: '4E', label: '4E 其他出库' }, { value: '4Y', label: 'TF 调拨出库' }
] as any,*/
ReceiveList: [] as any,
ERPFactoryList: [] as any,
ERPLocationList: [] as any,
erpLocationList: [] as any,
locDecList2: [] as any,
locDecListAll: [] as any,
EVENTOUT: ['BarCodeToTransferIn','调拨出库','MES消耗','auxiliaryStockOut','CompletedShipRequestZL','CompletedShipRequestBL','CompletedShipRequestLL','CompletedShipRequestNLCC'],
EVENTIN: ['AlloctionStockIn','FGStockIn','ReturnStockIn','NormalStockInForSDK','NoChargeStockIn','NoChargeStockIn','NormalStockInDelivery'],
queryParams: {
MATERIALSPECNAME: '',
RECEIVEREQUESTNAMETYPE: '',
UNDOID: '',
STOCKSTATE: '',
ERPLOCATION: '',
FROMDATE: '',
TODATE: '',
CHARGE: '',
SITENAME: '',
ERPFACTORY: '',
SHIPREQUESTNAME: '',
RECEIVEREQUESTNAME: '',
REQUESTNAME: '',
DESC_CN: '',
DateValue: '',
ChangeERPLocation: '',
LOCATIONNAME: '',
},
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
},
});
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]
},
},
]
onMounted(() => {
materialTableConfig.value.column = [
{ header: "作业类型", field: "LASTEVENTNAME", hide: false , width: '150px'},
{ 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'},
{ header: "规格", field: "DESCRIPTION", hide: false, width: '200px' },
{ header: "阶段", field: "PHASE", hide: false, width: '100px' },
//入库
{ header: "入库组织编码", field: "INERPFACTORY", hide: false, width: '100px' },
{ 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' },
{ header: "入库货位", field: "INLOCATIONNAME", hide: false, width: '150px' },
//出库
{ header: "出库组织编码", field: "OUTERPFACTORY", hide: false, width: '100px' },
{ 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' },
{ header: "出库货位", field: "OUTLOCATIONNAME", hide: false, width: '150px' },
// 无来源转库、货位调整
/* { header: "转出组织", field: "TRANSFEROUTERPFACTORYDESC", hide: false, width: '100px' },
{ 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' },*/
{ 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 },
*/
]
getPRINTLIST()
//handleQuery()
updateTableHeight();
window.addEventListener('resize', handleResize);
let orgNo: any = localStorage.getItem('orgNo');
// state.orgNo = JSON.parse(pwd).orgNo;
state.ERPFACTORY = JSON.parse(orgNo);
//获取作业类型的下拉框列表
getEnumdefValueList('StockTransactionJobType')
//获取组织
getERPFactoryQuery()
//获取仓库
getStorageList()
//设置日期查询框的默认值
setDefaultDates();
});
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
*/
if(!state.queryParams.FROMDATE || !state.queryParams.TODATE){
ElMessageBox.alert('请选择开始时间和结束时间', '提醒框', {
confirmButtonText: 'OK',
})
return
}
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++) {
loactionString = loactionString + state.queryParams.RECEIVEREQUESTNAMETYPE[i] + ','
}
}else {
loactionString = 'NormalStockInForSDK'
const combined = [...state.EVENTOUT, ...state.EVENTIN];
loactionString = combined.join(',');
}
/*
if (loactionString == '') {
loactionString = 'BarCodeToTransferIn,allocateStockIn,receiveMesShippInfo,Assign';
}
*/
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] + ','
}
state.loading = true
queryFormRef.value.validate((isValid: boolean) => {
if (isValid) {
getQueryPageList({
queryId: "GetMaterialBoxInformationRow",
version: "WEB0007",
params: {
userId: localStorage.getItem('userId'),
// ...state.queryParams
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,
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
SITENAME: '',
EVENTOUT: state.EVENTOUT,
EVENTIN: state.EVENTOUT,
LOCATIONNAME: locationNameString,
/*
UNDOID: state.queryParams.UNDOID,
STOCKSTATE: state.queryParams.STOCKSTATE,
CHARGE: state.CHARGE,
*/
},
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: '',
ERPFACTORY: erpFactoryString,
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();
setDefaultDates();
//handleQuery();
state.list = [];
state.page.total = 0;
state.queryParams.ChangeERPLocation = '';
state.erpLocationList = [];
//state.ERPFactoryList = [];
state.queryParams.ERPFACTORY = '';
state.queryParams.FROMDATE = '';
state.queryParams.TODATE = '';
}
/**
* 根据ENUMNAME获取Enumdef、EnumdefValue的常量
* @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;
})
}
/**
* 获取库存组织
*/
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*/
}
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
}
}
</script>
<style scoped lang="scss">
.form-row {
padding-right: 100px;
margin-bottom: 7px;
}
.form-row2 {
padding-right: 30px;
margin-bottom: 30px;
}
</style>