Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
This commit is contained in:
@@ -157,6 +157,22 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 合卷操作区 -->
|
||||
<div class="card-section" v-if="mergeTypes.length > 0">
|
||||
<div class="section-title">合卷操作</div>
|
||||
<div class="action-cards-row">
|
||||
<div v-for="item in mergeTypes" :key="item.value" class="action-card"
|
||||
:class="{ 'active': form.actionType == item.value }" @click="form.actionType = parseInt(item.value)">
|
||||
<div class="card-icon">
|
||||
<i :class="getActionIcon(item.value)"></i>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<div class="card-title">{{ item.label }}</div>
|
||||
<div class="card-desc">{{ item.remark || '钢卷操作' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 其他操作区 -->
|
||||
<div class="card-section" v-if="otherTypes.length > 0">
|
||||
<div class="section-title">其他操作</div>
|
||||
@@ -270,12 +286,20 @@ export default {
|
||||
return value >= 100 && value <= 199;
|
||||
});
|
||||
},
|
||||
// 合卷操作列表(200-299)
|
||||
mergeTypes() {
|
||||
if (!this.dict.type.action_type) return [];
|
||||
return this.dict.type.action_type.filter(item => {
|
||||
const value = parseInt(item.value);
|
||||
return value >= 200 && value <= 299;
|
||||
});
|
||||
},
|
||||
// 其他操作列表(200-299等)
|
||||
otherTypes() {
|
||||
if (!this.dict.type.action_type) return [];
|
||||
return this.dict.type.action_type.filter(item => {
|
||||
const value = parseInt(item.value);
|
||||
return value < 100 || value > 199;
|
||||
return value < 100 || value > 299;
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
@@ -415,6 +415,7 @@ import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect
|
||||
import ProductSelect from "@/components/KLPService/ProductSelect";
|
||||
import RawMaterialSelect from "@/components/KLPService/RawMaterialSelect";
|
||||
import CoilTraceResult from "../panels/CoilTraceResult.vue";
|
||||
import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint'
|
||||
|
||||
export default {
|
||||
name: 'DoPage',
|
||||
@@ -753,10 +754,8 @@ export default {
|
||||
/** 预览标签 */
|
||||
handlePreviewLabel(row) {
|
||||
this.labelRender.visible = true;
|
||||
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
|
||||
const itemName = row.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
||||
|
||||
this.labelRender.type = row.itemType === 'product' ? '3' : '2'
|
||||
const type = getCoilTagPrintType(row);
|
||||
this.labelRender.type = type;
|
||||
this.labelRender.data = {
|
||||
...row,
|
||||
itemName: itemName,
|
||||
|
||||
@@ -107,7 +107,8 @@
|
||||
|
||||
<el-table-column label="完成时间" align="center" prop="completeTime" width="220" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker @change="handleProcessTimeChange(scope.row)" value-format="yyyy-MM-dd HH:mm:ss" style="width: 200px" v-model="scope.row.completeTime" type="datetime" placeholder="选择完成时间" />
|
||||
<el-date-picker @change="handleProcessTimeChange(scope.row)" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 200px" v-model="scope.row.completeTime" type="datetime" placeholder="选择完成时间" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -129,8 +130,10 @@
|
||||
</template> -->
|
||||
<!-- 已完成或已取消状态显示删除按钮 -->
|
||||
<template v-if="scope.row.actionStatus === 2 || scope.row.actionStatus === 3">
|
||||
<el-button v-if="scope.row.delFlag == 0" size="mini" type="danger" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-if="scope.row.delFlag == 2" size="mini" type="success" icon="el-icon-refresh" @click="handleRestore(scope.row)">还原</el-button>
|
||||
<el-button v-if="scope.row.delFlag == 0" size="mini" type="danger" icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-if="scope.row.delFlag == 2" size="mini" type="success" icon="el-icon-refresh"
|
||||
@click="handleRestore(scope.row)">还原</el-button>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -165,6 +168,23 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 合卷操作区 -->
|
||||
<div class="card-section" v-if="mergeTypes.length > 0">
|
||||
<div class="section-title">合卷操作</div>
|
||||
<div class="action-cards-row">
|
||||
<div v-for="item in mergeTypes" :key="item.value" class="action-card"
|
||||
:class="{ 'active': form.actionType == item.value }" @click="form.actionType = parseInt(item.value)">
|
||||
<div class="card-icon">
|
||||
<i :class="getActionIcon(item.value)"></i>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<div class="card-title">{{ item.label }}</div>
|
||||
<div class="card-desc">{{ item.remark || '钢卷操作' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 其他操作区 -->
|
||||
<div class="card-section" v-if="otherTypes.length > 0">
|
||||
<div class="section-title">其他操作</div>
|
||||
@@ -195,7 +215,8 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm" :disabled="buttonLoading" v-loading="buttonLoading">确 定</el-button>
|
||||
<el-button type="primary" @click="submitForm" :disabled="buttonLoading" v-loading="buttonLoading">确
|
||||
定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@@ -279,12 +300,20 @@ export default {
|
||||
return value >= 100 && value <= 199;
|
||||
});
|
||||
},
|
||||
// 合卷操作列表(200-299)
|
||||
mergeTypes() {
|
||||
if (!this.dict.type.action_type) return [];
|
||||
return this.dict.type.action_type.filter(item => {
|
||||
const value = parseInt(item.value);
|
||||
return value >= 200 && value <= 299;
|
||||
});
|
||||
},
|
||||
// 其他操作列表(200-299等)
|
||||
otherTypes() {
|
||||
if (!this.dict.type.action_type) return [];
|
||||
return this.dict.type.action_type.filter(item => {
|
||||
const value = parseInt(item.value);
|
||||
return value < 100 || value > 199;
|
||||
return value < 100 || value > 299;
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -472,7 +501,7 @@ export default {
|
||||
}
|
||||
else if (actionType < 100) {
|
||||
path = '/wms/typing';
|
||||
}
|
||||
}
|
||||
// 其他操作类型
|
||||
else {
|
||||
this.$message.error('特殊操作请到专门的页面进行处理');
|
||||
@@ -754,6 +783,3 @@ export default {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
46
klp-ui/src/views/wms/coil/js/coilPrint.js
Normal file
46
klp-ui/src/views/wms/coil/js/coilPrint.js
Normal file
@@ -0,0 +1,46 @@
|
||||
const ECoilPrintType = {
|
||||
'原料标签': '2',
|
||||
'成品标签': '3',
|
||||
'镀锌成品': '4',
|
||||
'镀铬成品': 'ge',
|
||||
'镀锌原料': '5',
|
||||
'脱脂原料': '6'
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据钢卷信息获取打印的标签类型
|
||||
* @param {*} coil 钢卷信息
|
||||
* @returns 打印的标签类型
|
||||
*/
|
||||
export const getCoilTagPrintType = (coil) => {
|
||||
const item = coil.itemType === 'product' ? coil.product : coil.rawMaterial;
|
||||
const itemName = coil.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
||||
const itemType = coil.itemType || '';
|
||||
const warehouseId = coil.warehouseId || '';
|
||||
|
||||
let type = '2'
|
||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
||||
type = ECoilPrintType['镀锌原料'];
|
||||
}
|
||||
// 脱脂原料库
|
||||
else if (itemType == 'raw_material' && (warehouseId == '1988150545175736322')) {
|
||||
type = ECoilPrintType['脱脂原料'];
|
||||
}
|
||||
else if (itemType == 'raw_material') {
|
||||
type = ECoilPrintType['原料标签'];
|
||||
} else if (itemType == 'product' && itemName == '冷硬卷') {
|
||||
type = ECoilPrintType['成品标签'];
|
||||
} else if (itemType == 'product' && itemName == '热轧卷板') {
|
||||
type = ECoilPrintType['成品标签'];
|
||||
} else if (itemType == 'product' && itemName == '镀锌卷') {
|
||||
type = ECoilPrintType['镀锌成品'];
|
||||
} else if (itemType == 'product' && itemName == '冷轧卷') {
|
||||
type = ECoilPrintType['成品标签'];
|
||||
} else if (itemType == 'product' && itemName == '镀铬卷') {
|
||||
type = ECoilPrintType['镀铬成品'];
|
||||
} else {
|
||||
type = ECoilPrintType['成品标签'];
|
||||
}
|
||||
return type
|
||||
}
|
||||
@@ -102,11 +102,11 @@
|
||||
<div class="target-coil-body">
|
||||
<el-form size="small" label-width="80px" :model="targetCoil" :rules="rules">
|
||||
<div class="form-row">
|
||||
<el-form-item label="卷号" class="form-item-half">
|
||||
<el-form-item label="卷号" class="form-item-half" prop="currentCoilNo">
|
||||
<el-input v-model="targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly"></el-input>
|
||||
<current-coil-no :current-coil-no="targetCoil.currentCoilNo" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" class="form-item-half">
|
||||
<el-form-item label="班组" class="form-item-half" prop="team">
|
||||
<el-select v-model="targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly">
|
||||
<el-option key="甲" label="甲" value="甲" />
|
||||
<el-option key="乙" label="乙" value="乙" />
|
||||
@@ -115,14 +115,14 @@
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<el-form-item label="材料类型" class="form-item-half">
|
||||
<el-form-item label="材料类型" class="form-item-half" prop="materialType">
|
||||
<el-select v-model="targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
|
||||
:disabled="readonly" @change="handleMaterialTypeChange">
|
||||
<el-option label="原料" value="原料" />
|
||||
<el-option label="成品" value="成品" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="getItemLabel" class="form-item-half">
|
||||
<el-form-item :label="getItemLabel" class="form-item-half" prop="itemId">
|
||||
<raw-material-selector v-if="targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
|
||||
placeholder="请选择原料" style="width: 100%" clearable
|
||||
:disabled="readonly || !targetCoil.materialType" />
|
||||
@@ -166,13 +166,13 @@
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<el-form-item label="毛重(t)" class="form-item-half">
|
||||
<el-form-item label="毛重(t)" prop="grossWeight" class="form-item-half">
|
||||
<el-input-number precision="3" :controls="false" v-model="targetCoil.grossWeight" placeholder="请输入毛重"
|
||||
type="number" :step="0.01" :disabled="readonly">
|
||||
<template slot="append">吨</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="净重(t)" class="form-item-half">
|
||||
<el-form-item label="净重(t)" prop="netWeight" class="form-item-half">
|
||||
<el-input-number precision="3" :controls="false" v-model="targetCoil.netWeight" placeholder="请输入净重"
|
||||
type="number" :step="0.01" :disabled="readonly">
|
||||
<template slot="append">吨</template>
|
||||
@@ -181,7 +181,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<el-form-item label="长度(m)" class="form-item-half">
|
||||
<el-form-item label="长度(m)" prop="length" class="form-item-half">
|
||||
<el-input-number :controls="false" v-model="targetCoil.length" placeholder="请输入长度" type="number"
|
||||
:step="0.01" :disabled="readonly">
|
||||
<template slot="append">米</template>
|
||||
@@ -211,7 +211,7 @@
|
||||
<el-form-item label="镀层种类" prop="coatingType" class="form-item-half">
|
||||
<MemoInput storageKey="coatingType" v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
|
||||
</el-form-item>
|
||||
<el-form-item label="逻辑库区" class="form-item-half">
|
||||
<el-form-item label="逻辑库区" prop="warehouseId" class="form-item-half">
|
||||
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -272,7 +272,35 @@ export default {
|
||||
actualWidth: undefined,
|
||||
},
|
||||
rules: {
|
||||
|
||||
currentCoilNo: [
|
||||
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" },
|
||||
{
|
||||
// 当前钢卷号必须大于等于10位
|
||||
validator: (rule, value, callback) => {
|
||||
if (value.length < 10) {
|
||||
callback(new Error('当前钢卷号必须大于等于10位'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}, trigger: 'blur'
|
||||
},
|
||||
],
|
||||
team: [
|
||||
{ required: true, message: "班组不能为空", trigger: "change" }
|
||||
],
|
||||
materialType: [
|
||||
{ required: true, message: "材料类型不能为空", trigger: "change" }
|
||||
],
|
||||
itemId: [
|
||||
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
||||
],
|
||||
itemType: [
|
||||
{ required: true, message: "物品类型不能为空", trigger: "change" }
|
||||
],
|
||||
// 净重和毛重
|
||||
netWeight: [
|
||||
{ required: true, message: "净重不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
buttonLoading: false,
|
||||
loading: false,
|
||||
|
||||
@@ -446,6 +446,7 @@ import { PDFDocument } from 'pdf-lib';
|
||||
import { listUser } from "@/api/system/user";
|
||||
import AbnormalList from "./abnormal.vue";
|
||||
import LogTable from "@/views/wms/warehouse/components/LogTable.vue";
|
||||
import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint'
|
||||
|
||||
export default {
|
||||
name: "MaterialCoil",
|
||||
@@ -811,33 +812,8 @@ export default {
|
||||
},
|
||||
// 打印标签
|
||||
handlePrintLabel(row) {
|
||||
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
|
||||
const itemName = row.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
||||
const itemType = row.itemType || '';
|
||||
const warehouseId = row.warehouseId || '';
|
||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
||||
this.labelRender.type = '5';
|
||||
}
|
||||
// 脱脂原料库
|
||||
else if (itemType == 'raw_material' && (warehouseId == '1988150545175736322')) {
|
||||
this.labelRender.type = '6';
|
||||
}
|
||||
else if (itemType == 'raw_material') {
|
||||
this.labelRender.type = '2';
|
||||
} else if (itemType == 'product' && itemName == '冷硬卷') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '热轧卷板') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '镀锌卷') {
|
||||
this.labelRender.type = '4';
|
||||
} else if (itemType == 'product' && itemName == '冷轧卷') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '镀铬卷') {
|
||||
this.labelRender.type = 'ge';
|
||||
} else {
|
||||
this.labelRender.type = '3';
|
||||
}
|
||||
const type = getCoilTagPrintType(row);
|
||||
this.labelRender.type = type;
|
||||
this.labelRender.data = {
|
||||
...row,
|
||||
itemName: itemName,
|
||||
|
||||
@@ -494,6 +494,7 @@ import RawMaterialInfo from '@/components/KLPService/Renderer/RawMaterialInfo'
|
||||
import { addCoilAbnormal } from '@/api/wms/coilAbnormal'
|
||||
import LabelRender from './LabelRender/index.vue'
|
||||
import StepSplit from './stepSplit.vue'
|
||||
import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint'
|
||||
|
||||
export default {
|
||||
name: 'DoPage',
|
||||
@@ -715,33 +716,8 @@ export default {
|
||||
parseTime,
|
||||
// 打印标签
|
||||
handlePrintLabel(row) {
|
||||
const item = row.itemType === 'product' ? row.product : row.rawMaterial;
|
||||
const itemName = row.itemType === 'product' ? item?.productName || '' : item?.rawMaterialName || '';
|
||||
const itemType = row.itemType || '';
|
||||
const warehouseId = row.warehouseId || '';
|
||||
// 在镀锌颜料库的卷使用镀锌原料标签
|
||||
if (itemType == 'raw_material' && (warehouseId == '1988150263284953089' || warehouseId == '1988150487185289217')) {
|
||||
this.labelRender.type = '5';
|
||||
}
|
||||
// 脱脂原料库
|
||||
else if (itemType == 'raw_material' && (warehouseId == '1988150545175736322')) {
|
||||
this.labelRender.type = '6';
|
||||
}
|
||||
else if (itemType == 'raw_material') {
|
||||
this.labelRender.type = '2';
|
||||
} else if (itemType == 'product' && itemName == '冷硬卷') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '热轧卷板') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '镀锌卷') {
|
||||
this.labelRender.type = '4';
|
||||
} else if (itemType == 'product' && itemName == '冷轧卷') {
|
||||
this.labelRender.type = '3';
|
||||
} else if (itemType == 'product' && itemName == '镀铬卷') {
|
||||
this.labelRender.type = 'ge';
|
||||
} else {
|
||||
this.labelRender.type = '3';
|
||||
}
|
||||
const type = getCoilTagPrintType(row);
|
||||
this.labelRender.type = type;
|
||||
this.labelRender.data = {
|
||||
...row,
|
||||
itemName: itemName,
|
||||
|
||||
Reference in New Issue
Block a user