feat(wms): 添加左侧逻辑库位查询功能并优化钢卷管理界面
在钢卷管理相关页面添加左侧逻辑库位树形查询功能,方便用户快速筛选库位 移除部分冗余代码和注释,优化页面布局和交互体验 添加钢卷统计数据显示功能,提升数据可视化
This commit is contained in:
@@ -9,13 +9,7 @@
|
||||
<el-input v-model="queryParams.currentCoilNo" placeholder="请输入当前钢卷号" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="数据状态">
|
||||
<el-select v-model="queryParams.dataType" placeholder="请选择数据状态" clearable>
|
||||
<el-option :value="0" label="历史数据">历史数据</el-option>
|
||||
<el-option :value="1" label="当前数据">当前数据</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="逻辑库位" prop="warehouseId" v-if="!hideWarehouseQuery">
|
||||
<el-form-item label="逻辑库位" prop="warehouseId" v-if="!hideWarehouseQuery && !leftWarehouseQuery">
|
||||
<warehouse-select v-model="queryParams.warehouseId" placeholder="请选择仓库/库区/库位"
|
||||
style="width: 100%; display: inline-block;" clearable />
|
||||
</el-form-item>
|
||||
@@ -45,9 +39,6 @@
|
||||
clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- <MaterialSelect :hideType="hideType" :itemId.sync="queryParams.itemIds" :itemType.sync="queryParams.itemType"
|
||||
:multiple="true" /> -->
|
||||
|
||||
<el-form-item v-if="showWaybill" label="发货状态">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择发货状态" clearable>
|
||||
<el-option :value="0" label="未发货">未发货</el-option>
|
||||
@@ -79,13 +70,14 @@
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8" v-if="showControl">
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
|
||||
@click="handleCheck">修正</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExportAll">导出</el-button>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="2" v-if="canExportAll">
|
||||
<el-button type="info" plain icon="el-icon-printer" size="mini" :disabled="multiple"
|
||||
@click="handleBatchPrintLabel">批量打印标签</el-button>
|
||||
@@ -94,51 +86,65 @@
|
||||
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList"
|
||||
label="orderBy">按实际库区排序</el-checkbox>
|
||||
</el-col>
|
||||
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<KLPTable v-loading="loading" :data="materialCoilList" @selection-change="handleSelectionChange" :floatLayer="true"
|
||||
:floatLayerConfig="floatLayerConfig" @row-click="handleRowClick"
|
||||
:height="showAbnormal ? 'calc(100vh - 400px)' : 'calc(100vh - 300px)'">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="入场钢卷号" align="center" prop="enterCoilNo">
|
||||
<template slot-scope="scope">
|
||||
<coil-no :coil-no="scope.row.enterCoilNo"></coil-no>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="当前钢卷号" align="center" prop="currentCoilNo">
|
||||
<template slot-scope="scope">
|
||||
<current-coil-no :current-coil-no="scope.row.currentCoilNo"></current-coil-no>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="净重" align="center" prop="netWeight" v-if="!hideWarehouseQuery" />
|
||||
<el-table-column label="逻辑库位" align="center" prop="warehouseName" v-if="!hideWarehouseQuery" />
|
||||
<el-table-column label="实际库区" align="center" prop="actualWarehouseName"
|
||||
v-if="!hideWarehouseQuery && !showExportTime" />
|
||||
<el-table-column label="产品类型" align="center" width="180">
|
||||
<template slot-scope="scope">
|
||||
<ProductInfo v-if="scope.row.itemType == 'product'" :product="scope.row" />
|
||||
<RawMaterialInfo v-else-if="scope.row.itemType === 'raw_material'" :material="scope.row" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="showAbnormal" label="异常数量" align="center" prop="abnormalCount"></el-table-column>
|
||||
<el-table-column label="长度 (米)" align="center" prop="length" v-if="showLength" />
|
||||
<el-table-column label="发货时间" v-if="showExportTime" align="center" prop="exportTime" width="205">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker @change="handleExportTimeChange(scope.row)" v-if="canEditExportTime" style="width: 100%"
|
||||
v-model="scope.row.exportTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择发货时间" />
|
||||
<div v-else>{{ scope.row.exportTime }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货人" v-if="showExportTime" align="center" prop="exportByName" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.exportBy" placeholder="请选择发货人" filterable
|
||||
@change="handleExportByNameChange(scope.row)">
|
||||
<el-option v-for="item in userList" :key="item.userName" :value="item.userName" :label="item.nickName" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="关联信息" align="center" :show-overflow-tooltip="true">
|
||||
<div style="display: flex; align-items: flex-start;">
|
||||
<div v-if="leftWarehouseQuery"
|
||||
:style="{
|
||||
width: '220px',
|
||||
height: showAbnormal ? 'calc(100vh - 400px)' : 'calc(100vh - 300px)',
|
||||
backgroundColor: '#ffffff',
|
||||
overflowY: 'auto',
|
||||
overflowX: 'hidden' }">
|
||||
<warehouse-tree warehouseType="logic" @node-click="handleWarehouseNodeClick" />
|
||||
</div>
|
||||
<div style="flex: 1;">
|
||||
<KLPTable v-loading="loading" :data="materialCoilList" @selection-change="handleSelectionChange"
|
||||
:floatLayer="true" :floatLayerConfig="floatLayerConfig" @row-click="handleRowClick"
|
||||
:height="showAbnormal ? 'calc(100vh - 400px)' : 'calc(100vh - 300px)'">
|
||||
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||
<el-table-column label="入场钢卷号" align="center" prop="enterCoilNo">
|
||||
<template slot-scope="scope">
|
||||
<coil-no :coil-no="scope.row.enterCoilNo"></coil-no>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="当前钢卷号" align="center" prop="currentCoilNo">
|
||||
<template slot-scope="scope">
|
||||
<current-coil-no :current-coil-no="scope.row.currentCoilNo"></current-coil-no>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="净重" align="center" prop="netWeight" v-if="!hideWarehouseQuery" />
|
||||
<el-table-column label="逻辑库位" align="center" prop="warehouseName" v-if="!hideWarehouseQuery" />
|
||||
<el-table-column label="实际库区" align="center" prop="actualWarehouseName"
|
||||
v-if="!hideWarehouseQuery && !showExportTime" />
|
||||
<el-table-column label="产品类型" align="center" width="180">
|
||||
<template slot-scope="scope">
|
||||
<ProductInfo v-if="scope.row.itemType == 'product'" :product="scope.row" />
|
||||
<RawMaterialInfo v-else-if="scope.row.itemType === 'raw_material'" :material="scope.row" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="showAbnormal" label="异常数量" align="center" prop="abnormalCount"></el-table-column>
|
||||
<el-table-column label="长度 (米)" align="center" prop="length" v-if="showLength" />
|
||||
<el-table-column label="发货时间" v-if="showExportTime" align="center" prop="exportTime" width="205">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker @change="handleExportTimeChange(scope.row)" v-if="canEditExportTime" style="width: 100%"
|
||||
v-model="scope.row.exportTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="选择发货时间" />
|
||||
<div v-else>{{ scope.row.exportTime }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货人" v-if="showExportTime" align="center" prop="exportByName" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.exportBy" placeholder="请选择发货人" filterable
|
||||
@change="handleExportByNameChange(scope.row)">
|
||||
<el-option v-for="item in userList" :key="item.userName" :value="item.userName"
|
||||
:label="item.nickName" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="关联信息" align="center" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.parentCoilNos && scope.row.hasMergeSplit === 1 && scope.row.dataType === 1">
|
||||
<el-tag type="warning" size="mini">来自母卷:{{ scope.row.parentCoilNos }}</el-tag>
|
||||
@@ -153,163 +159,176 @@
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
|
||||
<el-table-column v-if="showGrade" label="质量状态" align="center" prop="qualityStatus">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.qualityStatus" placeholder="请选择质量状态" @change="handleGradeChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="逻辑库位" align="center" prop="warehouseId" v-if="editWarehouse">
|
||||
<template slot-scope="scope">
|
||||
<warehouse-select @change="handleWarehouseChange(scope.row)" v-model="scope.row.warehouseId"
|
||||
placeholder="请选择仓库/库区/库位" style="width: 100%;" clearable />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="showGrade" label="质量状态" align="center" prop="qualityStatus">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.qualityStatus" placeholder="请选择质量状态" @change="handleGradeChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="逻辑库位" align="center" prop="warehouseId" v-if="editWarehouse">
|
||||
<template slot-scope="scope">
|
||||
<warehouse-select @change="handleWarehouseChange(scope.row)" v-model="scope.row.warehouseId"
|
||||
placeholder="请选择仓库/库区/库位" style="width: 100%;" clearable />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="钢卷去向" align="center" prop="nextWarehouseId" v-if="editNext" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.nextWarehouseId" placeholder="钢卷去向" filterable
|
||||
@change="handleNextWarehouseChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.wms_next_warehouse" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="钢卷去向" align="center" prop="nextWarehouseId" v-if="editNext" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.nextWarehouseId" placeholder="钢卷去向" filterable
|
||||
@change="handleNextWarehouseChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.wms_next_warehouse" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="业务目的" align="center" prop="businessPurpose" v-if="showBusinessPurpose" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.businessPurpose" placeholder="业务目的" filterable
|
||||
@change="handleRowChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="业务目的" align="center" prop="businessPurpose" v-if="showBusinessPurpose" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.businessPurpose" placeholder="业务目的" filterable
|
||||
@change="handleRowChange(scope.row)">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="关联订单" align="center" prop="relatedToOrder" v-if="showRelatedToOrder" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-switch @change="handleRowChange(scope.row)" v-model="scope.row.isRelatedToOrder" :active-value="1"
|
||||
:inactive-value="0" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联订单" align="center" prop="relatedToOrder" v-if="showRelatedToOrder" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-switch @change="handleRowChange(scope.row)" v-model="scope.row.isRelatedToOrder" :active-value="1"
|
||||
:inactive-value="0" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="发货计划" align="center" prop="nextWarehouseId" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.bindPlanName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货计划" align="center" prop="nextWarehouseId" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.bindPlanName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="发货单据" align="center" prop="nextWarehouseId" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top" width="400" trigger="hover">
|
||||
<div>
|
||||
<el-descriptions :column="2" :border="false">
|
||||
<el-descriptions-item label="单据名称">
|
||||
{{ scope.row.bindWaybillName || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="车牌号">
|
||||
{{ scope.row.bindLicensePlate || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="收货单位">
|
||||
{{ scope.row.bindConsigneeUnit || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="负责人">
|
||||
{{ scope.row.bindPrincipal || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="单据状态">
|
||||
<el-tag v-if="scope.row.bindWaybillStatus === 0" type="info" size="mini">未发货</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 1" type="info" size="mini">已发货</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 2" type="info" size="mini">未打印</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 3" type="info" size="mini">已打印</el-tag>
|
||||
<el-tag v-else type="danger" size="mini">未知状态</el-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
<div slot="reference" class="text-ellipsis" v-text>{{ scope.row.bindLicensePlate || '-' }}</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货单据" align="center" prop="nextWarehouseId" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top" width="400" trigger="hover">
|
||||
<div>
|
||||
<el-descriptions :column="2" :border="false">
|
||||
<el-descriptions-item label="单据名称">
|
||||
{{ scope.row.bindWaybillName || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="车牌号">
|
||||
{{ scope.row.bindLicensePlate || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="收货单位">
|
||||
{{ scope.row.bindConsigneeUnit || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="负责人">
|
||||
{{ scope.row.bindPrincipal || '-' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="单据状态">
|
||||
<el-tag v-if="scope.row.bindWaybillStatus === 0" type="info" size="mini">未发货</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 1" type="info" size="mini">已发货</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 2" type="info" size="mini">未打印</el-tag>
|
||||
<el-tag v-else-if="scope.row.bindWaybillStatus === 3" type="info" size="mini">已打印</el-tag>
|
||||
<el-tag v-else type="danger" size="mini">未知状态</el-tag>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
<div slot="reference" class="text-ellipsis" v-text>{{ scope.row.bindLicensePlate || '-' }}</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="发货状态" align="center" prop="status" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 1" type="success" size="mini">已发货</el-tag>
|
||||
<el-tag v-else type="info" size="mini">未发货</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货状态" align="center" prop="status" v-if="showWaybill" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 1" type="success" size="mini">已发货</el-tag>
|
||||
<el-tag v-else type="info" size="mini">未发货</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="实测宽度" align="center" prop="width" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.actualWidth" placeholder="请输入实测宽度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实测宽度" align="center" prop="width" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.actualWidth" placeholder="请输入实测宽度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="实测厚度(m)" align="center" prop="actualThickness" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.actualThickness" placeholder="请输入实测厚度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实测厚度(m)" align="center" prop="actualThickness" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.actualThickness" placeholder="请输入实测厚度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="预留宽度" align="center" prop="width" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.reservedWidth" placeholder="请输入预留宽度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预留宽度" align="center" prop="width" v-if="showWidthEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.reservedWidth" placeholder="请输入预留宽度"
|
||||
@change="handleRowChange(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="生产开始" align="center" prop="productionStartTime" v-if="showProductionTimeEdit" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column label="生产开始" align="center" prop="productionStartTime" v-if="showProductionTimeEdit"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="生产结束" align="center" prop="productionEndTime" v-if="showProductionTimeEdit" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column label="生产结束" align="center" prop="productionEndTime" v-if="showProductionTimeEdit"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="生产耗时" align="center" prop="productionDuration" v-if="showProductionTimeEdit" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ formatDuration(scope.row.productionDuration * 60 * 1000) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="生产耗时" align="center" prop="productionDuration" v-if="showProductionTimeEdit"
|
||||
width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ formatDuration(scope.row.productionDuration * 60 * 1000) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="action" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-view" @click="handlePreviewLabel(scope.row)">
|
||||
预览标签
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-printer" @click="handlePrintLabel(scope.row)">
|
||||
打印标签
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showStatus" type="text" icon="el-icon-upload"
|
||||
@click="handleExportCoil(scope.row)">
|
||||
发货
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showExportTime" type="text" icon="el-icon-close"
|
||||
@click="handleCancelExport(scope.row)">
|
||||
撤回发货
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showProductionTimeEdit" type="text" icon="el-icon-close"
|
||||
@click="handleProductionTimeEdit(scope.row)">
|
||||
加工修正
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showExportTime" type="text" icon="el-icon-sold-out"
|
||||
@click="handleReturnCoil(scope.row)">
|
||||
退货钢卷
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCheck(scope.row)"
|
||||
v-if="showControl">修正</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-search" @click="handleTrace(scope.row)">追溯</el-button>
|
||||
<el-button size="mini" v-if="showWaybill" type="text" icon="el-icon-close"
|
||||
@click="handleRemoveFromWaybill(scope.row)">
|
||||
移出发货单
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</KLPTable>
|
||||
<el-table-column prop="action" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-view" @click="handlePreviewLabel(scope.row)">
|
||||
预览标签
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-printer" @click="handlePrintLabel(scope.row)">
|
||||
打印标签
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showStatus" type="text" icon="el-icon-upload"
|
||||
@click="handleExportCoil(scope.row)">
|
||||
发货
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showExportTime" type="text" icon="el-icon-close"
|
||||
@click="handleCancelExport(scope.row)">
|
||||
撤回发货
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showProductionTimeEdit" type="text" icon="el-icon-close"
|
||||
@click="handleProductionTimeEdit(scope.row)">
|
||||
加工修正
|
||||
</el-button>
|
||||
<el-button size="mini" v-if="showExportTime" type="text" icon="el-icon-sold-out"
|
||||
@click="handleReturnCoil(scope.row)">
|
||||
退货钢卷
|
||||
</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCheck(scope.row)"
|
||||
v-if="showControl">修正</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-search" @click="handleTrace(scope.row)">追溯</el-button>
|
||||
<el-button size="mini" v-if="showWaybill" type="text" icon="el-icon-close"
|
||||
@click="handleRemoveFromWaybill(scope.row)">
|
||||
移出发货单
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</KLPTable>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div v-show="total > 0" style="display: flex; justify-content: flex-end; align-items: flex-end; gap: 10px;">
|
||||
<span>
|
||||
总净重:{{ statistics.total_net_weight || 0 }}t
|
||||
</span>
|
||||
|
||||
<pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
</div>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改钢卷物料对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
@@ -467,7 +486,6 @@
|
||||
@change="(value) => { productionTimeForm.productionEndTime = value; calculateProductionDuration(); }" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产耗时" prop="productionDuration">
|
||||
<!-- <div>{{ productionTimeForm.formattedDuration }}</div> -->
|
||||
<el-input v-model="productionTimeForm.formattedDuration" placeholder="自动计算" disabled />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -501,6 +519,7 @@ import {
|
||||
cancelExportCoil,
|
||||
checkCoilNo,
|
||||
returnCoil,
|
||||
getCoilStatisticsList
|
||||
} from "@/api/wms/coil";
|
||||
import { listBoundCoil } from "@/api/wms/deliveryWaybillDetail";
|
||||
import { addPendingAction } from "@/api/wms/pendingAction";
|
||||
@@ -530,6 +549,7 @@ import LogTable from "@/views/wms/warehouse/components/LogTable.vue";
|
||||
import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint';
|
||||
import DragResizeBox from '@/components/DragResizeBox/index.vue';
|
||||
import ProcessFlow from '../components/ProcessFlow.vue';
|
||||
import WarehouseTree from '@/components/KLPService/WarehouseTree/index.vue';
|
||||
import { listDeliveryWaybillDetail, delDeliveryWaybillDetail } from "@/api/wms/deliveryWaybillDetail";
|
||||
|
||||
export default {
|
||||
@@ -553,6 +573,7 @@ export default {
|
||||
LogTable,
|
||||
ProcessFlow,
|
||||
DragResizeBox,
|
||||
WarehouseTree,
|
||||
},
|
||||
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status', 'wms_next_warehouse', 'coil_business_purpose'],
|
||||
props: {
|
||||
@@ -650,6 +671,10 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
leftWarehouseQuery: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -746,27 +771,6 @@ export default {
|
||||
],
|
||||
currentCoilNo: [
|
||||
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" },
|
||||
// 仅在新增的时候校验
|
||||
// {
|
||||
// validator: (rule, value, callback) => {
|
||||
// // if (this.form.coilId) {
|
||||
// // // 修改时会有coilId,不触发校验
|
||||
// // console.log('修改时会有coilId,不触发校验');
|
||||
// // callback();
|
||||
// // } else {
|
||||
// // 没有coilId则为新增 触发校验
|
||||
// checkCoilNo({ currentCoilNo: value, coilId: this.form.coilId }).then(res => {
|
||||
// const { duplicateType } = res.data;
|
||||
// if (duplicateType === 'current' || duplicateType === 'both') {
|
||||
// // alert('当前钢卷号重复,请重新输入');
|
||||
// callback(new Error('当前钢卷号重复,请重新输入'));
|
||||
// } else {
|
||||
// callback();
|
||||
// }
|
||||
// })
|
||||
// // }
|
||||
// }, trigger: 'blur'
|
||||
// }
|
||||
],
|
||||
itemId: [
|
||||
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
||||
@@ -846,6 +850,7 @@ export default {
|
||||
// 统计数据:已发货的数量和未发货的数量
|
||||
shippedCount: 0,
|
||||
unshippedCount: 0,
|
||||
statistics: {},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -894,11 +899,16 @@ export default {
|
||||
// 初始化时计算一次
|
||||
this.calculateProductionDuration();
|
||||
},
|
||||
// 处理逻辑库位点击事件
|
||||
handleWarehouseNodeClick(node) {
|
||||
this.queryParams.warehouseId = node.warehouseId;
|
||||
this.getList();
|
||||
},
|
||||
async handleRemoveFromWaybill(row) {
|
||||
const coilId = row.coilId;
|
||||
// 根据id查询所在的单据明细
|
||||
const res = await listDeliveryWaybillDetail({ coilId });
|
||||
|
||||
|
||||
if (res.rows.length != 1) {
|
||||
this.$message({
|
||||
message: '发货单查找失败',
|
||||
@@ -912,13 +922,13 @@ export default {
|
||||
this.$modal.confirm('确认要将该钢卷从发货单中移除吗?', {
|
||||
title: '确认移除',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
delDeliveryWaybillDetail(detailId).then(res => {
|
||||
this.$message({
|
||||
message: '移除成功',
|
||||
type: 'success',
|
||||
});
|
||||
this.getList();
|
||||
}).then(() => {
|
||||
delDeliveryWaybillDetail(detailId).then(res => {
|
||||
this.$message({
|
||||
message: '移除成功',
|
||||
type: 'success',
|
||||
});
|
||||
this.getList();
|
||||
});
|
||||
})
|
||||
// 打开一个弹窗列出查询到的所有单据明细
|
||||
@@ -1087,6 +1097,9 @@ export default {
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
getCoilStatisticsList(query).then(res => {
|
||||
this.statistics = res.data || [];
|
||||
})
|
||||
},
|
||||
/** 追溯按钮操作 */
|
||||
handleTrace(row) {
|
||||
@@ -1626,4 +1639,8 @@ export default {
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
::v-deep .el-table {
|
||||
margin-top: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user