1141 lines
36 KiB
Vue
Raw Normal View History

2025-05-27 20:06:35 +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"
:inline="true"
label-width="80px"
label-position="left"
>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="库存组织" prop="ERPFACTORY">
<el-select
filterable
v-model="queryParams.params.ERPFACTORY"
placeholder="下拉选择组织"
@change="changeFac"
size="small"
>
<el-option
v-for="item in 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
size="small"
filterable
v-model="queryParams.params.ERPLOCATION"
placeholder="下拉选择仓库"
@change="changeERPLocation"
>
<el-option
v-for="item in 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"
filterable
:remote-method="handleInput"
v-model="queryParams.params.LOCATIONNAME"
placeholder="下拉选择货位"
>
<el-option
v-for="item in LocationList"
:key="item.storageName"
:label="item.storageName"
:value="item.storageName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="物料编号" prop="params.MATERIALSPECNAME">
<el-Input
v-model="queryParams.params.MATERIALSPECNAME"
clearable
placeholder="请输入物料编号"
/>
</el-form-item> </el-col
><el-col :span="6">
<el-form-item label="批次" prop="params.CHARGE">
<el-Input
v-model="queryParams.params.CHARGE"
clearable
placeholder="请输入批次"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="品名" prop="queryParams.params">
<el-Input v-model="queryParams.params.DESC_CN" placeholder="品名" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="备注" prop="queryParams.REMARK">
<el-Input v-model="queryParams.params.REMARK" placeholder="备注" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务" prop="queryParams.SALESPERSON">
<el-Input v-model="queryParams.params.SALESPERSON" placeholder="业务" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="SDK规格" prop="queryParams.SPECNAME">
<el-Input v-model="queryParams.params.SPECNAME" placeholder="SDK规格" clearable />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="page-search-btns">
<el-button type="primary" @click="queryInfo">搜索</el-button>
</div>
</el-row>
<!-- 左右结构 -->
<div class="vue-element-page-table">
<el-row>
<el-col :span="24">
<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>
<el-tag size="large" style="margin-left: 30px;" type="success">累计个数{{ GSSUM }}</el-tag>
<el-tag size="large" style="margin-left: 20px;" type="success">累计数量{{ BQSUM }}</el-tag>
</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>
<!-- show-summary
:summary-method="getSummaries" -->
<el-table
border
v-loading="loading"
:data="state.MaterialPackingList"
highlight-current-row
:row-key="getRKey"
ref="tableRef"
:height="tableHeight"
@cell-mouse-enter="handleCellMouseEnter"
style="width: 100%"
:default-sort="{ prop: 'MATERIALQUANTITY', order: 'descending' }"
@selection-change="handleSelectionChange"
>
<el-table-column :reserve-selection="true" type="selection" width="40" />
<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"
:prop="col.field"
show-overflow-tooltip
:sort-orders="['descending', 'ascending']"
:sortable="true"
align="center"
>
<template #default="scope">
<span v-if="col.field === 'status'">
<span v-if="scope.row[col.field]" class="table-status-active">启用</span>
<span v-else class="table-status-inActive">禁用</span>
</span>
<el-Input
v-else-if="col.field === 'SPLITQUANTITY'"
v-model="scope.row[col.field]"
placeholder="请输入拆分数量"
clearable
@input="changeNum(scope.row)"
/>
<span v-else>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-if="state.total > 0"
:total="state.total"
v-model:pageNumTo="state.queryParams.pageNum"
v-model:pageSizeTo="state.queryParams.pageSize"
:page-sizes="[20, 50, 100, 200,500,1000]"
@pagination="handleQuery"
/>
</div>
</el-col>
</el-row>
</div>
<div class="vue-element-page-table">
<el-row class="page-search" align="middle" :gutter="20">
<el-col :span="4" style="padding-top: 12px">
<el-form-item label="目的组织" prop="ERPFACTORY">
<el-select
filterable
v-model="queryParams.params.destinationErpFactory"
placeholder="下拉选择组织"
size="small"
@change="changeSpcERPFactory"
>
<el-option
v-for="item in state.spcERPFactoryList"
:key="item.ERPFACTORY"
:label="item.DESCRIPTION"
:value="item.ERPFACTORY"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" style="padding-top: 12px">
<el-form-item label="目的仓库" prop="ERPLOCATION">
<el-select
size="small"
filterable
@change="changeLocW"
@blur="focusLocW"
v-model="desParams.params.ERPLOCATION"
placeholder="下拉选择仓库"
>
<el-option
v-for="item in locDecList1"
:key="item.ENUMVALUE"
:label="item.DESCRIPTION"
:value="item.ENUMVALUE"
/>
</el-select>
<!-- <el-cascader style="wid" @change="changeCascade" ref="warehouseRef" v-model="state.StorageSelect" :options="state.StorageSelectList" clearable filterable :props="props" /> -->
</el-form-item>
</el-col>
<el-col :span="4" style="padding-top: 12px">
<el-form-item label="目的货位" prop="LOCATIONNAME">
<el-select
size="small"
filterable
v-model="desParams.params.LOCATIONNAME"
default-first-option
placeholder="下拉选择货位"
:filter-method="getlocDec"
>
<el-option
v-for="item in locDecList2"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" style="padding-top: 12px">
<el-form-item label="备注" prop="remark">
<el-input v-model="REMARK" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="4" style="padding-top: 12px" :offset="4">
<div class="block" style="float: right">
<el-form-item label="过账日期" prop="state.commitDate">
<el-date-picker
:clearable="true"
:editable="true"
v-model="state.commitDate"
type="date"
placeholder="选择过账时间"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</div>
</el-col>
<el-col :span="2">
<div class="page-search-btns" style="float: right">
<el-button
v-loading="state.loading2"
type="primary"
@click="submit"
:disabled="state.Button_state"
>确定</el-button
>
</div>
</el-col>
</el-row>
</div>
</div>
</template>
<script lang="ts">
export default {
name: 'NoOrMoveLibraryWork'
2025-05-27 20:06:35 +08:00
}
</script>
<script lang="ts" setup>
import { reactive, ref, onMounted, toRefs, getCurrentInstance, nextTick } from 'vue'
import { ElForm, ElMessageBox, ElTable, CascaderProps } from 'element-plus'
import { getQueryList, getQueryPageList, BpelEvent } from '@/api/common'
import { CommitMove } from '@/api/StockIn'
import { h } from 'vue'
import type { VNode } from 'vue'
import { useRouter } from 'vue-router'
import { IFTRUE } from '@/utils/CommonUtil'
import { bTableHeight } from '../../../composables/calcTableHeight'
import { getORG } from '@/api/auth'
import { cals } from '@/utils/cal'
import { search } from '@/api/wareHouse'
// import request from '@/utils/request'
const { tableContainer, tableHeight, updateTableHeight, handleResize } = bTableHeight(330)
const queryFormRef = ref(ElForm)
const { proxy }: any = getCurrentInstance()
const tableRef = ref<InstanceType<typeof ElTable>>()
const router = useRouter()
const warehouseRef = ref()
const materialTableConfig = ref({
loading: false,
column: [] as any,
data: []
})
const state = reactive({
REMARK:'',
BQSUM: 0,
GSSUM: 0,
commitDate: '',
ERPFactoryList: [] as any, // 组织
ERPLocationList: [] as any, //仓库
LocationList: [] as any, //货位
spcERPFactoryList: [] as any,
rsa: '',
Button_state: false,
total: 0,
total2: 0,
BoxList: [] as any,
firstLocation: '',
MaterialPackingList: [] as any,
MaterialPackingUsername: [] as any,
Storage1Select: [] as any,
Storage1SelectList: [] as any,
StorageSelect: [] as any,
StorageSelectList: [] as any,
locDecList1: [] as any,
locDecList2: [] as any,
orgNo:"",
queryParams: {
queryId: '',
version: '',
params: {
SITENAME: 'SDK',
MATERIALSPECNAME: '',
ERPLOCATION: '',
ERPFACTORY: '',
destinationErpFactory: '',
LOCATIONNAME: '',
CHARGE: '',
DESC_CN:'',
REMARK:'',
SALESPERSON: '',
SPECNAME:''
},
pageNum: 1,
pageSize: 10
},
desParams: {
queryId: '',
version: '',
params: {
SITENAME: 'SDK',
LOCATIONNAME: '',
ERPLOCATION: ''
},
pageNum: 1,
pageSize: 10
},
RightqueryParams: {
queryId: '',
version: '',
params: {
SITENAME: 'SDK', //localStorage.getItem("siteName"),
DELIVERYTYPE: '', //移动类型
SUPPLIERNAME: '',
SHIPREQUESTNAME: '',
MATERIALSPECNAME: '',
AREANAME: '',
MATERIALPACKING: '',
DURABLENAME: '',
CHARGE: '',
ERPFACTORYNAME: '',
ERPLOCATION: '',
SDK_ID: '',
PHASE: '',
ERPFACTORY: '',
SHIPREQUESTDETAILNAME: ''
}
},
ChangeParams: {
header: {
MESSAGENAME: 'ModifyLocation',
LANGUAGE: 'Chinese'
},
body: {
BOXLIST: [] as any,
SITENAME: 'SDK',
AREANAME: '',
LOCATIONNAME: '',
ERPLOCATION: ''
}
},
operateParams: {
date: new Date()
},
operateOptions: [] as any, // 操作类型
actNoOptions: [] as any, // 抬头文本
checkResultOptions: [
{
label: 'OK',
value: 'OK'
},
{
label: 'NG',
value: 'NG'
}
], // 质检结果
loading: false,
loading2: false,
loading3: false, //左箭头loading flag
column1: [] as any,
column: [] as any,
column2: [] as any,
MoveLibraryList: [] as any, //column对应的数据
waitAssignmentList: [] as any, //column1对应的数据
AssignmentList: [] as any, //column2对应的数据
LeftSelection: [], //左边选择的未分配数据
RightSelection: [], //右边选择的分配数据
column3: [] as any,
column4: [] as any,
column5: [] as any,
locDecListAll: [] as any,
queryParamsERPFactory: {
queryId: 'GetErpFactoryList',
version: 'WEB00001',
params: {
SITENAME: localStorage.getItem('siteName') || 'SDK'
},
pageNum: 1,
pageSize: 10
},
queryParamsERPLocation: {
queryId: 'GetErpLocationList2',
version: 'WEB00001',
params: {
SITENAME: localStorage.getItem('siteName') || 'SDK',
ERPFACTORYNAME: ''
},
pageNum: 1,
pageSize: 10
},
queryParamsLocation: {
queryId: 'GetLocationList',
version: 'WEB00001',
params: {
SITENAME: localStorage.getItem('siteName') || 'SDK',
ERPLOCATION: ''
},
pageNum: 1,
pageSize: 10
}
})
const {
REMARK,
GSSUM,
BQSUM,
Button_state,
StorageSelectList,
StorageSelect,
ERPFactoryList,
ERPLocationList,
LocationList,
desParams,
queryParams,
loading3,
loading,
column,
column1,
column2,
locDecList1,
locDecList2,
orgNo
} = toRefs(state)
onMounted(() => {
var newDate = new Date()
var year = newDate.getFullYear()
var moth = newDate.getMonth() + 1
if (moth < 10) moth = '0' + moth
var day = newDate.getDate()
if (day < 10) day = '0' + day
state.commitDate = year + '-' + moth + '-' + day
materialTableConfig.value.column = [
{ header: '工厂', field: 'SITENAME', hide: true },
{ header: '标签编号', field: 'MATERIALPACKINGNAME', hide: false },
{ header: '批号', field: 'CHARGE', hide: false },
{ header: '物料编号', field: 'MATERIALSPECNAME', hide: false },
{ header: '品名', field: 'DESC_CN', hide: false },
{ header: '数量', field: 'MATERIALQUANTITY', hide: false },
{ header: '拆分数量', field: 'SPLITQUANTITY', hide: false,with:300 },
{ header: '单位', field: 'FNAME', hide: false },
{ header: 'SDK规格', field: 'SPECNAME', hide: false },
{ header: 'Hold 状态', field: 'HOLDSTATE', hide: false },
{ header: '品质状态', field: 'OQARESULTSTATE', hide: false },
{ header: '品质结果', field: 'PACKINGGRADE', hide: false },
{ header: '入库日期', field: 'SHIPTIME', hide: false },
{ header: '仓库编码', field: 'ERPLOCATION', hide: false },
{ header: '仓库名称', field: 'ERPLOCATIONDESC', hide: false },
{ header: '货位编码', field: 'LOCATIONNAME', hide: false },
{ header: '货位名称', field: 'LOCATIONNAMEDESC', hide: false },
{ header: '业务', field: 'SALESPERSON', hide: false },
{ header: '备注', field: 'REMARK', hide: false }
]
let pwd: any = localStorage.getItem('remeberPwd')
if(pwd) {
state.orgNo = JSON.parse(pwd).orgNo;
state.queryParams.params.ERPFACTORY = state.orgNo
}
// state.queryParams.params.ERPFACTORY = JSON.parse(pwd).orgNo;
// state.queryParamsERPLocation.params.ERPFACTORYNAME = JSON.parse(pwd).orgNo;
ERPFactoryQuery()
// ERPLocationQuery()
queryInfo()
updateTableHeight()
window.addEventListener('resize', handleResize)
// getStorageSpecLocationList()
})
function handleInput(val: any) {
let index = [1, 3, 4, 7, 8]
if (index.indexOf(val.length) > -1) {
state.LocationList = []
search({
storageName: val,
orgNo: JSON.parse(localStorage.getItem('orgNo'))
}).then((res:any) => {
if (res.resultObj) {
state.LocationList = res.resultObj
} else {
proxy.$ElMessage.warning(res.message);
}
})
}
}
function getRKey(row: any) {
// console.log(row.CHARGE)
return row.CHARGE
}
const getSummaries = (param: any) => {
const { columns, data } = param
console.log(columns, data)
const sums: (string | VNode)[] = []
columns.forEach((column: any, index: any) => {
if (index === 0) {
sums[index] = h('div', { style: { textDecoration: 'underline' } }, ['合计'])
return
}
console.log(column.property)
if (column.property == 'MATERIALQUANTITY') {
const values = data.map((item: any) => Number(item[column.property]))
if (!values.every((value: any) => Number.isNaN(value))) {
sums[index] = `${values.reduce((prev: any, curr: any) => {
const value = Number(curr)
if (!Number.isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)}`
} else {
console.log(index)
if (index == 2) {
sums[index] = ''
} else {
sums[index] = ''
}
}
}
})
return sums
}
function handleCellMouseEnter(row: any, column: any, cell: any, event: any) {
// console.log(row, column, cell, event);
if (column.type === 'selection' && event.shiftKey) {
// 且按着 shift 键 则勾选这一行
tableRef.value!.toggleRowSelection(row, true)
}
}
function handleOuter2Click() {
Storage2List(state.queryParams.params.ERPLOCATION)
}
async function Storage2List(firstLocation: any) {
try {
try {
state.queryParams.queryId = 'Get2stAreaName'
state.queryParams.version = '00003'
state.queryParams.params.ERPLOCATION = firstLocation
const res = await getQueryList(state.queryParams)
state.Storage1SelectList = res.data
if (state.Storage1SelectList.length == 0) {
proxy.$ElMessage.info('目的货位为空!')
return
}
} catch (error) {
console.error(`Error fetching children for item `, error)
// 处理错误,可能设置一些默认值或标记该项为出错
}
// console.log('StorageSelectList', state.StorageSelectList)
} catch (error) {
console.error('Error fetching initial data', error)
// 处理错误,可能重置 state 或进行其他恢复操作
}
}
function changeFac(e: any) {
console.log(e)
state.queryParams.params.ERPLOCATION = ''
state.queryParamsERPLocation.params.ERPFACTORYNAME = e
state.queryParams.params.destinationErpFactory = ''
state.queryParams.params.destinationErpFactory = e
state.spcERPFactoryList = [] as any
ERPLocationQuery()
if(e == "1010" || e == "1020" || e == "1200") {
state.spcERPFactoryList = state.ERPFactoryList.filter((item: any) =>
(item.ERPFACTORY === "1010" || item.ERPFACTORY === "1020" || item.ERPFACTORY === "1200")
)
}else {
state.spcERPFactoryList = state.ERPFactoryList.filter((item: any) =>
(item.ERPFACTORY === e)
)
}
changeSpcERPFactory(e)
}
function changeERPLocation(e: any) {
// console.log(e)
state.queryParams.params.LOCATIONNAME = ''
state.queryParamsLocation.params.ERPLOCATION = e
// LocationQuery()
}
//货位查询
function LocationQuery() {
getQueryList(state.queryParamsLocation)
.then((res: any) => {
state.LocationList = res.data
state.LocationList.unshift({
ENUMVALUE: ''
})
})
.catch(() => {})
}
//ERP工厂查询
function ERPFactoryQuery() {
getORG({ orgNo: null })
.then((res: any) => {
state.ERPFactoryList = res.resultObj
//state.spcERPFactoryList = res.resultObj
state.ERPFactoryList.unshift({
ERPFACTORY: ''
})
if(state.queryParams.params.ERPFACTORY == "1010" || state.queryParams.params.ERPFACTORY == "1020" || state.queryParams.params.ERPFACTORY == "1200") {
state.spcERPFactoryList = state.ERPFactoryList.filter((item: any) =>
(item.ERPFACTORY === "1010" || item.ERPFACTORY === "1020" || item.ERPFACTORY === "1200")
)
}else {
state.spcERPFactoryList = state.ERPFactoryList.filter((item: any) =>
(item.ERPFACTORY === state.queryParams.params.ERPFACTORY)
)
}
changeSpcERPFactory(state.queryParams.params.ERPFACTORY)
state.queryParams.params.destinationErpFactory = state.queryParams.params.ERPFACTORY
})
.catch(() => {})
}
//ERP库位查询
function ERPLocationQuery() {
getQueryList(state.queryParamsERPLocation)
.then((res: any) => {
state.ERPLocationList = res.data
state.ERPLocationList.unshift({
ENUMVALUE: ''
})
})
.catch(() => {})
}
// 更新列
const updateList = (col: any) => {
materialTableConfig.value.column = col
}
function queryInfo() {
state.queryParams.pageNum = 1
if(!state.queryParams.params.ERPFACTORY) {
ElMessageBox.alert('请选择库存组织!', '提醒框', {
confirmButtonText: 'OK'
})
}
handleQuery()
}
async function handleQuery() {
state.MaterialPackingUsername = []
// if (state.queryParams.params.ERPFACTORY) {
state.queryParams.queryId = 'GetPackingNo'
state.queryParams.version = 'WP0010'
state.MoveLibraryList = []
await getQueryPageList(state.queryParams)
.then((res: any) => {
// console.log(res)
if (res.data.list.length == 0) {
state.MaterialPackingList = []
state.total = 0
ElMessageBox.alert('查无数据!', '提醒框', {
confirmButtonText: 'OK'
})
} else {
let arr = [...res.data.list]
state.MaterialPackingList = arr
arr.map((val:any)=> val.SPLITQUANTITY = val.MATERIALQUANTITY)
state.MaterialPackingList = arr
state.total = res.data.total
}
})
.catch((error: any) => {
ElMessageBox.alert('系统内部错误请找IT', '提醒框', {
confirmButtonText: 'OK'
})
})
// } else {
// ElMessageBox.alert('查询条件不能为空!', '提醒框', {
// // if you want to disable its autofocus
// // autofocus: false,
// confirmButtonText: 'OK'
// })
// }
}
function changeCascade(e: any) {
console.log(888, e)
}
const props: CascaderProps = {
lazy: true,
async lazyLoad(node, resolve) {
// console.log(66,node, resolve)
const { level, value } = node
if (state.column4.length > 0 && level) {
const childrenRes = await getQueryList({
queryId: 'Get2stAreaName',
version: '00002',
params: {
ERPLOCATION: value,
SITENAME: 'SDK'
},
pageNum: 1,
pageSize: 10
})
state.locDecList2 = childrenRes.data || []
const nodes = state.locDecList2.map((item: any) => ({
value: item.ERPLOCATION,
label: item.ERPLOCATION,
leaf: level < 3
}))
resolve(nodes)
}
}
}
function resetQuery() {
queryFormRef.value.resetFields()
handleQuery()
}
function focusLocW() {
// console.log(111,state.column4)
if (!state.column4.length) {
ElMessageBox.alert('请选择标签信息', '提醒框', {
confirmButtonText: 'OK'
})
return
}
}
async function changeLocW() {
state.desParams.params.LOCATIONNAME = ''
await getQueryList({
queryId: 'GetLocationForCreatePO',
version: '00001',
params: {
ERPLOCATION: state.desParams.params.ERPLOCATION,
SITENAME: 'SDK'
}
}).then((res: any) => {
state.locDecListAll = res.data
getlocDec('')
})
// state.locDecList2 = childrenRes
// state.locDecListAll = childrenRes/
// getlocDec('')
// console.log(state.locDecListAll)
}
function getlocDec(query: any) {
// console.log(query)
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
}
}
function changeNum(row: any) {
console.log(row)
let sumList = [...state.column4];
state.BQSUM = 0
state.BQSUM = sumList.reduce((accumulator, currentValue) => {
console.log(accumulator, currentValue)
return (cals.add(accumulator,currentValue.SPLITQUANTITY)).toNumber();
}, 0)
}
function handleSelectionChange(selection: any) {
console.log(selection)
state.column4 = selection
let sumList = [...state.column4];
state.BQSUM = 0
state.BQSUM = sumList.reduce((accumulator, currentValue) => {
console.log(accumulator, currentValue)
return (cals.add(accumulator,currentValue.SPLITQUANTITY)).toNumber();
}, 0)
state.GSSUM = sumList.length
if (state.column4.length > 0) {
StorageList(state.column4[0].ERPFACTORY)
}
state.locDecList1 = []
state.locDecList2 = []
// else {
// ElMessageBox.alert('请选择标签信息', '提醒框', {
// confirmButtonText: 'OK'
// })
// }
async function StorageList(firstLocation: any) {
try {
try {
const res = await getQueryList({
queryId: 'GetErpLocationList',
version: 'WEB00001',
params: {
ERPFACTORYNAME: firstLocation,
SITENAME: 'SDK'
},
pageNum: 1,
pageSize: 10
})
state.locDecList1 = res.data
if (state.locDecList1.length == 0) {
proxy.$ElMessage.info('目的仓库为空!')
return
}
const nodes = state.locDecList1.map((item: any) => ({
value: item.ENUMVALUE,
label: item.DESCRIPTION,
leaf: 0
}))
state.StorageSelectList = nodes
} catch (error) {
console.error(`Error fetching children for item `, error)
// 处理错误,可能设置一些默认值或标记该项为出错
}
// console.log('StorageSelectList', state.StorageSelectList)
} catch (error) {
console.error('Error fetching initial data', error)
// 处理错误,可能重置 state 或进行其他恢复操作
}
}
}
async function LeftIn() {
state.MaterialPackingUsername = state.column4
console.log(state.MaterialPackingUsername)
}
function handleOuterClick() {}
// function handle() {
// state.queryParams.queryId = 'GetPackingNo'
// state.queryParams.version = 'WP009'
// // state.queryParams.params.AREANAME = state.StorageSelect[0] || ''
// state.queryParams.params.LOCATIONNAME = state.StorageSelect[0] || ''
// getQueryList(state.queryParams).then((res: any) => {
// state.MaterialPackingList = res.data
// })
// state.RightqueryParams.queryId = 'GetPackingRow'
// state.RightqueryParams.version = '00002'
// // state.RightqueryParams.params.MATERIALSPECNAME = row.MATERIALSPECNAME
// // state.RightqueryParams.params.SHIPREQUESTNAME = row.SHIPREQUESTNAME
// // state.RightqueryParams.params.SHIPREQUESTDETAILNAME = row.SHIPREQUESTDETAILNAME
// getQueryList(state.RightqueryParams).then((res: any) => {
// state.MaterialPackingUsername = res.data
// })
// //查询库位需要
// // state.firstLocation = row.ERPLOCATION
// }
async function handleReserve() {
state.loading = true
state.BoxList = []
state.Button_state = true
if (state.column3.length > 0 || state.column4.length > 0) {
// state.ChangeParams.header.EVENTUSER = localStorage.getItem('userId') || '10975133'
state.ChangeParams.header.MESSAGENAME = 'ModifyERPLocation'
// state.ChangeParams.body.AREANAME = state.StorageSelect[0]
state.ChangeParams.body.LOCATIONNAME = state.StorageSelect[0]
for (let item = 0; item < state.column3.length; item++) {
state.BoxList.push({ BoxL: state.column3[item].MATERIALPACKINGNAME })
}
// state.ChangeParams.body.BOXList = state.BoxList
await BpelEvent(state.ChangeParams)
.then((res: any) => {
state.Button_state = false
})
.catch((error: any) => {
ElMessageBox.alert(error, '提醒框', {
confirmButtonText: 'OK'
})
state.Button_state = false
})
} else {
ElMessageBox.alert('请按照规范操作', '提醒框', {
confirmButtonText: 'OK'
})
state.Button_state = false
}
}
function splitOpen() {
let BoxListInfo = JSON.parse(JSON.stringify(state.column4))
}
async function submit() {
console.log(state.column4)
if (state.commitDate == null) {
ElMessageBox.alert('过账时间不可清空', {
confirmButtonText: 'OK'
})
return
}
state.Button_state = true
state.loading2 = true
if (
state.column4.length > 0 &&
// state.desParams.params.LOCATIONNAME &&
state.desParams.params.ERPLOCATION
) {
// console.log("state.StorageSelect")
// state.ChangeParams.body.LOCATIONNAME= state.desParams.params.LOCATIONNAME,
// state.ChangeParams.body.ERPLOCATION= state.desParams.params.ERPLOCATION
// // console.log(state.StorageSelect)
// state.ChangeParams.body.BOXLIST = [];
// for (let k = 0; k < state.column4.length; k++) {
// // 将 BOX 对象推送到 state.changeParams.body.BOXLIST 数组中
// let obj:any = {
// SITENAME : state.column4[k].SITENAME,
// MATERIALPACKINGNAME: state.column4[k].MATERIALPACKINGNAME,
// LOCATIONNAME: state.column4[k].LOCATIONNAME,
// LASTEVENTCOMMENT: "",
// }
// console.log('obj',obj)
// state.ChangeParams.body.BOXLIST.push(obj);
// }
// await BpelEvent(state.ChangeParams).then((res: any) => {
// if (IFTRUE(res)) {
// ElMessageBox.alert('货位移转完成', '提醒框', {
// confirmButtonText: 'OK',
// })
// handleQuery();
// state.Button_state = false
// } else {
// ElMessageBox.alert(res.data.RETURNCODE + '->' + res.data.RETURNMESSAGE, '', {
// confirmButtonText: 'OK',
// })
// handleQuery();
// state.Button_state = false
// }
// state.loading2 = false
// }).catch((error: any) => {
// ElMessageBox.alert(error, '提醒框', {
// confirmButtonText: 'OK',
// })
// state.loading2 = false
// state.Button_state = false
// })
let BoxListInfo = JSON.parse(JSON.stringify(state.column4))
// for (let k = 0; k < BoxListInfo.length; k++) {
// BoxListInfo[k].AIMERPLOCATION = state.desParams.params.ERPLOCATION
// BoxListInfo[k].AIMLOCATIONNAME = state.desParams.params.LOCATIONNAME
// BoxListInfo[k].AIMERPFACTORY = BoxListInfo[k].ERPFACTORY
// }
BoxListInfo.map((row: any) => {
if(row.SPLITQUANTITY != row.MATERIALQUANTITY && row.SPLITQUANTITY) {
let rowList = row.MATERIALPACKINGNAME?.split('|');
console.log(rowList,rowList[rowList.length-1])
// let splitNumber = (cals.sub(rowList[rowList.length-1],row.SPLITQUANTITY)).toNumber();
let splitNumber = (cals.sub(row.MATERIALQUANTITY,row.SPLITQUANTITY)).toNumber();
let rowNewList = [...rowList];
//新标签1
rowNewList[rowNewList.length-1] = splitNumber
let splitPackingName1 = rowNewList.join('|');
//新标签2
rowNewList[rowNewList.length-1] = row.SPLITQUANTITY;
let splitPackingName2 = rowNewList.join('|');
// 拆分标签1
row.MATERIALPACKINGNAME1 = splitPackingName1;
row.MATERIALQUANTITY1 = splitNumber;
// 拆分标签2
row.MATERIALPACKINGNAME2 = splitPackingName2;
row.MATERIALQUANTITY2 = Number(row.SPLITQUANTITY);
}else {
row.MATERIALPACKINGNAME1 = ""
row.MATERIALQUANTITY1 = ""
row.MATERIALPACKINGNAME2 = ""
row.MATERIALQUANTITY2 = ""
}
row.AIMERPLOCATION = state.desParams.params.ERPLOCATION
row.AIMLOCATIONNAME = state.desParams.params.LOCATIONNAME
//row.AIMERPFACTORY = row.ERPFACTORY
row.AIMERPFACTORY = state.queryParams.params.destinationErpFactory
})
console.log('BoxListInfo',BoxListInfo)
CommitMove({
body: BoxListInfo,
time: state.commitDate,
user: localStorage.getItem('userId'),
remark:state.REMARK
})
.then((res: any) => {
if (res?.success) {
ElMessageBox.alert(res?.message, '提醒框', {
confirmButtonText: 'OK'
})
if (state.column4.length > 0) {
tableRef.value!.clearSelection()
state.column4 = []
}
state.MaterialPackingList = []
handleQuery()
state.MaterialPackingUsername = []
} else {
ElMessageBox.alert(res?.message, '提醒框', {
confirmButtonText: 'OK'
})
}
state.loading2 = false
state.Button_state = false
})
.catch((error: any) => {
console.log(error)
ElMessageBox.alert(error?.response?.data?.message || error?.message, '提醒框', {
confirmButtonText: 'OK'
})
state.loading2 = false
state.Button_state = false
})
} else {
ElMessageBox.alert('请先选择需要移动的标签和仓库', '提醒框', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK'
})
state.Button_state = false
state.loading2 = false
}
// state.loading2 = false
state.Button_state = false
}
/*
async function getStorageSpecLocationList() {
let erpLocation = JSON.parse(localStorage.getItem('orgNo'));
request({
url: '/api/api/storage/getLocationNameForERPLocation',
method: 'post',
data: {
erpLocation: erpLocation,
SITENAME: 'SDK',
},
}).then((res: any) => {
state.locDecListAll = res.resultObj;
});
}
*/
function changeSpcERPFactory(e: any) {
state.locDecList1 = [] as any
getQueryList({
queryId: 'GetErpLocationList',
version: 'WEB00001',
params: {
SITENAME: localStorage.getItem('siteName') || 'SDK',
ERPFACTORYNAME: e
},
pageNum: 1,
pageSize: 10
})
.then((res: any) => {
state.locDecList1 = res.data
/* state.ERPLocationList.unshift({
ENUMVALUE: ''
})*/
})
.catch(() => {})
}
</script>
<style scoped lang="scss">
.operate-bottom {
width: 80px;
height: 28px;
float: right;
margin-top: 20px;
}
</style>