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