Merge remote-tracking branch 'origin/0.8.X' into 0.8.X

This commit is contained in:
2026-04-18 14:28:55 +08:00
6 changed files with 252 additions and 236 deletions

View File

@@ -21,12 +21,6 @@
@close="handleClose" append-to-body :fullscreen="orderBy">
<!-- 搜索区域 -->
<el-form v-if="!rangeMode" inline :model="queryParams" class="search-form">
<!-- <el-form-item label="类型">
<el-select v-model="queryParams.selectType" placeholder="请选择类型" size="small">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select>
</el-form-item> -->
<el-form-item label="入场卷号">
<el-input v-model="queryParams.enterCoilNo" placeholder="请输入入场卷号" clearable size="small"
@keyup.enter.native="handleQuery" />

View File

@@ -7,7 +7,6 @@
<script>
import { listWarehouse } from '@/api/wms/warehouse';
// import { listActualWarehouse } from '@/api/wms/actualWarehouse';
import { treeActualWarehouseTwoLevel } from '@/api/wms/actualWarehouse';
export default {

View File

@@ -1,5 +1,7 @@
<template>
<BasePage :qrcode="qrcode" :querys="querys" :labelType="labelType" :hideType="hideType" :showControl="showControl" />
<BasePage
:leftWarehouseQuery="true"
:qrcode="qrcode" :querys="querys" :labelType="labelType" :hideType="hideType" :showControl="showControl" />
</template>
<script>

View File

@@ -1,5 +1,8 @@
<template>
<BasePage :qrcode="qrcode" :querys="querys" :labelType="labelType" :hideType="hideType" />
<BasePage
:leftWarehouseQuery="true"
:qrcode="qrcode" :querys="querys" :labelType="labelType" :hideType="hideType"
/>
</template>
<script>

View File

@@ -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>

View File

@@ -6,6 +6,7 @@
:hideType="hideType"
:showLength="showLength"
:canExportAll="canExportAll"
:leftWarehouseQuery="true"
/>
</template>