factory_web/src/views/wpm_bx/inm.vue

377 lines
8.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button type="primary" @click="tomio('do_out')" v-auth="'mio.do'"
v-if="mgroupName=='清洗'"
>领料</el-button
>
<el-button type="primary" @click="tomio('do_in')" v-auth="'mio.do'"
>入库</el-button
>
<el-button type="primary" v-auth="'handover.create'" @click="table_add(40)">
报废</el-button>
</div>
<div class="right-panel">
<el-select
v-model="query.state"
placeholder="物料状态"
clearable
@change="searchStateChange"
style="width: 250px"
>
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.name"
:value="item.value"
/>
</el-select>
<el-input
style="margin-right: 5px"
v-model="query.search"
placeholder="名称"
clearable
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
:params="params"
:query="query"
>
<el-table-column label="状态" prop="state" width="100" >
<template #default="scope">
<el-tag :type="wmState[scope.row.state]?.type">
{{wmState[scope.row.state]?.text}}
</el-tag>
</template>
</el-table-column>
<el-table-column
label="物料名称"
prop="material_name"
min-width="150"
>
<template #default="scope">
{{ scope.row.material_name }}
<span v-if="scope.row.material_origin != null"
>{{ scope.row.material_origin_name }}</span
>
</template>
</el-table-column>
<el-table-column
label="批次号"
prop="batch"
min-width="120"
></el-table-column>
<el-table-column
label="部门/工段"
prop="belong_dept_name"
>
<template #default="scope">
{{scope.row.belong_dept_name}}/{{scope.row.mgroup_name}}
</template>
</el-table-column>
<el-table-column
label="数量"
prop="count"
min-width="80"
></el-table-column>
<el-table-column
label="生产中"
prop="count_working"
min-width="80"
></el-table-column>
<el-table-column
label="不合格标记"
prop="notok_sign_name"
></el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
width="150"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="120"
>
<template #default="scope">
<el-button @click="printMaterial(scope.row)" type="text">物料标签</el-button>
</template>
</el-table-column>
</scTable>
</el-main>
<el-dialog title="选择物料" v-model="materialsVisible" width="90%">
<materials
style="height: 500px"
:materialType="materialType"
ref="materialsChose"
@choseChange="choseChange"
></materials>
</el-dialog>
<!-- <check-dialog
v-if="dialog.save"
ref="saveDialog"
:mgroup="mgroupId"
:mgroupName="mgroup_name"
:itemObj = "checkItem"
@success="handleSaveSuccess"
@closed="dialog.save = false"
>
</check-dialog> -->
<scrap-dialog
v-if="dialog.scrap"
ref="scrapDialog"
:type="type"
:mgroupName="mgroup_name"
:mgroupId="mgroupId"
@success="handleScrapSuccess"
@closed="dialog.scrap = false"
>
</scrap-dialog>
<!-- <showDrawer
ref="showDrawer"
v-if="visibleDrawer"
:wm="wm"
@closed="visibleDrawer = false"
>
</showDrawer> -->
<save-dialog
v-if="dialog.inmRecord"
ref="inmRecordDialog"
:cate = "cate_type"
:process = "process"
:mgroupId = "params.mgroupx"
:deptId = " params.belong_dept"
@success="handleinmSuccess"
>
</save-dialog>
</el-container>
</template>
<script>
import { wmState } from "@/utils/enum.js";
import materials from "./../mtm/materials.vue";
import checkDialog from "./check_form.vue";
import showDrawer from "./check_drawer.vue";
import scrapDialog from "./handover_form.vue";
import saveDialog from "./inm_record.vue";
export default {
props: {
mgroupName: {
type: String,
default: "",
},
},
components: {
saveDialog,
materials,
checkDialog,
showDrawer,
scrapDialog,
},
name: "wmaterial",
data() {
return {
wmState,
apiObj: null,
params: {
mgroupx: "",
belong_dept:''
},
wmtype:0,
query: {
search: "",
state: null,
},
dialog: {
save: false,
scrap: false,
permission: false,
inmRecord:false,
},
tableData: [],
selection: [],
stateOptions:[
{ value: 10, name: "合格"},
{ value: 20, name: "不合格"},
{ value: 30, name: "返修"},
// { value: 40, name: "检验"},
// { value: 50, name: "报废"},
],
queryWm: {
search: "",
material: "",
},
cate_type:'',
process:'',
materialType: "wm",
materialsVisible:false,
visibleDrawer: false,
apiObjPrint:this.$API.cm.labelmat.fromWm,
printer_name:localStorage.getItem("printer_name"),
mgroup_name:'',
};
},
mounted() {
this.getMgroupInfo();
},
watch: {
// mgroupName: {
// handler: function (newval,odlval) {
// let that = this;
// that.params.mgroupx = "";
// that.apiObj = null;
// that.mgroup_name = newval;
// that.getMgroupInfo();
// },
// },
},
methods: {
getMgroupInfo(){
let that = this;
console.log('mgroupName',that.mgroupName);
if(that.mgroupName=="size"){
// that.params.material__process__name = "一次超洗";
that.$API.system.dept.list.req({name__contains:'尺寸',page:0}).then((res) => {
if(res.length>0){
that.params.mgroupx = null;
that.params.belong_dept=res[0].id;
}
that.apiObj = that.$API.wpm.wmaterial.list;
that.$refs.table.refresh();
})
}else if(that.mgroupName=="facade"){
// that.params.material__process__name = "二次超洗";
that.$API.system.dept.list.req({name__contains:'外观',page:0}).then((res) => {
if(res.length>0){
that.params.mgroupx = null;
that.params.belong_dept=res[0].id;
}
that.apiObj = that.$API.wpm.wmaterial.list;
that.$refs.table.refresh();
})
}else{
that.$API.mtm.mgroup.list
.req({ page: 0, name: that.mgroupName })
.then((res) => {
if (res.length < 1) {
that.$message.error("获取工段错误");
return;
}
that.mgroupId = res[0].id;
that.$TOOL.data.set('bx_deptID',res[0].belong_dept);
that.process = res[0].process;
that.params.mgroupx = res[0].id;
that.params.belong_dept = res[0].belong_dept;
that.apiObj = that.$API.wpm.wmaterial.list;
that.$refs.table.refresh();
});
}
},
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
materialsChoses(str) {
this.materialType = str;
this.materialsVisible = true;
},
choseChange(data) {
this.queryWm.material = data;
this.$refs.table_wm.queryData(this.queryWm);
this.materialsVisible = false;
},
tomio(type) {
let that = this;
that.cate_type=type;
that.dialog.inmRecord = true;
that.$nextTick(() => {
that.$refs.inmRecordDialog.open("add");
});
// this.$router.push({ name: "halfgood_mio" });
},
table_Check(row){
this.checkItem = row;
let mode = this.mgroupName;
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open(mode);
});
},
//获取当前批次车间物料的检验记录
tableCheckList(row){
this.wm = row.id;
this.visibleDrawer = true;
this.$nextTick(() => {
this.$refs.showDrawer.open();
});
},
//表格选择后回调事件
selectionChange(selection) {
this.selection = selection;
},
//添加报废
table_add(type) {
this.dialog.scrap = true;
this.type = type;
this.$nextTick(() => {
this.$refs.scrapDialog.open("add");
});
},
handleScrapSuccess(){
this.dialog.scrap = false;
this.$refs.table.refresh();
},
//出入库后刷新页面
handleinmSuccess(){
this.$refs.table.refresh();
},
//搜索
handleQuery() {
this.$refs.table.queryData(this.query);
},
//本地更新数据
handleSaveSuccess(data, mode) {
this.dialog.save = false;
this.$refs.table.refresh();
},
//打印物料标签
printMaterial(row){
let that = this;
that.apiObj.req({tid:row.id}).then((res) => {
let code = res.code_label;
let str = [
"SIZE 40 mm,70 mm",
"GAP 7 mm,7 mm",
"CLS",
"REFERENCE 0,0",
'QRCODE 30,400,H,5,A,0,"' +code +'"',
"WINTEXT 200,550,28,90,0,0,Simhei," + res.material_name,
"WINTEXT 240,550,28,90,0,0,Simhei," + res.batch,
"PRINT 1",
];
let obj = {};
obj.printer_commands = str;
obj.printer_name = that.printer_name;
that.$API.wpm.prints.req(obj).then((response) => {
that.$message.success("打印成功");
});
})
},
},
};
</script>
<style scoped></style>