1104 lines
39 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" :inline="true" label-width="80px" label-position="left">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="发货单据" prop="params.SHIPREQUESTNAME">
<el-Input v-model="queryParams.params.SHIPREQUESTNAME" @keydown.enter.prevent="handleQuery" clearable />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="page-search-btns">
<el-button type="primary" @click="searchFn">搜索</el-button>
</div>
</el-row>
<div class="vue-element-page-table">
<el-row>
<!-- <div class="page-table-operate">
<div class="page-table-title">
<div class="page-table-title-left">
<span>发货单据信息</span>
</div>
</div>
</div> -->
</el-row>
<el-table ref="tableInfo" :row-class-name="tableRowClassName" border v-loading="loading" :data="ShipList" highlight-current-row row-key="id" style="width: 100%;min-height: 100px;"
@row-click="handle">
<template v-for="(col, index) in column" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
</el-table>
</div>
<!-- 左右结构 -->
<div class="vue-element-page-table">
<el-row>
<el-col :span="12" >
<div class="vue-element-page-table">
<el-row :gutter="20">
<el-col :span="20">
<div class="page-table-operate">
<div class="page-table-title">
<div class="page-table-title-left">
<span>未分配标签信息</span>
</div>
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="40px" label-position="left" style="margin-left:20px">
<el-form-item label="货位" prop="params.LOCATION">
<el-select v-model="state.ChangeLocation" clearable collapse-tags placeholder="请选择货位"
popper-class="custom-header" :max-collapse-tags="1" style="width: 240px"
@visible-change="JudgeMentERPLocation" filterable>
<template #header>
</template>
<el-option v-for="item in state.LocationList" :key="item.STORAGENAME" :label="item.DESCRIPTION"
:value="item.STORAGENAME" />
</el-select>
</el-form-item>
</el-form>
</div>
</div>
</el-col>
<!-- <el-col :span="10">-->
<!-- <el-input v-model="queryParams.params.CHARGE" type="textarea" />-->
<!-- </el-col>-->
<!-- <el-col :span="3">-->
<!-- <el-button type="primary" @click="chargeReserve" v-loading="state.button_loading">指定批次</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="3">-->
<!-- <el-button type="primary" @click="clearCharge" v-loading="state.button_loading">清空批次</el-button>-->
<!-- </el-col>-->
</el-row>
<el-table :height="tableHeight" border v-loading="loading" :data="state.MaterialPackingList" highlight-current-row row-key="id"
style="width: 100%;min-height:50px" @selection-change="handleSelectionChange2">
<el-table-column fixed="left" type="selection" width="40" :selectable="selectable" :reserve-selection="false" />
<el-table-column type="index" width="50" />
<template v-for="(col, index) in column1" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
</el-table>
</div>
</el-col>
<el-col :span="1" class="transfer-switch">
<el-button type="primary" @click="LeftIn" v-loading="loading"><el-icon>
<ArrowRight />
</el-icon></el-button>
<el-button type="primary" @click="RightIn" v-loading="loading2"><el-icon>
<ArrowLeft />
</el-icon></el-button>
</el-col>
<el-col :span="11">
<div class="vue-element-page-table">
<div class="page-table-operate">
<el-row>
<div class="page-table-title">
<div class="page-table-title-left">
<span>已分配标签信息</span>
</div>
<div class="page-table-button">
<el-button style="margin-left: 15px;" type="primary" @click="exportExcel" :disabled="state.button_state3" v-loading="state.button_loading3">导出</el-button>
</div>
<el-tag style="margin-left: 20px;" type="success" size="large"> 总标签个数:{{ BQSUM }}</el-tag>
<el-tag style="margin-left: 10px;" type="success" size="large">总发货数量:{{ SENDSUM }}</el-tag>
</div>
</el-row>
</div>
<el-table :height="tableHeight" border v-loading="loading" :data="state.MaterialPackingUsername" highlight-current-row
row-key="id" style="width: 100%;min-height:50px" @selection-change="handleSelectionChange">
<el-table-column fixed="left" type="selection" width="50" />
<el-table-column type="index" width="50" />
<el-table-column prop="MATERIALQUANTITY2" label="本次发货数量" width="140">
<template #default="scope">
<el-input v-model="scope.row.MATERIALQUANTITY2" min = 0 type =number style="width: 140px">
</el-input>
</template>
</el-table-column>
<template v-for="(col, index) in column2" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
<el-table-column fixed="right" label="操作" width="180">
<template #default="scope">
<el-button @click="UpdateQty(scope.row)" type="primary" size="small">修改数量</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
</div>
<el-row class="page-search" justify="end" align="middle">
<div class="block" style="float: right">
<el-form-item label="备注" prop="state.REMARK">
<el-Input v-model="state.REMARK" />
</el-form-item>
</div>
<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>
<div class="page-search-btns">
<!-- <el-button type="primary" @click="handleReserve" :disabled="state.button_state" v-loading="state.button_loading">备货</el-button> -->
<el-button type="primary" @click="handleStockOut" :disabled="state.buttonOut_state" v-loading="state.buttonOut_loading">出库</el-button>
</div>
</el-row>
</div>
</template>
<script lang="ts">
export default {
// eslint-disable-next-line vue/multi-word-component-names
name: "shipRequestReserve",
};
</script>
<script lang="ts" setup>
import { reactive, ref, onMounted, toRefs, getCurrentInstance, nextTick } from "vue";
import { ElForm, ElMessageBox, ElTable, ElMessage, ElNotification } from "element-plus";
import { getQueryList, BpelEvent } from '@/api/common';
import { useRouter } from "vue-router";
import { create } from "sortablejs";
import {areAllNotEmpty, FirstInFirstOut, IFTRUE} from '@/utils/CommonUtil'
import exportDataToExcel from "@/utils/export-excel";
import {
AssignShipRequest,
AssignShipRequestByCharge,
DeAssignShipRequest,
UpdateOutQty,
RejectsAndExpCheck,
CompleteShipRequestStockUp
} from '@/api/StockOut'
import { Edit } from "@element-plus/icons-vue/dist/types";
import { bTableHeight } from "../../../composables/calcTableHeight";
import {localStorage} from "@/utils/storage";
import { cals } from '@/utils/cal'
const { tableContainer, tableHeight, updateTableHeight, handleResize } = bTableHeight(400);
const queryFormRef = ref(ElForm);
const operateFormRef = ref(ElForm);
const tableInfo = ref<any>(null)
const formDataRef = ref(ElForm);
const { proxy }: any = getCurrentInstance();
const router = useRouter();
const state: any = reactive({
BQSUM: 0,
SENDSUM: 0,
iIndex: 1,
button_loading3 : false,
button_loading2 : false,
button_loading : false,
buttonOut_loading : false,
rsa: "",
LShipRequestDetailName: '',
LShipType: '',
button_state: false,
buttonOut_state: false,
button_state2: false,
STOCKSELECT: [],
AleardyBooking: false,
IFCompleteStockUp: false,//用于判断是否完成备货
AB: '',
commitDate:'',
ABList: [{ value: 'A', label: 'A' }, { value: 'B', label: 'B' }],
ENDING: '',
INITILATION: '',
ERPLocationList: [] as any,
LocationList: [] as any,
ChangeERPLocation: [],
ChangeLocation: [],
STOCKSELECTLIST: [] as any,
queryParams: {
queryId: "",
version: "",
params: {
SITENAME: 'SDK',//localStorage.getItem("siteName"),
DELIVERYTYPE: "", //移动类型
SUPPLIERNAME: "",
SHIPREQUESTNAME: "",
MATERIALSPECNAME: '',
AREANAME: '',
MATERIALPACKING: '',
DURABLENAME: '',
CHARGE: '',
ERPFACTORYNAME: '',
ERPLOCATION: '',
SDK_ID: '',
PHASE: '',
ERPFACTORY: '',
SHIPREQUESTDETAILNAME: '',
DESCRIPTION: '',
CAREER_ASSISTANCE: '',
},
},
RightqueryParams: {
queryId: "",
version: "",
params: {
SITENAME: 'SDK',//localStorage.getItem("siteName"),
DELIVERYTYPE: "", //移动类型
SUPPLIERNAME: "",
SHIPREQUESTNAME: "",
MATERIALSPECNAME: '',
AREANAME: '',
MATERIALPACKING: '',
DURABLENAME: '',
CHARGE: '',
ERPFACTORYNAME: '',
ERPLOCATION: '',
SDK_ID: '',
PHASE: '',
ERPFACTORY: '',
SHIPREQUESTDETAILNAME: '',
CUSTOMERNO : ''
},
},
ChangeParams: {
header: {
MESSAGENAME: '',
EventUser: localStorage.get('userId') || '10975133',
LANGUAGE: 'Chinese',
Flag: 'LK'//立库标志
},
body: {
SHIPREQUESTNAME: '',
SHIPREQUESTDETAILNAME: '',
SITENAME: 'SDK',
MATERIALPACKINGNAME: '',
objPara: [] as any,
}
},
ReserveParams: {
header: {
MESSAGENAME: '',
LANGUAGE: 'Chinese'
},
body: {
SHIPREQUESTNAME: '',
SITENAME: 'SDK',
SHIPREQUESTTYPE: ''
}
},
operateParams: {
date: new Date(),
},
operateOptions: [] as any, // 操作类型
actNoOptions: [] as any, // 抬头文本
checkResultOptions: [
{
label: "OK",
value: "OK",
},
{
label: "NG",
value: "NG",
},
], // 质检结果
loading: false,
loading2: false,
loadings: true,
userList: [] as any,
ShipList: [] as any,
MaterialPackingList: [] as any,
MaterialPackingUsername: [] as any,
column1: [] as any,
column: [] as any,
column2: [] as any,
column3: [] as any,
column4: [] as any,
LKLocalNameList: [] as any,//立库搬出库位
LKPALLETNAMEList: [] as any,//成品批号/标签
LKTRAYNAMEList: [] as any,//轴心RFID/托盘ID
MaterialPackingList2 : [] as any,
lineRow: [] as any,
IsCheck: 'N'
});
const {IsCheck, BQSUM, SENDSUM,lineRow, iIndex, LKTRAYNAMEList, LKPALLETNAMEList, LKLocalNameList, MaterialPackingUsername, MaterialPackingList, ShipList, rsa, queryParams, loading, loading2,buttonOut_loading,buttonOut_state, userList, column, column1, column2, operateParams, operateOptions, actNoOptions, checkResultOptions } = toRefs(state);
onMounted(() => {
state.column = [
{ header: "工厂", field: "SITENAME", hide: true },
{ header: "行项", field: "SHIPREQUESTDETAILNAME", hide: true },
{ header: "发货单号", field: "SHIPREQUESTNAME", hide: false },
{ header: "发货组织", field: "ERPFACTORYDESC", hide: false },
{ header: "发货仓库", field: "ERPLOCATIONDES", hide: true },
{ header: "接收组织", field: "ERPRECEIVEFACTORYDESC", hide: false },
{ header: "接收仓库", field: "ERPRECEIVELOCATIONDES", hide: true },
{ header: "物料编号", field: "MATERIALSPECNAME", hide: false },
{ header: "品名", field: "DESC_CN", hide: false },
// { header: "物料规格", field: "SDK_ID", hide: false },
{ header: "单位", field: "MATERIALUNIT", hide: false },
{ header: "发货类型", field: "SHIPREQUESTTYPE", hide: false },
{ header: "请求数量", field: "REQUESTQUANTITY", hide: false },
{ header: "绑定数量", field: "ASSIGNEDQUANTITY", hide: false },
{ header: "绑定待发货数量", field: "WAITEQUANTITY", hide: false,},
{ header: "规格", field: "SDK_ID", hide: true },
{ header: "规格", field: "SPECNAME", hide: false },
{ header: "阶段", field: "PHASE", hide: false },
{ header: "业助", field: "CAREER_ASSISTANCE", hide: false },
{ header: "客户", field: "CUSTOMERNO", hide: false },
{ header: "批次", field: "CHARGE", hide: true },
// { header: "物料组", field: "MATERIALGROUP", hide: false },
];
state.column1 = [
{ header: "标签ID", field: "MATERIALPACKINGNAME", hide: false },
{ header: "批次", field: "CHARGE", hide: false },
{ header: "行项", field: "SHIPREQUESTDETAILNAME", hide: true },
{ header: "发货单号", field: "SHIPREQUESTNAME", hide: true },
{ header: "物料编号", field: "MATERIALSPECNAME", hide: false },
{ header: "品名", field: "DESC_CN", hide: false },
{ header: "物料规格", field: "SDK_ID", hide: true },
{ header: "SDK规格", field: "SPECNAME", hide: false },
{ header: "仓库代码", field: "ERPLOCATION", hide: false },
{ header: "仓库名称", field: "ERPLOCATIONDESC", hide: false },
{ header: "货位代码", field: "LOCATIONNAME", hide: false },
{ header: "货位名称", field: "LOCATIONNAMEDESC", hide: false },
// { header: "批次", field: "MAKEDATE", hide: false },
{ header: "数量", field: "MATERIALQUANTITY", hide: false },
{ header: "单位", field: "MATERIALUNIT", hide: false },
// { header: "移动类型", field: "CREATETIME", hide: false },
{ header: "入库日期", field: "RECEIVETIME", hide: false },
{ header: "生产日期", field: "MAKEDATE", hide: false },
{ header: "过期时间", field: "EXPIRINGDATE", hide: false },
];
state.column2 = [
{ header: "标签ID", field: "MATERIALPACKINGNAME", hide: false },
{ header: "批次", field: "CHARGE", hide: false },
{ header: "行项", field: "SHIPREQUESTDETAILNAME", hide: true },
{ header: "物料编号", field: "MATERIALSPECNAME", hide: false },
{ header: "品名", field: "DESC_CN", hide: false },
{ header: "物料规格", field: "SDK_ID", hide: true },
// { header: "物料规格", field: "SPECNAME", hide: false },
{ header: "SDK规格", field: "SPECNAME", hide: false },
{ header: "仓库代码", field: "ERPLOCATION", hide: false },
{ header: "仓库名称", field: "ERPLOCATIONDESC", hide: false },
{ header: "货位代码", field: "LOCATIONNAME", hide: false },
{ header: "货位名称", field: "LOCATIONNAMEDESC", hide: false },
{ header: "物料总数量", field: "MATERIALQUANTITY", hide: false },
// { header: "发货数量", field: "MATERIALQUANTITY2", hide: false },
// { header: "位置", field: "LOCATIONNAME", hide: false },
{ header: "工厂", field: "SITENAME", hide: true },
// { header: "生成时间", field: "CREATETIME", hide: true },
// { header: "物料类型", field: "MATERIALTYPE", hide: false },
// { header: "物料编号", field: "MATERIALSPECNAME", hide: false },
{ header: "生产日期", field: "MAKEDATE", hide: false },
{ header: "过期时间", field: "EXPIRINGDATE", hide: false },
];
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
updateTableHeight();
window.addEventListener('resize', handleResize);
});
function JudgeMentERPLocation() {
let LOCATION = state.ChangeLocation;
if ( state.MaterialPackingList2 == null) {
state.MaterialPackingList2 = state.MaterialPackingList
}
if (LOCATION != null) {
console.log(state.MaterialPackingList.length)
// let tem = state.MaterialPackingList.filter(item => item.LOCATIONNAME ==LOCATION)
state.MaterialPackingList = state.MaterialPackingList2.filter(item => item.LOCATIONNAME ==LOCATION)
console.log(state.MaterialPackingList.length)
// console.log(tem.length)
} else {
}
}
function GetLocationListForSomeERPLocation(value: any) {
if (!areAllNotEmpty(state.queryParams.params.ERPFACTORY)) {
proxy.$ElMessage.warning('当前还未选择组织');
state.ChangeERPLocation = []
state.ERPLocationList = []
return
}
if (!areAllNotEmpty(state.ChangeERPLocation)) {
return
}
if (!value) {
let ERPLOCATIONList = state.ChangeERPLocation;
getQueryList({
queryId: "GetLocationListForSomeERPLocation",
version: "00001",
params: {
SITENAME: localStorage.get("siteName") || 'SDK',
ERPLOCATION: ERPLOCATIONList.length ? ERPLOCATIONList.join(','): ""
},
})
.then((res: any) => {
state.LocationList = res.data;
state.LocationList.unshift({
STORAGENAME: ''
});
})
.catch(() => { });
}
}
function handleSelectionChange(selection: any) {
console.log('调用了', selection)
state.column3 = selection
}
function handleSelectionChange2(selection: any) {
console.log('调用了', selection)
state.column4 = selection
}
// 更新列
function updateList(col: any) {
state.column = col;
}
function searchFn() {
state.iIndex = 0
handleQuery()
}
function tableRowClassName({ row, rowIndex }) {
// console.log(11,row, rowIndex)
row.iIndex = rowIndex
}
async function handleQuery() {
let flag = true;
if ((state.queryParams.params.SHIPREQUESTNAME != '') && (state.queryParams.params.SHIPREQUESTNAME != null) && (state.queryParams.params.SHIPREQUESTNAME != undefined)) {
// getIsCheckFn({ShipRequestName:state.queryParams.params.SHIPREQUESTNAME});
let {resultObj } :any = await RejectsAndExpCheck({ShipRequestName:state.queryParams.params.SHIPREQUESTNAME});
console.log(resultObj);
state.IsCheck = resultObj;
state.queryParams.queryId = 'GetShipRequestDetailList';
state.queryParams.version = 'Z00052_NEW';
getQueryList(state.queryParams).then((res: any) => {
if (res.data.length > 0) {
state.ShipList = res.data;
if(state.ShipList.length>0)
{
nextTick(() => {
console.log(666,state.ShipList[state.iIndex],state.iIndex)
handle(state.ShipList[state.iIndex],null,null);
})
}
} else {
state.ShipList = [];
state.MaterialPackingList = []
state.MaterialPackingUsername = []
ElMessageBox.alert('搜索结果为空', '提醒框', {
confirmButtonText: 'OK',
})
state.queryParams.params.SHIPREQUESTNAME = ""
}
});
} else {
ElMessageBox.alert('搜索条件不能为空', '提醒框', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK',
})
}
}
function getIsCheckFn(params: any) {
RejectsAndExpCheck(params).then((res: any) => {
console.log(res.resultObj);
state.IsCheck = res.resultObj;
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
})
}
let tempRow: any = null;
let tempevent: any = null;
let tempcolumn: any = null;
function handle(row: any, event: any, column: any) {
state.lineRow = row;
console.log(44,row,event,column,row.iIndex)
state.iIndex = row.iIndex
tempRow = row;
tempevent = event;
tempcolumn = column;
state.queryParams.queryId = 'GetPackingRow';
state.queryParams.version = 'ZWP007_NEW';
state.queryParams.params.MATERIALSPECNAME = row.MATERIALSPECNAME;
state.queryParams.params.SDK_ID = row.SDK_ID;
state.queryParams.params.ERPLOCATION = row.ERPLOCATION;
state.queryParams.params.ERPFACTORY = row.ERPFACTORY;
state.queryParams.params.PHASE = row.PHASE;
state.queryParams.params.SHIPREQUESTDETAILNAME = row.SHIPREQUESTDETAILNAME;
state.queryParams.params.CAREER_ASSISTANCE = row.CAREER_ASSISTANCE;
state.queryParams.params.ERPRECEIVELOCATION = row.ERPRECEIVELOCATION;
state.LShipRequestDetailName = row.SHIPREQUESTDETAILNAME
state.LShipType = row.SHIPREQUESTTYPE
state.queryParams.params.IsCheck = state.IsCheck
getQueryList(state.queryParams).then((res: any) => {
state.MaterialPackingList = res.data;
state.MaterialPackingList2 = res.data;
});
state.RightqueryParams.queryId = 'GetPackingRow';
state.RightqueryParams.version = 'Z00002_NEW';
state.RightqueryParams.params.MATERIALSPECNAME = row.MATERIALSPECNAME;
state.RightqueryParams.params.SHIPREQUESTNAME = row.SHIPREQUESTNAME;
state.RightqueryParams.params.SDK_ID = row.SDK_ID;
state.RightqueryParams.params.ERPLOCATION = row.ERPLOCATION;
state.RightqueryParams.params.PHASE = row.PHASE;
state.RightqueryParams.params.SHIPREQUESTDETAILNAME = row.SHIPREQUESTDETAILNAME;
state.RightqueryParams.params.ERPRECEIVELOCATION = row.ERPRECEIVELOCATION;
getQueryList(state.RightqueryParams).then((res: any) => {
state.MaterialPackingUsername = res.data;
state.SENDSUM = 0;
state.BQSUM = state.MaterialPackingUsername.length;
state.SENDSUM = state.MaterialPackingUsername.reduce((init: any,current: any)=>{
return (cals.add(init,current.MATERIALQUANTITY2)).toNumber();
},0)
});
state.queryParams.queryId = 'GetLocationList';
state.queryParams.version = 'ZWP007_NEW';
state.queryParams.params.MATERIALSPECNAME = row.MATERIALSPECNAME;
state.queryParams.params.SDK_ID = row.SDK_ID;
state.queryParams.params.ERPLOCATION = row.ERPLOCATION;
state.queryParams.params.ERPFACTORY = row.ERPFACTORY;
state.queryParams.params.PHASE = row.PHASE;
state.queryParams.params.SHIPREQUESTDETAILNAME = row.SHIPREQUESTDETAILNAME;
state.queryParams.params.CAREER_ASSISTANCE = row.CAREER_ASSISTANCE;
state.LShipRequestDetailName = row.SHIPREQUESTDETAILNAME
state.LShipType = row.SHIPREQUESTTYPE
getQueryList(state.queryParams).then((res: any) => {
state.LocationList = res.data;
});
tableInfo.value.setCurrentRow(row)
}
//重写拣配功能。zd.2024.9.10
async function LeftIn() {
if (state.MaterialPackingList.length > 0 && state.column4.length > 0)
{
let boxId ='';
for (const item of state.column4) {
boxId +=(item.MATERIALPACKINGNAME+';');
}
const params = {
materialPackingName: boxId,
user: localStorage.get('userId'),
shipRequestName: state.queryParams.params.SHIPREQUESTNAME,
materialSpecName: state.queryParams.params.MATERIALSPECNAME,
phase: state.lineRow.PHASE,
sdk_id: state.lineRow.SDK_ID,
};
state.loading = true;
AssignShipRequest(params).then((res: any) => {
if (res.success) {
handleQuery();
state.loading = false;
}
else {
ElMessageBox.alert('操作失败:' + res.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
}
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
})
}
else {
ElMessageBox.alert('提示框', '勾选的数据不能为空!', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK',
})
}
state.loading = false;
// if (state.MaterialPackingList.length > 0 && state.column4.length > 0) {
// state.loading = true;
// state.ChangeParams.header.MESSAGENAME = 'AssignShipRequestToBoxForSDK';
// state.ChangeParams.body.SHIPREQUESTDETAILNAME = state.queryParams.params.SHIPREQUESTDETAILNAME
// // state.ChangeParams.body.SHIPREQUESTDETAILNAME = "0001"
// state.ChangeParams.body.SHIPREQUESTNAME = state.queryParams.params.SHIPREQUESTNAME
// state.ChangeParams.body.MATERIALQUANTITY = 0
// // 遍历 state.column4将 MATERIALPACKINGNAME 添加到 packingNames 数组中
// state.ChangeParams.body.objPara = []
// for (const item of state.column4) {
// state.ChangeParams.body.objPara.push(item.MATERIALPACKINGNAME);
// state.ChangeParams.body.MATERIALQUANTITY += item.MATERIALQUANTITY;
// }
// if (state.LShipType == '4C') {
// let AllQty = 0;
// for (let i = 0; i < state.ShipList.length; i++) {
// if (state.ShipList[i].SHIPREQUESTDETAILNAME == state.LShipRequestDetailName) {
// AllQty = state.ShipList[i].REQUESTQUANTITY - state.ShipList[i].ASSIGNEDQUANTITY
// break
// }
// }
// let areadryQty = 0
// for (let i = 0; i < state.MaterialPackingUsername.length; i++) {
// areadryQty += parseFloat(state.MaterialPackingUsername[i].MATERIALQUANTITY)
// }
// console.log(AllQty, state.ChangeParams.body.MATERIALQUANTITY, areadryQty)
// if (AllQty < state.ChangeParams.body.MATERIALQUANTITY ) {
// console.log(AllQty + "" + (state.ChangeParams.body.MATERIALQUANTITY + areadryQty))
// ElMessageBox.alert("该明细所需数量为" + AllQty + ",已经绑定了" + areadryQty + "现在的数量" + state.ChangeParams.body.MATERIALQUANTITY + "大于所需数量", "", {
// confirmButtonText: 'OK',
// })
// state.loading = false;
// return
// }
// }
// // 如果 packingNames 数组不为空,则将其转换为一个由“、”分隔的字符串
// if (state.ChangeParams.body.objPara.length > 0) {
// state.ChangeParams.body.MATERIALPACKINGNAME = state.ChangeParams.body.objPara.join(";");
// } else {
// // 如果 packingNames 为空,可以根据需要设置初始值,或者保持为空字符串
// state.ChangeParams.body.MATERIALPACKINGNAME = "";
// }
// await BpelEvent(state.ChangeParams).then((res: any) => {
// if (IFTRUE(res)) {
// handle(tempRow, tempevent, tempcolumn);
// handleQuery();
// state.loading = false;
// } else {
// ElMessageBox.alert(res.data.RETURNCODE + '->' + res.data.RETURNMESSAGE, '', {
// confirmButtonText: 'OK',
// })
// state.loading2 = false;
// }
// })
// .catch(() => {
// state.loading = false;
// });
// } else {
// ElMessageBox.alert('提示框', '备货数据不能为空!', {
// // if you want to disable its autofocus
// // autofocus: false,
// confirmButtonText: 'OK',
// })
// }
// state.loading = false;
}
function clearCharge() {
state.queryParams.params.CHARGE='';
}
async function chargeReserve() {
if (state.MaterialPackingList.length > 0 && state.queryParams.params.CHARGE!='' && state.queryParams.params.CHARGE != null && state.queryParams.params.CHARGE != undefined)
{
// let boxId ='';
// for (const item of state.column4) {
// boxId +=(item.MATERIALPACKINGNAME+';');
// }
let boxId =state.queryParams.params.CHARGE.replace(/\n/g, ';');
const params = {
materialPackingName: boxId,
user: localStorage.get('userId'),
shipRequestName: state.queryParams.params.SHIPREQUESTNAME,
materialSpecName: state.queryParams.params.MATERIALSPECNAME
};
state.loading = true;
AssignShipRequestByCharge(params).then((res: any) => {
if (res.success) {
handleQuery();
state.loading = false;
}
else {
ElMessageBox.alert('操作失败:' + res.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
}
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
})
}
else {
ElMessageBox.alert('提示框', '指定的批次不能为空!', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK',
})
}
state.loading = false;
}
function UpdateQty(value : any){
const params = {
materialPackingName: value.MATERIALPACKINGNAME,
materialQuantity2: value.MATERIALQUANTITY2,
user: localStorage.get('userId'),
shipRequestName: state.queryParams.params.SHIPREQUESTNAME,
materialSpecName: state.queryParams.params.MATERIALSPECNAME
};
state.loading = true;
UpdateOutQty(params).then((res: any) => {
if (res.success) {
handleQuery();
state.loading = false;
}
else {
ElMessageBox.alert('操作失败:' + res.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
}
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
})
}
function selectable(row: any, index: any) {
// if (row.GROUPNO == '1')
// return true;
// else {
// return false
// }
return true
}
function exportExcel() {
state.button_loading3 = true;
state.button_state3 = true;
if ((state.queryParams.params.SHIPREQUESTNAME != '') && (state.queryParams.params.SHIPREQUESTNAME != null) && (state.queryParams.params.SHIPREQUESTNAME != undefined)) {
getQueryList({
queryId: "GetPackingRow",
version: "dc001",
params: {
SHIPREQUESTNAME: state.queryParams.params.SHIPREQUESTNAME
}
}).then((res: any) => {
if (res.data.length > 0) {
exportDataToExcel(res.data, '备货导出' + state.queryParams.params.SHIPREQUESTNAME)
state.button_loading3 = false;
state.button_state3 = false;
} else {
proxy.$ElMessage.warning('当前查询没有数据可以导出');
state.button_loading3 = false;
state.button_state3 = false;
}
});
} else {
ElMessageBox.alert('导出条件不能为空', '提醒框', {
confirmButtonText: 'OK',
})
state.button_loading3 = false;
state.button_state3 = false;
}
}
async function RightIn() {
if (state.column3.length > 0)
{
let boxId ='';
for (const item of state.column3) {
boxId +=(item.MATERIALPACKINGNAME+';');
}
const params = {
materialPackingName: boxId,
user: localStorage.get('userId'),
shipRequestName: state.queryParams.params.SHIPREQUESTNAME,
materialSpecName: state.queryParams.params.MATERIALSPECNAME,
};
state.loading = true;
DeAssignShipRequest(params).then((res: any) => {
if (res.success) {
handleQuery();
state.loading = false;
}
else {
ElMessageBox.alert('操作失败:' + res.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
}
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
})
}
else {
ElMessageBox.alert('提示框', '勾选的数据不能为空!', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK',
})
}
state.loading = false;
// if (state.column3.length > 0) {
// state.loading2 = true;
// state.ChangeParams.header.MESSAGENAME = 'DeassignShipRequestFromBox';
// state.ChangeParams.body.SHIPREQUESTDETAILNAME = state.RightqueryParams.params.SHIPREQUESTDETAILNAME
// state.ChangeParams.body.SHIPREQUESTNAME = state.RightqueryParams.params.SHIPREQUESTNAME
// state.ChangeParams.body.MATERIALQUANTITY = 0
// // 遍历 state.column4将 MATERIALPACKINGNAME 添加到 packingNames 数组中
// state.ChangeParams.body.objPara = []
// for (const item of state.column3) {
// state.ChangeParams.body.objPara.push(item.MATERIALPACKINGNAME);
// state.ChangeParams.body.MATERIALQUANTITY += item.MATERIALQUANTITY;
// }
// // 如果 packingNames 数组不为空,则将其转换为一个由“、”分隔的字符串
// if (state.ChangeParams.body.objPara.length > 0) {
// state.ChangeParams.body.MATERIALPACKINGNAME = state.ChangeParams.body.objPara.join(";");
// } else {
// // 如果 packingNames 为空,可以根据需要设置初始值,或者保持为空字符串
// state.ChangeParams.body.MATERIALPACKINGNAME = "";
// }
// await BpelEvent(state.ChangeParams).then((res: any) => {
// if (IFTRUE(res)) {
// handle(tempRow, tempevent, tempcolumn);
// handleQuery();
// state.loading2 = false;
// } else {
// ElMessageBox.alert(res.data.RETURNCODE + '->' + res.data.RETURNMESSAGE, '', {
// confirmButtonText: 'OK',
// })
// state.loading2 = false;
// }
// })
// .catch(() => {
// state.loading2 = false;
// });
// } else {
// ElMessageBox.alert('提示框', '备货数据不能为空!', {
// // if you want to disable its autofocus
// // autofocus: false,
// confirmButtonText: 'OK',
// })
// }
}
function resetQuery() {
queryFormRef.value.resetFields();
handleQuery();
}
function handleReserve() {
state.button_state = true;
state.button_loading = true;
if (state.LShipType == '4C') {
for (let i = 0; i < state.ShipList.length; i++) {
if (state.ShipList[i].REQUESTQUANTITY != state.ShipList[i].ASSIGNEDQUANTITY) {
ElMessageBox.alert("该单据下明细" + state.LShipRequestDetailName + " 所需数量为" + state.ShipList[i].REQUESTQUANTITY + "绑定数量为" + state.ShipList[i].ASSIGNEDQUANTITY + ".不符合要求", "", {
confirmButtonText: 'OK',
})
state.button_state = false;
state.button_loading = false;
return
}
state.button_state = false;
state.button_loading = false;
}
}
if (state.MaterialPackingUsername.length > 0) {
state.loading = true
state.button_state = true
state.button_loading = true;
state.ReserveParams.header.MESSAGENAME = 'ReserveShipRequest'
state.ReserveParams.header.EventUser = localStorage.get('userId')
state.ReserveParams.body.SHIPREQUESTNAME = state.queryParams.params.SHIPREQUESTNAME
state.ReserveParams.body.SITENAME = localStorage.get("siteName") == null ? "SDK" : localStorage.get("siteName");
BpelEvent(state.ReserveParams).then((res: any) => {
if (IFTRUE(res)) {
ElMessageBox.alert("备货成功", '', {
confirmButtonText: 'OK',
})
handle(tempRow, tempevent, tempcolumn);
handleQuery()
state.IFCompleteStockUp = true
state.loading = false
state.button_state = false;
state.button_loading = false;
} else {
ElMessageBox.alert(res.data.RETURNCODE + '->' + res.data.RETURNMESSAGE, '', {
confirmButtonText: 'OK',
})
state.button_state = false;
state.button_loading = false;
}
})
.catch(() => { });
state.loading = false;
state.button_state = false;
state.button_loading = false;
} else {
ElMessageBox.alert("请先选择需要备货的标签", '提示框', {
confirmButtonText: 'OK',
})
}
state.button_state = false;
state.button_loading = false;
}
function handleStockOut() {
if (state.queryParams.params.SHIPREQUESTNAME!='' && state.queryParams.params.SHIPREQUESTNAME!=null && state.queryParams.params.SHIPREQUESTNAME != undefined)
{
// 如果数量不与原数量相等,就数量被修改
let boxList: any[] = [];
// state.MaterialPackingUsername.map((item: any) => {
// if(item.MATERIALQUANTITY != item.MATERIALQUANTITY2) {
// boxList.push({MATERIALPACKINGNAME: item.MATERIALPACKINGNAME, MATERIALQUANTITY2: item.MATERIALQUANTITY2});
// }
// });
const params = {
//materialPackingName: boxId,
boxList: boxList,
user: localStorage.get('userId'),
shipRequestName: state.queryParams.params.SHIPREQUESTNAME,
commitDate: state.commitDate,
remark:state.REMARK,
//materialSpecName: state.queryParams.params.MATERIALSPECNAME
};
//state.loading = true;
state.buttonOut_loading = true;
//state.buttonOut_state = true;
CompleteShipRequestStockUp(params).then((res: any) => {
if (res.success) {
ElMessageBox.alert("出库成功", '', {
confirmButtonText: 'OK',
})
handleQuery();
//state.loading = false;
state.buttonOut_loading = false;
//state.buttonOut_state = false;
}
else {
ElMessageBox.alert('操作失败:' + res.message, '提醒框', {
confirmButtonText: 'OK',
})
//state.loading = false;
//state.buttonOut_state = false;
state.buttonOut_loading = false;
}
}).catch((err: any) => {
ElMessageBox.alert('操作失败:' + err.response.data.message, '提醒框', {
confirmButtonText: 'OK',
})
//state.loading = false;
//state.buttonOut_state = false;
state.buttonOut_loading = false;
})
}
else {
ElMessageBox.alert('提示框', '请输入发货单号', {
// if you want to disable its autofocus
// autofocus: false,
confirmButtonText: 'OK',
})
//state.loading = false;
//state.buttonOut_state = false;
state.buttonOut_loading = false;
}
}
</script>
<style scoped lang="scss">
.operate-bottom {
width: 80px;
height: 28px;
float: right;
margin-top: 20px;
}
.el-form-item__content {
display: flex;
align-items: center;
/* 垂直居中 */
justify-content: center;
/* 水平居中,如果需要的话 */
}
</style>