<template>
|
<el-dialog
|
v-model="dialogVisible"
|
width="95%"
|
@close="closeDialog"
|
:close-on-click-modal="false"
|
>
|
<template #header>
|
<div style="color: #fff">
|
<span> 分配详情 </span>
|
</div>
|
</template>
|
|
<el-form :model="materialForm" label-width="100px">
|
<el-row>
|
<el-col :span="4">
|
<el-form-item label="下架单单号">
|
<el-input
|
v-model="materialForm.movementNo"
|
placeholder="请输入下架单单号"
|
disabled
|
clearable
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="4">
|
<el-form-item label="物料编号">
|
<el-input
|
v-model="materialForm.materialCode"
|
placeholder="请输入物料编号"
|
clearable
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label-width="20px">
|
<el-button type="primary" icon="el-icon-search" @click="getOrderMaterialList1"
|
>查询</el-button
|
>
|
<!-- <el-button icon="el-icon-delete" plain :disabled="checkedDetails.length == 0"
|
@click="delCheckedDetails">删除选中行</el-button> -->
|
<!-- <el-button icon="el-icon-refresh-right" @click="resetMaterialForm">重置</el-button> -->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div class="msi-content" style="margin-top: 10px">
|
<!-- <div class="header" style="margin-bottom: 10px">
|
<div>
|
<el-button v-show="isPoBox == true" type="primary" icon="el-icon-plus"
|
@click="addMaterialDialog('po')">关联ASN单</el-button>
|
|
<el-button icon="el-icon-delete" plain :disabled="checkedDetails.length == 0"
|
@click="delCheckedDetails">删除选中行</el-button>
|
</div>
|
</div> -->
|
<el-table
|
:data="warehousOrderDetails"
|
border
|
style="width: 100%"
|
:row-key="setRowKey"
|
ref="tableRef"
|
@selection-change="detailsCheckChange"
|
max-height="480"
|
@expand-change="getChildList"
|
>
|
<!-- 子表 -->
|
<el-table-column fixed="left" type="expand">
|
<template #default="scope">
|
<br />
|
<el-table
|
:data="scope.row.children"
|
border
|
style="width: 95%; margin: 0 auto"
|
min-height="200"
|
>
|
<!-- <el-table-column align="center" width="60" type="selection" /> -->
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
|
<!-- <el-table-column v-if="titleAuthor == 1" prop="movementNo" min-width="100px" label="下架单单号"
|
show-overflow-tooltip="" />
|
<el-table-column v-if="titleAuthor == 1" prop="movementLineNumber" label="下架单行号" show-overflow-tooltip="" /> -->
|
<!-- <el-table-column v-if="titleAuthor == 2" prop="sortNo" min-width="100px" label="波次单号"
|
show-overflow-tooltip="" />
|
<el-table-column v-if="titleAuthor == 2" prop="sortNoLineNumber" min-width="100px" label="波次单行号"
|
show-overflow-tooltip="" />
|
<el-table-column v-if="titleAuthor == 2" prop="relationNo" min-width="100px" label="下架单单号"
|
show-overflow-tooltip="" />
|
<el-table-column v-if="titleAuthor == 2" prop="relationNoLineNumber" label="下架单行号" show-overflow-tooltip="" />
|
<el-table-column prop="materialCode" min-width="130px" label="物料编号" show-overflow-tooltip="" />
|
<el-table-column prop="materialName" min-width="110px" label="物料名称" show-overflow-tooltip="" /> -->
|
<el-table-column
|
prop="orderStatus"
|
min-width="60px"
|
label="分配状态"
|
show-overflow-tooltip=""
|
>
|
<template #default="scope">
|
{{ scope.row.pdRecordStatusName }}
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="areaCode" label="库区" show-overflow-tooltip="" />
|
<el-table-column prop="placeCode" label="库位" show-overflow-tooltip="" />
|
<el-table-column
|
prop="containerCode"
|
label="容器编号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
width="160"
|
prop="snCode"
|
label="跟踪码"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column label="已分配数" align="center" width="180">
|
<template #default="scope">
|
{{ scope.row.quantity }}
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
label="操作"
|
width="200"
|
align="center"
|
fixed="right"
|
show-overflow-tooltip=""
|
>
|
<template #default="scope">
|
<!-- 分配详情-预分配状态=已分配才能修改和取消 -->
|
<el-button
|
icon="ele-Finished"
|
size="small"
|
text=""
|
type="primary"
|
:disabled="scope.row.pdRecordStatus != 2"
|
@click="delWmsOrderXq(scope.row)"
|
>
|
取消分配
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<br />
|
</template>
|
</el-table-column>
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
<el-table-column
|
v-if="titleAuthor == 1"
|
prop="movementNo"
|
min-width="100px"
|
label="下架单单号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
v-if="titleAuthor == 2"
|
prop="sortNo"
|
min-width="100px"
|
label="波次单号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
v-if="titleAuthor == 2"
|
prop="relationNo"
|
min-width="100px"
|
label="下架单单号"
|
show-overflow-tooltip=""
|
/>
|
|
<el-table-column prop="materialCode" label="物料编号" show-overflow-tooltip="" />
|
<el-table-column prop="materialName" label="物料名称" show-overflow-tooltip="" />
|
<el-table-column prop="lineNumber" label="行号" show-overflow-tooltip="" />
|
<el-table-column
|
prop="orderStatus"
|
min-width="60px"
|
label="状态"
|
show-overflow-tooltip=""
|
>
|
<template #default="scope">
|
{{ scope.row.orderStatusName }}
|
</template>
|
</el-table-column>
|
<el-table-column prop="unit" label="单位" show-overflow-tooltip="" />
|
<el-table-column
|
label="客户编号"
|
prop="custCode"
|
align="center"
|
min-width="110"
|
/>
|
<!-- <el-table-column prop="quantity1" label="已出库数" show-overflow-tooltip="" /> -->
|
<el-table-column prop="quantity" label="订单数" show-overflow-tooltip="" />
|
<el-table-column
|
prop="predetermineQuantity"
|
label="已预配数"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="dispenseQuantity"
|
label="已分配数"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
label="操作"
|
width="200"
|
align="center"
|
fixed="right"
|
show-overflow-tooltip=""
|
>
|
<template #default="scope">
|
<!-- 分配详情-预分配状态=已分配才能修改和取消 -->
|
<el-button
|
icon="ele-Edit"
|
size="small"
|
text=""
|
type="primary"
|
@click="addMaterialDialog(scope.row)"
|
>
|
指定库存分配
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="dialogVisible = false">取消</el-button>
|
<!-- <el-button type="primary" :disabled="warehousOrderDetails.length == 0" @click="confirm">指定分配</el-button> -->
|
</span>
|
</template>
|
</el-dialog>
|
<!-- 指定库存分配 -->
|
<el-dialog v-model="addMaterialVisible" width="70%" @close="closeMaterialDialog">
|
<template #header>
|
<div style="color: #fff">
|
<span v-if="isMaterialBox == 1">指定库存分配</span>
|
<!-- <span v-if="isPoBox == 1">关联ASN单物料</span> -->
|
</div>
|
</template>
|
|
<div class="msi-form" style="padding-top: 0px">
|
<el-form :model="materialFormForDispenseQuantity" label-width="70px">
|
<el-row>
|
<el-col :span="6" v-if="isMaterialBox == 1">
|
<el-form-item label="物料编号">
|
<el-input
|
v-model="materialFormForDispenseQuantity.materialCode"
|
placeholder="请输入物料编号"
|
disabled
|
clearable
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="批次:">
|
<el-input
|
v-model="materialFormForDispenseQuantity.batch"
|
placeholder="请输入批次"
|
clearable
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="跟踪码:">
|
<el-input
|
v-model="materialFormForDispenseQuantity.snCode"
|
placeholder="请输入跟踪码"
|
clearable
|
></el-input>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="6">
|
<el-form-item label-width="20px">
|
<el-button type="primary" icon="el-icon-search" @click="getMaterialList"
|
>查询</el-button
|
>
|
<!-- <el-button icon="el-icon-refresh-right" @click="resetMaterialForm">重置</el-button> -->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
<div class="msi-content" style="padding-top: 0; margin-top: 10px">
|
<el-table
|
:data="materialList"
|
border
|
style="width: 100%"
|
row-key="id"
|
ref="materialRef"
|
@selection-change="materialSelectionChange"
|
v-if="isMaterialBox == 1"
|
>
|
<el-table-column align="center" width="60" type="selection" />
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
<el-table-column label="计划分配数量" align="center" width="200">
|
<template #default="scope">
|
<el-input-number min="0" v-model="scope.row.dispenseQuantity" size="small" />
|
</template>
|
</el-table-column>
|
<el-table-column prop="availableQty" label="可用数量" show-overflow-tooltip="" />
|
<el-table-column prop="quantity" label="库存数量" show-overflow-tooltip="" />
|
<el-table-column
|
prop="snCode"
|
label="跟踪码"
|
min-width="160px"
|
show-overflow-tooltip=""
|
/>
|
<!-- <el-table-column prop="containerId" label="容器Id" show-overflow-tooltip="" /> -->
|
<el-table-column prop="containerCode" label="容器编号" show-overflow-tooltip="" />
|
<el-table-column prop="materialCode" label="物料编号" show-overflow-tooltip="" />
|
<el-table-column prop="materialName" label="物料名称" show-overflow-tooltip="" />
|
|
<el-table-column prop="stockStatus" label="库存状态" show-overflow-tooltip="">
|
<template #default="scope">
|
{{ scope.row.stockStatusName }}
|
<!-- {{ getEnumDesc(scope.row.stockStatus, getEnumStockStatusData_Index)}} -->
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
prop="supplierBatch"
|
label="供应商批次"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column prop="batch" label="批次" show-overflow-tooltip="" />
|
<el-table-column
|
prop="createTime"
|
label="创建时间"
|
width="130"
|
:formatter="formatDate_T_Time"
|
show-overflow-tooltip=""
|
/>
|
<!-- <el-table-column prop="updateTime" label="修改时间" width="130" :formatter="formatDate_T_Time" show-overflow-tooltip="" />
|
<el-table-column prop="createUserName" label="创建人" show-overflow-tooltip="" />
|
<el-table-column prop="updateUserName" label="修改人" show-overflow-tooltip="" /> -->
|
<el-table-column
|
prop="recordInsertTime"
|
label="收货时间"
|
width="80"
|
:formatter="formatDate_T_Date"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="supplierCode"
|
label="供应商编号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="supplierName"
|
label="供应商名称"
|
show-overflow-tooltip=""
|
/>
|
|
<el-table-column prop="sN_1d" label="一维条码" show-overflow-tooltip="" />
|
<el-table-column prop="sN_2d" label="二维条码" show-overflow-tooltip="" />
|
|
<el-table-column prop="erpOrderNo" label="ERP单号" show-overflow-tooltip="" />
|
<el-table-column prop="erpCode" label="ERP库存地" show-overflow-tooltip="" />
|
<el-table-column prop="qCStatus" label="质检状态" show-overflow-tooltip="">
|
<template #default="scope">
|
{{ getEnumDesc(scope.row.qCStatus, getEnumQCStatusData_Index) }}
|
</template>
|
</el-table-column>
|
<el-table-column prop="erpVoucher" label="ERP凭证" show-overflow-tooltip="" />
|
<el-table-column prop="actionRemark" label="操作备注" show-overflow-tooltip="" />
|
<el-table-column
|
prop="actionTime"
|
label="操作时间"
|
width="80"
|
:formatter="formatDate_T_Date"
|
show-overflow-tooltip=""
|
/>
|
</el-table>
|
|
<Pagination
|
:total="materialTotal"
|
v-model:page="materialForm.Page"
|
v-model:limit="materialForm.PageSize"
|
@pagination="getMaterialList"
|
style="margin-top: 20px; text-align: center"
|
></Pagination>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="addMaterialVisible = false">取消</el-button>
|
<el-button
|
type="primary"
|
:disabled="checkedMaterial.length == 0"
|
@click="confirmDispenseMaterial()"
|
>确认</el-button
|
>
|
</span>
|
</template>
|
</el-dialog>
|
<!-- 单详情 -->
|
<el-drawer
|
v-model="drawerVisible"
|
:title="`${detailForm.asnId}订单详情`"
|
direction="rtl"
|
size="80%"
|
@close="handleDrawerClose"
|
>
|
<template #title>
|
<div class="slot_title">
|
<div class="title_orderNo">{{ title }}</div>
|
<div>订单详情</div>
|
</div>
|
</template>
|
|
<div class="detailBoxWrap">
|
<!-- 详情组件 -->
|
<open-details ref="propDetailRef"></open-details>
|
<div class="msi-form">
|
<el-form :model="detailForm">
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="物料编号">
|
<el-input
|
v-model="detailForm.materialCode"
|
clearable
|
placeholder="请输入物料编号"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="2">
|
<el-form-item label-width="20px">
|
<el-button type="primary" icon="el-icon-search" @click="getDetail"
|
>查询</el-button
|
>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
<div class="msi-content">
|
<!-- <p style="margin-bottom: 10px">物料明细</p> -->
|
<el-table :data="drawerList" border striped :max-height="480">
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
|
<!-- <el-table-column prop="qCOrderId" label="质检单ID" show-overflow-tooltip="" /> -->
|
<!-- <el-table-column prop="businessType" label="业务类型" show-overflow-tooltip="" >
|
<template #default="scope">
|
<el-tag>{{ getEnumDesc(scope.row.businessType, getEnumBusinessTypeData_Index)}}</el-tag>
|
</template>
|
</el-table-column> -->
|
|
<el-table-column
|
prop="materialCode"
|
min-width="130px"
|
label="物料编号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="materialName"
|
min-width="110px"
|
label="物料名称"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column prop="qcQuantity" label="实检数量" show-overflow-tooltip="" />
|
<!-- <el-table-column prop="qCStatus" label="质检状态" show-overflow-tooltip="" >
|
<template #default="scope">
|
<el-tag>{{ getEnumDesc(scope.row.qCStatus, getEnumQCStatusData_Index)}}</el-tag>
|
</template>
|
</el-table-column> -->
|
<el-table-column prop="qcStatus" label="质检状态" show-overflow-tooltip="">
|
<template #default="scope">
|
<el-tag>{{
|
getEnumDesc(scope.row.qCStatus, getEnumQCStatusData_Index)
|
}}</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="passQuantity"
|
label="合格数量"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="rejectQuantity"
|
label="不合格数量"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="goodsQuantity"
|
label="已收数量"
|
show-overflow-tooltip=""
|
/>
|
|
<el-table-column
|
prop="businessTypeName"
|
label="业务类型"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column prop="qCOrderStatus" label="单据状态" show-overflow-tooltip="">
|
<template #default="scope">
|
<el-tag>{{
|
getEnumDesc(scope.row.qcOrderStatus, getEnumAsnStatusData_Index)
|
}}</el-tag>
|
</template>
|
</el-table-column>
|
<!-- <el-table-column prop="qcOrderStatusName" label="单据状态" show-overflow-tooltip="" /> -->
|
|
<el-table-column prop="unit" label="单位" show-overflow-tooltip="" />
|
<el-table-column
|
prop="supplierName"
|
label="供应商名称"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="supplierCode"
|
label="供应商编号"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column prop="custCode" label="客户编号" show-overflow-tooltip="" />
|
<el-table-column
|
prop="custChinaName"
|
min-width="110px"
|
label="客户中文名称"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="custEnglishName"
|
min-width="110px"
|
label="客户英文名称"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column prop="relationNo" label="关联单号" show-overflow-tooltip="" />
|
<!-- <el-table-column prop="relationOrderType" label="关联单据类型" show-overflow-tooltip="" /> -->
|
<el-table-column
|
prop="relationOrderTypeName"
|
min-width="110px"
|
label="关联单据类型"
|
show-overflow-tooltip=""
|
/>
|
<!-- <el-table-column prop="factoryId" label="工厂ID" show-overflow-tooltip="" /> -->
|
<!-- <el-table-column prop="factoryName" label="工厂名称" show-overflow-tooltip="" /> -->
|
<!-- <el-table-column prop="factoryCode" label="工厂编号" show-overflow-tooltip="" /> -->
|
<el-table-column prop="remarks" label="备注" show-overflow-tooltip="" />
|
<el-table-column
|
prop="createTime"
|
label="创建时间"
|
width="130"
|
:formatter="formatDate_T_Time"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="updateTime"
|
label="修改时间"
|
width="130"
|
:formatter="formatDate_T_Time"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="createUserName"
|
label="创建人"
|
show-overflow-tooltip=""
|
/>
|
<el-table-column
|
prop="updateUserName"
|
label="修改人"
|
show-overflow-tooltip=""
|
/>
|
</el-table>
|
<Pagination
|
:total="detailCount"
|
v-model:page="detailForm.PageNo"
|
v-model:limit="detailForm.PageSize"
|
@pagination="getDetail"
|
style="margin-top: 20px; text-align: center"
|
></Pagination>
|
|
<div></div>
|
</div>
|
</div>
|
</el-drawer>
|
|
<el-dialog v-model="outVisible2" title="SPA获取" width="20%" @close="closeOutDialog2">
|
<el-form :model="outerForm2" label-width="120px">
|
<el-row style="font-size: 16px">
|
<el-col :span="23">
|
<el-form-item label="单号:" required>
|
<el-input
|
v-model="outerForm2.purchaseNo"
|
clearable
|
placeholder="请输入单号"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="outVisible2 = false">取消</el-button>
|
<el-button type="primary" @click="getSapOrderPO">确认</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</template>
|
<script lang="ts" setup>
|
import Pagination from "/@/components/Pagination/index.vue";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
import {
|
ref,
|
nextTick,
|
computed,
|
getCurrentInstance,
|
watch,
|
defineExpose,
|
defineProps,
|
onMounted,
|
} from "vue";
|
|
import { formatDecimalData } from "/@/utils/formate";
|
|
import cache from "/@/utils/cache";
|
import { pageWmsMaterial } from "/@/api/main/WmsBase/wmsMaterial";
|
import { getTypeStatus } from "/@/utils/formate";
|
|
import {
|
formatDate,
|
formatDate_T_Date,
|
formatDate_T_Time,
|
defaultTimeRange,
|
} from "/@/utils/formatTime";
|
|
import { getAPI } from "/@/utils/axios-utils";
|
import { SysEnumApi } from "/@/api-services/api";
|
import {
|
addWmsOrderPurchase,
|
updateWmsOrderPurchase,
|
detailWmsOrderPurchase,
|
} from "/@/api/main/WmsOrder/wmsOrderPurchase";
|
import OpenDetails from "/@/components/openDetails/openDetails.vue";
|
import { pageBaseCustomer } from "/@/api/main/WmsBase/baseCustomer";
|
import { pageWmsOrderPurchaseDetails } from "/@/api/main/WmsOrder/wmsOrderPurchaseDetails";
|
import {
|
pageWmsOrderAsnDetails,
|
deleteWmsOrderAsnDetails,
|
} from "/@/api/main/WmsOrder/wmsOrderAsnDetails";
|
import commonFunction from "/@/utils/commonFunction";
|
|
import {
|
pageWmsOrderSortDetails,
|
deleteWmsOrderSortDetails,
|
importExcelWmsOrderSortDetails,
|
downloadExcelTemplateWmsOrderSortDetails,
|
} from "/@/api/main/WmsOrderDo/wmsOrderSortDetails";
|
|
import { pageWmsQcDetails } from "/@/api/main/WmsQC/wmsOrderQcDetails";
|
import {
|
pageWmsOrderMovementDetailsForDispense,
|
pageFpWmsOrderMovementDetails,
|
pageWmsOrderMovementDetails,
|
} from "/@/api/main/WmsOrder/wmsOrderMovementDetails";
|
import { addWmsOrderSort, pageWmsOrderSort } from "/@/api/main/WmsOrderDo/wmsOrderSort";
|
import { addWmsOrderSortYpDetails } from "/@/api/main/WmsOrderDo/wmsOrderSortDetails";
|
import {
|
deleteWmsOrderFp,
|
updateWmsOrderFp,
|
} from "/@/api/main/WmsOrder/wmsOrderMovement";
|
import { pageStockQuanForUse } from "/@/api/main/ReportCenter/wmsStockQuan_new";
|
import { pageWmsPlace } from "/@/api/main/WmsBase/wmsPlace";
|
import { handleSlectDataWmsArea } from "/@/utils/selectData";
|
const { proxy }: any = getCurrentInstance(); // 访问实例上下文 proxy同时支持开发 线上环境
|
const getEnumOrderTypeData = ref<any>([]);
|
const getEnumBusinessTypeData = ref<any>([]);
|
const getEnumPoStatusData = ref<any>([]);
|
const { getEnumDesc } = commonFunction();
|
const emits = defineEmits(["getTabelData"]);
|
const getEnumAsnStatusData_Index = ref<any>([]);
|
const getEnumOrderTypeData_Index = ref<any>([]);
|
const getEnumQCStatusData_Index = ref<any>([]);
|
|
const getEnumDockData = ref<any>([]);
|
const props = defineProps({
|
titleAuthor: {
|
type: Number,
|
required: true,
|
},
|
hexiao: {
|
type: Number,
|
default: 1,
|
required: true,
|
},
|
});
|
//控制订单类型 - 下拉菜单
|
const titleAuthor = computed(() => props.titleAuthor);
|
// 是否显示核销按钮
|
const hexiao = computed(() => props.hexiao);
|
const loading = ref(false);
|
|
// 登录用户id
|
// const LoginUserID = computed(() => store.state.login.userInfo.id || localCache.getCache("LoginUserID"))
|
|
// const EnumWriteOffState = computed(
|
// () => store.state.login.enums.enumWriteOffState
|
// );
|
|
let itemBtnArr = ["批量删除", "编辑", "新增"];
|
const boolEnum = ref([
|
{
|
title: "是",
|
value: true,
|
},
|
{
|
title: "否",
|
value: false,
|
},
|
]);
|
|
// form表单展开
|
|
const orderType = ref("");
|
const orderDoRuType = ref(); // 用于导入的变量
|
const itemBtn = ref(1);
|
// 控制bom物料权限
|
const isShowBomBtn = ref(0);
|
|
// 禁止之前的日期
|
const disabledDate = (time: Date) => {
|
return time.getTime() + 3600 * 1000 * 24 < Date.now();
|
};
|
// 上传窗口
|
const uploadVisible = ref(false);
|
//打开导入窗口
|
const openUploadDialog = (param: any) => {
|
orderDoRuType.value = param;
|
uploadVisible.value = true;
|
};
|
//关闭窗口
|
const closeUploadDialog = () => {
|
getTabelData();
|
};
|
//sap获取
|
const getSapOrder = () => {
|
ElMessageBox.confirm("是否确认获取更新?", "提示", {
|
confirmButtonText: "确认",
|
cancelButtonText: "取消",
|
type: "warning",
|
}).then(() => {
|
// getSapRkPurchase().then((res) => {
|
// if (res.code == 200) {
|
// ElMessage.success("已开始重新获取,请稍后查看结果!");
|
// } else {
|
// ElMessage.error(
|
// `sap获取失败${res.code}:${JSON.stringify(res.message)}`
|
// );
|
// }
|
// })
|
});
|
};
|
|
//------------sap获取PO单
|
const outVisible2 = ref(false);
|
const outerForm2 = ref({
|
purchaseNo: "",
|
});
|
const getSapOrderPO = (param?: number) => {
|
if (param && param == 1) {
|
outVisible2.value = true;
|
return;
|
}
|
if (outerForm2.value.purchaseNo == "") {
|
ElMessage.warning("请输入单号");
|
return;
|
}
|
// getSapPurchasePO({
|
// purchaseNo: outerForm2.value.purchaseNo
|
// })
|
// .then((res) => {
|
// if (res.code == 200) {
|
// ElMessage.success("SAP获取成功");
|
// outVisible2.value = false;
|
// } else {
|
// ElMessage.error(
|
// `sap获取失败${res.code}:${JSON.stringify(res.message)}`
|
// );
|
// }
|
// })
|
// .catch((err) => ElMessage.error(err));
|
};
|
//关闭出库窗口的回调
|
const closeOutDialog2 = () => {
|
outerForm2.value.purchaseNo = "";
|
};
|
|
//------------sap获取PO单
|
|
// --------------------PO单列表-----------------------------------
|
//查询
|
const formModel = ref({
|
WareMaterialCode: "",
|
WareMaterialName: "",
|
PurchaseNo: "",
|
CreatedUserName: "",
|
CreatedTimeBegin: "",
|
CreatedTimeEnd: "",
|
CreateDate: [],
|
IssueTimeBegin: "",
|
IssueTimeEnd: "",
|
IssueDate: [],
|
MaterialTypeStaus: "",
|
SourceBy: "",
|
WriteOffState: "",
|
signStatus: "",
|
status: "",
|
freeOrderType: "",
|
IsQueryAll: false, //是否显示全部数据
|
// LoginUserID: LoginUserID, //用户id
|
OrderMenuType: "", //判断是哪个菜单入库
|
Page: 1,
|
PageSize: 10,
|
poApprovalStatus: "",
|
keyCode: "",
|
IsDisable: "", //是否作废
|
});
|
|
//入库单列表数据
|
let tableData = ref([]);
|
|
//列表的数据条数
|
const totalItems = ref<number>(0);
|
|
//缓存枚举
|
const enumList: any = cache.getCache("enumList");
|
console.log(enumList.inEnumOrderType);
|
|
// .inEnumOrderType
|
|
//获取PO单列表
|
const getTabelData = () => {
|
//判断创建时间是否有选择
|
if (formModel.value.CreateDate && formModel.value.CreateDate.length > 0) {
|
formModel.value.CreatedTimeBegin = formModel.value.CreateDate[0];
|
formModel.value.CreatedTimeEnd = ""; //addDate(formModel.value.CreateDate[1], 1); //日期查询 结束时间 需要加一天
|
} else {
|
// 日历清空 再查询bug
|
if (formModel.value.CreatedTimeBegin || formModel.value.CreatedTimeEnd) {
|
formModel.value.CreatedTimeBegin = "";
|
formModel.value.CreatedTimeEnd = "";
|
}
|
}
|
//判断下发时间是否有选择
|
if (formModel.value.IssueDate && formModel.value.IssueDate.length > 0) {
|
formModel.value.IssueTimeBegin = formModel.value.IssueDate[0];
|
formModel.value.IssueTimeEnd = formModel.value.IssueDate[1];
|
} else {
|
// 日历清空 再查询bug
|
if (formModel.value.IssueTimeBegin || formModel.value.IssueTimeEnd) {
|
formModel.value.IssueTimeBegin = "";
|
formModel.value.IssueTimeEnd = "";
|
}
|
}
|
};
|
getTabelData();
|
|
//重置搜索
|
const resetForm = () => {
|
formModel.value = {
|
WareMaterialCode: "",
|
WareMaterialName: "",
|
PurchaseNo: "",
|
CreatedUserName: "",
|
CreatedTimeBegin: "",
|
CreatedTimeEnd: "",
|
CreateDate: [],
|
IssueTimeBegin: "",
|
IssueTimeEnd: "",
|
IssueDate: [],
|
MaterialTypeStaus: "",
|
SourceBy: "",
|
WriteOffState: "",
|
signStatus: "",
|
status: "",
|
freeOrderType: "",
|
IsQueryAll: false, //是否显示全部数据
|
// LoginUserID: LoginUserID, //用户id
|
OrderMenuType: "", //判断是哪个菜单入库
|
Page: 1,
|
PageSize: 10,
|
poApprovalStatus: "",
|
keyCode: "",
|
IsDisable: "", //是否作废
|
};
|
getTabelData();
|
};
|
// -----------------删除、导出操作--------------------------
|
//选中的行
|
const checkRows = ref<{ id: number }[]>([]);
|
// 选择
|
const handleSelectionChange = (val: any) => {
|
checkRows.value = val;
|
};
|
//导出PO单详情
|
const handExport = () => {
|
// rkExport(formModel.value)
|
// .then((res) => {
|
// const link = document.createElement("a"); //创建a标签
|
// let blob = new Blob([res], { type: "application/vnd.ms-excel" }); // response就是接口返回的文件流
|
// let objectUrl = URL.createObjectURL(blob);
|
// link.href = objectUrl;
|
// link.download = `入库管理导出${formatUtcToData(
|
// new Date().toString(),
|
// "YYYY-MM-DD hh:mm:ss"
|
// )}`; // 自定义文件名
|
// link.click(); // 下载文件
|
// URL.revokeObjectURL(objectUrl); // 释放内存
|
// }).catch((err) => ElMessage.error(JSON.stringify(err)));
|
//导出调用接口
|
// let entozh = entozhExcell
|
// const { PageNo, PageSize, ...rest } = formModel.value
|
// getPurchasePage({ Page: 1, PageSize: 1000000, ...rest }).then(res => {
|
// if(res.code==200){
|
// res.data.rows.forEach((item)=>{
|
// item.writeOffState = EnumWriteOffState.value.filter((v: any) => v.value == item.writeOffState)[0].title;
|
// item.sourceBy = sourceEnum.value.filter((v: any) => v.value == item.sourceBy)[0].title;
|
// })
|
// exportExcel(res.data.rows, entozh, "xlsx", `入库管理表${formatUtcToData(new Date().toString(), 'YYYY-MM-DD hh:mm:ss')}`);
|
// }
|
// })
|
// 后端导出-字段不全
|
// if (checkRows.value.length <= 0) {
|
// ElMessage.warning("请选择一个订单!");
|
// return
|
// }
|
// const arr = checkRows.value.reduce((curr, item) => {
|
// curr.push(item.purchaseNo);
|
// return curr;
|
// }, []);
|
// puchaseExport({ PurchaseNo: arr })
|
// .then((res) => {
|
// const link = document.createElement("a"); //创建a标签
|
// let blob = new Blob([res], { type: "application/vnd.ms-excel" }); // response就是接口返回的文件流
|
// let objectUrl = URL.createObjectURL(blob);
|
// link.href = objectUrl;
|
// link.download = `入库管理导出${formatUtcToData(
|
// new Date().toString(),
|
// "YYYY-MM-DD hh:mm:ss"
|
// )}`; // 自定义文件名
|
// link.click(); // 下载文件
|
// URL.revokeObjectURL(objectUrl); // 释放内存
|
// })
|
// .catch((err) => ElMessage.error(JSON.stringify(err)));
|
};
|
|
// -------------------获取PO单下物料详情-----------------------------------
|
//入库单下物料详情请求
|
const detailForm = ref({
|
materialCode: "",
|
Page: 1,
|
PageSize: 10,
|
});
|
|
// 物料详情抽屉
|
const drawerVisible = ref(false);
|
const drawerType = ref("drawerAll");
|
// const
|
//单号
|
const purchaseNo = ref("");
|
const detailCount2 = ref(0);
|
const detailForm2 = ref({
|
Page: 1,
|
PageSize: 10,
|
qcOrderId: "",
|
});
|
const getEnumPoDetailStatusData_Index = ref<any>([]);
|
|
const drawerList2 = ref<DetailType[]>([]);
|
//------------------获取物料列表物料明细
|
const getDetail = async () => {
|
loading.value = true;
|
var res = await pageWmsOrderMovementDetails(Object.assign(detailForm.value));
|
var listD = res.data.result?.items ?? [];
|
drawerList.value = listD;
|
detailCount.value = res.data.result?.total;
|
loading.value = false;
|
getEnumPoDetailStatusData_Index.value =
|
(await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderStatusEnum")).data.result ??
|
[];
|
|
getEnumAsnStatusData_Index.value =
|
(await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderStatusEnum")).data.result ??
|
[];
|
};
|
|
//----------------物料明细
|
//打开抽屉
|
const openDrawer = async (type: number, scope: any = {}, entozhExcell?: any) => {
|
detailForm.value.PageNo = 1;
|
detailForm.value.PageSize = 10;
|
if (scope.asnNo) {
|
title.value = `${scope.asnNo}`;
|
}
|
drawerType.value = "drawerAll";
|
drawerVisible.value = true;
|
//当前入库单号id
|
detailForm.value.asnId = scope.id;
|
//入库单
|
purchaseNo.value = scope.purchaseNo;
|
detailForm2.value.asnId = scope.id;
|
//获取物料列表
|
if (detailForm2.value.asnId == "") {
|
drawerList2.value = [];
|
detailCount2.value = 0;
|
return;
|
}
|
// 获取物料列表物料明细
|
getDetail();
|
|
getEnumPoDetailStatusData_Index.value =
|
(await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("OrderStatusEnum")).data.result ??
|
[];
|
const getEnumBusinessTypeData_Index = ref<any>([]);
|
getEnumBusinessTypeData_Index.value =
|
(await getAPI(SysEnumApi).apiSysEnumEnumDataListGet("BusinessTypeEnum")).data
|
.result ?? [];
|
// getEnumOrderTypeData_Index.value = (await getAPI(SysEnumApi).apiSysEnumEnumDataListGet('OrderTypeEnum')).data.result ?? [];
|
|
// 根据状态转中文 保留3位小数
|
let scopetrans = JSON.parse(JSON.stringify(scope));
|
// scopetrans.totalquantity = Number(scopetrans.totalquantity).toFixed(3);
|
// scopetrans.quantity = Number(scopetrans.quantity).toFixed(3);
|
// scopetrans.goodsquantity = Number(scopetrans.goodsquantity).toFixed(3);
|
// scopetrans.surplusquantity = Number(scopetrans.surplusquantity).toFixed(3);
|
scopetrans.qcOrderStatus = getEnumDesc(
|
scopetrans.qcOrderStatus,
|
getEnumPoDetailStatusData_Index.value
|
);
|
scopetrans.businessType = getEnumDesc(
|
scopetrans.businessType,
|
getEnumBusinessTypeData_Index.value
|
);
|
nextTick(() => {
|
proxy.$refs["propDetailRef"].openADialog(scopetrans, entozhExcell);
|
});
|
};
|
|
//关闭抽屉
|
const handleDrawerClose = () => {
|
detailForm.value = {
|
materialCode: "",
|
asnId: "",
|
Page: 1,
|
PageSize: 10,
|
};
|
deltailList.value = [];
|
detailCount.value = 0;
|
drawerList.value = [];
|
drawerList2.value = [];
|
detailCount2.value = 0;
|
drawerList2.value = [];
|
};
|
|
//物料详情类型
|
interface DetailType {
|
id: number;
|
barCode: string;
|
wareMaterialCode: string;
|
name: string;
|
signStatus: string;
|
category: string;
|
materialTypeName: string;
|
specificationModel: string;
|
long: number;
|
width: number;
|
high: number;
|
weight: number;
|
unit: string;
|
createdTime: string;
|
purchaseNo: string;
|
quantity: number;
|
goodsquantity: number;
|
surplusquantity: number;
|
poLineNumber: string;
|
}
|
|
//入库单详情列表
|
const deltailList = ref<DetailType[]>([]);
|
//弹出层数据
|
const drawerList = ref<DetailType[]>([]);
|
|
//入库单详情列表数据条数
|
const detailCount = ref(0);
|
|
//弹出层标题
|
let title = ref("");
|
|
// ----------------新增、编辑-------------------------------
|
//窗口类型
|
const dialogType = ref("add");
|
|
const dialogVisible = ref(false);
|
|
//添加编辑表单ref
|
const dialogRef = ref();
|
|
//添加/编辑参数
|
let addForm = ref({
|
hasTMCode: false,
|
asnType: "",
|
dock: "",
|
projectNo: "",
|
OrderDetails: [] as any[],
|
});
|
|
// 特殊字符的验证
|
// 包含特殊字符返回true,不包含特殊字符返回false
|
const checkEspcial = (rule: any, value: any, callback: any) => {
|
if (!value) {
|
callback();
|
} else {
|
const reg = /[@$%*^:;:;~+=!!#^{}><.,,。]/g;
|
if (!reg.test(value.trim())) {
|
callback();
|
} else {
|
return callback(new Error("不能存在特殊符号"));
|
}
|
}
|
};
|
|
// 验证角色编号
|
var validatorCode = (rule: any, value: any, callback: any) => {
|
if (!value) {
|
callback();
|
} else {
|
const reg = /[\u4E00-\u9FA5]/g;
|
if (!reg.test(value)) {
|
callback();
|
} else {
|
return callback(new Error("单号不能存在汉字"));
|
}
|
}
|
};
|
|
//rules
|
const formRules = {
|
// businessType: [{ required: true, message: '请选择订单类型!', trigger: 'change' }],
|
orderTypeName: [{ required: true, message: "请输入订单类型名称!", trigger: "blur" }],
|
businessType: [{ required: true, message: "请选择业务类型!", trigger: "change" }],
|
businessTypeName: [
|
{ required: true, message: "请输入业务类型名称!", trigger: "blur" },
|
],
|
orderSocure: [{ required: true, message: "请输入单据来源!", trigger: "blur" }],
|
poStatus: [{ required: true, message: "请选择单据状态!", trigger: "change" }],
|
poStatusName: [{ required: true, message: "请输入单据状态名称!", trigger: "blur" }],
|
supplierCode: [{ required: true, message: "请输入供应商编号!", trigger: "blur" }],
|
supplierName: [{ required: true, message: "请输入供应商名称!", trigger: "blur" }],
|
factoryId: [{ required: true, message: "请输入工厂ID!", trigger: "blur" }],
|
};
|
var orderNo = ref("");
|
//打开
|
const openDialog = async (type?: number, scope?: any = {}) => {
|
//debugger
|
materialForm.value.ordersId = scope.ordersId;
|
materialForm.value.movementNo = scope.orderNo;
|
orderNo.value = scope.orderNo || scope.sortNo;
|
|
//update by liuwq 2024-07-04 这段代码会导致 操作完修改分配后 报错 单号传入失败!
|
// if (!orderNo.value) {
|
// ElMessage.warning('单号传入失败!');
|
// return
|
// }
|
|
isMaterialBox.value = 1;
|
titleAuthor.value == 1;
|
if (titleAuthor.value == 1) {
|
//下架单入口
|
materialForm.orderStatus = 0; //新建
|
getOrderMaterialList1();
|
}
|
if (titleAuthor.value == 2) {
|
//波次入口
|
|
materialForm.sortDetailStatus = 0; //新建
|
getOrderMaterialList1();
|
}
|
|
dialogVisible.value = true;
|
//清除选中项
|
// nextTick(() => {
|
// dialogRef.value.clearValidate();
|
// });
|
};
|
|
const getOrderMaterialList1 = async () => {
|
materialForm.value.page = 1;
|
materialForm.value.pageSize = 10000;
|
//materialForm.value.pageFlag = 5 ; // 只查询 已分配 【Editby shaocx,2024-07-11】
|
//materialForm.value.pageFlag = 4 ; // 只查询 要分配 【Editby shaocx,2024-07-11】
|
warehousOrderDetails.value = [];
|
if (titleAuthor.value == 1) {
|
//下架单入口-分配-下架单明细
|
loading.value = true;
|
//debugger
|
// var res = await pageWmsOrderMovementDetails(Object.assign(materialForm.value));
|
var res = await pageWmsOrderMovementDetailsForDispense(
|
Object.assign(materialForm.value)
|
); //查视图
|
|
var listD = res.data.result?.items ?? [];
|
listD.forEach((item: any,index:Number) => {
|
item.id = index
|
item.sendQuantity = Number(item.quantity - item.dispenseQuantity).toFixed(3); //订单数-已分配
|
});
|
warehousOrderDetails.value = listD;
|
loading.value = false;
|
}
|
if (titleAuthor.value == 2) {
|
//波次入口 - 明细
|
loading.value = true;
|
|
var res = await pageWmsOrderSortDetails(Object.assign(materialForm.value));
|
var listD = res.data.result?.items ?? [];
|
listD.forEach((item: any) => {
|
item.sendQuantity = Number(item.quantity - item.dispenseQuantity).toFixed(3); //订单数-已分配
|
});
|
warehousOrderDetails.value = listD;
|
loading.value = false;
|
}
|
};
|
|
//物料详情的table ref
|
const tableRef = ref();
|
const setRowKey = (row: any) => {
|
return row.id;
|
};
|
const setRowKey_child = (row: any) => {
|
return row.id;
|
};
|
//关闭窗口
|
const closeDialog = () => {
|
// addForm.value = {
|
// hasTMCode: false,
|
// asnType: '',
|
// dock: '',
|
// projectNo: '',
|
// OrderDetails: [] as any[],
|
// };
|
materialForm.value = {
|
materialCode: "",
|
batch: "",
|
snCode: "",
|
areaCode: "",
|
placeCode: "",
|
containerCode: "",
|
};
|
orderNo.value = "";
|
warehousOrderDetails.value = [];
|
checkedDetails.value = [];
|
deltailList.value = [];
|
detailCount.value = 0;
|
tableRef.value.clearSelection();
|
};
|
|
//添加编辑窗口物料列表
|
const warehousOrderDetails = ref<any[]>([]);
|
|
//物料详情列表选中的物料
|
const checkedDetails = ref<any[]>([]);
|
|
//物料详情列表中勾选事件
|
const detailsCheckChange = (val: any) => {
|
checkedDetails.value = val;
|
};
|
|
//删除选中的物料详情
|
const delCheckedDetails = () => {
|
ElMessageBox.confirm("是否确认删除?", "提示", {
|
confirmButtonText: "确认",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
let arr = [];
|
if (checkedDetails.value[0].diRelationID) {
|
checkedDetails.value.forEach((item) => {
|
console.log(item);
|
let index = warehousOrderDetails.value.findIndex(
|
(detail) =>
|
detail.materialCode == item.materialCode &&
|
detail.diRelationID == item.diRelationID
|
);
|
if (index > -1) {
|
warehousOrderDetails.value.splice(index, 1);
|
}
|
});
|
} else {
|
checkedDetails.value.forEach((item) => {
|
let index = warehousOrderDetails.value.findIndex(
|
(detail) =>
|
detail.materialCode == item.materialCode &&
|
detail.asnLineNumber == item.asnLineNumber
|
);
|
warehousOrderDetails.value.splice(index, 1);
|
});
|
}
|
arr = warehousOrderDetails.value;
|
warehousOrderDetails.value = [];
|
//bug 相同物料 不同Bom
|
nextTick(() => {
|
warehousOrderDetails.value = arr;
|
checkedDetails.value = [];
|
tableRef.value.clearSelection();
|
});
|
})
|
.catch(() => ElMessage.info("已取消删除"));
|
};
|
//编辑、添加提交
|
const confirm = async () => {
|
console.log("确认");
|
|
if (titleAuthor.value == 1) {
|
//下架单入口
|
let res = await addWmsOrderSortYpDetails(warehousOrderDetails.value);
|
if (res.data && res.data.code == 200) {
|
ElMessage.success("下架单预配成功!");
|
dialogVisible.value = false;
|
emits("getTabelData");
|
}
|
}
|
if (titleAuthor.value == 2) {
|
//波次入口
|
let res = await addWmsOrderSortYpDetails(warehousOrderDetails.value);
|
if (res.data && res.data.code == 200) {
|
ElMessage.success("波次预配成功!");
|
dialogVisible.value = false;
|
emits("getTabelData");
|
}
|
}
|
};
|
|
// -----------------添加物料操作-------------------------
|
//物料基础数据窗口
|
const addMaterialVisible = ref(false);
|
|
//物料基础数据列表
|
const materialList = ref([]);
|
|
//物料基础数据条数
|
const materialTotal = ref(0);
|
|
//物料基础数据form
|
const materialForm = ref({
|
materialCode: "",
|
batch: "",
|
snCode: "",
|
areaCode: "",
|
placeCode: "",
|
containerCode: "",
|
});
|
//物料基础数据form
|
const materialFormForDispenseQuantity = ref({
|
materialCode: "",
|
batch: "",
|
snCode: "",
|
areaCode: "",
|
placeCode: "",
|
containerCode: "",
|
});
|
|
//获取可用库存列表-精确到跟踪码
|
const getMaterialList = async (param: any) => {
|
loading.value = true;
|
var res = await pageStockQuanForUse(
|
Object.assign(materialFormForDispenseQuantity.value)
|
);
|
materialList.value = res.data.result?.items ?? [];
|
materialTotal.value = res.data.result?.total;
|
loading.value = false;
|
};
|
|
//重置物料
|
const resetMaterialForm = () => {
|
materialForm.value = {
|
materialCode: "",
|
batch: "",
|
snCode: "",
|
orderNo: "",
|
Page: 1,
|
PageSize: 10,
|
};
|
getMaterialList();
|
};
|
|
//选中的基础物料数据
|
const checkedMaterial = ref<any[]>([]);
|
|
//物料基础数据勾选
|
const materialSelectionChange = (val: any) => {
|
checkedMaterial.value = val;
|
};
|
const isMaterialBox: any = ref(true);
|
const isPoBox: any = ref(true);
|
const chooseItem = ref({});
|
//打开 指定库存分配 窗口
|
const addMaterialDialog = (param?: any) => {
|
//debugger
|
isPoBox.value = 0;
|
isMaterialBox.value = 1;
|
chooseItem.value = param;
|
|
if (chooseItem.value.dispenseQuantity == chooseItem.value.quantity) {
|
//debugger
|
ElMessage.warning("已经全部分配,如需指定库存分配,需要先取消分配");
|
return;
|
}
|
|
materialFormForDispenseQuantity.value.materialCode = param.materialCode;
|
|
getMaterialList(param);
|
addMaterialVisible.value = true;
|
};
|
|
//基础物料table的ref对象
|
const materialRef = ref();
|
|
//确认 指定库存分配
|
const confirmDispenseMaterial = () => {
|
if (checkedMaterial.value.length <= 0) {
|
ElMessage.warning("请选择物料!");
|
return;
|
}
|
var isRight = true;
|
|
var isQtyNull = false;
|
checkedMaterial.value.forEach((item) => {
|
if(!item.dispenseQuantity){
|
isQtyNull= true
|
return;
|
}
|
if (item.dispenseQuantity > item.availableQty) {
|
ElMessage.warning(
|
"物料'" +
|
item.materialCode +
|
"',跟踪码'" +
|
item.snCode +
|
"',计划分配数量" +
|
item.dispenseQuantity +
|
"不能大于可用数量" +
|
item.availableQty
|
);
|
isRight = false;
|
return;
|
}
|
});
|
|
if (isQtyNull == true) {
|
ElMessage.warning("请输入计划分配数量!");
|
return;
|
}
|
|
if (isRight == false) {
|
return;
|
}
|
|
ElMessageBox.confirm(`确定要指定库存分配吗?`, "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
}).then(async () => {
|
//debugger
|
const handleArr: number[] = [];
|
checkedMaterial.value.forEach((item) => {
|
handleArr.push(item.snCode);
|
});
|
chooseItem.value.flag = 2; //表示指定库存分配
|
chooseItem.value.dispenseDetailsForHand = checkedMaterial;
|
loadingWmsOrderMovement.value = true;
|
var postParam = new Array();
|
postParam.push(chooseItem.value);
|
var ret = await updateWmsOrderFp(postParam);
|
if (ret.data.type == "success") {
|
ElMessage.success("指定库存分配成功");
|
addMaterialVisible.value = false;
|
//重新查询数据
|
getOrderMaterialList1();
|
}
|
});
|
};
|
|
//关闭新增物料窗口
|
const closeMaterialDialog = () => {
|
materialFormForDispenseQuantity.value = {
|
materialCode: "",
|
Page: 1,
|
PageSize: 10,
|
};
|
materialList.value = [];
|
checkedMaterial.value = [];
|
materialRef.value.clearSelection();
|
};
|
|
// 页面加载时
|
onMounted(async () => {});
|
|
//================
|
const arrTdp = ref<any[]>([]);
|
const queryParamsW = ref<any>({});
|
const tableParamsW = ref({
|
page: 1,
|
pageSize: 200,
|
total: 0,
|
custType: "供应商",
|
});
|
|
//-----------------远程搜索----------------
|
const handleQueryTdp = async () => {
|
var res = await pageBaseCustomer(Object.assign(queryParamsW.value, tableParamsW.value));
|
arrTdp.value = res.data.result?.items ?? [];
|
};
|
const changeXmbh = async (query?: any) => {
|
loading.value = true;
|
var res = await pageBaseCustomer({
|
page: 1,
|
pageSize: 200,
|
custCode: query,
|
custType: "供应商",
|
});
|
loading.value = false;
|
arrTdp.value = res.data.result?.items ?? [];
|
};
|
// 远程搜索 输入关键字以从远程服务器中查找数据。
|
const remoteMethod = async (query: string) => {
|
loading.value = true;
|
var res = await pageBaseCustomer({
|
page: 1,
|
pageSize: 200,
|
custCode: query,
|
custType: "供应商",
|
});
|
loading.value = false;
|
arrTdp.value = res.data.result?.items ?? [];
|
};
|
//-----------------远程搜索----------------
|
// const getChildList = async (item?: any, expandedRows: any[]) => {
|
// // if (expandedRows.length <= 0) {
|
// // console.log("是折叠,不加载数据");
|
// // return;
|
// // }
|
// //console.log('查询子集啦');
|
// var res = await pageFpWmsOrderMovementDetails(
|
// Object.assign({
|
// MovementNo: item.movementNo,
|
// MovementLineNumber: item.lineNumber,
|
// PDRecordStatus: 2, // 只查询 状态是“已分配”的数据 【Editby shaocx,2024-07-11】
|
// })
|
// );
|
// item.children = res.data.result || [];
|
// nextTick(() => {
|
// tableRef.value!.toggleRowExpansion(item, true);// 展开子集
|
// });
|
// };
|
|
const getChildList = async (item?: any, expandedRows: any[]) => {
|
console.log("3级下拉")
|
if (item.children) {
|
return
|
}
|
debugger
|
var res = await pageFpWmsOrderMovementDetails(
|
Object.assign({
|
MovementNo: item.movementNo,
|
MovementLineNumber: item.lineNumber,
|
PDRecordStatus: 2, // 只查询 状态是“已分配”的数据 【Editby shaocx,2024-07-11】
|
})
|
);
|
item.children = res.data.result || [];
|
nextTick(() => {
|
tableRef.value!.toggleRowExpansion(item, true);// 展开子集
|
});
|
};
|
|
const loadingWmsOrderMovement = ref(false);
|
|
// 分配详情-取消分配
|
const delWmsOrderXq = (row: any) => {
|
//debugger
|
ElMessageBox.confirm(`确定要取消分配吗?`, "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
}).then(async () => {
|
var { sendQuantity, ...rest } = row;
|
loadingWmsOrderMovement.value = true;
|
// var arrSendData = [
|
// {
|
|
// Id:row.id
|
// }
|
// ]
|
|
var arrSendData = {
|
MovementNo: row.movementNo,
|
Id: row.id,
|
};
|
var ret = await deleteWmsOrderFp(arrSendData);
|
if (ret.data.type == "success") {
|
ElMessage.success("取消分配成功");
|
loadingWmsOrderMovement.value = false;
|
//重新加载数据
|
getOrderMaterialList1();
|
}
|
});
|
};
|
|
//-----------------远程搜索 库区编号----------------
|
const arrTdpArea = ref<any[]>([]);
|
const queryParamsWArea = ref<any>({});
|
const tableParamsWArea = ref({
|
page: 1,
|
pageSize: 200,
|
total: 0,
|
areaCode: "",
|
});
|
|
const handleQueryTdpArea = async () => {
|
var res = await handleSlectDataWmsArea(
|
Object.assign(queryParamsWArea.value, tableParamsWArea.value)
|
);
|
arrTdpArea.value = res ?? [];
|
};
|
const changeXmbhArea = async (query?: any) => {
|
loading.value = true;
|
var res = await handleSlectDataWmsArea({
|
page: 1,
|
pageSize: 200,
|
areaCode: query,
|
});
|
loading.value = false;
|
arrTdpArea.value = res ?? [];
|
};
|
// 远程搜索 输入关键字以从远程服务器中查找数据。
|
const remoteMethodArea = async (query: string) => {
|
loading.value = true;
|
var res = await handleSlectDataWmsArea({
|
page: 1,
|
pageSize: 200,
|
areaCode: query,
|
});
|
loading.value = false;
|
arrTdpArea.value = res ?? [];
|
};
|
//-----------------远程搜索----------------
|
|
//-----------------远程搜索 库位编号----------------
|
const arrTdpPlace = ref<any[]>([]);
|
const queryParamsWPlace = ref<any>({});
|
const tableParamsWPlace = ref({
|
page: 1,
|
pageSize: 200,
|
total: 0,
|
PlaceCode: "",
|
});
|
|
const handleQueryTdpPlace = async () => {
|
var res = await pageWmsPlace(
|
Object.assign(queryParamsWPlace.value, tableParamsWPlace.value)
|
);
|
arrTdpPlace.value = res.data.result?.items ?? [];
|
};
|
//-----------------远程搜索----------------
|
|
// 暴露方法
|
defineExpose({ openDialog, openDrawer });
|
</script>
|
<style lang="less" scoped>
|
.detailBoxWrap {
|
margin: 10px;
|
}
|
|
.msi-form {
|
margin-top: 10px;
|
}
|
|
.msi-form {
|
margin-bottom: 10px;
|
}
|
|
.slot_title {
|
display: flex;
|
align-items: center;
|
|
// margin-left: 20px;
|
.title_orderNo {
|
font-size: 18px;
|
color: #f18201;
|
font-weight: bold;
|
margin-right: 5px;
|
}
|
}
|
</style>
|