3 changed files with 281 additions and 0 deletions
-
3src/api/yieldReport/produce_order.js
-
262src/views/modules/yieldReport/com_mrb_register.vue
-
16src/views/modules/yieldReport/com_produce_report_normal.vue
@ -0,0 +1,262 @@ |
|||
<template> |
|||
<div class="mrb-register"> |
|||
<el-dialog title="MRB异常单登记" :close-on-click-modal="false" v-drag :visible.sync="visible" width="550px" :append-to-body="true" @close="handleClose"> |
|||
<el-form :model="formData" :rules="rules" ref="mrbForm" label-width="65px" class="mrb-form"> |
|||
<el-form-item prop="mrb"> |
|||
<span slot="label" class="required-label">MRB</span> |
|||
<el-input v-model="formData.mrb" placeholder="请扫描/选择操作员" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item prop="mrbInspectionReport"> |
|||
<span slot="label" class="required-label">质检单</span> |
|||
<el-input v-model="formData.mrbInspectionReport" placeholder="请填写质检单" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="备注" prop="mrbRemark"> |
|||
<el-input type="textarea" v-model="formData.mrbRemark" :rows="3"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:35px;margin-top: 55px;text-align:center"> |
|||
<el-button type="primary" :loading="loading" @click="submitForm">确定</el-button> |
|||
<el-button type="primary" @click="closeDialog">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { updateScheduleMrbInfo } from '@/api/yieldReport/produce_order.js'; |
|||
|
|||
export default { |
|||
name: 'ComMrbRegister', |
|||
props: { |
|||
visible: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
loading: false, |
|||
scheduleData: { |
|||
site: '', |
|||
orderNo: '', |
|||
itemNo: '', |
|||
seqNo: '' |
|||
}, |
|||
formData: { |
|||
mrb: '', |
|||
mrbInspectionReport: '', |
|||
mrbRemark: '' |
|||
}, |
|||
rules: { |
|||
mrb: [ |
|||
{ |
|||
required: true, |
|||
message: ' ', |
|||
trigger: ['blur','change'] |
|||
} |
|||
], |
|||
mrbInspectionReport: [ |
|||
{ |
|||
required: true, |
|||
message: ' ', |
|||
trigger: ['blur','change'] |
|||
} |
|||
], |
|||
} |
|||
}; |
|||
}, |
|||
methods: { |
|||
/** |
|||
* 初始化对话框 |
|||
* @param {Object} scheduleData - 派工单数据 |
|||
*/ |
|||
init(scheduleData) { |
|||
this.scheduleData = { |
|||
site: scheduleData.site, |
|||
orderNo: scheduleData.orderNo, |
|||
itemNo: scheduleData.itemNo, |
|||
seqNo: scheduleData.seqNo |
|||
}; |
|||
|
|||
// 重置表单数据 |
|||
this.formData = { |
|||
mrb: '', |
|||
mrbInspectionReport: '', |
|||
mrbRemark: '' |
|||
}; |
|||
|
|||
// 重置表单验证 |
|||
this.$nextTick(() => { |
|||
if (this.$refs.mrbForm) { |
|||
this.$refs.mrbForm.clearValidate(); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
/** |
|||
* 提交表单 |
|||
*/ |
|||
submitForm() { |
|||
this.$refs.mrbForm.validate((valid) => { |
|||
if (valid) { |
|||
this.loading = true; |
|||
const params = { |
|||
site: this.scheduleData.site, |
|||
orderNo: this.scheduleData.orderNo, |
|||
itemNo: this.scheduleData.itemNo, |
|||
seqNo: this.scheduleData.seqNo, |
|||
mrb: this.formData.mrb, |
|||
mrbInspectionReport: this.formData.mrbInspectionReport, |
|||
mrbRemark: this.formData.mrbRemark |
|||
}; |
|||
|
|||
updateScheduleMrbInfo(params).then(({ data }) => { |
|||
this.loading = false; |
|||
if (data.code === 0 || data.code === 200) { |
|||
this.$message.success('MRB异常单登记成功'); |
|||
this.$emit('update:visible', false); |
|||
// 触发确认事件,通知父组件打开过程检验对话框 |
|||
this.$emit('confirmed'); |
|||
} else { |
|||
this.$message.error(data.msg || 'MRB异常单登记失败'); |
|||
} |
|||
}).catch((error) => { |
|||
this.loading = false; |
|||
this.$message.error('MRB异常单登记失败: ' + (error.message || '未知错误')); |
|||
}); |
|||
} else { |
|||
this.$message.warning('请填写必填项'); |
|||
return false; |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
/** |
|||
* 关闭对话框 |
|||
*/ |
|||
closeDialog() { |
|||
this.$emit('update:visible', false); |
|||
}, |
|||
|
|||
/** |
|||
* 对话框关闭事件 |
|||
*/ |
|||
handleClose() { |
|||
// 重置表单 |
|||
if (this.$refs.mrbForm) { |
|||
this.$refs.mrbForm.resetFields(); |
|||
} |
|||
} |
|||
} |
|||
}; |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.mrb-register { |
|||
/* MRB异常单登记样式 */ |
|||
} |
|||
|
|||
/* 表单样式 */ |
|||
.mrb-form { |
|||
padding: 10px 10px 20px 0px; |
|||
} |
|||
|
|||
/* 必填标签样式 - 红色星号 */ |
|||
.required-label::before { |
|||
color: #ff4d4f; |
|||
margin-right: 4px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.required-label { |
|||
color: #1ab394; |
|||
font-size: 14px; |
|||
font-weight: 500; |
|||
} |
|||
|
|||
/* 表单项间距 */ |
|||
.mrb-form /deep/ .el-form-item { |
|||
margin-bottom: 22px; |
|||
} |
|||
|
|||
/* 输入框样式 */ |
|||
.mrb-form /deep/ .el-input__inner { |
|||
height: 36px; |
|||
line-height: 36px; |
|||
border-radius: 4px; |
|||
} |
|||
|
|||
/* 文本域样式 */ |
|||
.mrb-form /deep/ .el-textarea__inner { |
|||
border-radius: 4px; |
|||
} |
|||
|
|||
/* 底部按钮区域 */ |
|||
.dialog-footer { |
|||
text-align: center; |
|||
padding: 20px 0 10px 0; |
|||
} |
|||
|
|||
/* 确定按钮 - 绿色主题 */ |
|||
.confirm-btn { |
|||
background-color: #1ab394; |
|||
border-color: #1ab394; |
|||
color: #ffffff; |
|||
min-width: 80px; |
|||
padding: 10px 20px; |
|||
border-radius: 4px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.confirm-btn:hover { |
|||
background-color: #18a689; |
|||
border-color: #18a689; |
|||
} |
|||
|
|||
.confirm-btn:active { |
|||
background-color: #16967d; |
|||
border-color: #16967d; |
|||
} |
|||
|
|||
/* 关闭按钮 - 绿色边框 */ |
|||
.close-btn { |
|||
background-color: #ffffff; |
|||
border-color: #1ab394; |
|||
color: #1ab394; |
|||
min-width: 80px; |
|||
padding: 10px 20px; |
|||
border-radius: 4px; |
|||
font-size: 14px; |
|||
margin-left: 20px; |
|||
} |
|||
|
|||
.close-btn:hover { |
|||
background-color: #1ab394; |
|||
border-color: #1ab394; |
|||
color: #ffffff; |
|||
} |
|||
|
|||
.close-btn:active { |
|||
background-color: #18a689; |
|||
border-color: #18a689; |
|||
} |
|||
|
|||
/* 对话框标题样式 */ |
|||
.mrb-register /deep/ .el-dialog__title { |
|||
font-size: 16px; |
|||
font-weight: 500; |
|||
color: #333; |
|||
} |
|||
|
|||
/* 对话框body padding调整 */ |
|||
.mrb-register /deep/ .el-dialog__body { |
|||
padding: 10px 20px; |
|||
} |
|||
|
|||
/* placeholder文字颜色 */ |
|||
.mrb-form /deep/ .el-input__inner::placeholder, |
|||
.mrb-form /deep/ .el-textarea__inner::placeholder { |
|||
color: #c0c4cc; |
|||
} |
|||
</style> |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue