1104 lines
39 KiB
Vue
1104 lines
39 KiB
Vue
<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>
|