feat: 新增业务员、合同号查询与展示,优化钢卷管理功能
1. 在钢卷相关API中新增对saleName和contractNo字段的过滤逻辑,避免数据覆盖 2. 多个报表页面新增业务员和合同号查询条件 3. 钢卷物料页面重构表单布局,新增生产耗时计算、合同绑定功能 4. 告警页面优化UI展示,新增详情弹窗和备注处理流程 5. 多处代码格式化与注释优化
This commit is contained in:
@@ -49,7 +49,8 @@ export function addMaterialCoil(data) {
|
||||
|
||||
export function updateMaterialCoil(data) {
|
||||
// 对data进行预处理,将currentCoilNo去除首位的空格
|
||||
const payload = {
|
||||
// 将saleName和contractNo剔除防止覆盖
|
||||
const { saleName, contractNo, ...payload} = {
|
||||
...data,
|
||||
currentCoilNo: data.currentCoilNo.trim(),
|
||||
}
|
||||
@@ -63,7 +64,8 @@ export function updateMaterialCoil(data) {
|
||||
// 简单更新钢卷物料表
|
||||
export function updateMaterialCoilSimple(data) {
|
||||
// 对data进行预处理,将currentCoilNo去除首位的空格
|
||||
const payload = {
|
||||
// 将saleName和contractNo剔除防止覆盖
|
||||
const { saleName, contractNo, ...payload} = {
|
||||
...data,
|
||||
currentCoilNo: data.currentCoilNo.trim(),
|
||||
}
|
||||
|
||||
@@ -83,19 +83,26 @@
|
||||
<el-input v-model="queryParams.remark" placeholder="请输入备注" clearable size="small" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-form-item label="业务员" prop="saleName" v-if="orderBy">
|
||||
<el-input v-model="queryParams.saleName" placeholder="请输入业务员" clearable size="small" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="合同号" prop="contractNo" v-if="orderBy">
|
||||
<el-input v-model="queryParams.contractNo" placeholder="请输入合同号" clearable size="small" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button v-if="multiple" type="primary" size="small" icon="el-icon-check"
|
||||
@click="handleSelectAllCurrentPage">全选当前卷</el-button>
|
||||
<el-checkbox v-if="orderBy" style="margin-left: 10px;" v-model="showCoilMap"
|
||||
size="small">显示钢卷地图</el-checkbox>
|
||||
<el-checkbox v-if="orderBy && orderId" style="margin-left: 10px;" v-model="showOrderInfo"
|
||||
size="small">显示订单详情</el-checkbox>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 2px;">
|
||||
<div
|
||||
style="display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 2px;">
|
||||
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
|
||||
<el-button type="warning" size="small" icon="el-icon-setting"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="告警类型" prop="warningType">
|
||||
<el-radio-group v-model="queryParams.warningType" @change="handleQuery">
|
||||
<el-radio-button label="LENGTH">长度告警</el-radio-button>
|
||||
@@ -15,16 +15,24 @@
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="告警状态" prop="warningStatus">
|
||||
<el-select v-model="queryParams.warningStatus" placeholder="请选择告警状态" clearable
|
||||
@change="handleQuery">
|
||||
<el-select
|
||||
v-model="queryParams.warningStatus"
|
||||
placeholder="请选择告警状态"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="未处理" value="0" />
|
||||
<el-option label="已处理" value="1" />
|
||||
<el-option label="已忽略" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序" prop="actionType">
|
||||
<el-select v-model="queryParams.actionType" placeholder="请选择工序" clearable
|
||||
@change="handleQuery">
|
||||
<el-select
|
||||
v-model="queryParams.actionType"
|
||||
placeholder="请选择工序"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option v-for="item in dict.type.action_type" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -83,13 +91,14 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="materialWarningList" @selection-change="handleSelectionChange" :row-class-name="getRowClassName">
|
||||
<el-table v-loading="loading" :data="materialWarningList" :row-class-name="getRowClassName" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="钢卷ID" align="center" prop="coilId" /> -->
|
||||
<el-table-column label="告警类型" align="center" prop="warningType">
|
||||
<el-table-column label="告警类型" align="center" prop="warningType" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.warningType === 'LENGTH' ? '长度' : scope.row.warningType === 'THICKNESS' ? '厚度' : '宽度'
|
||||
}}</span>
|
||||
<el-tag :type="scope.row.warningType === 'LENGTH' ? 'warning' : scope.row.warningType === 'THICKNESS' ? '' : 'success'" size="small" effect="plain">
|
||||
{{ scope.row.warningType === 'LENGTH' ? '长度' : scope.row.warningType === 'THICKNESS' ? '厚度' : '宽度' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" align="center" prop="actionType">
|
||||
@@ -99,6 +108,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="入场卷号" align="center" prop="coilVo.enterCoilNo" />
|
||||
<el-table-column label="当前卷号" align="center" prop="coilVo.currentCoilNo" />
|
||||
<el-table-column label="品质" align="center" prop="coilVo.qualityStatus" />
|
||||
<el-table-column label="发生时间" align="center" prop="createTime" width="180">
|
||||
<!-- 如果是今天的标红显示 -->
|
||||
<template slot-scope="scope">
|
||||
@@ -119,87 +129,103 @@
|
||||
<el-table-column label="告警说明" align="center" prop="warningMsg" show-overflow-tooltip />
|
||||
<el-table-column label="告警状态" align="center" prop="warningStatus">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.warningStatus == 0 ? '未处理' : scope.row.warningStatus == 1 ? '已处理' : '已忽略' }}</span>
|
||||
<div class="status-cell">
|
||||
<el-tag
|
||||
:type="scope.row.warningStatus == 0 ? 'danger' : scope.row.warningStatus == 1 ? 'success' : 'info'"
|
||||
size="small"
|
||||
effect="plain"
|
||||
>
|
||||
{{ scope.row.warningStatus == 0 ? '未处理' : scope.row.warningStatus == 1 ? '已处理' : '已忽略' }}
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人" align="center" prop="handleBy" />
|
||||
<el-table-column label="处理时间" align="center" prop="handleTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.handleTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="处理备注" align="center" prop="handleRemark" /> -->
|
||||
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleHandle(scope.row)">处理</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleIgnore(scope.row)">忽略</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-view" @click="showDetail(scope.row)">详情</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
<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>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="钢卷ID" prop="coilId">
|
||||
<el-input v-model="form.coilId" placeholder="请输入钢卷ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="理论值" prop="theoreticalVal">
|
||||
<el-input v-model="form.theoreticalVal" placeholder="请输入理论值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实测值" prop="actualVal">
|
||||
<el-input v-model="form.actualVal" placeholder="请输入实测值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="允许偏差" prop="allowDeviation">
|
||||
<el-input v-model="form.allowDeviation" placeholder="请输入允许偏差" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实际偏差值" prop="deviationValue">
|
||||
<el-input v-model="form.deviationValue" placeholder="请输入实际偏差值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="偏差率(%)" prop="deviationRate">
|
||||
<el-input v-model="form.deviationRate" placeholder="请输入偏差率(%)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="告警级别(WARNING/ERROR/CRITICAL)" prop="warningLevel">
|
||||
<el-input v-model="form.warningLevel" placeholder="请输入告警级别(WARNING/ERROR/CRITICAL)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="告警说明" prop="warningMsg">
|
||||
<el-input v-model="form.warningMsg" placeholder="请输入告警说明" />
|
||||
</el-form-item>
|
||||
<el-form-item label="处理人" prop="handleBy">
|
||||
<el-input v-model="form.handleBy" placeholder="请输入处理人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="处理时间" prop="handleTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.handleTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择处理时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 告警详情弹窗 -->
|
||||
<el-dialog title="告警详情" :visible.sync="detailDialogVisible" width="1400px" append-to-body>
|
||||
<div v-if="detailData.warningId" v-loading="detailLoading">
|
||||
<el-divider content-position="left">钢卷信息</el-divider>
|
||||
<CoilInfoRender :coilInfo="detailData.coilVo" />
|
||||
|
||||
<el-divider content-position="left">告警信息</el-divider>
|
||||
<el-descriptions :column="2" border size="small">
|
||||
<el-descriptions-item label="告警类型">
|
||||
<el-tag :type="detailData.warningType === 'LENGTH' ? 'warning' : detailData.warningType === 'THICKNESS' ? '' : 'success'" size="small" effect="plain">
|
||||
{{ detailData.warningType === 'LENGTH' ? '长度' : detailData.warningType === 'THICKNESS' ? '厚度' : '宽度' }}
|
||||
</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="工序">
|
||||
<dict-tag :options="dict.type.action_type" :value="detailData.actionType" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="告警状态">
|
||||
<el-tag
|
||||
:type="detailData.warningStatus == 0 ? 'danger' : detailData.warningStatus == 1 ? 'success' : 'info'"
|
||||
size="small"
|
||||
effect="plain"
|
||||
>
|
||||
{{ detailData.warningStatus == 0 ? '未处理' : detailData.warningStatus == 1 ? '已处理' : '已忽略' }}
|
||||
</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发生时间">
|
||||
{{ parseTime(detailData.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="推论值">{{ detailData.theoreticalVal }}</el-descriptions-item>
|
||||
<el-descriptions-item label="实际值">{{ detailData.actualVal }}</el-descriptions-item>
|
||||
<el-descriptions-item label="允许偏差">{{ detailData.allowDeviation }}</el-descriptions-item>
|
||||
<el-descriptions-item label="实际偏差">{{ detailData.deviationValue }}</el-descriptions-item>
|
||||
<el-descriptions-item label="告警说明" :span="2">{{ detailData.warningMsg }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<el-divider v-if="detailData.warningStatus != 0" content-position="left">处理信息</el-divider>
|
||||
<div v-if="detailData.warningStatus != 0" class="handle-detail">
|
||||
<div class="handle-remark-body">"{{ detailData.handleRemark }}"</div>
|
||||
<div class="handle-meta-row">
|
||||
<span>{{ detailData.handleBy }}</span>
|
||||
<span class="handle-meta-sep">·</span>
|
||||
<span>{{ parseTime(detailData.handleTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 处理备注弹窗 -->
|
||||
<el-dialog title="填写处理备注" :visible.sync="handleRemarkDialogVisible" width="500px" append-to-body>
|
||||
<el-form ref="handleRemarkForm" :model="handleRemarkForm" :rules="handleRemarkRules" label-width="80px">
|
||||
<el-form-item label="处理备注" prop="handleRemark">
|
||||
<el-input v-model="form.handleRemark" placeholder="请输入处理备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
<el-input v-model="handleRemarkForm.handleRemark" type="textarea" placeholder="请输入处理备注" :rows="4" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
<el-button @click="handleRemarkDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="confirmHandleRemark">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog> -->
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listMaterialWarning, getMaterialWarning, delMaterialWarning, addMaterialWarning, updateMaterialWarning, batchHandleMaterial, batchHandleHistory } from "@/api/wms/materialWarning";
|
||||
import { listMaterialWarning, getMaterialWarning, delMaterialWarning, addMaterialWarning, updateMaterialWarning, batchHandleMaterial, batchHandleHistory } from '@/api/wms/materialWarning'
|
||||
|
||||
export default {
|
||||
name: "MaterialWarning",
|
||||
name: 'MaterialWarning',
|
||||
data() {
|
||||
return {
|
||||
// 按钮loading
|
||||
@@ -219,9 +245,25 @@ export default {
|
||||
// 钢卷告警表格数据
|
||||
materialWarningList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 详情弹窗
|
||||
detailDialogVisible: false,
|
||||
detailLoading: false,
|
||||
detailData: {},
|
||||
// 处理备注弹窗
|
||||
handleRemarkDialogVisible: false,
|
||||
handleRemarkMode: 'single',
|
||||
handleRemarkTarget: null,
|
||||
handleRemarkForm: {
|
||||
handleRemark: ''
|
||||
},
|
||||
handleRemarkRules: {
|
||||
handleRemark: [
|
||||
{ required: true, message: '处理备注不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@@ -241,205 +283,199 @@ export default {
|
||||
handleRemark: undefined,
|
||||
onlyToday: true,
|
||||
createStartTime: undefined,
|
||||
createEndTime: undefined,
|
||||
createEndTime: undefined
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
warningId: [
|
||||
{ required: true, message: "告警ID不能为空", trigger: "blur" }
|
||||
{ required: true, message: '告警ID不能为空', trigger: 'blur' }
|
||||
],
|
||||
coilId: [
|
||||
{ required: true, message: "钢卷ID不能为空", trigger: "blur" }
|
||||
{ required: true, message: '钢卷ID不能为空', trigger: 'blur' }
|
||||
],
|
||||
warningType: [
|
||||
{ required: true, message: "告警类型(LENGTH=长度, THICKNESS=厚度, WIDTH=宽度)不能为空", trigger: "change" }
|
||||
{ required: true, message: '告警类型(LENGTH=长度, THICKNESS=厚度, WIDTH=宽度)不能为空', trigger: 'change' }
|
||||
],
|
||||
theoreticalVal: [
|
||||
{ required: true, message: "理论值不能为空", trigger: "blur" }
|
||||
{ required: true, message: '理论值不能为空', trigger: 'blur' }
|
||||
],
|
||||
actualVal: [
|
||||
{ required: true, message: "实测值不能为空", trigger: "blur" }
|
||||
{ required: true, message: '实测值不能为空', trigger: 'blur' }
|
||||
],
|
||||
allowDeviation: [
|
||||
{ required: true, message: "允许偏差(数值/百分比)不能为空", trigger: "blur" }
|
||||
{ required: true, message: '允许偏差(数值/百分比)不能为空', trigger: 'blur' }
|
||||
],
|
||||
deviationValue: [
|
||||
{ required: true, message: "实际偏差值不能为空", trigger: "blur" }
|
||||
{ required: true, message: '实际偏差值不能为空', trigger: 'blur' }
|
||||
],
|
||||
deviationRate: [
|
||||
{ required: true, message: "偏差率(%)不能为空", trigger: "blur" }
|
||||
{ required: true, message: '偏差率(%)不能为空', trigger: 'blur' }
|
||||
],
|
||||
warningLevel: [
|
||||
{ required: true, message: "告警级别(WARNING/ERROR/CRITICAL)不能为空", trigger: "blur" }
|
||||
{ required: true, message: '告警级别(WARNING/ERROR/CRITICAL)不能为空', trigger: 'blur' }
|
||||
],
|
||||
warningMsg: [
|
||||
{ required: true, message: "告警说明不能为空", trigger: "blur" }
|
||||
{ required: true, message: '告警说明不能为空', trigger: 'blur' }
|
||||
],
|
||||
warningStatus: [
|
||||
{ required: true, message: "告警状态(0=未处理,1=已处理,2=已忽略)不能为空", trigger: "change" }
|
||||
{ required: true, message: '告警状态(0=未处理,1=已处理,2=已忽略)不能为空', trigger: 'change' }
|
||||
],
|
||||
handleBy: [
|
||||
{ required: true, message: "处理人不能为空", trigger: "blur" }
|
||||
{ required: true, message: '处理人不能为空', trigger: 'blur' }
|
||||
],
|
||||
handleTime: [
|
||||
{ required: true, message: "处理时间不能为空", trigger: "blur" }
|
||||
{ required: true, message: '处理时间不能为空', trigger: 'blur' }
|
||||
],
|
||||
handleRemark: [
|
||||
{ required: true, message: "处理备注不能为空", trigger: "blur" }
|
||||
{ required: true, message: '处理备注不能为空', trigger: 'blur' }
|
||||
],
|
||||
delFlag: [
|
||||
{ required: true, message: "删除标志不能为空", trigger: "blur" }
|
||||
{ required: true, message: '删除标志不能为空', trigger: 'blur' }
|
||||
],
|
||||
createTime: [
|
||||
{ required: true, message: "创建时间不能为空", trigger: "blur" }
|
||||
{ required: true, message: '创建时间不能为空', trigger: 'blur' }
|
||||
],
|
||||
updateTime: [
|
||||
{ required: true, message: "更新时间不能为空", trigger: "blur" }
|
||||
{ required: true, message: '更新时间不能为空', trigger: 'blur' }
|
||||
],
|
||||
remark: [
|
||||
{ required: true, message: "备注不能为空", trigger: "blur" }
|
||||
{ required: true, message: '备注不能为空', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
dicts: ['action_type'],
|
||||
created() {
|
||||
this.getList();
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询钢卷告警列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.loading = true
|
||||
if (this.queryParams.onlyToday) {
|
||||
const today = new Date();
|
||||
const y = today.getFullYear();
|
||||
const m = String(today.getMonth() + 1).padStart(2, '0');
|
||||
const d = String(today.getDate()).padStart(2, '0');
|
||||
this.queryParams.createStartTime = `${y}-${m}-${d} 00:00:00`;
|
||||
this.queryParams.createEndTime = `${y}-${m}-${d} 23:59:59`;
|
||||
const today = new Date()
|
||||
const y = today.getFullYear()
|
||||
const m = String(today.getMonth() + 1).padStart(2, '0')
|
||||
const d = String(today.getDate()).padStart(2, '0')
|
||||
this.queryParams.createStartTime = `${y}-${m}-${d} 00:00:00`
|
||||
this.queryParams.createEndTime = `${y}-${m}-${d} 23:59:59`
|
||||
} else {
|
||||
this.queryParams.createStartTime = undefined;
|
||||
this.queryParams.createEndTime = undefined;
|
||||
this.queryParams.createStartTime = undefined
|
||||
this.queryParams.createEndTime = undefined
|
||||
}
|
||||
listMaterialWarning(this.queryParams).then(response => {
|
||||
this.materialWarningList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
this.materialWarningList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/** 忽略按钮操作 */
|
||||
handleIgnore(row) {
|
||||
this.loading = true;
|
||||
updateMaterialWarning({ ...row, warningStatus: 2, handleBy: this.$store.state.user.name, handleTime: this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}') }).then(response => {
|
||||
this.loading = false;
|
||||
this.$message({
|
||||
message: "忽略成功",
|
||||
type: "success"
|
||||
});
|
||||
this.getList();
|
||||
});
|
||||
this.$modal.confirm('确认忽略该告警?').then(() => {
|
||||
this.loading = true
|
||||
updateMaterialWarning({ ...row, warningStatus: 2, handleBy: this.$store.state.user.name, handleTime: this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}') }).then(response => {
|
||||
this.loading = false
|
||||
this.$modal.msgSuccess('忽略成功')
|
||||
this.getList()
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
/** 行样式区分长度告警和厚度告警 */
|
||||
getRowClassName({ row }) {
|
||||
if (row.warningType === 'LENGTH') return 'warning-row-length';
|
||||
if (row.warningType === 'THICKNESS') return 'warning-row-thickness';
|
||||
return '';
|
||||
if (row.warningType === 'LENGTH') return 'warning-row-length'
|
||||
if (row.warningType === 'THICKNESS') return 'warning-row-thickness'
|
||||
return ''
|
||||
},
|
||||
/** 判断是否是今天的 */
|
||||
isToday(date) {
|
||||
const today = new Date();
|
||||
const year = today.getFullYear();
|
||||
const month = today.getMonth() + 1;
|
||||
const day = today.getDate();
|
||||
const dateObj = new Date(date);
|
||||
const year2 = dateObj.getFullYear();
|
||||
const month2 = dateObj.getMonth() + 1;
|
||||
const day2 = dateObj.getDate();
|
||||
return year === year2 && month === month2 && day === day2;
|
||||
const today = new Date()
|
||||
const year = today.getFullYear()
|
||||
const month = today.getMonth() + 1
|
||||
const day = today.getDate()
|
||||
const dateObj = new Date(date)
|
||||
const year2 = dateObj.getFullYear()
|
||||
const month2 = dateObj.getMonth() + 1
|
||||
const day2 = dateObj.getDate()
|
||||
return year === year2 && month === month2 && day === day2
|
||||
},
|
||||
/** 处理按钮操作 */
|
||||
handleHandle(row) {
|
||||
this.loading = true;
|
||||
// 填写处理人和处理时间
|
||||
updateMaterialWarning({ ...row, warningStatus: 1, handleBy: this.$store.state.user.name, handleTime: this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}') }).then(response => {
|
||||
this.loading = false;
|
||||
this.$message({
|
||||
message: "处理成功",
|
||||
type: "success"
|
||||
});
|
||||
this.getList();
|
||||
});
|
||||
this.$modal.confirm('确认将该告警标记为已处理?').then(() => {
|
||||
this.handleRemarkMode = 'single'
|
||||
this.handleRemarkTarget = row
|
||||
this.handleRemarkForm.handleRemark = ''
|
||||
this.handleRemarkDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.handleRemarkForm && this.$refs.handleRemarkForm.clearValidate()
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
/** 批量处理按钮操作 */
|
||||
handleBatchProcess() {
|
||||
if (this.ids.length === 0) {
|
||||
this.$modal.msgWarning("请至少选择一条记录");
|
||||
return;
|
||||
this.$modal.msgWarning('请至少选择一条记录')
|
||||
return
|
||||
}
|
||||
this.$modal.confirm('确认将选中的 ' + this.ids.length + ' 条告警标记为已处理?').then(() => {
|
||||
this.loading = true;
|
||||
return batchHandleMaterial({ warningIds: this.ids, warningStatus: 1 });
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.$modal.msgSuccess("批量处理成功");
|
||||
this.getList();
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
this.handleRemarkMode = 'batch'
|
||||
this.handleRemarkTarget = this.ids
|
||||
this.handleRemarkForm.handleRemark = ''
|
||||
this.handleRemarkDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.handleRemarkForm && this.$refs.handleRemarkForm.clearValidate()
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
/** 批量忽略按钮操作 */
|
||||
handleBatchIgnore() {
|
||||
if (this.ids.length === 0) {
|
||||
this.$modal.msgWarning("请至少选择一条记录");
|
||||
return;
|
||||
this.$modal.msgWarning('请至少选择一条记录')
|
||||
return
|
||||
}
|
||||
this.$modal.confirm('确认将选中的 ' + this.ids.length + ' 条告警标记为已忽略?').then(() => {
|
||||
this.loading = true;
|
||||
return batchHandleMaterial({ warningIds: this.ids, warningStatus: 2 });
|
||||
this.loading = true
|
||||
return batchHandleMaterial({ warningIds: this.ids, warningStatus: 2 })
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.$modal.msgSuccess("批量忽略成功");
|
||||
this.getList();
|
||||
this.loading = false
|
||||
this.$modal.msgSuccess('批量忽略成功')
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/** 处理历史告警按钮操作(批量标记今天以前的所有记录为已处理) */
|
||||
handleBatchProcessHistory() {
|
||||
this.$modal.confirm('确认将今天以前的所有告警标记为已处理?').then(() => {
|
||||
this.loading = true;
|
||||
return batchHandleHistory({ warningStatus: 1 });
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.$modal.msgSuccess("处理历史告警成功");
|
||||
this.getList();
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
this.handleRemarkMode = 'history'
|
||||
this.handleRemarkTarget = null
|
||||
this.handleRemarkForm.handleRemark = ''
|
||||
this.handleRemarkDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.handleRemarkForm && this.$refs.handleRemarkForm.clearValidate()
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
/** 忽略历史告警按钮操作(批量标记今天以前的所有记录为已忽略) */
|
||||
handleBatchIgnoreHistory() {
|
||||
this.$modal.confirm('确认将今天以前的所有告警标记为已忽略?').then(() => {
|
||||
this.loading = true;
|
||||
return batchHandleHistory({ warningStatus: 2 });
|
||||
this.loading = true
|
||||
return batchHandleHistory({ warningStatus: 2 })
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.$modal.msgSuccess("忽略历史告警成功");
|
||||
this.getList();
|
||||
this.loading = false
|
||||
this.$modal.msgSuccess('忽略历史告警成功')
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
@@ -464,18 +500,18 @@ export default {
|
||||
updateTime: undefined,
|
||||
updateBy: undefined,
|
||||
remark: undefined
|
||||
};
|
||||
this.resetForm("form");
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
@@ -485,61 +521,130 @@ export default {
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加钢卷告警";
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加钢卷告警'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.loading = true;
|
||||
this.reset();
|
||||
this.loading = true
|
||||
this.reset()
|
||||
const warningId = row.warningId || this.ids
|
||||
getMaterialWarning(warningId).then(response => {
|
||||
this.loading = false;
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改钢卷告警";
|
||||
});
|
||||
this.loading = false
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改钢卷告警'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
this.buttonLoading = true;
|
||||
this.buttonLoading = true
|
||||
if (this.form.warningId != null) {
|
||||
updateMaterialWarning(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
this.buttonLoading = false
|
||||
})
|
||||
} else {
|
||||
addMaterialWarning(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
this.buttonLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
/** 详情按钮操作 */
|
||||
showDetail(row) {
|
||||
this.detailDialogVisible = true
|
||||
// this.detailLoading = true
|
||||
this.detailData = row;
|
||||
// getMaterialWarning(row.warningId).then(response => {
|
||||
// this.detailData = response.data
|
||||
// this.detailLoading = false
|
||||
// }).catch(() => {
|
||||
// this.detailLoading = false
|
||||
// })
|
||||
},
|
||||
/** 确认填写处理备注 */
|
||||
confirmHandleRemark() {
|
||||
this.$refs.handleRemarkForm.validate(valid => {
|
||||
if (!valid) return
|
||||
this.loading = true
|
||||
const handleBy = this.$store.state.user.name
|
||||
const handleTime = this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
|
||||
const handleRemark = this.handleRemarkForm.handleRemark
|
||||
|
||||
if (this.handleRemarkMode === 'single') {
|
||||
const row = this.handleRemarkTarget
|
||||
updateMaterialWarning({
|
||||
...row,
|
||||
warningStatus: 1,
|
||||
handleBy,
|
||||
handleTime,
|
||||
handleRemark
|
||||
}).then(() => {
|
||||
this.loading = false
|
||||
this.handleRemarkDialogVisible = false
|
||||
this.$modal.msgSuccess('处理成功')
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else if (this.handleRemarkMode === 'batch') {
|
||||
batchHandleMaterial({
|
||||
warningIds: this.handleRemarkTarget,
|
||||
warningStatus: 1,
|
||||
handleBy,
|
||||
handleTime,
|
||||
handleRemark
|
||||
}).then(() => {
|
||||
this.loading = false
|
||||
this.handleRemarkDialogVisible = false
|
||||
this.$modal.msgSuccess('批量处理成功')
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
} else if (this.handleRemarkMode === 'history') {
|
||||
batchHandleHistory({
|
||||
warningStatus: 1,
|
||||
handleBy,
|
||||
handleTime,
|
||||
handleRemark
|
||||
}).then(() => {
|
||||
this.loading = false
|
||||
this.handleRemarkDialogVisible = false
|
||||
this.$modal.msgSuccess('处理历史告警成功')
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const warningIds = row.warningId || this.ids;
|
||||
const warningIds = row.warningId || this.ids
|
||||
this.$modal.confirm('是否确认删除钢卷告警编号为"' + warningIds + '"的数据项?').then(() => {
|
||||
this.loading = true;
|
||||
return delMaterialWarning(warningIds);
|
||||
this.loading = true
|
||||
return delMaterialWarning(warningIds)
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
this.loading = false
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
@@ -548,7 +653,7 @@ export default {
|
||||
}, `materialWarning_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.el-table .warning-row-length {
|
||||
@@ -557,4 +662,57 @@ export default {
|
||||
.el-table .warning-row-thickness {
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
|
||||
.status-cell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 4px 0;
|
||||
}
|
||||
.status-detail {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
.status-remark {
|
||||
font-size: 13px;
|
||||
color: #303133;
|
||||
line-height: 1.5;
|
||||
margin-bottom: 4px;
|
||||
font-weight: 500;
|
||||
word-break: break-all;
|
||||
}
|
||||
.status-meta {
|
||||
font-size: 11px;
|
||||
color: #909399;
|
||||
letter-spacing: 0.3px;
|
||||
}
|
||||
|
||||
.handle-detail {
|
||||
padding: 12px 0;
|
||||
}
|
||||
.handle-remark-body {
|
||||
font-size: 15px;
|
||||
color: #303133;
|
||||
line-height: 1.8;
|
||||
margin-bottom: 12px;
|
||||
padding: 12px 16px;
|
||||
background: #fafafa;
|
||||
border-radius: 0 6px 6px 0;
|
||||
font-style: italic;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
.handle-meta-row {
|
||||
font-size: 13px;
|
||||
color: #909399;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
justify-content: flex-start;
|
||||
letter-spacing: 0.4px;
|
||||
}
|
||||
.handle-meta-sep {
|
||||
color: #c0c4cc;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -83,6 +83,14 @@
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="业务员" prop="saleName">
|
||||
<el-input v-model="queryParams.saleName" placeholder="请输入业务员" clearable size="small" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="合同号" prop="contractNo">
|
||||
<el-input v-model="queryParams.contractNo" placeholder="请输入合同号" clearable size="small" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="showWaybill" label="发货状态">
|
||||
<el-radio-group v-model="queryParams.status" @change="handleQuery">
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
@@ -136,13 +144,11 @@
|
||||
<el-button type="info" plain icon="el-icon-download" size="mini" @click="handleExportAllProps">导出全部</el-button>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="2" v-if="canExportAll">
|
||||
<!-- <el-col :span="2" v-if="canExportAll">
|
||||
<el-button type="info" plain icon="el-icon-printer" size="mini" :disabled="multiple"
|
||||
@click="handleBatchPrintLabel">批量打印标签</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="2" v-if="showWaybill">
|
||||
|
||||
</el-col> -->
|
||||
|
||||
<el-col :span="1.5" v-if="showOrderBy">
|
||||
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList"
|
||||
label="orderBy">按实际库区排序</el-checkbox>
|
||||
@@ -187,6 +193,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="业务员" align="center" prop="saleName" width="60" />
|
||||
<el-table-column label="合同号" align="center" prop="contractNo" width="120" />
|
||||
<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">
|
||||
@@ -223,7 +230,7 @@
|
||||
<el-table-column v-if="moreColumn" label="材质" prop="material"></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="厂家" prop="manufacturer"></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="表面处理" prop="surfaceTreatmentDesc"></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="品质" prop="qualityStatus"></el-table-column>
|
||||
<el-table-column label="品质" prop="qualityStatus"></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="备注" prop="remark" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="切边" prop="trimmingRequirement"></el-table-column>
|
||||
<el-table-column v-if="moreColumn" label="包装" prop="packagingRequirement"></el-table-column>
|
||||
@@ -402,111 +409,219 @@
|
||||
@pagination="getList" />
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 添加或修改钢卷物料对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="入场钢卷号" prop="enterCoilNo">
|
||||
<el-input v-model="form.enterCoilNo" placeholder="请输入入场钢卷号" :disabled="form.coilId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="当前钢卷号" prop="currentCoilNo">
|
||||
<el-input v-model="form.currentCoilNo" placeholder="请输入当前钢卷号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="厂家原料卷号" prop="supplierCoilNo">
|
||||
<el-input v-model="form.supplierCoilNo" placeholder="请输入厂家原料卷号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所在库位" prop="warehouseId">
|
||||
<warehouse-select v-model="form.warehouseId" placeholder="请选择仓库/库区/库位" style="width: 100%;" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="实际库区" prop="actualWarehouseId">
|
||||
<actual-warehouse-select v-model="form.actualWarehouseId" :clearInput="form.coilId != null"
|
||||
placeholder="请选择实际库区" style="width: 100%;" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" prop="team">
|
||||
<el-select v-model="form.team" placeholder="请选择班组" style="width: 100%">
|
||||
<el-option key="甲" label="甲" value="甲" />
|
||||
<el-option key="乙" label="乙" value="乙" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="材料类型" prop="materialType">
|
||||
<el-select v-model="form.materialType" placeholder="请选择材料类型" @change="handleMaterialTypeChange">
|
||||
<el-option label="成品" value="成品" />
|
||||
<el-option label="原料" value="原料" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="getItemLabel" prop="itemId">
|
||||
<product-select v-if="form.itemType == 'product'" v-model="form.itemId" placeholder="请选择成品"
|
||||
style="width: 100%;" clearable />
|
||||
<raw-material-select v-else-if="form.itemType == 'raw_material'" v-model="form.itemId" placeholder="请选择原料"
|
||||
style="width: 100%;" clearable />
|
||||
<div v-else>请先选择材料类型</div>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="质量状态" prop="qualityStatus">
|
||||
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="切边要求" prop="trimmingRequirement">
|
||||
<el-select v-model="form.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%">
|
||||
<el-option label="净边料" value="净边料" />
|
||||
<el-option label="毛边料" value="毛边料" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="原料材质" prop="packingStatus">
|
||||
<el-input v-model="form.packingStatus" placeholder="请输入原料材质">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="包装要求" prop="packagingRequirement">
|
||||
<el-select v-model="form.packagingRequirement" placeholder="请选择包装要求" style="width: 100%">
|
||||
<el-option label="裸包" value="裸包" />
|
||||
<el-option label="普包" value="普包" />
|
||||
<el-option label="简包" value="简包" />
|
||||
<el-option label="精包" value="精包" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="毛重" prop="grossWeight">
|
||||
<el-input v-model="form.grossWeight" placeholder="请输入毛重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="净重" prop="netWeight">
|
||||
<el-input v-model="form.netWeight" placeholder="请输入净重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度" prop="length" v-if="showLength">
|
||||
<el-input v-model="form.length" placeholder="请输入长度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实测长度(m)" prop="actualLength">
|
||||
<el-input-number :controls="false" v-model="form.actualLength" placeholder="请输入实测长度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实测厚度(mm)" prop="actualThickness" class="form-item-half">
|
||||
<el-input-number :controls="false" v-model="form.actualThickness" placeholder="请输入实测厚度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实测宽度(mm)" prop="actualWidth">
|
||||
<el-input-number :controls="false" v-model="form.actualWidth" placeholder="请输入实测宽度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="form.businessPurpose" placeholder="业务目的" filterable>
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="镀层种类" prop="coatingType">
|
||||
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
|
||||
</el-form-item>
|
||||
<el-form-item label="钢卷表面处理" prop="coilSurfaceTreatment">
|
||||
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.coilSurfaceTreatment" placeholder="请输入钢卷表面处理" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="入场钢卷号" prop="enterCoilNo">
|
||||
<el-input v-model="form.enterCoilNo" placeholder="请输入入场钢卷号" :disabled="!!form.coilId" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="当前钢卷号" prop="currentCoilNo">
|
||||
<el-input v-model.trim="form.currentCoilNo" placeholder="请输入当前钢卷号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="厂家原料卷号" prop="supplierCoilNo">
|
||||
<el-input v-model.trim="form.supplierCoilNo" placeholder="请输入厂家原料卷号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所在库位" prop="warehouseId">
|
||||
<warehouse-select v-model="form.warehouseId" placeholder="请选择仓库/库区/库位" style="width: 100%;" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="实际库区" prop="actualWarehouseId">
|
||||
<actual-warehouse-select v-model="form.actualWarehouseId" placeholder="请选择实际库区" style="width: 100%;"
|
||||
clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="班组" prop="team">
|
||||
<el-select v-model="form.team" placeholder="请选择班组" style="width: 100%">
|
||||
<el-option key="甲" label="甲" value="甲" />
|
||||
<el-option key="乙" label="乙" value="乙" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="材料类型" prop="materialType">
|
||||
<el-select v-model="form.materialType" placeholder="请选择材料类型" @change="handleMaterialTypeChange">
|
||||
<el-option label="成品" value="成品" />
|
||||
<el-option label="原料" value="原料" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="getItemLabel" prop="itemId">
|
||||
<product-select v-if="form.itemType == 'product'" v-model="form.itemId" placeholder="请选择成品"
|
||||
style="width: 100%;" clearable />
|
||||
<raw-material-select v-else-if="form.itemType == 'raw_material'" v-model="form.itemId" placeholder="请选择原料"
|
||||
style="width: 100%;" clearable />
|
||||
<div v-else>请先选择材料类型</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="质量状态" prop="qualityStatus">
|
||||
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="切边要求" prop="trimmingRequirement">
|
||||
<el-select v-model="form.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%">
|
||||
<el-option label="净边料" value="净边料" />
|
||||
<el-option label="毛边料" value="毛边料" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="原料材质" prop="packingStatus">
|
||||
<el-input v-model="form.packingStatus" placeholder="请输入原料材质" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="包装要求" prop="packagingRequirement">
|
||||
<el-select v-model="form.packagingRequirement" placeholder="请选择包装要求" style="width: 100%">
|
||||
<el-option label="裸包" value="裸包" />
|
||||
<el-option label="普包" value="普包" />
|
||||
<el-option label="简包" value="简包" />
|
||||
<el-option label="精包" value="精包" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="毛重" prop="grossWeight">
|
||||
<el-input v-model="form.grossWeight" placeholder="请输入毛重" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="净重" prop="netWeight">
|
||||
<el-input v-model="form.netWeight" placeholder="请输入净重" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="实测长度(mm)" prop="actualLength">
|
||||
<el-input-number :controls="false" v-model="form.actualLength" placeholder="请输入实测长度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="实测宽度(mm)" prop="actualWidth">
|
||||
<el-input-number :controls="false" v-model="form.actualWidth" placeholder="请输入实测宽度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="实测厚度(mm)" prop="actualThickness">
|
||||
<el-input-number :controls="false" v-model="form.actualThickness" placeholder="请输入实测厚度" type="number"
|
||||
:step="0.01" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="业务目的" prop="businessPurpose">
|
||||
<el-select v-model="form.businessPurpose" placeholder="请选择业务目的" style="width: 100%">
|
||||
<el-option v-for="item in dict.type.coil_business_purpose" :key="item.value" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="调制度" prop="temperGrade">
|
||||
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="镀层种类" prop="coatingType">
|
||||
<MemoInput storageKey="coatingType" v-model="form.coatingType" placeholder="请输入镀层种类" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="钢卷表面处理" prop="coilSurfaceTreatment">
|
||||
<MemoInput storageKey="surfaceTreatmentDesc" v-model="form.coilSurfaceTreatment" placeholder="请输入钢卷表面处理" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="排产厚度(mm)" prop="scheduleThickness">
|
||||
<el-input-number :controls="false" v-model="form.scheduleThickness" placeholder="请输入排产厚度" type="number"
|
||||
:step="0.001" style="width: 100%;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="生产开始时间" prop="productionStartTime">
|
||||
<TimeInput v-model="form.productionStartTime" @input="calculateFormProductionDuration" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="生产结束时间" prop="productionEndTime">
|
||||
<TimeInput v-model="form.productionEndTime" @input="calculateFormProductionDuration" :show-now-button="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="生产耗时" prop="productionDuration">
|
||||
<el-input v-model="form.formattedDuration" placeholder="自动计算" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="form.coilId">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker v-model="form.createTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择创建时间" style="width: 100%;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="创建人" prop="createBy">
|
||||
<el-select v-model="form.createBy" placeholder="请选择创建人" style="width: 100%;" clearable filterable>
|
||||
<el-option v-for="item in userList" :key="item.userName" :label="item.nickName" :value="item.userName" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" v-if="form.coilId">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="绑定合同" prop="contractId">
|
||||
<div style="display: flex; gap: 10px; width: 100%;">
|
||||
<contract-select v-model="form.contractId" placeholder="请选择合同" style="flex: 1;" clearable mode="all" />
|
||||
<el-button type="success" :loading="contractLoading" @click="saveContractRel">保存合同</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
@@ -848,9 +963,12 @@ 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 TimeInput from "@/components/TimeInput";
|
||||
import ContractSelect from "@/components/KLPService/ContractSelect";
|
||||
import { listDeliveryWaybillDetail, delDeliveryWaybillDetail } from "@/api/wms/deliveryWaybillDetail";
|
||||
import { listDeliveryPlan } from "@/api/wms/deliveryPlan";
|
||||
import { addCoilQualityRejudge } from "@/api/wms/coilQualityRejudge";
|
||||
import { listCoilContractRel, addCoilContractRel, updateCoilContractRel } from "@/api/wms/coilContractRel";
|
||||
|
||||
export default {
|
||||
name: "MaterialCoil",
|
||||
@@ -874,6 +992,8 @@ export default {
|
||||
ProcessFlow,
|
||||
DragResizeBox,
|
||||
WarehouseTree,
|
||||
TimeInput,
|
||||
ContractSelect,
|
||||
},
|
||||
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status', 'wms_next_warehouse', 'coil_business_purpose'],
|
||||
props: {
|
||||
@@ -1006,6 +1126,8 @@ export default {
|
||||
},
|
||||
// 按钮loading
|
||||
buttonLoading: false,
|
||||
contractLoading: false,
|
||||
contractRelId: null,
|
||||
showProcessFlow: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
@@ -1245,9 +1367,7 @@ export default {
|
||||
},
|
||||
},
|
||||
created() {
|
||||
if (this.showExportTime) {
|
||||
this.getUserList();
|
||||
}
|
||||
this.getUserList();
|
||||
if (this.useWarehouseIds) {
|
||||
this.warehouseIds = this.warehouseOptions.map(item => item.value).join(',');
|
||||
}
|
||||
@@ -1725,6 +1845,25 @@ export default {
|
||||
this.$set(this.productionTimeForm, 'formattedDuration', '');
|
||||
}
|
||||
},
|
||||
// 计算表单中的生产耗时
|
||||
calculateFormProductionDuration() {
|
||||
const { productionStartTime, productionEndTime } = this.form;
|
||||
if (productionStartTime && productionEndTime) {
|
||||
const start = new Date(productionStartTime).getTime();
|
||||
const end = new Date(productionEndTime).getTime();
|
||||
if (end < start) {
|
||||
this.form.productionDuration = '';
|
||||
this.form.formattedDuration = '';
|
||||
} else {
|
||||
const durationMs = end - start;
|
||||
this.form.productionDuration = Math.round(durationMs / (1000 * 60));
|
||||
this.form.formattedDuration = this.formatDuration(durationMs);
|
||||
}
|
||||
} else {
|
||||
this.form.productionDuration = '';
|
||||
this.form.formattedDuration = '';
|
||||
}
|
||||
},
|
||||
// 处理生产时间提交
|
||||
submitProductionTimeForm() {
|
||||
this.$refs.productionTimeForm.validate((valid) => {
|
||||
@@ -1986,6 +2125,45 @@ export default {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
loadContractRel(coilId) {
|
||||
if (!coilId) {
|
||||
this.contractRelId = null;
|
||||
this.$set(this.form, 'contractId', null);
|
||||
return;
|
||||
}
|
||||
listCoilContractRel({ coilId }).then(res => {
|
||||
const rows = res.rows || [];
|
||||
if (rows.length > 0) {
|
||||
this.contractRelId = rows[0].relId;
|
||||
this.$set(this.form, 'contractId', rows[0].contractId);
|
||||
} else {
|
||||
this.contractRelId = null;
|
||||
this.$set(this.form, 'contractId', null);
|
||||
}
|
||||
});
|
||||
},
|
||||
saveContractRel() {
|
||||
this.contractLoading = true;
|
||||
listCoilContractRel({ coilId: this.form.coilId }).then(res => {
|
||||
const rows = res.rows || [];
|
||||
if (rows.length > 0) {
|
||||
return updateCoilContractRel({
|
||||
relId: rows[0].relId,
|
||||
coilId: this.form.coilId,
|
||||
contractId: this.form.contractId
|
||||
});
|
||||
} else {
|
||||
return addCoilContractRel({
|
||||
coilId: this.form.coilId,
|
||||
contractId: this.form.contractId
|
||||
});
|
||||
}
|
||||
}).then(() => {
|
||||
this.$message.success('合同绑定保存成功');
|
||||
}).finally(() => {
|
||||
this.contractLoading = false;
|
||||
});
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
@@ -2013,6 +2191,15 @@ export default {
|
||||
materialType: '原料',
|
||||
temperGrade: undefined,
|
||||
coatingType: undefined,
|
||||
qualityStatus: undefined,
|
||||
actualLength: undefined,
|
||||
actualWidth: undefined,
|
||||
scheduleThickness: undefined,
|
||||
productionStartTime: undefined,
|
||||
productionEndTime: undefined,
|
||||
productionDuration: undefined,
|
||||
formattedDuration: undefined,
|
||||
contractId: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
@@ -2072,6 +2259,12 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.form.productionDuration) {
|
||||
this.form.formattedDuration = this.formatDuration(this.form.productionDuration * 60 * 1000);
|
||||
}
|
||||
|
||||
this.loadContractRel(coilId);
|
||||
|
||||
this.open = true;
|
||||
this.title = "修改钢卷物料";
|
||||
});
|
||||
@@ -2178,6 +2371,12 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.form.productionDuration) {
|
||||
this.form.formattedDuration = this.formatDuration(this.form.productionDuration * 60 * 1000);
|
||||
}
|
||||
|
||||
this.loadContractRel(coilId);
|
||||
|
||||
this.open = true;
|
||||
this.title = "修改钢卷物料";
|
||||
});
|
||||
|
||||
@@ -41,14 +41,15 @@
|
||||
<muti-select v-model="queryParams.qualityStatusCsv" :options="dict.type.coil_quality_status"
|
||||
placeholder="请选择品质" clearable />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="导出模式" prop="abnormalExportCount">
|
||||
<el-radio-group v-model="abnormalExportCount">
|
||||
<el-radio-button :label="0">多行导出</el-radio-button>
|
||||
<el-radio-button :label="1">单行拼接</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="业务员" prop="saleName">
|
||||
<el-input style="width: 200px;" v-model="queryParams.saleName" placeholder="请输入业务员" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同号" prop="contractNo">
|
||||
<el-input style="width: 200px;" v-model="queryParams.contractNo" placeholder="请输入合同号" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- <el-button type="primary" @click="getList">查询</el-button> -->
|
||||
<el-dropdown split-button type="primary" @click="getList" @command="handleCommand">
|
||||
查询
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
@@ -57,14 +58,8 @@
|
||||
|
||||
<el-dropdown-item command="exportDataMore">导出产出钢卷(多行)</el-dropdown-item>
|
||||
<el-dropdown-item command="exportLossDataMore">导出消耗钢卷(多行)</el-dropdown-item>
|
||||
<!-- <el-dropdown-item command="saveOutputReport">保存产出报表</el-dropdown-item>
|
||||
<el-dropdown-item command="saveLossReport">保存消耗报表</el-dropdown-item> -->
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<!-- <el-button type="primary" @click="exportData">导出产出钢卷</el-button>
|
||||
<el-button type="primary" @click="exportLossData">导出消耗钢卷</el-button>
|
||||
<el-button type="primary" @click="saveOutputReport">保存产出报表</el-button>
|
||||
<el-button type="primary" @click="saveLossReport">保存消耗报表</el-button> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-row>
|
||||
|
||||
@@ -38,6 +38,15 @@
|
||||
<muti-select v-model="queryParams.qualityStatusCsv" :options="dict.type.coil_quality_status"
|
||||
placeholder="请选择品质" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务员" prop="saleName">
|
||||
<el-input style="width: 200px;" v-model="queryParams.saleName" placeholder="请输入业务员" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同号" prop="contractNo">
|
||||
<el-input style="width: 200px;" v-model="queryParams.contractNo" placeholder="请输入合同号" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="endTime">
|
||||
<el-button type="primary" @click="getList">查询</el-button>
|
||||
<el-button type="primary" @click="exportData">导出</el-button>
|
||||
|
||||
@@ -99,6 +99,12 @@
|
||||
<warehouse-select v-model="queryParams.warehouseId" placeholder="请选择仓库/库区/库位"
|
||||
style="width: 100%; display: inline-block; width: 200px;" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务员" prop="saleName">
|
||||
<el-input v-model="queryParams.saleName" placeholder="请输入业务员" clearable size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同号" prop="contractNo">
|
||||
<el-input v-model="queryParams.contractNo" placeholder="请输入合同号" clearable size="small" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-form-item label="入场钢卷号" prop="enterCoilNo">
|
||||
@@ -134,6 +140,12 @@
|
||||
<muti-select v-model="queryParams.qualityStatusCsv" :options="dict.type.coil_quality_status"
|
||||
placeholder="请选择品质" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务员" prop="saleName">
|
||||
<el-input v-model="queryParams.saleName" placeholder="请输入业务员" clearable size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="合同号" prop="contractNo">
|
||||
<el-input v-model="queryParams.contractNo" placeholder="请输入合同号" clearable size="small" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||
@@ -541,7 +553,7 @@ export default {
|
||||
'材质属性': ['material', 'manufacturer', 'surfaceTreatmentDesc', 'zincLayer', 'packingStatus', 'temperGrade', 'coatingType', 'chromePlateCoilNo'],
|
||||
'用途': ['purpose', 'businessPurpose'],
|
||||
'状态': ['qualityStatus', 'statusDesc', 'isRelatedToOrderText'],
|
||||
'其他': ['itemName', 'itemId', 'packagingRequirement', 'trimmingRequirement', 'transferType', 'saleName', 'remark', 'team'],
|
||||
'其他': ['itemName', 'itemId', 'packagingRequirement', 'trimmingRequirement', 'transferType', 'contractNo', 'saleName', 'remark', 'team'],
|
||||
},
|
||||
queryParams: {
|
||||
startTime: start,
|
||||
|
||||
Reference in New Issue
Block a user