feat(wms): 新增钢卷异常管理功能
添加钢卷异常信息管理模块,包括异常记录、查询和展示功能 - 新增异常信息列表页面和详情页面 - 在钢卷管理页面添加异常数量显示和操作入口 - 实现异常信息的增删改查API接口 - 在领料页面添加异常标记和操作按钮 - 添加相关字典数据用于异常信息分类
This commit is contained in:
@@ -99,6 +99,7 @@
|
||||
</RawMaterialInfo>
|
||||
</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="updateTime" />
|
||||
<el-table-column label="发货时间" align="center" v-if="showExportTime" prop="exportTime" />
|
||||
<el-table-column label="更新人" align="center" prop="updateBy" />
|
||||
@@ -147,6 +148,7 @@
|
||||
<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="showAbnormal" type="text" icon="el-icon-upload" @click="handleAbnormal(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-delete" @click="handleDelete(scope.row)" v-if="showControl">删除</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-search" @click="handleTrace(scope.row)">追溯</el-button>
|
||||
@@ -311,6 +313,10 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showAbnormal: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -509,6 +515,14 @@ export default {
|
||||
this.$message.error('保存图片失败,请稍后重试');
|
||||
}
|
||||
},
|
||||
handleAbnormal (row) {
|
||||
this.$router.push({
|
||||
path: '/quality/detail',
|
||||
query: {
|
||||
coilId: row.coilId,
|
||||
}
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
<p>暂无待领物料</p>
|
||||
</div>
|
||||
|
||||
<div v-for="(item, index) in materialCoilList" :key="item.coilId || index" class="material-card">
|
||||
<div v-for="(item, index) in materialCoilList" :key="item.coilId || index" class="material-card"
|
||||
:style="{ border: item.abnormalCount > 0 ? '1px solid red' : ' 1px solid #e4e7ed' }">
|
||||
<div class="card-header">
|
||||
<div class="header-left">
|
||||
<el-tag type="info" size="small" class="coil-no-tag">{{ item.currentCoilNo }}</el-tag>
|
||||
@@ -59,7 +60,7 @@
|
||||
<span class="param-label">规格:</span>
|
||||
<span class="param-value">{{ item.rawMaterial.specification }}</span>
|
||||
</div>
|
||||
<div class="param-row" v-if="item.rawMaterial.material">
|
||||
<div class="param-row" v-if="item.rawMaterial.material">
|
||||
<span class="param-label">材质:</span>
|
||||
<span class="param-value">{{ item.rawMaterial.material }}</span>
|
||||
</div>
|
||||
@@ -167,6 +168,11 @@
|
||||
<div class="card-footer">
|
||||
<el-button type="primary" icon="el-icon-check" size="mini" @click="handlePickMaterial(item)"
|
||||
:loading="item.picking" class="action-btn">领料</el-button>
|
||||
<el-button type="danger" icon="el-icon-alarm-clock" :plain="item.abnormalCount == 0" size="mini"
|
||||
@click="handleAddAbnormal(item)" :loading="item.cancelling" class="action-btn">
|
||||
异常
|
||||
<span v-if="item.abnormalCount > 0">({{ item.abnormalCount }})</span>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -290,6 +296,40 @@
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-dialog title="新增异常" :visible.sync="exceptionDialogVisible" width="400px">
|
||||
<el-form ref="exceptionForm" :model="exceptionForm" label-width="80px">
|
||||
<el-form-item label="位置" prop="position">
|
||||
<el-radio-group v-model="exceptionForm.position">
|
||||
<el-radio-button v-for="dict in dict.type.coil_abnormal_position" :key="dict.value" :label="dict.value">{{
|
||||
dict.label }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="长度坐标" prop="lengthCoord">
|
||||
<el-input v-model="exceptionForm.lengthCoord" placeholder="请输入长度坐标" />
|
||||
</el-form-item>
|
||||
<el-form-item label="缺陷代码" prop="defectCode">
|
||||
<el-radio-group v-model="exceptionForm.defectCode">
|
||||
<el-radio-button v-for="dict in dict.type.coil_abnormal_code" :key="dict.value" :label="dict.value">{{
|
||||
dict.label }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="程度" prop="degree">
|
||||
<el-radio-group v-model="exceptionForm.degree">
|
||||
<el-radio-button v-for="dict in dict.type.coil_abnormal_degree" :key="dict.value" :label="dict.value">{{
|
||||
dict.label }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input type="textarea" v-model="exceptionForm.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="info" @click="handleAbnormal">查看异常</el-button>
|
||||
<el-button :loading="buttonLoading" type="primary" @click="confirmException">确 定</el-button>
|
||||
<el-button @click="cancelException">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -299,10 +339,11 @@ import { listPendingAction, startProcess, cancelAction, delPendingAction, addPen
|
||||
import { parseTime } from '@/utils/klp'
|
||||
import ProductInfo from '@/components/KLPService/Renderer/ProductInfo'
|
||||
import RawMaterialInfo from '@/components/KLPService/Renderer/RawMaterialInfo'
|
||||
import { addCoilAbnormal } from '@/api/wms/coilAbnormal'
|
||||
|
||||
export default {
|
||||
name: 'DoPage',
|
||||
dicts: ['action_type'],
|
||||
dicts: ['action_type', 'coil_abnormal_code', 'coil_abnormal_position', 'coil_abnormal_degree'],
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
@@ -342,6 +383,16 @@ export default {
|
||||
currentCoilNo: null,
|
||||
actionType: null, // 将在created中设置为酸连轧工序的actionType
|
||||
actionStatus: null
|
||||
},
|
||||
|
||||
exceptionDialogVisible: false,
|
||||
exceptionForm: {
|
||||
coilId: null,
|
||||
position: null,
|
||||
lengthCoord: null,
|
||||
defectCode: null,
|
||||
degree: null,
|
||||
remark: null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -603,6 +654,42 @@ export default {
|
||||
}
|
||||
return '—'
|
||||
},
|
||||
handleAddAbnormal(row) {
|
||||
this.exceptionForm.coilId = row.coilId
|
||||
this.exceptionDialogVisible = true
|
||||
},
|
||||
confirmException() {
|
||||
addCoilAbnormal(this.exceptionForm).then(response => {
|
||||
this.$message.success('异常记录添加成功')
|
||||
this.cancelException();
|
||||
// 重置表单
|
||||
this.getMaterialCoil()
|
||||
}).catch(error => {
|
||||
console.error('异常记录添加失败:', error)
|
||||
this.$message.error('异常记录添加失败: ' + (error.message || error))
|
||||
})
|
||||
|
||||
},
|
||||
handleAbnormal() {
|
||||
this.$router.push({
|
||||
path: '/quality/detail',
|
||||
query: {
|
||||
coilId: this.exceptionForm.coilId,
|
||||
}
|
||||
})
|
||||
},
|
||||
cancelException() {
|
||||
// 重置表单
|
||||
this.exceptionForm = {
|
||||
coilId: null,
|
||||
position: null,
|
||||
lengthCoord: null,
|
||||
defectCode: null,
|
||||
degree: null,
|
||||
remark: null
|
||||
}
|
||||
this.exceptionDialogVisible = false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user