541 lines
13 KiB
Vue
541 lines
13 KiB
Vue
<template>
|
||
<el-drawer
|
||
title="日志详情"
|
||
v-model="visible"
|
||
:size="'90%'"
|
||
destroy-on-close
|
||
@closed="$emit('closed')"
|
||
>
|
||
<div>
|
||
<el-card style="width: 100%" header="基本信息" shadow="never">
|
||
<!-- <el-button type="primary" @click="handlePrint" style="position: absolute;right: 20px;">打印</el-button> -->
|
||
<el-descriptions>
|
||
<el-descriptions-item label="工艺路线">{{
|
||
mlogItem.routepack_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="输入物料">{{
|
||
mlogItem.material_in_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="输出物料">{{
|
||
mlogItem.material_out_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="工段名称">{{
|
||
mlogItem.mgroup_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="生产设备">{{
|
||
mlogItem.equipment_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="预计工时">{{
|
||
mlogItem.hour_work
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="部门/车间">{{
|
||
mlogItem.belong_dept_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="处理人">{{
|
||
mlogItem.handle_user_name
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="开始时间">{{
|
||
mlogItem.work_start_time
|
||
}}</el-descriptions-item>
|
||
<el-descriptions-item label="创建时间">{{
|
||
mlogItem.create_time
|
||
}}</el-descriptions-item>
|
||
</el-descriptions>
|
||
<div style="padding: 5px 10px;display: flex;justify-content: end;">
|
||
<el-button
|
||
type="primary"
|
||
v-if="mlogItem.submit_time == null"
|
||
@click="mlogUpdate"
|
||
style="margin-right: 10px;"
|
||
v-auth="'mlog.update'"
|
||
>
|
||
编辑
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
v-if="mlogItem.submit_time == null"
|
||
:loading="isSaveing"
|
||
@click="mlogSubmit"
|
||
>提交</el-button
|
||
>
|
||
</div>
|
||
</el-card>
|
||
<!-- 输入物料 -->
|
||
<el-card
|
||
style="width: 100%; margin: 1vh 0"
|
||
header="输入物料"
|
||
shadow="never"
|
||
>
|
||
<div>
|
||
<el-button
|
||
type="primary"
|
||
v-if="mlogItem.submit_time == null&&(mlogItem.ticket==null||(mlogItem.ticket_&&mlogItem.ticket_.state_.type==1))"
|
||
icon="el-icon-plus"
|
||
@click="table_add"
|
||
>新增</el-button
|
||
>
|
||
</div>
|
||
<div style="height: 4px"></div>
|
||
<scTable
|
||
ref="tableIn"
|
||
:apiObj="apiObj"
|
||
row-key="id"
|
||
stripe
|
||
:params="paramsIn"
|
||
hidePagination
|
||
>
|
||
<el-table-column type="index" width="50" />
|
||
<el-table-column
|
||
label="物料"
|
||
prop="material_in_name"
|
||
show-overflow-tooltip
|
||
></el-table-column>
|
||
<el-table-column label="批次号" prop="batch">
|
||
</el-table-column>
|
||
<el-table-column label="领用数量" prop="count_use">
|
||
</el-table-column>
|
||
<el-table-column label="加工前不良" prop="count_pn_jgqbl">
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="创建时间"
|
||
prop="create_time"
|
||
show-overflow-tooltip
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="操作"
|
||
fixed="right"
|
||
align="center"
|
||
width="100px"
|
||
>
|
||
<template #default="scope">
|
||
<el-button
|
||
link
|
||
type="primary"
|
||
@click="table_in_edit(scope.row)"
|
||
:disabled="mlogItem.submit_time !== null||mlogItem.ticket!==null||(mlogItem.ticket_&&mlogItem.ticket_.state_.type==1)"
|
||
>
|
||
编辑
|
||
</el-button>
|
||
<el-button
|
||
link
|
||
:disabled="mlogItem.submit_time !== null||mlogItem.ticket!==null||(mlogItem.ticket_&&mlogItem.ticket_.state_.type==1)"
|
||
type="danger"
|
||
@click="table_in_del(scope.row)"
|
||
>
|
||
删除
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</scTable>
|
||
</el-card>
|
||
<!-- 输入物料编辑 -->
|
||
<el-dialog v-model="saveInDialog" title="编辑">
|
||
<el-form
|
||
:model="saveInForm"
|
||
:rules="rules"
|
||
label-width="100px"
|
||
ref="saveInForm"
|
||
>
|
||
<el-row>
|
||
<el-col :span="23">
|
||
<el-form-item label="领取数量" prop="count_use">
|
||
<el-input-number
|
||
v-model="saveInForm.count_use"
|
||
:min="1"
|
||
style="width: 100%"
|
||
controls-position="right"
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="23">
|
||
<el-form-item label="加工前不良" prop="count_pn_jgqbl">
|
||
<el-input-number
|
||
v-model="saveInForm.count_pn_jgqbl"
|
||
:min="0"
|
||
style="width: 100%"
|
||
controls-position="right"
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
<template #footer>
|
||
<el-button
|
||
type="primary"
|
||
:loading="isSaveing"
|
||
@click="saveInSubmit()"
|
||
>保 存</el-button
|
||
>
|
||
</template>
|
||
</el-dialog>
|
||
<!-- 输出物料 -->
|
||
<el-card style="width: 100%" header="输出物料" shadow="never">
|
||
<scTable
|
||
ref="tableOut"
|
||
:apiObj="apiObj"
|
||
row-key="id"
|
||
stripe
|
||
:params="paramsOut"
|
||
hidePagination
|
||
>
|
||
<el-table-column type="index" width="50" />
|
||
<el-table-column type="expand">
|
||
<template #default="props">
|
||
<!-- 检测项和判断项 -->
|
||
<div style="padding-left: 50px">
|
||
<el-descriptions :column="4">
|
||
<el-descriptions-item label="破损">
|
||
{{props.row.count_n_hs}}
|
||
</el-descriptions-item>
|
||
</el-descriptions>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="产出物料"
|
||
prop="material_out_name"
|
||
show-overflow-tooltip
|
||
></el-table-column>
|
||
<el-table-column label="批次号" prop="batch">
|
||
</el-table-column>
|
||
<el-table-column label="数量" prop="count_real">
|
||
</el-table-column>
|
||
<el-table-column label="合格数" prop="count_ok">
|
||
</el-table-column>
|
||
<el-table-column label="不合格数量" prop="count_notok">
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="创建时间"
|
||
prop="create_time"
|
||
show-overflow-tooltip
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="操作"
|
||
fixed="right"
|
||
align="center"
|
||
width="100px"
|
||
>
|
||
<template #default="scope">
|
||
<el-button
|
||
link
|
||
type="primary"
|
||
:disabled="mlogItem.submit_time !== null||mlogItem.ticket!==null||(mlogItem.ticket_&&mlogItem.ticket_.state_.type==1)"
|
||
@click="table_out_check(scope.row)"
|
||
>
|
||
检验
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</scTable>
|
||
</el-card>
|
||
<!-- 工段物料库存 -->
|
||
<el-card style="width: 100%" header="工段物料列表" shadow="never">
|
||
<scTable
|
||
ref="tableWm"
|
||
:apiObj="apiObjWm"
|
||
:params="paramsWm"
|
||
stripe
|
||
hidePagination
|
||
>
|
||
<el-table-column label="物料名称" prop="material_name" show-overflow-tooltip>
|
||
</el-table-column>
|
||
<el-table-column label="批次号" prop="batch">
|
||
</el-table-column>
|
||
<el-table-column label="数量" prop="count">
|
||
</el-table-column>
|
||
<el-table-column label="不合格标记" prop="notok_sign_name">
|
||
</el-table-column>
|
||
<el-table-column width="100">
|
||
<template #default="scope">
|
||
<el-button @click="printMaterial(scope.row)" type="text">物料标签</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</scTable>
|
||
</el-card>
|
||
<save-dialog
|
||
v-if="dialog.save"
|
||
ref="saveDialog"
|
||
:mlog="mlogId"
|
||
:mgroup="mgroup"
|
||
:materialIn="materialIn"
|
||
@success="handleSaveSuccess"
|
||
@closed="dialog.save = false"
|
||
>
|
||
</save-dialog>
|
||
<check-dialog
|
||
v-if="dialog.check"
|
||
ref="checkDialog"
|
||
:material="materialOut"
|
||
@success="handleCheckSuccess"
|
||
@closed="dialog.check = false"
|
||
>
|
||
</check-dialog>
|
||
<edit-dialog
|
||
v-if="dialog.edit"
|
||
ref="editDialog"
|
||
:dept="deptId"
|
||
:mgroupName= "mlogItem.mgroup_name"
|
||
@success="handleEditSuccess"
|
||
@closed="dialog.edit = false"
|
||
>
|
||
</edit-dialog>
|
||
<el-dialog v-model="printVisible" width="1200px">
|
||
<print :baseData="mlogItem" :tableData="tableData" :tableData2="tableData2" type="102" @closePrint="printVisible=false"/>
|
||
</el-dialog>
|
||
<print-dialog
|
||
v-if="dialog.print_m"
|
||
ref="printmaterial"
|
||
:mId="wmId"
|
||
:mtype="wmtype"
|
||
:apiObj="apiObjPrint"
|
||
></print-dialog>
|
||
</div>
|
||
</el-drawer>
|
||
</template>
|
||
<script>
|
||
import editDialog from "./mlog_form.vue";
|
||
import saveDialog from "./mlogb_form.vue";
|
||
import checkDialog from "./mlogb_check.vue";
|
||
import print from "./../setting/print/A4.vue";
|
||
import printDialog from "./../template/printmaterial.vue";
|
||
export default {
|
||
props: {
|
||
mlogId: {
|
||
type: String,
|
||
default: "",
|
||
},
|
||
},
|
||
components: {
|
||
editDialog,
|
||
saveDialog,
|
||
checkDialog,
|
||
print,
|
||
printDialog
|
||
},
|
||
emits: ["success", "closed"],
|
||
data() {
|
||
return {
|
||
loading: false,
|
||
//表单数据
|
||
form: {},
|
||
dialog: {
|
||
save: false,
|
||
edit: false,
|
||
check: false,
|
||
print_m:false,
|
||
},
|
||
apiObj: null,
|
||
apiObjWm:null,
|
||
paramsWm: {
|
||
page: 0,
|
||
search:'',
|
||
mgroup:''
|
||
},
|
||
paramsIn: {
|
||
page: 0,
|
||
mlog: "",
|
||
material_in__isnull: 0,
|
||
},
|
||
paramsOut: {
|
||
page: 0,
|
||
mlog: "",
|
||
material_out__isnull: 0,
|
||
},
|
||
mgroup: "",
|
||
mlogItem: {},
|
||
saveInForm: {
|
||
count_use: 0,
|
||
count_pn_jgqbl: 0,
|
||
},
|
||
fileList:[],
|
||
tableDataWm:[],
|
||
test_file:'',
|
||
deptId: "",
|
||
visible: false,
|
||
isSaveing: false,
|
||
options: [],
|
||
tableData:[],
|
||
tableData2:[],
|
||
saveInDialog: false,
|
||
printVisible:false,
|
||
setFiltersVisible: false,
|
||
rules: {
|
||
count_use: [
|
||
{
|
||
required: true,
|
||
message: "请输入领取数量",
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
},
|
||
wmId:'',
|
||
wmtype:'',
|
||
materialOut:'',
|
||
batchContains:'',
|
||
apiObjPrint:this.$API.cm.labelmat.fromWm,
|
||
};
|
||
},
|
||
mounted() {
|
||
let that = this;
|
||
this.paramsIn.mlog = this.mlogId;
|
||
this.paramsOut.mlog = this.mlogId;
|
||
this.apiObj = this.$API.wpm.mlogb.list;
|
||
that.$API.wpm.mlogb.list.req(that.paramsIn).then((res) => {
|
||
that.tableData = res;
|
||
})
|
||
that.getMlogItem();
|
||
},
|
||
methods: {
|
||
open() {
|
||
this.visible = true;
|
||
},
|
||
getMlogItem() {
|
||
let that = this;
|
||
that.$API.wpm.mlog.item.req(that.mlogId).then((res) => {
|
||
that.mlogItem = res;
|
||
if(res.test_file!==null){
|
||
that.fileList = [{name:res.test_file,url:res.test_file}];
|
||
that.form.test_file = res.test_file;
|
||
}
|
||
that.mgroup = res.mgroup;
|
||
that.paramsWm.mgroup = res.mgroup;
|
||
that.materialIn = res.material_in;
|
||
that.deptId = res.belong_dept;
|
||
that.$API.wpm.mlogb.list.req(that.paramsOut).then((res) => {
|
||
that.tableData2 = res;
|
||
if(res.length>0){
|
||
res.forEach((item) => {
|
||
that.batchContains+= item.batch + " ";
|
||
})
|
||
that.paramsWm.search = that.batchContains;
|
||
that.apiObjWm = that.$API.wpm.wmaterial.list;
|
||
}
|
||
})
|
||
});
|
||
},
|
||
|
||
//表单注入数据
|
||
setData(data) {
|
||
Object.assign(this.form, data);
|
||
this.getRoute(data.id);
|
||
},
|
||
//编辑
|
||
mlogUpdate() {
|
||
this.dialog.edit = true;
|
||
this.$nextTick(() => {
|
||
this.$refs.editDialog.open("edit").setData(this.mlogItem);
|
||
});
|
||
},
|
||
table_add() {
|
||
this.dialog.save = true;
|
||
this.$nextTick(() => {
|
||
this.$refs.saveDialog.open();
|
||
});
|
||
},
|
||
mlogbinSuccess(){
|
||
this.$refs.tableIn.refresh();
|
||
this.$refs.tableOut.refresh();
|
||
},
|
||
//自检
|
||
table_in_edit(row) {
|
||
this.saveInForm = row;
|
||
this.saveInDialog = true;
|
||
},
|
||
//提交自检
|
||
saveInSubmit() {
|
||
let that = this;
|
||
that.$refs.saveInForm.validate(async (valid) => {
|
||
if (valid) {
|
||
that.isSaveing = true;
|
||
let obj = {};
|
||
obj.count_use = that.saveInForm.count_use;
|
||
obj.count_pn_jgqbl = that.saveInForm.count_pn_jgqbl;
|
||
that.$API.wpm.mlogb.updateIn
|
||
.req(that.saveInForm.id, obj)
|
||
.then((res) => {
|
||
that.isSaveing = false;
|
||
that.$message.success("操作成功");
|
||
that.saveInDialog = false;
|
||
that.$refs.tableIn.refresh();
|
||
that.$refs.tableOut.refresh();
|
||
})
|
||
.catch(() => {
|
||
that.isSaveing = false;
|
||
});
|
||
}
|
||
});
|
||
},
|
||
table_in_del(row) {
|
||
let that = this;
|
||
that.$confirm("确定删除吗?").then(() => {
|
||
that.$API.wpm.mlogb.delIn.req(row.id).then((res) => {
|
||
that.$message.success("操作成功");
|
||
that.$refs.tableIn.refresh();
|
||
that.$refs.tableOut.refresh();
|
||
//删除in记录后,out也要删除相应的记录
|
||
});
|
||
});
|
||
},
|
||
table_out_check(row) {
|
||
this.dialog.check = true;
|
||
this.materialOut = row.material_out;
|
||
let obj = {};
|
||
Object.assign(obj, row);
|
||
obj.mgroup_name = this.mlogItem.mgroup_name;
|
||
this.$nextTick(() => {
|
||
this.$refs.checkDialog.open(obj);
|
||
});
|
||
},
|
||
|
||
//表单提交方法
|
||
mlogSubmit() {
|
||
let that = this;
|
||
that.$API.wpm.mlog.submit.req(that.mlogItem.id).then((res) => {
|
||
that.isSaveing = false;
|
||
that.visible = false;
|
||
that.$message.success("操作成功");
|
||
});
|
||
},
|
||
handleSaveSuccess() {
|
||
this.$refs.tableIn.refresh();
|
||
this.$refs.tableOut.refresh();
|
||
},
|
||
handleCheckSuccess() {
|
||
this.$refs.tableOut.refresh();
|
||
},
|
||
fileUPSuccess(res) {
|
||
let that = this;
|
||
console.log('res',res);
|
||
this.test_file = res.path;
|
||
},
|
||
//编辑成功后的方法调用
|
||
handleEditSuccess() {
|
||
this.getMlogItem();
|
||
},
|
||
//设置过滤项
|
||
setFilters(filters) {
|
||
this.selectionFilters = filters;
|
||
this.setFiltersVisible = true;
|
||
},
|
||
handlePrint(){
|
||
let that = this;
|
||
that.printVisible = true;
|
||
},
|
||
//打印物料标签
|
||
printMaterial(row){
|
||
let that = this;
|
||
that.wmId = row.id;
|
||
that.wmtype = row.material_.type;
|
||
that.dialog.print_m = true;
|
||
this.$nextTick(() => {
|
||
this.$refs.printmaterial.open();
|
||
})
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style></style>
|